Create and Manage Recipients

Recipients are pre-defined payment accounts (such as bank accounts, mobile money wallets, or crypto addresses) that act as destinations for your payouts via the Busha API. By creating and managing recipients, you streamline your off-ramp processes, ensuring funds are sent to verified and correct destinations quickly and efficiently.

What You’ll Achieve:

  1. Understand what recipients are and why they are necessary for payouts.

  2. Learn how to dynamically fetch the required fields for creating a recipient based on country and currency.

Prerequisites

Before you begin, ensure you have:


Notice of Depreciation

The request body for creating a recipient via the Busha API (referenced below) has been depreciated and will be discontinued on the 31st of July, 2025.

{
  "currency_id": "NGN",
  "country_id": "NG",
  "type": "ngn_bank_transfer",
  "legal_entity_type": "business",
  "fields": [
    {
      "name": "bank_name",
      "value": "Access Bank Nigeria"
    },
    {
      "name": "account_number",
      "value": "1234567890"
    },
    {
      "name": "bank_code",
      "value": "000014"
    },
  ]
}

For temporary backward compatibility, please make use of the header below to support the old request body:

{
    "X-BU-Version": "2025-06-01"
}

Recipient Types

Busha operates a multi-currency account system and accomodate recipients for each currency type. Currently, Busha supports the creation of recipients for:

  • Nigerian bank accounts

  • US bank accounts

  • UK bank accounts

  • M-Pesa mobile money (Kenya)

  • MTN Mobile Money

  • Cryptocurrency addresses

The recipient type is an important field in the request body object. Each recipient type have their unique fields outlined in the table below.

Type

Category

Description

Required Fields

ngn_bank

bank

Nigerian bank account

bank_name, bank_code, account_number, account_name

usd_bank

bank

US bank account

entity_type, transfer_type, account_name, bank_name + routing fields

gbp_bank

bank

UK bank account

entity_type, account_name, bank_name, sort_code, account_number

mpesa_mobile_money

mobile_money

M-Pesa (Kenya)

phone_number, account_name

mtn_mobile_money

mobile_money

MTN Mobile Money

phone_number, account_name

crypto

crypto

Cryptocurrency wallet

network, crypto_address, account_name, optional memo

The recipient’s request body varies from type to type. That is, the request body for a Nigerian bank account ngn_bank, will be different from that of a US bank account usd_bank.

In the following sections, we will create a recipient for each type and outline the required fields for each.

Nigerian Bank Account

Nigerian bank account recipients require a bank_code field. You can retrieve your bank’s code by sending a GET request to the /banks endpoint":

$ curl -i -X GET https://api.sandbox.busha.so/v1/banks

The request body required to create a Nigerian bank account recipient is:

{
  "currency": "NGN", // Recipient's bank currency
  "country_code": "NG", // Recipient's country code
  "type": "ngn_bank", // Recipient type
  "bank_name": "OPAY", // Recipient's bank name
  "bank_code": "100004", // Recipient's bank code
  "account_number": "9000000000", // Recipient's account number
  "account_name": "BUSHA DIGITAL TECHNOLOGY" // Recipient's account name
}

To create a recipient:

  1. Open your terminal or command prompt.

  2. Construct a POST request to the /v1/recipients endpoint.

  3. In the request body, update the following fields with your recipient’s details:

    1. bank_name

    2. bank_code

    3. account_number

    4. account_name

  4. Replace placeholders like YOUR_BASE_URL and YOUR_SECRET_TOKEN with your actual details.

$ curl -i -X POST \
  https://YOUR_BASE_URL/v1/recipients \
  -H 'X-BU-VERSION: 2025-07-11' \
  -H 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
  "currency": "NGN",
  "country_code": "NG",
  "type": "ngn_bank",
  "bank_name": "OPAY",
  "bank_code": "100004",
  "account_number": "9000000000",
  "account_name": "BUSHA DIGITAL TECHNOLOGY"
}'

Expected Response:

Upon successful creation, the API will return a response containing the details of the newly created recipient, including its unique id.

{
  "status": "success",
  "message": "Recipient created successfully",
  "data": {
    "id": "6877ac708725d76db48eebff",
    "profile_id": "BUS_jlKUYwF9z1ynQZ98bWbaP",
    "account_name": "BUSHA DIGITAL TECHNOLOGY",
    "account_number": "9169277397",
    "active": true,
    "bank_code": "100004",
    "bank_name": "OPAY",
    "category": "bank",
    "country_code": "NG",
    "currency": "NGN",
    "object": "recipients",
    "owned_by_customer": true,
    "type": "ngn_bank"
  }
}

