Endpoint
POST:{{baseURL}}/v2/payout
Supported Payment Channels
USD payouts support three SWIFT-based payment channels. All use the same recipient fields โ the only difference is who bears the transfer charges.| Channel | Charge Bearer | Description |
|---|---|---|
SWIFT_CUSTOMER | Sender | The sending customer bears all transfer charges. |
SWIFT_SHARED | Both parties | Transfer charges are shared between sender and beneficiary. |
SWIFT_BENEFICIARY | Beneficiary | The beneficiary bears all transfer charges. |
Request Details
Headers
Include these headers in your request:| Header | Value | Required |
|---|---|---|
Content-Type | application/json | โ Yes |
x-api-key | YOUR_API_KEY | โ Yes |
Sample Requests
- SWIFT_CUSTOMER
Use
SWIFT_CUSTOMER when the sender bears all transfer charges. Replace paymentChannel with SWIFT_SHARED if charges should be split with the beneficiary, or SWIFT_BENEFICIARY if the beneficiary bears all charges.All SWIFT channels use identical request fields โ only the
paymentChannel value changes.Request Body Breakdown
- SWIFT Fields
| Field | Type | Description | Required |
|---|---|---|---|
paymentChannel | String | The SWIFT channel to use. SWIFT_CUSTOMER โ sender bears all charges; SWIFT_SHARED โ charges split; SWIFT_BENEFICIARY โ beneficiary bears all charges. | โ Yes |
currency | String | The ISO currency code. Must be USD. | โ Yes |
quoteId | String | The unique ID of the quote for this payout. | โ Yes |
reason | String | The purpose of the transfer (e.g., Gift, Payment for services). | โ Yes |
invoice | String | Optional identifier for the invoice (returned from file upload). | โ No |
remark | String | An optional, additional note about the transaction. | โ No |
recipient | Object | An object containing all details about the person receiving the funds. | โ Yes |
recipient.name | String | The full name of the recipient or business. | โ Yes |
recipient.nickName | String | A nickname or alias for the recipient. | โ No |
recipient.gender | String | Gender of the recipient. Enum: M, F. | โ No |
recipient.occupation | String | The recipientโs occupation or profession. | โ No |
recipient.type | String | The type of recipient. Enum: INDIVIDUAL, BUSINESS. | โ Yes |
recipient.account | Object | An object containing the recipientโs bank account details. | โ Yes |
recipient.account.accountNumber | String | The recipientโs bank account number. | โ Yes |
recipient.account.swiftCode | String | The SWIFT/BIC code of the recipientโs bank. | โ Yes |
recipient.account.sortCode | String | The bank sort code. | โ No |
recipient.account.bankName | String | The name of the recipientโs bank. | โ Yes |
recipient.account.bankCity | String | The city where the bank is located. | โ No |
sender | Object | An object containing details about the person initiating the transfer. | โ Yes |
sender.name | String | The full name of the sender or business. | โ Yes |
sender.icNumber | String | The senderโs identification/IC number. | โ Yes |
sender.nationality | String | The senderโs two-letter ISO nationality code (e.g., NG). | โ Yes |
sender.address | Object | An object containing the senderโs address details. | โ Yes |
sender.address.line1 | String | The first line of the senderโs address. | โ Yes |
sender.mobileNumber | String | The senderโs mobile number in international format (e.g., +234...). | โ Yes |
sender.occupation | String | The senderโs occupation or industry (e.g., HEALTHCARE). | โ Yes |
sender.name | String | The full name of the sender. | โ Yes |
sender.icNumber | String | The IC number of the sender. | โ Yes |
sender.nationality | String | The ISO nationality code of the sender. | โ Yes |
sender.address | String | The address of the sender. | โ Yes |
sender.mobileNumber | String | The phone number of the sender. | โ Yes |
sender.occupation | String | The occupation of the sender. | โ Yes |
Success Response (200 OK)
If the payout is successfully created, the API returns the following response:copy
Response Breakdown
| Field | Type | Description |
|---|---|---|
message | String | A confirmation message indicating the result of the request. |
status | String | The overall status of the request, e.g., success. |
data | Object | A container for all the transaction data. |
data.id | String | The unique identifier for this payout transaction. |
data.remark | String | An optional, additional note about the transaction. |
data.reason | String | The reason for the payout (e.g., Gift). |
data.referenceNumber | String | A unique reference number generated for the payout. |
data.invoice | Object | Details of the uploaded invoice. |
data.invoice.fileName | String | The name of the invoice file. |
data.type | String | The type of transaction, e.g., SEND. |
data.state | String | The current state of the payout (PENDING, COMPLETED, etc.). |
data.quote.id | String | The unique ID of the quote used for the transaction. |
data.quote.paymentChannel | String | The payment channel used (e.g., SWIFT_CUSTOMER, SWIFT_SHARED, SWIFT_BENEFICIARY). |
data.quote.source.currency | String | Source currency code. |
data.quote.source.amount | Number | Total source amount before fees. |
data.quote.target.currency | String | Destination currency code. |
data.quote.target.amount | Number | The converted amount that the recipient receives. |
data.quote.rate | Number | The exchange rate applied to the transaction. |
data.quote.fee.amount | Number | The transaction fee charged. |
data.quote.fee.stampDuty | Number | Applied stamp duty (if any). |
data.quote.summary.total | Number | Total amount (amount + fees) deducted from wallet. |
data.quote.settlement | String | The estimated time for settlement. |
data.quote.quoteCurrency | String | The currency in which the quote is priced. |
data.recipient.name | String | The full name of the recipient. |
data.recipient.nickName | String | Recipientโs nickname. |
data.recipient.gender | String | Gender (M or F). |
data.recipient.type | String | The type of recipient entity, e.g., BUSINESS. |
data.recipient.account.bankName | String | Name of the recipientโs bank. |
data.recipient.account.accountNumber | String | Recipientโs bank account number. |
data.recipient.account.swiftCode | String | SWIFT/BIC code of the bank. |
data.recipient.occupation | String | Occupation of the recipient. |
data.sender.name | String | Full name of the sender. |
data.sender.icNumber | String | Senderโs ID number. |
data.sender.nationality | String | ISO country code of the senderโs nationality. |
data.sender.address.line1 | String | Primary address line of the sender. |
data.sender.mobileNumber | String | International mobile number of the sender. |
data.sender.occupation | String | Occupation of the sender. |
data.created | String | ISO 8601 timestamp of when the transaction was created. |
data.processed | String | ISO 8601 timestamp of when the transaction was processed. |
Payout Transaction States
The payout transaction can have one of the following states:| State | Description |
|---|---|
COMPLETED | The payout was successfully processed. |
PENDING | The payout is still being processed. |
FAILED | The payout failed to process. |
REFUNDED | The payout has been sent back to sender. |
Error Handling
| Status Code | Meaning | Example Response |
|---|---|---|
400 | Insufficient Balance | Insufficient Balance |
401 | Unauthorized | Invalid API key provided. |
403 | Forbidden | IP not whitelisted |
404 | Not Found | The requested endpoint does not exist. |
422 | Unprocessable Entity | Invalid quote ID provided. |
500 | Internal Server Error | An internal error occurred. |
Best Practices
โ EnsurequoteId is valid and linked to an existing quote.โ Confirm that the recipientโs bank account number and bank code are correct.
โ Use
SWIFT_CUSTOMER when the sender bears all transfer charges, SWIFT_SHARED when charges are split, or SWIFT_BENEFICIARY when the beneficiary bears all charges.โ Use a valid API key in the headers.
โ Handle error responses correctly in your integration.

