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&currency_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.