Create a GBP Payout Example
The Payout API allows users to process payouts in Pounds (GBP) to recipients via Bank Transfer.
Endpoint
Post: {{baseURL}}/v1/payout
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 cURL Request
curl --location --request POST 'https://api.me-cash.com/v1/payout' \
--header 'x-api-key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"recipient":{
"name":"Chidinma Okafor",
"type":"BUSINESS", //or PERSON
"account":{
"bankName":"Name Bank",
"sortCode":"222222",
"accountNumber":"11111111"
},
"paymentChannel":"BANK_TRANSFER",
"currency":"GBP",
"country":"GB"
},
"quoteId":"19e31fc3-71a4-4dde-875f-xxxxxxxxxxxxx",
"reason":"Family Support"
}
Request Body
The following fields are required when making an NGN payout request:
Request Body Breakdown
Field | Type | Description | Required |
---|---|---|---|
recipient | Object | Details of the payout recipient | ✅ Yes |
├─ recipient.id | String | Unique identifier for the recipient | Optional |
├─ recipient.name | String | Full name of the recipient | ✅ Yes |
├─ recipient.firstName | String | First name of the recipient | ✅ Yes |
├─ recipient.lastName | String | Last name of the recipient | ✅ Yes |
├─ recipient.type | String | Recipient type (PERSON or BUSINESS ) | ✅ Yes |
├─ recipient.account | Object | Recipient’s bank account details | ✅ Yes |
│ ├─ account.bankName | String | Recipient’s bank name | ✅ Yes |
│ ├─ account.accountNumber | String | Bank account number of the recipient | ✅ Yes |
│ ├─ account.sortCode | String | Sort code of the recipient's bank | ✅ Yes |
├─ recipient.paymentChannel | String | Payment method (BANK_TRANSFER ) | ✅ Yes |
├─ recipient.currency | String | Currency code (e.g., GBP ) | ✅ Yes |
├─ recipient.country | String | Country code (e.g., GB ) | ✅ Yes |
└─ recipient.stored | Boolean | Whether recipient info is stored for future use | ✅ Yes |
quoteId | String | Unique Quote ID for the payout | ✅ Yes |
reason | String | Reason for the payout (e.g., Gift , Invoice Payment ) | ✅ Yes |
Success Response (200 OK)
If the payout is successfully created, the API returns the following response:
{
"message": "Transaction created successfully",
"status": "success",
"data": {
"id": "b8c7d6e5-f4a3-210f-fedc-xxxxxxxxxxxxx",
"remark": "Family Support",
"reason": "Family Support",
"referenceNumber": "GBPTO21XXXXX",
"type": "SEND",
"state": "COMPLETED",
"quote": {
"id": "7a2f1c8e-3b12-4a9a-8cde-xxxxxxxxxxxxx",
"source": {
"currency": "GBP",
"country": "GB",
"amount": 100
},
"target": {
"currency": "NGN",
"country": "NG",
"amount": 212800
},
"rate": 2128,
"fee": {
"amount": 1500
}
},
"recipient": {
"name": "Chidinma Okafor",
"firstName": "Chidinma",
"lastName": "Okafor",
"relationship": "SELF",
"type": "BANK",
"account": {
"accountNumber": "1234567890",
"sortCode": "089002",
"bankName": "Zenith Bank"
},
"paymentChannel": "BANK_TRANSFER",
"currency": "NGN",
"country": "NG"
},
"created": "2025-06-11T10:15:30.000000",
"processed": "2025-06-11T10:15:30.000000'
}
}
Response Breakdown
Field | Type | Description | Example |
---|---|---|---|
message | String | Status message of the payout creation | "Transaction created successfully" |
status | String | Status of the payout | "success" |
data | Object | Details of the payout transaction | |
├─ id | String | Unique ID of the transaction | "b8c7d6e5-f4a3-210f-fedc-ba9876543210" |
├─ remark | String | Remark or note for the payout | "Family Support" |
├─ reason | String | Reason for the payout | "Family Support" |
├─ referenceNumber | String | Unique reference number for the payout | "GBPTO210KXYZ" |
├─ type | String | Type of transaction | "SEND" |
├─ state | String | State of the payout (PENDING , COMPLETED , etc.) | "PENDING" |
├─ quote | Object | Details of the quote | |
│ ├─ id | String | Quote ID | "7a2f1c8e-3b12-4a9a-8cde-abcdef123456" |
│ ├─ source | Object | Source currency details | |
│ │ ├─ currency | String | Source currency code | "GBP" |
│ │ ├─ country | String | Source country code | "GB" |
│ │ ├─ amount | Number | Amount sent in source currency | 100 |
│ ├─ target | Object | Target currency details | |
│ │ ├─ currency | String | Target currency code | "NGN" |
│ │ ├─ country | String | Target country code | "NG" |
│ │ ├─ amount | Number | Amount received in target currency | 212800 |
│ ├─ rate | Number | Exchange rate used | 2128 |
│ ├─ fee | Object | Fee details | |
│ │ ├─ amount | Number | Fee amount in source currency | 1500 |
├─ recipient | Object | Recipient details | |
│ ├─ name | String | Recipient’s full name | "Chidinma Okafor" |
│ ├─ firstName | String | Recipient’s first name | "Chidinma" |
│ ├─ lastName | String | Recipient’s last name | "Okafor" |
│ ├─ relationship | String | Relationship with the recipient | "SELF" |
│ ├─ type | String | Recipient type (BANK ) | "BANK" |
│ ├─ account | Object | Bank account details | |
│ │ ├─ accountNumber | String | Bank account number | "1234567890" |
│ │ ├─ sortCode | String | Sort code of the recipient’s bank | "089002" |
│ │ ├─ bankName | String | Bank name of the recipient | "Zenith Bank" |
│ ├─ paymentChannel | String | Payment method (BANK_TRANSFER ) | "BANK_TRANSFER" |
│ ├─ currency | String | Currency code of payout | "NGN" |
│ ├─ country | String | Country code of the recipient | "NG" |
├─ created | String | Timestamp when the transaction was created | "2025-06-11T10:15:30.000000" |
├─ processed | String | null | Timestamp when the payout was processed or null | "2025-06-11T10:15:30.000000" |
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 | Bad Request | Invalid parameters |
401 | Unauthorized | Invalid API key |
422 | Unprocessable Entity | Invalid quote ID |
500 | Internal Server Error | An internal error occurred |
Best Practices
✅ Ensure quoteId
is valid and linked to an existing quote.
✅ Confirm that the recipient’s bank account number and bank code are correct.
✅ Use a valid API key in the headers.
✅ Handle error responses correctly in your integration.