For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
StatusDashboard
GuidesAPI ReferenceHelp Center
GuidesAPI ReferenceHelp Center
  • Getting Started
    • Introduction to CrissCross
    • Account Setup
    • Authentication
    • Conventions
    • Testing Connectivity
    • Understanding Responses
    • Error Codes
  • Collect
    • Getting Started
    • Webhooks
  • Exchange
    • Getting Started
    • Currencies & Conventions
    • Funding
    • Trading
    • Sandbox
  • Payouts
    • Getting Started
    • Single Payouts
    • Bulk Payouts
    • Tracking Payouts
    • Mobile Number Verification
    • Bank Account Verification
    • Payout Beneficiaries
      • Bank Transfers
      • Mobile Wallet
      • Stablecoin Payouts
LogoLogo
StatusDashboard
On this page
  • Request Shape
  • Example Request
  • Required vs Optional Summary
  • Format and Validation Notes
  • Where Bank Transfers Are Supported
  • Next Steps
PayoutsRecipient Types

Bank Transfers

Send payouts to bank accounts
Was this page helpful?
Previous

Mobile Wallet

Send payouts to mobile money wallets
Next
Built with

Use the Payouts API to send funds to recipient bank accounts. Set paymentMethodId to "banktransfer" and provide a recipient object with type: "bank_account".

Request Shape

Set paymentMethodId to "banktransfer" and provide recipient with the following structure:

FieldRequiredDescription
typeYesMust be "bank_account"
accountNumberYesThe recipient’s bank account number. Format may vary by country (see format notes below).
bankCodeYesBank identifier code (e.g., sort code, routing number).
accountHolderNameYesName on the bank account.
countryYes3-letter ISO country code (e.g., NGA, EGY).
phoneNumberNoPhone number in international format (optional).

Top-level required fields for every payout:

  • Required: merchantId, merchantReference, destinationValue (with minorAmount and currency), paymentMethodId ("banktransfer"), paymentLocation, recipient
  • Optional: sender, attributes

Example Request

1{
2 "merchantId": "your-merchant-id",
3 "merchantReference": "PAYOUT-2024-001",
4 "destinationValue": {
5 "minorAmount": 1000000,
6 "currency": "NGN"
7 },
8 "paymentMethodId": "banktransfer",
9 "paymentLocation": "NGA",
10 "recipient": {
11 "type": "bank_account",
12 "accountNumber": "0123456789",
13 "bankCode": "044",
14 "accountHolderName": "John Doe",
15 "country": "NGA"
16 },
17 "attributes": {}
18}

Note: minorAmount: 1000000 = 10,000.00 NGN (multiply major units by 100 to get minor units).

Required vs Optional Summary

  • Required for recipient (bank_account): type ("bank_account"), accountNumber, bankCode, accountHolderName, country
  • Optional for recipient: phoneNumber
  • Required at request level: merchantId, merchantReference, destinationValue, paymentMethodId, paymentLocation, recipient
  • Optional at request level: sender (required for some destinations), attributes

The API reference is the source of truth for the schema.

Format and Validation Notes

  • Nigeria (NGN): Account numbers are typically 10 digits. bankCode is the bank identifier code (e.g., sort code).
  • South Africa (ZAR): Use a supported bank code string (e.g. absa, standard_bank, fnb). See South Africa for the full list of valid bankCode values.
  • Egypt (EGP): Account number format as required by the local rail; IBAN is supported and required for some banks (e.g. USD transfers). bankCode is required. Valid bank codes include BDC, CIB, POST; see Egypt for details. The sender object is required for Egypt payouts—see Egypt and the API reference.
  • Other currencies: Use the account number and bank code formats accepted by the local clearing system. The bankCode field is required for all bank transfers.

Amount Format: Amounts are specified in minor units (integer). For example, minorAmount: 1000000 = 10,000.00 NGN. See Single Payouts for details.

Where Bank Transfers Are Supported

Not every currency supports bank payouts. See Supported Destinations for a table of currencies, countries, and supported rails (bank vs mobile wallet).

Next Steps

  • Single Payouts — Create one-off bank payouts
  • Bulk Payouts — Send multiple payouts in one request
  • Supported Destinations — Currencies and rails by destination
  • Sandbox Testing — Test scenarios using account number suffixes (Nigeria, Egypt)