Beneficiaries

Overview

The Beneficiaries API allows you to create, manage, and use payment recipients for your financial operations. Beneficiaries are entities that can receive funds from your accounts, and they can be individuals or businesses with various payment method types depending on their location and currency.

Key features of the Beneficiaries API:

  • Create and manage fiat currency beneficiaries
  • Support for multiple payment method types (SWIFT, ACH, FedWire, NUBAN, SEPA, Faster Payments)
  • Country-specific payment method validation
  • Search and filter beneficiaries
  • Update beneficiary details
  • Delete beneficiaries when no longer needed

The API simplifies the process of storing recipient information for repeated use, ensuring compliance with payment regulations, and enabling efficient fund transfers to your business partners, suppliers, employees, and customers around the world.


The Beneficiary Object

PropertyTypeRequiredDescription
idstring (UUID)Unique identifier of the beneficiary.
stateenumCurrent state of the beneficiary (ACTIVE, INACTIVE).
created_datestring (datetime)Date and time when the beneficiary was created.
updated_datestring (datetime)Date and time when the beneficiary was last updated.
typeenumType of the beneficiary (always "FIAT" for fiat currency beneficiaries).
countrystringISO 2-letter country code of the beneficiary.
addressobjectPhysical address of the beneficiary (required for most non-NGN beneficiaries).
kindenumKind of beneficiary ("INDIVIDUAL" or "BUSINESS").
namestringAccount holder name of the beneficiary.
friendly_namestringOptional custom name for easier identification.
currencystringCurrency code the beneficiary can receive (ISO 4217).
emailstringEmail address of the beneficiary (required for most non-NGN beneficiaries).
is_own_accountbooleanWhether this beneficiary is your own account (default: false).
client_referencestringYour custom reference for this beneficiary.
methodobjectPayment method details (varies by type).

Beneficiary Method Object Structure

The method object in a beneficiary is a structured field that specifies how funds will be sent to this recipient. It consists of two key parts:

  1. A type field that identifies the payment method category
  2. A details object containing the specific payment information for that type
{
  "method": {
    "type": "PAYMENT_METHOD_TYPE",
    "details": {
      // Varies by type - contains the specific fields required for that payment method
    }
  }
}

The type field is always one of the following values:

  • "NUBAN" - Nigerian bank accounts
  • "SWIFT" - International wire transfers
  • "ACH" - US domestic electronic transfers
  • "FED_WIRE" - US domestic wire transfers
  • "SEPA" - European zone payments
  • "FASTER_PAYMENTS" - UK domestic transfers

The details object's structure changes completely based on the type. For example:

  • A "NUBAN" type requires Nigerian bank details
  • A "SWIFT" type requires international banking details with SWIFT/BIC codes
  • A "SEPA" type requires IBAN and European bank information

This flexible structure allows the API to accommodate the diverse requirements of different payment systems worldwide while maintaining a consistent top-level structure.


Supported Methods

1. NUBAN (Nigerian Bank Account)

Nigerian Uniform Bank Account Number for payments to Nigerian bank accounts in NGN.

ParameterTypeRequiredDescription
account_numberstring10-digit Nigerian bank account number.
bank_codestring3-6 digit bank code for the Nigerian bank.
account_namestringName of the account holder as registered with the bank.
bank_namestringBank name
{
    "type": "NUBAN",
    "details": {
        "account_number": "0123456789",
        "bank_code": "033",
        "account_name": "Alan Turing"
    }
}

2. SWIFT (International Wire Transfer)

SWIFT/BIC-based transfers for international payments across various currencies.

ParameterTypeRequiredDescription
swift_bicstringSWIFT/BIC code (8-11 characters) of the beneficiary bank.
account_numberstringAccount number or IBAN of the beneficiary.
bank_namestringFull name of the beneficiary bank.
bank_addressobjectPhysical address of the beneficiary bank.
bank_address.line_1stringStreet address of the bank.
bank_address.citystringCity where the bank is located.
bank_address.statestringState/province where the bank is located (required for some countries).
bank_address.postal_codestringPostal/ZIP code (required for some countries).
bank_address.countrystringISO-2 country code of the bank.
intermediary_bankobjectDetails of an intermediary bank if required for routing.
intermediary_bank.namestringName of the intermediary bank.
intermediary_bank.swift_bicstringSWIFT/BIC code of the intermediary bank.
intermediary_bank.account_numberstringAccount number at the intermediary bank.
intermediary_bank.addressobjectAddress of the intermediary bank.
intermediary_bank.routing_numberstringRouting number for the intermediary bank.
intermediary_bank.instructionsstringSpecial instructions for the intermediary bank.
{
    "type": "SWIFT",
    "details": {
        "swift_bic": "CHASUS33",
        "account_number": "000123456789",
        "bank_name": "JPMorgan Chase Bank",
        "bank_address": {
            "line_1": "270 Park Avenue",
            "city": "New York",
            "state": "NY",
            "postal_code": "10017",
            "country": "US"
        },
        "intermediary_bank": {
            "name": "Citibank",
            "swift_bic": "CITIUS33",
            "account_number": "36838007",
            "address": {
                "line_1": "388 Greenwich Street",
                "city": "New York",
                "state": "NY",
                "postal_code": "10013",
                "country": "US"
            }
        }
    }
}