This id is crucial and will be reused in several cases, especially when making a payout into that specific payment account, as demonstrated in the How to Make Payouts Guide.

US Bank Account (ACH)

The request body required to create a US bank account (usd_bank) recipient with a transfer type achis:

{
  "type": "usd_bank", // Recipient type
  "entity_type": "personal", // Recipient entity type
  "transfer_type": "ach", // Recipient transfer type, ach
  "account_name": "Jane Smith", // Recipient account name
  "bank_name": "Chase Bank", // Recipient bank name
  "routing_number": "021000021", // Recipient routing number
  "account_number": "9876543210" // Recipient account number
}

To create a recipient:

  1. Open your terminal or command prompt.

  2. Construct a POST request to the /v1/recipients endpoint.

  3. In the request body, update the following fields with your recipient’s details:

    1. entity_type : This can be personal or business depending on the recipient’s bank entity type.

    2. account_number

    3. bank_name

    4. routing_number

    5. account_name

  4. Replace placeholders like YOUR_BASE_URL and YOUR_SECRET_TOKEN with your actual details.

$ curl -i -X POST \
  https://YOUR_BASE_URL/v1/recipients \
  -H 'X-BU-VERSION: 2025-07-11' \
  -H 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
  "type": "usd_bank",
  "entity_type": "personal",
  "transfer_type": "ach",
  "account_name": "Jane Smith",
  "bank_name": "Chase Bank",
  "routing_number": "021000021",
  "account_number": "9876543210"
}'

Expected Response:

Upon successful creation, the API will return a response containing the details of the newly created recipient, including its unique id.

{
    "status": "success",
    "message": "Recipient created successfully",
    "data": {
        "id": "6877afc18725d76db48eec02",
        "profile_id": "BUS_jlKUYwF9z1ynQZ98bWbaP",
        "account_name": "Jane Smith",
        "account_number": "9876543210",
        "active": true,
        "bank_name": "Chase Bank",
        "category": "bank",
        "country_code": "US",
        "currency": "USD",
        "entity_type": "personal",
        "object": "recipients",
        "owned_by_customer": true,
        "routing_number": "021000021",
        "transfer_type": "ach",
        "type": "usd_bank"
    }
}

This id is crucial and will be reused in several cases, especially when making a payout into that specific payment account, as demonstrated in the How to Make Payouts Guide.

US Bank Account (Wire)

The request body required to create a US bank account (usd_bank) recipient with a transfer type wireis:

{
  "type": "usd_bank", // Recipient type
  "entity_type": "business", // Recipient entity type
  "transfer_type": "wire", // Recipient transfer type, wire
  "account_name": "Tech Corp LLC", // Recipient's account name
  "bank_name": "Bank of America", // Recipient's bank name
  "routing_number": "026009593", // Recipients routing number
  "account_number": "1122334455" // Recipient's account number
}

To create a recipient:

  1. Open your terminal or command prompt.

  2. Construct a POST request to the /v1/recipients endpoint.

  3. In the request body, update the following fields with your recipient’s details:

    1. entity_type : This can be personal or business depending on the recipient’s bank entity type.

    2. account_number

    3. bank_name

    4. routing_number

    5. account_name

  4. Replace placeholders like YOUR_BASE_URL and YOUR_SECRET_TOKEN with your actual details.

$ curl -i -X POST \
  https://YOUR_BASE_URL/v1/recipients \
  -H 'X-BU-VERSION: 2025-07-11' \
  -H 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
  "type": "usd_bank",
  "entity_type": "business",
  "transfer_type": "wire",
  "account_name": "Tech Corp LLC",
  "bank_name": "Bank of America",
  "routing_number": "026009593",
  "account_number": "1122334455"
}'

Expected Response:

Upon successful creation, the API will return a response containing the details of the newly created recipient, including its unique id.

{
    "status": "success",
    "message": "Recipient created successfully",
    "data": {
        "id": "6877b0fc8725d76db48eec05",
        "profile_id": "BUS_jlKUYwF9z1ynQZ98bWbaP",
        "account_name": "Tech Corp LLC",
        "account_number": "1122334455",
        "active": true,
        "bank_name": "Bank of America",
        "category": "bank",
        "country_code": "US",
        "currency": "USD",
        "entity_type": "business",
        "object": "recipients",
        "owned_by_customer": true,
        "routing_number": "026009593",
        "transfer_type": "wire",
        "type": "usd_bank"
    }
}

