Recipient Requirements
Recipients are payment accounts mostly used as a destination for payouts via the Busha API. You can add multiple recipients across several Busha payment methods such as; Bank Accounts, Mobile Money, Busha Tag, Payment Email, and Crypto Address.
To create a recipient, Busha API provides the recipient requirements API to fetch information about all the necessary fields and parameters that will be required when creating a recipient for a particular payment method.
The specific payment method for a recipient requirement request is derived by passing the country_id
and currency_id
as query parameters to the list recipients requirements API. For example:
curl -i -X GET \
'https://api.busha.co/v1/recipient-requirements?country_id=NG¤cy_id=NGN' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'
The request above will result in a bank account payment type because the primary means of Naira payment in Nigeria is a Bank Account.
You will then get a response that looks like this:
{
"status": "success",
"message": "RecipientRequirements retrieved successfully",
"data": [
{
"id": "61e00b392899a2c7173306f0",
"name": "Bank Transfer",
"type": "ngn_bank_transfer",
"active": true,
"country_id": "NG",
"currency_id": "NGN",
"description": "",
"created_at": "2022-01-13T11:21:29.117Z",
"fields": [
{
"description": "",
"display_name": "Bank Code",
"hint_word": "passed by app",
"is_copyable": false,
"is_visible": false,
"message": "must be 10 digits",
"name": "bank_code",
"options": [],
"order": 3,
"populate_from": "",
"populate_from_value": "",
"populate_target": [],
"required": true,
"requires_url_validation": false,
"type": "string",
"unique": false,
"validator": "^\\d{3,10}$"
},
{
"description": "",
"display_name": "Bank Name",
"hint_word": "Enter bank name",
"is_copyable": false,
"is_visible": true,
"message": "length must be in range between 2 and 50",
"name": "bank_name",
"options": [],
"order": 2,
"populate_from": "",
"populate_from_value": "",
"populate_target": [],
"required": true,
"requires_url_validation": false,
"type": "string",
"unique": false,
"validator": ".{2,100}"
},
{
"description": "",
"display_name": "Account Name",
"hint_word": "Enter account name",
"is_copyable": true,
"is_visible": true,
"message": "length must be in range between 2 and 100",
"name": "account_name",
"options": [],
"order": 0,
"populate_from": "",
"populate_from_value": "",
"populate_target": [],
"required": true,
"requires_url_validation": false,
"type": "string",
"unique": false,
"validator": ".{2,100}"
},
{
"description": "",
"display_name": "Account Number",
"hint_word": "Enter account number",
"is_copyable": true,
"is_visible": true,
"message": "must be 10 digits",
"name": "account_number",
"options": [],
"order": 1,
"populate_from": "",
"populate_from_value": "",
"populate_target": [],
"required": true,
"requires_url_validation": false,
"type": "string",
"unique": false,
"validator": "^\\d{10}$"
}
]
}
]
}
The response of this recipient requirements API can then be used to determine how to display a user interface for collecting the information to create a recipient.