3. ACH (US Automated Clearing House)

For domestic US transfers in USD using the ACH network.

ParameterTypeRequiredDescription
account_numberstringUS bank account number (8-17 digits).
routing_numberstring9-digit ACH routing number.
bank_namestringName of the US banking institution.
account_typeenumType of bank account: "checking" or "savings".
bank_addressobjectPhysical address of the US bank.
bank_address.line_1stringStreet address of the bank.
bank_address.line_2stringAdditional address information.
bank_address.citystringCity where the bank is located.
bank_address.statestringUS state where the bank is located.
bank_address.postal_codestringUS ZIP code.
bank_address.countrystringMust be "US".
{
    "type": "ACH",
    "details": {
        "account_number": "12345678901",
        "routing_number": "021000021",
        "bank_name": "Bank of America",
        "account_type": "checking",
        "bank_address": {
            "line_1": "100 Federal Street",
            "city": "Boston",
            "state": "MA",
            "postal_code": "02110",
            "country": "US"
        }
    }
}

4. FED_WIRE (US Fedwire)

For domestic US wire transfers in USD using the Fedwire system.

ParameterTypeRequiredDescription
account_numberstringUS bank account number (8-17 digits).
routing_numberstring9-digit Fedwire routing number.
bank_namestringName of the US bank.
bank_addressobjectPhysical address of the US bank.
bank_address.line_1stringStreet address of the bank.
bank_address.line_2stringAdditional address information.
bank_address.citystringCity where the bank is located.
bank_address.statestringUS state where the bank is located.
bank_address.postal_codestringUS ZIP code.
bank_address.countrystringMust be "US".
{
    "type": "FED_WIRE",
    "details": {
        "account_number": "12345678901",
        "routing_number": "021000021",
        "bank_name": "Wells Fargo",
        "bank_address": {
            "line_1": "420 Montgomery Street",
            "city": "San Francisco",
            "state": "CA",
            "postal_code": "94104",
            "country": "US"
        }
    }
}

5. SEPA (Single Euro Payments Area)

For EUR transfers within the SEPA zone (EU/EEA countries).

ParameterTypeRequiredDescription
ibanstringInternational Bank Account Number (15-34 characters).
bic_swiftstringBIC/SWIFT code of the beneficiary bank (8-11 characters).
bank_namestringName of the beneficiary bank.
bank_addressobjectPhysical address of the beneficiary bank (optional).
bank_address.line_1stringStreet address of the bank.
bank_address.citystringCity where the bank is located.
bank_address.postal_codestringPostal code.
bank_address.countrystringISO-2 country code within the SEPA zone.
{
    "type": "SEPA",
    "details": {
        "iban": "DE89370400440532013000",
        "bic_swift": "DEUTDEFF",
        "bank_name": "Deutsche Bank"
    }
}

6. FASTER_PAYMENTS (UK Faster Payments)

For domestic UK GBP transfers using the Faster Payments Service.

ParameterTypeRequiredDescription
account_numberstring8-digit UK bank account number.
sort_codestring6-digit UK bank sort code (without hyphens).
bank_namestringName of the UK bank.
bank_addressobjectPhysical address of the UK bank (optional).
bank_address.line_1stringStreet address of the bank.
bank_address.citystringCity where the bank is located.
bank_address.postal_codestringUK postal code.
bank_address.countrystringMust be "GB" if provided.
{
    "type": "FASTER_PAYMENTS",
    "details": {
        "account_number": "12345678",
        "sort_code": "123456",
        "bank_name": "Barclays Bank"
    }
}

Method Type Selection by Country and Currency

CountryCurrencyRecommended Method(s)Notes
NGNGNNUBANRequired for all domestic Nigerian payments
USUSDACHFor lower-cost domestic US transfers (slower)
USUSDFED_WIREFor same-day domestic US transfers (higher fees)
EU CountriesEURSEPAFor payments within the SEPA zone
GBGBPFASTER_PAYMENTSFor domestic UK payments
AnyAnySWIFTUniversal method for international payments
KEKESMOBILE_MONEY, BANK_ACCOUNTMobile money B2C, Paybill and Till are available as well as local bank payments

By understanding the requirements for each payment method type and following best practices, you can ensure smooth and efficient management of your payment recipients.