This id is crucial and will be reused in several cases, especially when making a payout into that specific payment account, as demonstrated in the How to Make Payouts Guide.

US bank account (SWIFT)

The request body required to create a US bank account (usd_bank) recipient with a transfer type of swiftis:

{
  "type": "usd_bank", // Recipient type
  "entity_type": "business", // Recipient entity type
  "transfer_type": "swift", // Recipient transfer type, swift
  "account_name": "Global Corp Ltd", // Recipient's account name
  "iban": "GB29NWBK60161331926819", // Recipient's IBAN 
  "swift_code": "CHASUS33XXX", // Recipient's SWIFT code
  "bank_name": "Bank of International Transfers", // Recipient's bank name
  "recipient_address": "123 Hauptstrasse, Berlin, 10115, Germany", // Recipient's address
  "intermediary_bank_name": "Intermediary Global Bank", // Recipient's intermediary bank name
  "intermediary_bank_address": "456 Avenue of Banks, Zurich", // Recipient's intermediary bank address
  "intermediary_swift_code": "CHASUS33XXX" // Recipient's intermediary swift code
}'

To create a recipient:

  1. Open your terminal or command prompt.

  2. Construct a POST request to the /v1/recipients endpoint.

  3. In the request body, update the following fields with your recipient’s details:

    1. entity_type : This can be personal or business depending on the recipient’s bank entity type.

    2. account_name

    3. iban

    4. swift_code

    5. bank_name

    6. recipient_address

    7. intermediary_bank_name

    8. intermediary_bank_address

    9. intermediary_swift_code

  4. Replace placeholders like YOUR_BASE_URL and YOUR_SECRET_TOKEN with your actual details.

$ curl -i -X POST \
  https://YOUR_BASE_URL/v1/recipients \
  -H 'X-BU-VERSION: 2025-07-11' \
  -H 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
  "type": "usd_bank",
  "entity_type": "business",
  "transfer_type": "swift",
  "account_name": "Global Corp Ltd",
  "iban": "GB29NWBK60161331926819",
  "swift_code": "CHASUS33XXX",
  "bank_name": "Bank of International Transfers",
  "recipient_address": "123 Hauptstrasse, Berlin, 10115, Germany",
  "intermediary_bank_name": "Intermediary Global Bank",
  "intermediary_bank_address": "456 Avenue of Banks, Zurich",
  "intermediary_swift_code": "CHASUS33XXX"
}'

Expected Response:

Upon successful creation, the API will return a response containing the details of the newly created recipient, including its unique id.

{
    "status": "success",
    "message": "Recipient created successfully",
    "data": {
        "id": "6877bd038725d76db48eec0f",
        "profile_id": "BUS_jlKUYwF9z1ynQZ98bWbaP",
        "account_name": "Global Corp Ltd",
        "active": true,
        "bank_name": "Bank of International Transfers",
        "category": "bank",
        "country_code": "US",
        "currency": "USD",
        "entity_type": "business",
        "iban": "GB29NWBK60161331926818",
        "intermediary_bank_address": "456 Avenue of Banks, Zurich",
        "intermediary_bank_name": "Intermediary Global Bank",
        "intermediary_swift_code": "CHASUS33XXX",
        "object": "recipients",
        "owned_by_customer": true,
        "recipient_address": "123 Hauptstrasse, Berlin, 10115, Germany",
        "swift_code": "CHASUS33XXX",
        "transfer_type": "swift",
        "type": "usd_bank"
    }
}

This id is crucial and will be reused in several cases, especially when making a payout into that specific payment account, as demonstrated in the How to Make Payouts Guide.

MPESA Mobile Money

The request body required to create a MPESA Mobile Money recipient:

{
  "currency_id": "KES", // Currency ID
  "country_id": "KE", // Country ID, Kentya
  "type": "mpesa_mobile_money", // Recipient type
  "phone_number": "254712345678", // Recipient's phone number (Mobile money ID)
  "account_name": "Samuel Kiprotich" // Recipient's account name
}

To create a recipient:

  1. Open your terminal or command prompt.

  2. Construct a POST request to the /v1/recipients endpoint.

  3. In the request body, update the following fields with your recipient’s details:

    1. phone_number : A valid mobile money registered phone number

    2. account_name

  4. Replace placeholders like YOUR_BASE_URL and YOUR_SECRET_TOKEN with your actual details.

