Zambia

Send funds to Zambian bank accounts and Mobile Money Wallets.

Prerequisites

  1. Complete your KYC and ensure that your account is approved for transactions.
  2. Whitelist your server IP addresses to prevent security errors.
  3. Make sure your balance has enough funds. If needed, use an alternate balance; see the list of supported currencies for ZMW transfers.

Payout Flow

Here are the steps to send money to a Zambia Mobile Money number:

  1. Collect the beneficiary's mobile money phone number and provider. For this payout, the provider should be passed as the account_bank. options for the account_bank include MTN, ZAMTEL, and AIRTEL.
{
    "account_bank": "MTN",
    "account_number": "2609679023XXX",
    "amount": 18,
    "currency": "ZMW",
    "debit_currency": "ZMW",
    "narration": "RTN ",
    "reference": "TRF-749420453125",
    "skip_beneficiary_creation": 1,
    "beneficiary_name": "John Doe"
}

  1. Use the transfer endpoint to initiate your transfer with the required data. You can include the debit_currency parameter in your request to debit from a different currency balance.
    You'll get a response similar to this:
{
    "status": "success",
    "message": "Transfer Queued Successfully",
    "data": {
        "id": 1864609,
        "account_number": "2609679023XXX",
        "bank_code": "MTN",
        "full_name": "John Doe",
        "created_at": "2025-06-16T16:32:33.000Z",
        "currency": "ZMW",
        "debit_currency": "ZMW",
        "amount": 18,
        "fee": 0.54,
        "status": "NEW",
        "reference": "TRF-749420453126",
        "meta": null,
        "narration": "RTN ",
        "complete_message": "",
        "requires_approval": 0,
        "is_approved": 1,
        "bank_name": "MTN Mobile"
    }
}

Here are the steps to send money to Zambian bank accounts.

  1. Collect the beneficiary's details such as the beneficiary's name, bank, and account number. See the expected data requirements below:
{
    "account_bank": "26692712",
    "account_number": "0303499993294",
    "destination_branch_code": "18120627DL",
    "beneficiary_name": "Sam Smith",
    "currency": "ZMW",
    "reference": "TRF-558939365157",
    "amount": 100,
    "debit_currency": "ZMW",
    "narration": "Test"
}

  1. Fetch the beneficiary's bank code using the bank and bank branches endpoints to get the account_bank.
  2. Use the transfer endpoint to initiate your transfer with the required data. You can include the debit_currency parameter in your request to debit from a different currency balance.

You'll get a response similar to this:

{
    "status": "success",
    "message": "Transfer Queued Successfully",
    "data": {
        "id": 1864625,
        "account_number": "0303499993294",
        "bank_code": "26692712",
        "full_name": "Sam Smith",
        "created_at": "2025-06-16T16:47:33.000Z",
        "currency": "ZMW",
        "debit_currency": "ZMW",
        "amount": 100,
        "fee": 10,
        "status": "NEW",
        "reference": "TRF-558939365157",
        "meta": null,
        "narration": "Test",
        "complete_message": "",
        "requires_approval": 0,
        "is_approved": 1,
        "bank_name": "FA-BANK"
    }
}
  1. Verify your transfer status; there are many ways to do this:
    1. You can get the transfer status using the transfer status endpoint.
    2. If webhooks are enabled on your dashboard, check them to confirm the transfer status.
    3. For transfers with callback_id, we'll send the transfer details with their status using the specified URL.