POST /v1/transactions/external-party/transferhttps://api.dev.pynil.com/v1.Authorization: Basic <BASE64(username:password)>X-Signature: <HMAC_SHA256_UPPERCASE_HEX>X-Timestamp: <UNIX_TIMESTAMP_SECONDS>Content-Type: application/jsonHTTP_METHOD + "\n" + REQUEST_PATH + "\n" + UNIX_TIMESTAMP/v1/transactions/external-party/transferPOST /v1/transactions/external-party/transfer{
"receiverWalletNumber": 101000002,
"amount": 250.00
}receiverWalletNumber is required and must be greater than 0.amount is required and must be greater than 0.{
"success": true,
"message": "Transfer successful.",
"statusCode": 200,
"data": {
"transactionId": "340-1",
"reference": 340,
"date": "2026-04-25T10:00:00Z",
"direction": "Credit",
"amount": 250.00,
"description": "External party transfer"
}
}400 validation response envelope (success/message/statusCode/data).401 RFC 7807 ProblemDetails (e.g., missing signature, invalid timestamp, invalid signature, invalid Basic Auth).404 envelope error (wallet not found / account not available).500 envelope error.{
"type": "about:blank",
"title": "Unauthorized",
"status": 401,
"detail": "Invalid signature"
}| HTTP Code | Error Type | Description | Action Required |
|---|---|---|---|
| 400 | Validation Error | Invalid request parameters | Fix request payload and retry |
| 401 | Authentication Failed | Basic Auth, signature, timestamp, or replay validation failure | Verify credentials, signature payload, and timestamp |
| 404 | Account Not Found | Receiver wallet not found or inactive | Verify wallet number and account status |
| 500 | Internal Server Error | Unrecoverable server error | Retry later, contact support if persistent |
reference and transactionId from successful responses for reconciliation.