$ curl -i -X POST \
  https://YOUR_BASE_URL/v1/recipients \
  -H 'X-BU-VERSION: 2025-07-11' \
  -H 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
  "currency_id": "KES",
  "country_id": "KE",
  "type": "mpesa_mobile_money",
  "phone_number": "254712345678",
  "account_name": "Samuel Kiprotich"
}'

Expected Response:

Upon successful creation, the API will return a response containing the details of the newly created recipient, including its unique id.

{
  "status": "success",
  "message": "Recipient created successfully",
  "data": {
    "id": "6877e78e985bb54f0f2f9541",
    "profile_id": "BUS_jlKUYwF9z1ynQZ98bWbaP",
    "account_name": "Samuel Kiprotich",
    "active": true,
    "category": "mpesa",
    "country_code": "KE",
    "currency": "KES",
    "object": "recipients",
    "owned_by_customer": true,
    "phone_number": "254712345678",
    "type": "mpesa_mobile_money"
  }
}

This id is crucial and will be reused in several cases, especially when making a payout into that specific payment account, as demonstrated in the How to Make Payouts Guide.

Bitcoin

The request body required to create a cryptocurrency recipient on the Bitcoin network:

{
  "type": "crypto", // Recipient type
  "account_name": "Coco", // Recipient account name
  "network": "BTC", // Recipient network
  "address": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh" // Recipient Bitcoin address
}

To create a recipient:

  1. Open your terminal or command prompt.

  2. Construct a POST request to the /v1/recipients endpoint.

  3. In the request body, update the following fields with your recipient’s details:

    1. account_name : The name to identify the Bitcoin address stored.

    2. address

  4. Replace placeholders like YOUR_BASE_URL and YOUR_SECRET_TOKEN with your actual details.

$ curl -i -X POST \
  https://YOUR_BASE_URL/v1/recipients \
  -H 'X-BU-VERSION: 2025-07-11' \
  -H 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
  "type": "crypto",
  "account_name": "Coco",
  "network": "BTC",
  "address": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh"
}'

Expected Response:

Upon successful creation, the API will return a response containing the details of the newly created recipient, including its unique id.

{
    "status": "success",
    "message": "Recipient created successfully",
    "data": {
        "id": "6877bbf68725d76db48eec0d",
        "profile_id": "BUS_jlKUYwF9z1ynQZ98bWbaP",
        "active": true,
        "address": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlw",
        "category": "crypto",
        "network": "BTC",
        "object": "recipients",
        "owned_by_customer": false,
        "type": "crypto"
    }
}

This id is crucial and will be reused in several cases, especially when making a payout into that specific payment account, as demonstrated in the How to Make Payouts Guide.

USDT (ETH)

The request body required to create a cryptocurrency recipient (USDT) on the Ethereum network:

{
  "type": "crypto", // Recipient type
  "account_name": "Coco", // Recipient account name
  "network": "ETH", // Recipient network
  "address": "0x742d35Cc6543C4532f5D2b8d9a2b2A1234567881" // Recipient address
}

To create a recipient:

  1. Open your terminal or command prompt.

  2. Construct a POST request to the /v1/recipients endpoint.

  3. In the request body, update the following fields with your recipient’s details:

    1. account_name : The name to identify the USDT address stored.

    2. address

  4. Replace placeholders like YOUR_BASE_URL and YOUR_SECRET_TOKEN with your actual details.

$ curl -i -X POST \
  https://YOUR_BASE_URL/v1/recipients \
  -H 'X-BU-VERSION: 2025-07-11' \
  -H 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
  "type": "crypto",
  "account_name": "Coco",
  "network": "ETH",
  "address": "0x742d35Cc6543C4532f5D2b8d9a2b2A1234567881"
}'

Expected Response:

Upon successful creation, the API will return a response containing the details of the newly created recipient, including its unique id.

{
  "status": "success",
  "message": "Recipient created successfully",
  "data": {
    "id": "6877ec5c985bb54f0f2f9543",
    "profile_id": "BUS_jlKUYwF9z1ynQZ98bWbaP",
    "active": true,
    "address": "0x742d35Cc6543C4532f5D2b8d9a2b2A1234567881",
    "category": "crypto",
    "network": "ETH",
    "object": "recipients",
    "owned_by_customer": true,
    "type": "crypto"
  }
}

