Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.busha.io/llms.txt

Use this file to discover all available pages before exploring further.

This example shows you how to process payouts from crypto to fiat bank accounts or mobile money wallets.

Use Cases

  • Vendor payments from marketplace
  • Salary disbursements in local currency
  • Cash out crypto to bank account
  • Mobile money withdrawals

Crypto to Fiat Payout

Bank Transfer Payout

1

Create a Bank Recipient

First, create a recipient for the Nigerian bank account:
        curl -X POST https://api.sandbox.busha.so/v1/recipients \
          -H "Authorization: Bearer YOUR_SECRET_TOKEN" \
          -H "X-BU-VERSION: 2025-07-11" \
          -H "Content-Type: application/json" \
          -d '{
            "currency": "NGN",
            "country_code": "NG",
            "type": "ngn_bank",
            "bank_name": "UNITED BANK FOR AFRICA",
            "bank_code": "033",
            "account_number": "2109328188",
            "account_name": "SOSANYA DICKSON OLUMIDE"
          }'
Save the recipient_id from the response.
2

Create a Payout Quote

Create a quote specifying how much crypto to convert and send:
        curl -X POST https://api.sandbox.busha.so/v1/quotes \
          -H "Authorization: Bearer YOUR_SECRET_TOKEN" \
          -H "Content-Type: application/json" \
          -d '{
            "source_currency": "USDT",
            "target_currency": "NGN",
            "source_amount": "100",
            "pay_out": {
              "type": "bank_transfer",
              "recipient_id": "677bbf9c7cf061f23784555a"
            }
          }'
{
  "status": "success",
  "message": "Created quote successfully",
  "data": {
    "id": "QUO_mprvCPMCfm3K2qSnzbWj7",
    "source_currency": "USDT",
    "target_currency": "NGN",
    "source_amount": "100",
    "target_amount": "168876",
    "rate": {
      "product": "USDTNGN",
      "rate": "1690.76",
      "side": "sell",
      "type": "FIXED"
    },
    "fees": [
      {
        "amount": {
          "amount": "200",
          "currency": "NGN"
        },
        "name": "Fees",
        "type": "FIXED"
      }
    ],
    "pay_out": {
      "recipient_details": {
        "account_name": "SOSANYA DICKSON OLUMIDE",
        "account_number": "2109328188",
        "bank_name": "UNITED BANK FOR AFRICA",
        "country": "NG"
      },
      "recipient_id": "677bbf9c7cf061f23784555a",
      "type": "bank_transfer"
    },
    "expires_at": "2025-02-20T10:58:19.540052923Z"
  }
}
3

Create the Payout Transfer

Finalize the payout using the quote ID:
        curl -X POST https://api.sandbox.busha.so/v1/transfers \
          -H "Authorization: Bearer YOUR_SECRET_TOKEN" \
          -H "Content-Type: application/json" \
          -d '{
            "quote_id": "QUO_mprvCPMCfm3K2qSnzbWj7"
          }'
{
  "status": "success",
  "message": "Created transfer successfully",
  "data": {
    "id": "TRF_tYZ1y5bmXv4N5IhXSMbWJ",
    "source_currency": "USDT",
    "target_currency": "NGN",
    "source_amount": "100",
    "target_amount": "168876",
    "pay_out": {
      "recipient_details": {
        "account_name": "SOSANYA DICKSON OLUMIDE",
        "account_number": "2109328188",
        "bank_name": "UNITED BANK FOR AFRICA",
        "country": "NG"
      },
      "type": "bank_transfer"
    },
    "status": "pending"
  }
}
4

Monitor Payout Status

Check the transfer status to confirm delivery:
        curl -X GET https://api.sandbox.busha.so/v1/transfers/TRF_tYZ1y5bmXv4N5IhXSMbWJ \
          -H "Authorization: Bearer YOUR_SECRET_TOKEN"
Possible Statuses:
  • pending - Payout initiated
  • processing - Funds being processed
  • funds_delivered - Successfully delivered to bank account
  • cancelled - Payout cancelled

Payout for a Customer

To process payouts on behalf of a customer, include the customer’s profile ID:
curl -X POST https://api.sandbox.busha.so/v1/quotes \
  -H "X-BU-PROFILE-ID: CUSTOMER_PROFILE_ID" \
  -H "Authorization: Bearer YOUR_SECRET_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "source_currency": "USDT",
    "target_currency": "NGN",
    "source_amount": "100",
    "pay_out": {
      "type": "bank_transfer",
      "recipient_id": "677bbf9c7cf061f23784555a"
    }
  }'
The payout will be processed from the customer’s balance.

Payout Methods by Country

CountryCurrencyMethodRecipient Type
NigeriaNGNBank transferngn_bank
KenyaKESM-Pesa mobile moneympesa_mobile_money

Important Notes

  • Recipients must be created before payouts
  • Quotes expire after 30 minutes
  • Fees are deducted from the payout amount
  • Use webhooks for real-time status updates
  • Bank transfers typically complete within minutes
  • Mobile money transfers are usually instant

Learn More