Payouts
Create Payout Examples
NGN to GBP

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:

HeaderValueRequired
Content-Typeapplication/json✅ Yes
x-api-keyYOUR_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

FieldTypeDescriptionRequired
recipientObjectDetails of the payout recipient✅ Yes
├─ recipient.idStringUnique identifier for the recipientOptional
├─ recipient.nameStringFull name of the recipient✅ Yes
├─ recipient.firstNameStringFirst name of the recipient✅ Yes
├─ recipient.lastNameStringLast name of the recipient✅ Yes
├─ recipient.typeStringRecipient type (PERSON or BUSINESS)✅ Yes
├─ recipient.accountObjectRecipient’s bank account details✅ Yes
│ ├─ account.bankNameStringRecipient’s bank name✅ Yes
│ ├─ account.accountNumberStringBank account number of the recipient✅ Yes
│ ├─ account.sortCodeStringSort code of the recipient's bank✅ Yes
├─ recipient.paymentChannelStringPayment method (BANK_TRANSFER)✅ Yes
├─ recipient.currencyStringCurrency code (e.g., GBP)✅ Yes
├─ recipient.countryStringCountry code (e.g., GB)✅ Yes
└─ recipient.storedBooleanWhether recipient info is stored for future use✅ Yes
quoteIdStringUnique Quote ID for the payout✅ Yes
reasonStringReason 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

FieldTypeDescriptionExample
messageStringStatus message of the payout creation"Transaction created successfully"
statusStringStatus of the payout"success"
dataObjectDetails of the payout transaction
├─ idStringUnique ID of the transaction"b8c7d6e5-f4a3-210f-fedc-ba9876543210"
├─ remarkStringRemark or note for the payout"Family Support"
├─ reasonStringReason for the payout"Family Support"
├─ referenceNumberStringUnique reference number for the payout"GBPTO210KXYZ"
├─ typeStringType of transaction"SEND"
├─ stateStringState of the payout (PENDING, COMPLETED, etc.)"PENDING"
├─ quoteObjectDetails of the quote
│ ├─ idStringQuote ID"7a2f1c8e-3b12-4a9a-8cde-abcdef123456"
│ ├─ sourceObjectSource currency details
│ │ ├─ currencyStringSource currency code"GBP"
│ │ ├─ countryStringSource country code"GB"
│ │ ├─ amountNumberAmount sent in source currency100
│ ├─ targetObjectTarget currency details
│ │ ├─ currencyStringTarget currency code"NGN"
│ │ ├─ countryStringTarget country code"NG"
│ │ ├─ amountNumberAmount received in target currency212800
│ ├─ rateNumberExchange rate used2128
│ ├─ feeObjectFee details
│ │ ├─ amountNumberFee amount in source currency1500
├─ recipientObjectRecipient details
│ ├─ nameStringRecipient’s full name"Chidinma Okafor"
│ ├─ firstNameStringRecipient’s first name"Chidinma"
│ ├─ lastNameStringRecipient’s last name"Okafor"
│ ├─ relationshipStringRelationship with the recipient"SELF"
│ ├─ typeStringRecipient type (BANK)"BANK"
│ ├─ accountObjectBank account details
│ │ ├─ accountNumberStringBank account number"1234567890"
│ │ ├─ sortCodeStringSort code of the recipient’s bank"089002"
│ │ ├─ bankNameStringBank name of the recipient"Zenith Bank"
│ ├─ paymentChannelStringPayment method (BANK_TRANSFER)"BANK_TRANSFER"
│ ├─ currencyStringCurrency code of payout"NGN"
│ ├─ countryStringCountry code of the recipient"NG"
├─ createdStringTimestamp when the transaction was created"2025-06-11T10:15:30.000000"
├─ processedString | nullTimestamp 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:

StateDescription
COMPLETEDThe payout was successfully processed.
PENDINGThe payout is still being processed.
FAILEDThe payout failed to process.
REFUNDEDThe payout has been sent back to sender.

Error Handling

Status CodeMeaningExample Response
400Bad RequestInvalid parameters
401UnauthorizedInvalid API key
422Unprocessable EntityInvalid quote ID
500Internal Server ErrorAn 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.