What You’ll Achieve:
- Understand what recipients are and why they are necessary for payouts.
- Learn how to dynamically fetch the required fields for creating a recipient based on country and currency.
Prerequisites
Before you begin, ensure you have:- A Busha Business Account and Secret API Key (from the Quick Start Tutorial)
- An understanding of the API Environments (Sandbox vs. Production) and their respective base URLs (from the Make Your First Request Guide).
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
| 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 |
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”:- Open your terminal or command prompt.
- Construct a
POSTrequest to the/v1/recipientsendpoint. - In the request body, update the following fields with your recipient’s details:
bank_namebank_codeaccount_numberaccount_name
- Replace placeholders like
YOUR_BASE_URLandYOUR_SECRET_TOKENwith your actual details.
id.
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 ach is:
- Open your terminal or command prompt.
- Construct a
POSTrequest to the/v1/recipientsendpoint. - In the request body, update the following fields with your recipient’s details:
entity_type: This can bepersonalorbusinessdepending on the recipient’s bank entity type.account_numberbank_namerouting_numberaccount_name
- Replace placeholders like
YOUR_BASE_URLandYOUR_SECRET_TOKENwith your actual details.
id.
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 wire is:
- Open your terminal or command prompt.
- Construct a
POSTrequest to the/v1/recipientsendpoint. - In the request body, update the following fields with your recipient’s details:
entity_type: This can bepersonalorbusinessdepending on the recipient’s bank entity type.account_numberbank_namerouting_numberaccount_nameswift_code
- Replace placeholders like
YOUR_BASE_URLandYOUR_SECRET_TOKENwith your actual details.
id.
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 swift is:
- Open your terminal or command prompt.
- Construct a
POSTrequest to the/v1/recipientsendpoint. - In the request body, update the following fields with your recipient’s details:
entity_type: This can bepersonalorbusinessdepending on the recipient’s bank entity type.account_nameibanswift_codebank_namerecipient_addressintermediary_bank_nameintermediary_bank_addressintermediary_swift_code
- Replace placeholders like
YOUR_BASE_URLandYOUR_SECRET_TOKENwith your actual details.
id.
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.M-Pesa Mobile Money
The request body required to create an M-Pesa mobile money (mpesa_mobile_money) recipient is:
- Open your terminal or command prompt.
- Construct a
POSTrequest to the/v1/recipientsendpoint. - In the request body, update the following fields with your recipient’s details:
account_namephone_number
- Replace placeholders like
YOUR_BASE_URLandYOUR_SECRET_TOKENwith your actual details.
id.
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:- Open your terminal or command prompt.
- Construct a
POSTrequest to the/v1/recipientsendpoint. - In the request body, update the following fields with your recipient’s details:
account_name: The name to identify the Bitcoin address stored.address
- Replace placeholders like
YOUR_BASE_URLandYOUR_SECRET_TOKENwith your actual details.
id.
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:- Open your terminal or command prompt.
- Construct a
POSTrequest to the/v1/recipientsendpoint. - In the request body, update the following fields with your recipient’s details:
account_name: The name to identify the USDT address stored.address
- Replace placeholders like
YOUR_BASE_URLandYOUR_SECRET_TOKENwith your actual details.
id.
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:- Open your terminal or command prompt.
- Construct a
POSTrequest to the/v1/recipientsendpoint. - In the request body, update the following fields with your recipient’s details:
account_name: The identifier for the recipient details.addressmemo
- Replace placeholders like
YOUR_BASE_URLandYOUR_SECRET_TOKENwith your actual details.
id.
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 correctrecipient_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:
- Open your terminal or command prompt.
- Construct a
GETrequest to the/v1/recipients/{id}endpoint, replacing{id}with the actual recipient ID. - Ensure your
AuthorizationandYOUR_SECRET_TOKENheaders are included. - Replace placeholders like
YOUR_BASE_URLandYOUR_SECRET_TOKEN.
GET request to the /v1/recipients endpoint without specifying an ID.
To list all recipients:
- Open your terminal or command prompt.
- Construct a
GETrequest to the/v1/recipientsendpoint. - Ensure your
Authorizationheader is included. - Replace placeholders like
YOUR_BASE_URLandYOUR_SECRET_TOKEN.
What’s Next?
Now that you know how to create, retrieve, and list recipients, you can use them in your transaction flows:- How to Process Payouts to Recipients
- The Recipient Object
- Recipients API Reference: For full details on all available fields and endpoints