🚀 New Feature: Bulk Payouts! Send funds to multiple beneficiaries in a single request. Check the guide
const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
items: [
{
referenceNumber: '12345',
targetAmount: '1500',
reason: 'Salary payment',
recipient: {
name: 'NNOROM UZOMA CHUKWUDI',
account: {bankName: 'FCMB', sortCode: '214', accountNumber: '2483520014'},
paymentChannel: 'BANK_TRANSFER',
currency: 'NGN',
country: 'NG'
}
},
{
referenceNumber: '67890',
targetAmount: '1100',
reason: 'Salary payment',
recipient: {
name: 'NNOROM UZOMA CHUKWUDI',
account: {bankName: 'FCMB', sortCode: '214', accountNumber: '2483520014'},
paymentChannel: 'BANK_TRANSFER',
currency: 'NGN',
country: 'NG'
}
}
],
source: {currency: 'NGN', country: 'NG'},
target: {currency: 'NGN', country: 'NG'},
paymentChannel: 'BANK_TRANSFER',
remark: 'June 2026 Salary'
})
};
fetch('https://sandboxapi.me-cash.com/v1/bulk/payout', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"message": "bulk order processed",
"status": "success",
"data": {
"bulkReference": "00a5478d-272a-4be0-8c77-d85be1ec5ea8",
"status": "SUCCESS",
"totalRequested": 2,
"successfulCount": 2,
"failedCount": 0,
"totalAmount": 350.5,
"totalFees": 400,
"orders": [
{
"id": "77250b66-9bb7-4d5a-a634-0b16659959fe",
"remark": "payment 1",
"reason": "Gift",
"referenceNumber": "IE8YGOSWDG9HN",
"type": "SEND",
"state": "PENDING",
"quote": {
"id": "4be1d423-e2eb-437d-8223-16cfcb308195",
"paymentChannel": "BANK_TRANSFER",
"source": {
"currency": "NGN",
"country": "NG",
"amount": 250.5
},
"target": {
"currency": "NGN",
"country": "NG",
"amount": 250.5
},
"rate": 1,
"fee": {
"amount": 200,
"stampDuty": 0
},
"summary": {
"total": 450.5
},
"settlement": "30 Mins",
"quoteCurrency": "NGN"
},
"recipient": {
"name": "NNOROM UZOMA CHUKWUDI",
"account": {
"bankName": "FCMB",
"sortCode": "214",
"accountNumber": "2483520014"
},
"paymentChannel": "BANK_TRANSFER",
"currency": "NGN",
"country": "NG"
},
"created": "2026-03-25T10:50:06.115252622Z",
"processed": "2026-03-25T10:50:06.115252622Z",
"bulkReference": "00a5478d-272a-4be0-8c77-d85be1ec5ea8"
},
{
"id": "17f755c3-f7fc-4ab5-b076-c3f3eb912155",
"remark": "payment 2",
"reason": "Gift",
"referenceNumber": "AXZYRRN5PBDIO",
"type": "SEND",
"state": "PENDING",
"quote": {
"id": "cf132126-af1c-4fd7-b924-427826a34b64",
"paymentChannel": "BANK_TRANSFER",
"source": {
"currency": "NGN",
"country": "NG",
"amount": 100
},
"target": {
"currency": "NGN",
"country": "NG",
"amount": 100
},
"rate": 1,
"fee": {
"amount": 200,
"stampDuty": 0
},
"summary": {
"total": 300
},
"settlement": "30 Mins",
"quoteCurrency": "NGN"
},
"recipient": {
"name": "NNOROM UZOMA CHUKWUDI",
"account": {
"bankName": "FCMB",
"sortCode": "214",
"accountNumber": "2483520014"
},
"paymentChannel": "BANK_TRANSFER",
"currency": "NGN",
"country": "NG"
},
"created": "2026-03-25T10:50:07.309355914Z",
"processed": "2026-03-25T10:50:07.309355914Z",
"bulkReference": "00a5478d-272a-4be0-8c77-d85be1ec5ea8"
}
],
"createdAt": "2026-03-25T10:50:07.810009313Z"
}
}Submits multiple payout orders in a single request using the Bulk Payout API. Orders are validated and processed independently — a failure in one order does not block the others.
const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
items: [
{
referenceNumber: '12345',
targetAmount: '1500',
reason: 'Salary payment',
recipient: {
name: 'NNOROM UZOMA CHUKWUDI',
account: {bankName: 'FCMB', sortCode: '214', accountNumber: '2483520014'},
paymentChannel: 'BANK_TRANSFER',
currency: 'NGN',
country: 'NG'
}
},
{
referenceNumber: '67890',
targetAmount: '1100',
reason: 'Salary payment',
recipient: {
name: 'NNOROM UZOMA CHUKWUDI',
account: {bankName: 'FCMB', sortCode: '214', accountNumber: '2483520014'},
paymentChannel: 'BANK_TRANSFER',
currency: 'NGN',
country: 'NG'
}
}
],
source: {currency: 'NGN', country: 'NG'},
target: {currency: 'NGN', country: 'NG'},
paymentChannel: 'BANK_TRANSFER',
remark: 'June 2026 Salary'
})
};
fetch('https://sandboxapi.me-cash.com/v1/bulk/payout', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"message": "bulk order processed",
"status": "success",
"data": {
"bulkReference": "00a5478d-272a-4be0-8c77-d85be1ec5ea8",
"status": "SUCCESS",
"totalRequested": 2,
"successfulCount": 2,
"failedCount": 0,
"totalAmount": 350.5,
"totalFees": 400,
"orders": [
{
"id": "77250b66-9bb7-4d5a-a634-0b16659959fe",
"remark": "payment 1",
"reason": "Gift",
"referenceNumber": "IE8YGOSWDG9HN",
"type": "SEND",
"state": "PENDING",
"quote": {
"id": "4be1d423-e2eb-437d-8223-16cfcb308195",
"paymentChannel": "BANK_TRANSFER",
"source": {
"currency": "NGN",
"country": "NG",
"amount": 250.5
},
"target": {
"currency": "NGN",
"country": "NG",
"amount": 250.5
},
"rate": 1,
"fee": {
"amount": 200,
"stampDuty": 0
},
"summary": {
"total": 450.5
},
"settlement": "30 Mins",
"quoteCurrency": "NGN"
},
"recipient": {
"name": "NNOROM UZOMA CHUKWUDI",
"account": {
"bankName": "FCMB",
"sortCode": "214",
"accountNumber": "2483520014"
},
"paymentChannel": "BANK_TRANSFER",
"currency": "NGN",
"country": "NG"
},
"created": "2026-03-25T10:50:06.115252622Z",
"processed": "2026-03-25T10:50:06.115252622Z",
"bulkReference": "00a5478d-272a-4be0-8c77-d85be1ec5ea8"
},
{
"id": "17f755c3-f7fc-4ab5-b076-c3f3eb912155",
"remark": "payment 2",
"reason": "Gift",
"referenceNumber": "AXZYRRN5PBDIO",
"type": "SEND",
"state": "PENDING",
"quote": {
"id": "cf132126-af1c-4fd7-b924-427826a34b64",
"paymentChannel": "BANK_TRANSFER",
"source": {
"currency": "NGN",
"country": "NG",
"amount": 100
},
"target": {
"currency": "NGN",
"country": "NG",
"amount": 100
},
"rate": 1,
"fee": {
"amount": 200,
"stampDuty": 0
},
"summary": {
"total": 300
},
"settlement": "30 Mins",
"quoteCurrency": "NGN"
},
"recipient": {
"name": "NNOROM UZOMA CHUKWUDI",
"account": {
"bankName": "FCMB",
"sortCode": "214",
"accountNumber": "2483520014"
},
"paymentChannel": "BANK_TRANSFER",
"currency": "NGN",
"country": "NG"
},
"created": "2026-03-25T10:50:07.309355914Z",
"processed": "2026-03-25T10:50:07.309355914Z",
"bulkReference": "00a5478d-272a-4be0-8c77-d85be1ec5ea8"
}
],
"createdAt": "2026-03-25T10:50:07.810009313Z"
}
}Documentation Index
Fetch the complete documentation index at: https://developer.me-cash.com/llms.txt
Use this file to discover all available pages before exploring further.
| Status | Message | What it means | How to fix |
|---|---|---|---|
| 400 | Insufficient wallet balance for transaction | Wallet balance cannot cover the total payout amount plus fees. | Top up the wallet or reduce the number of orders before retrying. |
| 400 | Quotes only last for 10 minutes | One or more referenced quotes expired before submission. | Generate fresh bulk quotes and submit the payout immediately. |
| 400 | Invalid country or currency ISO code | Unsupported country/currency combination in a recipient. | Use corridor-supported ISO codes for both quote and recipient data. |
| 400 | Account name mismatch, use account enquiry endpoint | Account name in payload differs from bank enquiry results. | Re-run account enquiry and match the returned account name. |
| 400 | Invalid Bank Sortcode | Sort code missing, malformed, or unsupported. | Fetch the correct sort code from the bank list and verify formatting. |
| 400 | {field_name} cannot be empty | Required recipient field omitted from the payload. | Fill in every mandatory field (name, account number, etc.) before submitting. |
| 400 | Duplicate quote ID in bulk order | The same quote ID was provided multiple times in the bulk order request. | Ensure each quote ID is unique within the same bulk order. |
| 401 | API key missing or incorrect | x-api-key header absent, invalid, or expired. | Supply the correct API key for the environment you are targeting. |
| 403 | IP not whitelisted | Request originated from an unapproved IP. | Add your server IP to the dashboard allowlist. |
| 422 | Invalid quote ID provided | Quote ID missing, invalid, expired, or already consumed. | Create new bulk quotes and reference them in the payout call. |
| 500 | Service temporarily unavailable | Temporary backend/service disruption. | Retry with exponential backoff; contact support if it persists. |
List of payout orders to process in the bulk payload.
Show child attributes
The source currency and country for the batch.
Show child attributes
The target currency and country for the batch.
Show child attributes
The overall payment channel intended for the batch.
BANK_TRANSFER, MOBILE_MONEY "BANK_TRANSFER"
A general remark for the bulk payout.
"June 2026 Salary"
Was this page helpful?