This id is crucial and will be reused in several cases, especially when making a payout into that specific payment account, as demonstrated in the How to Make Payouts Guide.

STELLAR LUMENS

The request body required to create a cryptocurrency recipient on the XLM network:

{
  "type": "crypto", // Recipient type
  "account_name": "My Stellar Wallet", // Recipient'd account name
  "network": "XLM", // Recipient's network, XLM
  "address": "GAHK7EEG2WWHVKDNT4CEQFZGKF2LGDSW2IVM4S5DP42RBW3K6BTODB4A", // Recipient's address
  "memo": "123456789" // Recipient's memo
}

To create a recipient:

  1. Open your terminal or command prompt.

  2. Construct a POST request to the /v1/recipients endpoint.

  3. In the request body, update the following fields with your recipient’s details:

    1. account name : The identifier for the recipient details.

    2. address

    3. memo

  4. Replace placeholders like YOUR_BASE_URL and YOUR_SECRET_TOKEN with your actual details.

$ curl -i -X POST \
  https://YOUR_BASE_URL/v1/recipients \
  -H 'X-BU-VERSION: 2025-07-11' \
  -H 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
  "type": "crypto",
  "account_name": "My Stellar Wallet",
  "network": "XLM",
  "address": "GAHK7EEG2WWHVKDNT4CEQFZGKF2LGDSW2IVM4S5DP42RBW3K6BTODB4A",
  "memo": "123456789"
}'

Expected Response:

Upon successful creation, the API will return a response containing the details of the newly created recipient, including its unique id.

{
    "status": "success",
    "message": "Recipient created successfully",
    "data": {
        "id": "6877b18e8725d76db48eec0a",
        "profile_id": "BUS_jlKUYwF9z1ynQZ98bWbaP",
        "active": true,
        "address": "GAHK7EEG2WWHVKDNT4CEQFZGKF2LGDSW2IVM4S5DP42RBW3K6BTODB4A",
        "category": "crypto",
        "memo": "123456789",
        "network": "XLM",
        "object": "recipients",
        "owned_by_customer": true,
        "type": "crypto"
    }
}

This id is crucial and will be reused in several cases, especially when making a payout into that specific payment account, as demonstrated in the How to Make Payouts Guide.

Retrieve and List Recipients

After creating recipients, you'll often need to retrieve their details or get a list of all recipients associated with your profile. This allows you to manage your payout destinations and ensure you're using the correct recipient_id for transactions.

Retrieve a Specific Recipient

You can fetch the details of a single recipient if you know its unique id.

To retrieve a specific recipient:

  1. Open your terminal or command prompt.

  2. Construct a GET request to the /v1/recipients/{id} endpoint, replacing {id} with the actual recipient ID.

  3. Ensure your Authorization and YOUR_SECRET_TOKEN headers are included.

  4. Replace placeholders like YOUR_BASE_URL and YOUR_SECRET_TOKEN.

$ curl -i -X GET \
  'https://api.busha.co/v1/recipients/{id}' \
  -H 'Authorization: Bearer YOUR_SECRET_TOKEN'

Expected Response:

A successful response will return a single recipient object, identical in structure to the one received during creation, containing all its details.

{
  "status": "success",
  "message": "Recipient retrieved successfully",
  "data": {
    "id": "6877afc18725d76db48eec02",
    "profile_id": "BUS_jlKUYwF9z1ynQZ98bWbaP",
    "user_id": "BUS_jlKUYwF9z1ynQZ98bWbaP",
    "active": true,
    "country_id": "US",
    "created_at": "2025-07-16T13:57:21.150561Z",
    "fields": [
      {
        "display_name": "currency",
        "is_copyable": true,
        "is_visible": false,
        "name": "currency",
        "required": false,
        "value": "USD"
      },
      {
        "display_name": "bank_name",
        "is_copyable": true,
        "is_visible": true,
        "name": "bank_name",
        "required": true,
        "value": "Chase Bank"
      },
      {
        "display_name": "entity_type",
        "is_copyable": true,
        "is_visible": true,
        "name": "entity_type",
        "required": true,
        "value": "personal"
      },
      {
        "display_name": "account_name",
        "is_copyable": true,
        "is_visible": true,
        "name": "account_name",
        "required": true,
        "value": "Jane Smith"
      },
      {
        "display_name": "country_code",
        "is_copyable": true,
        "is_visible": false,
        "name": "country_code",
        "required": false,
        "value": "US"
      },
      {
        "display_name": "transfer_type",
        "is_copyable": true,
        "is_visible": true,
        "name": "transfer_type",
        "required": true,
        "value": "ach"
      },
      {
        "display_name": "account_number",
        "is_copyable": true,
        "is_visible": true,
        "name": "account_number",
        "required": false,
        "value": "9876543210"
      },
      {
        "display_name": "routing_number",
        "is_copyable": true,
        "is_visible": true,
        "name": "routing_number",
        "required": false,
        "value": "021000021"
      }
    ],
    "legal_entity_type": "personal",
    "object": "recipients",
    "owned_by_customer": true,
    "type": "usd_bank",
    "updated_at": "2025-07-16T13:57:21.150561Z",
    "currency_id": "USD"
  }
}

