📣 New Region Unlocked: You can now send payouts directly to Malawi! 🇲🇼
🔗 Webhooks
💸 Payout Webhook

Webhook Event: payout.completed (NGN to CNY)

Webhook payload when a payout is completed successfully.

    {
      "event": "payout.completed",
      "data": {
        "id": "79d3acd4-8562-90hj-xft6-xxxxxxxxxxxxx",
        "remark": null,
        "type": "SEND",
        "state": "COMPLETED",
        "quote": {
          "id": "79d3acd4-8562-90hj-xft6-xxxxxxxxxxxxx",
          "sourceCurrency": "NGN",
          "sourceAmount": 30000,
          "targetCurrency": "CNY",
          "targetAmount": 136.15,
          "rate": 220.3431138,
          "fees": [
            {
              "paymentChannel": "WECHAT",
              "amount": 5
            }
          ]
        },
        "recipient": {
          "name": "Zui len",
          "firstName": "Zui",
          "lastName": "len",
          "relationship": "SELF",
          "account": {
            "sortCode": "",
            "accountNumber": "8612343562723",
            "branchCode": ""
          },
          "currency": "CNY",
          "country": "CN",
          "stored": false
        },
        "created": "2025-05-13T15:23:15.258847784",
        "processed": "2025-05-13T15:23:16.258847784"
      }
    }

Payload Breakdown

Top-Level Fields

FieldTypeDescription
eventstringType of event (e.g., payout.completed)
idstringUnique identifier for the transaction
referenceNumberstringInternal tracking reference
remarkstring/nullOptional comment
typestringType of payout (SEND)
statestringTransaction state
createdtimestampTime transaction was created
processedtimestampTime transaction was processed

quote Object

FieldTypeDescription
sourceCurrencystringCurrency sent (e.g., NGN)
sourceAmountnumberAmount sent
targetCurrencystringCurrency received (e.g., CNY)
targetAmountnumberAmount received
ratenumberConversion rate
fees[].paymentChannelstringPayment provider used
fees[].amountnumberTransaction fee charged

recipient Object

FieldTypeDescription
namestringFull name of the recipient
firstNamestringFirst name of the recipient
lastNamestringLast name of the recipient
relationshipstringHow the recipient is related to the sender (SELF, FAMILY, etc.)
account.sortCodestringBank sort code (empty if not required by destination country)
account.accountNumberstringRecipient’s account number
account.branchCodestringBranch code (may be empty depending on the country)
currencystringCurrency in which the recipient receives funds (e.g., CNY)
countrystringRecipient’s country code (e.g., CN for China)
storedbooleanWhether the recipient’s details were stored for future use

payout.pending OR payout.failed

This payload is sent when a payout request is created but still in progress (not yet completed or failed).

{
  "event": "payout.pending",
  "data": {
    "id": "8b99b9d8-998a-48db-9102-xxxxxxxxxxxxx",
    "referenceNumber": "RRT6CBX1NMGUJ",
    "remark": null,
    "type": "SEND",
    "state": "PENDING",
    "quote": {
      "id": "68d2bae4-7365-42fc-bbc2-xxxxxxxxxxxxx",
      "sourceCurrency": "NGN",
      "sourceAmount": 3000,
      "targetCurrency": "CNY",
      "targetAmount": 13.62,
      "rate": 220.3431138,
      "fees": [
        {
          "paymentChannel": "WECHAT",
          "amount": 5
        }
      ]
    },
    "recipient": {
      "name": "Zui len",
      "firstName": "Zui",
      "lastName": "len",
      "relationship": "SELF",
      "account": {
        "sortCode": "",
        "accountNumber": "8612343562723",
        "branchCode": ""
      },
      "currency": "CNY",
      "country": "CN",
      "stored": false
    },
    "created": "2025-03-13T15:28:37.258847784",
    "processed": "2025-03-13T15:28:37.258847784"
  }
}

Payload structure and field definitions are the same as in payout.completed.