const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
remark: 'Testing',
reason: 'Gift',
invoice: '4b9b6d30-a2ed-421a-bd69-11536344f071',
quoteId: '91e58c2d-ef14-4777-906b-xxxxxxxxxxxxx',
recipient: {
name: 'Adeolu Adebayo',
paymentChannel: 'BANK_TRANSFER',
currency: 'NGN',
country: 'NG',
account: {bankName: 'GT Bank', accountNumber: '001040XXXXX', sortCode: '058'}
}
})
};
fetch('https://sandboxapi.me-cash.com/v2/payout', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"message": "transaction created successfully",
"status": "success",
"data": {
"id": "274fd8a4-38f1-43c9-bf74-ae7744a0dba5",
"remark": "User-friendly",
"reason": "Gift",
"referenceNumber": "0XCGU0EYFEK0Y",
"invoice": {
"fileName": "image.png"
},
"type": "SEND",
"state": "PENDING",
"quote": {
"id": "4da9d52d-618b-4683-b408-8844d1b520cd",
"paymentChannel": "SWIFT_CUSTOMER",
"source": {
"currency": "USD",
"country": "US",
"amount": 10
},
"target": {
"currency": "USD",
"country": "US",
"amount": 10
},
"rate": 1,
"fee": {
"amount": 100,
"stampDuty": 0
},
"summary": {
"total": 110
},
"settlement": "1hr",
"quoteCurrency": "USD"
},
"recipient": {
"name": "Crystal Strosin",
"nickName": "magenta",
"gender": "M",
"type": "BUSINESS",
"account": {
"bankName": "DBS Bank Limited",
"sortCode": "02090",
"accountNumber": "885406477269",
"bankCity": "Atlanta",
"swiftCode": "GTBINGLA"
},
"occupation": "business enterpreneur"
},
"sender": {
"name": "Test Limited",
"icNumber": "96671733919",
"nationality": "NG",
"address": {
"line1": "12 main st"
},
"mobileNumber": "+234872272808",
"occupation": "HEALTHCARE"
},
"created": "2026-04-23T18:06:41.022734019Z",
"processed": "2026-04-23T18:06:41.022734019Z"
}
}Payout
Create Payout
Creates a payout transaction by transferring funds to a specified beneficiary. The required fields in the recipient object depend on the destination currency.
POST
/
v2
/
payout
const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
remark: 'Testing',
reason: 'Gift',
invoice: '4b9b6d30-a2ed-421a-bd69-11536344f071',
quoteId: '91e58c2d-ef14-4777-906b-xxxxxxxxxxxxx',
recipient: {
name: 'Adeolu Adebayo',
paymentChannel: 'BANK_TRANSFER',
currency: 'NGN',
country: 'NG',
account: {bankName: 'GT Bank', accountNumber: '001040XXXXX', sortCode: '058'}
}
})
};
fetch('https://sandboxapi.me-cash.com/v2/payout', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"message": "transaction created successfully",
"status": "success",
"data": {
"id": "274fd8a4-38f1-43c9-bf74-ae7744a0dba5",
"remark": "User-friendly",
"reason": "Gift",
"referenceNumber": "0XCGU0EYFEK0Y",
"invoice": {
"fileName": "image.png"
},
"type": "SEND",
"state": "PENDING",
"quote": {
"id": "4da9d52d-618b-4683-b408-8844d1b520cd",
"paymentChannel": "SWIFT_CUSTOMER",
"source": {
"currency": "USD",
"country": "US",
"amount": 10
},
"target": {
"currency": "USD",
"country": "US",
"amount": 10
},
"rate": 1,
"fee": {
"amount": 100,
"stampDuty": 0
},
"summary": {
"total": 110
},
"settlement": "1hr",
"quoteCurrency": "USD"
},
"recipient": {
"name": "Crystal Strosin",
"nickName": "magenta",
"gender": "M",
"type": "BUSINESS",
"account": {
"bankName": "DBS Bank Limited",
"sortCode": "02090",
"accountNumber": "885406477269",
"bankCity": "Atlanta",
"swiftCode": "GTBINGLA"
},
"occupation": "business enterpreneur"
},
"sender": {
"name": "Test Limited",
"icNumber": "96671733919",
"nationality": "NG",
"address": {
"line1": "12 main st"
},
"mobileNumber": "+234872272808",
"occupation": "HEALTHCARE"
},
"created": "2026-04-23T18:06:41.022734019Z",
"processed": "2026-04-23T18:06:41.022734019Z"
}
}Error responses
| Status | Message | What it means | How to fix |
|---|---|---|---|
| 400 | Insufficient wallet balance for transaction | Wallet cannot cover the payout total. | Deposit more funds or reduce the amount before retrying. |
| 400 | Quotes only last for 10 minutes | The referenced quote expired. | Fetch a new quote and submit the payout right away. |
| 400 | Invalid country or currency ISO code | Payload contains an unsupported corridor combination. | Use valid ISO codes for corridors enabled on your workspace. |
| 400 | Account name mismatch, use account enquiry endpoint | Account name conflicts with bank enquiry data. | Run the account enquiry endpoint and mirror its response. |
| 400 | Invalid Bank Sortcode | Provided sort code is missing, malformed, or unsupported. | Retrieve the correct sort code from the bank list endpoint. |
| 400 | {field_name} cannot be empty | Required recipient attribute missing from the payload. | Populate every mandatory field before sending the request. |
| 401 | API key missing or incorrect | Authentication header missing/invalid. | Include the proper x-api-key for the environment. |
| 403 | IP not whitelisted | Call originated from an unapproved IP address. | Add your server IP to the dashboard whitelist. |
| 404 | The requested endpoint does not exist | Incorrect path or API version. | Ensure you are calling POST /v2/payout on the right base URL. |
| 422 | Invalid quote ID provided | Quote ID missing, expired, or already consumed. | Create a new quote and reference its id. |
| 500 | Service temporarily unavailable | Backend disruption prevented processing. | Retry later with exponential backoff; contact support if needed. |
Authorizations
Body
application/json
- NGN Payout
- USD SWIFT Payout
- EUR Payout
- GBP Payout
- CAD (Bank Transfer) Payout
- CAD (Interac) Payout
- SGD Payout
- KRW Payout
- THB Payout
- MYR Payout
- VND Payout
- CNY Payout
- MWK Payout
Payout to a Nigerian bank account (NGN).
The unique identifier for the quote (valid for 10 minutes).
Recipient details for a payout to Nigeria (NGN).
Show child attributes
Show child attributes
The purpose of the transfer.
Available options:
FAMILY_SUPPORT, GIFT, SALARY_PAYMENT, EDUCATIONAL_FEES, BUSINESS_INVOICE, OTHER Optional invoice file ID (returned from the file upload endpoint).
An optional note about the transaction. Use fail in sandbox to trigger a failed payout webhook.
Was this page helpful?
⌘I