List All Recipients

To get an overview of all the recipients you have created, you can make a GET request to the /v1/recipients endpoint without specifying an ID.

To list all recipients:

  1. Open your terminal or command prompt.

  2. Construct a GET request to the /v1/recipients endpoint.

  3. Ensure your Authorization header is included.

  4. Replace placeholders like YOUR_BASE_URL and YOUR_SECRET_TOKEN.

$ curl -i -X GET 'https://YOUR_BASE_URL/v1/recipients' \
  -H 'Authorization: Bearer YOUR_SECRET_TOKEN'

Expected Response:

A successful response will return a list (an array) of all recipient objects associated with your profile. This allows you to programmatically manage your available payout destinations.

{
  "status": "success",
  "message": "Recipients retrieved successfully",
  "pagination": {
    "current_entries_size": 10,
    "next_cursor": "eyJhbmNob3IiOiIyMDI1LTA3LTE2VDEzOjU3OjIxLjE1MDU2MVoiLCJhbmNob3JfaWQiOiJjcmVhdGVkX2F0Iiwic2Vjb25kYXJ5X2FuY2hvcl9pZCI6ImlkIiwiZGlyZWN0aW9uIjoibmV4dCIsInBvc2l0aW9uIjowLCJzb3J0X29yZGVyIjoiZGVzYyIsImxpbWl0IjoxMH0="
  },
  "data": [
    {
      "id": "6877ec5c985bb54f0f2f9543",
      "profile_id": "BUS_jlKUYwF9z1ynQZ98bWbaP",
      "user_id": "BUS_jlKUYwF9z1ynQZ98bWbaP",
      "active": true,
      "created_at": "2025-07-16T18:15:56.073128Z",
      "fields": [
        {
          "display_name": "address",
          "is_copyable": true,
          "is_visible": true,
          "name": "address",
          "required": true,
          "value": "0x742d35Cc6543C4532f5D2b8d9a2b2A1234567881"
        },
        {
          "display_name": "network",
          "is_copyable": true,
          "is_visible": true,
          "name": "network",
          "required": true,
          "value": "ETH"
        }
      ],
      "legal_entity_type": "personal",
      "object": "recipients",
      "owned_by_customer": true,
      "type": "crypto",
      "updated_at": "2025-07-16T18:15:56.073128Z"
    },
    {
      "id": "6877e78e985bb54f0f2f9541",
      "profile_id": "BUS_jlKUYwF9z1ynQZ98bWbaP",
      "user_id": "BUS_jlKUYwF9z1ynQZ98bWbaP",
      "active": true,
      "country_id": "KE",
      "created_at": "2025-07-16T17:55:26.935875Z",
      "fields": [
        {
          "display_name": "currency",
          "is_copyable": true,
          "is_visible": false,
          "name": "currency",
          "required": false,
          "value": "KES"
        },
        {
          "display_name": "account_name",
          "is_copyable": true,
          "is_visible": true,
          "name": "account_name",
          "required": true,
          "value": "Samuel Kiprotich"
        },
        {
          "display_name": "country_code",
          "is_copyable": true,
          "is_visible": false,
          "name": "country_code",
          "required": false,
          "value": "KE"
        },
        {
          "display_name": "phone_number",
          "is_copyable": true,
          "is_visible": true,
          "name": "phone_number",
          "required": true,
          "value": "254712345678"
        }
      ],
      "legal_entity_type": "personal",
      "object": "recipients",
      "owned_by_customer": true,
      "type": "mpesa_mobile_money",
      "updated_at": "2025-07-16T17:55:26.935875Z",
      "currency_id": "KES"
    },
  ...
}

What’s Next?

Now that you know how to create, retrieve, and list recipients, you can use them in your transaction flows: