Bank Transfer

This section outlines the parameters required for processing payments to bank accounts. All bank account transfers follow a standard format: you make a POST request to our Payout API. However, depending on the beneficiary type and account currency, you may need to provide additional information.



How Bank Transfers Work

The Fincra Bank Transfer service follows a standard process:

  1. API Request: You make a POST request to the Payout API with the required parameters
  2. Beneficiary Details: You provide information about the recipient based on currency and destination requirements
  3. Transaction Processing: Fincra validates the information and processes the transfer
  4. Confirmation: You receive a response with transaction identifiers (id and reference)
  5. Status Tracking: You can monitor the transaction status (only retry if status is failed)
  6. Settlement: Funds are delivered to the recipient's account according to the timeline for that currency

Common Use Cases

  1. Vendor Payments: Automate payments to suppliers and service providers
  2. Salary Disbursements: Process payroll for employees across multiple regions
  3. Customer Refunds: Return funds to customers through their bank accounts
  4. Affiliate Payouts: Make commission payments to partners and affiliates
  5. Cross-Border Transactions: Send funds internationally with support for multiple currencies
  6. Marketplace Seller Payouts: Distribute earnings to sellers on e-commerce platforms
  7. Loan Disbursements: Deliver approved loan amounts directly to borrowers' accounts

Bank Transfer Properties by Currency

FeaturesNGNGHSKESUGXZARUSDEURGBP
Same currency transferβœ…βœ…βœ…βœ…βœ…βœ…βœ…βœ…
Cross-currency transferβœ…βœ…βœ…βœ…βœ…βœ…βœ…βœ…
KYC documentation requiredβŒβŒβŒβŒβŒβœ…βœ…βœ…
Settlement timeInstant1-2 hours1-2 hours1-2 hours1-2 hours1-2 days1-2 days1-2 days
Bank code requiredβœ…βœ…βœ…βœ…βœ…βŒβŒβœ…
Sort code requiredβŒβŒβŒβŒβŒβœ…βŒβœ…
IBAN supportβŒβŒβŒβŒβŒβŒβœ…βŒ
Individual transfersβœ…βœ…βœ…βœ…βœ…βœ…βœ…βœ…
Corporate transfersβœ…βœ…βœ…βœ…βœ…βœ…βœ…βœ…
Webhook notificationsβœ…βœ…βœ…βœ…βœ…βœ…βœ…βœ…
API availabilityβœ…βœ…βœ…βœ…βœ…βœ…βœ…βœ…
Minimum transfer amount1005100100010111

Common Details

First, let's review the essential information required for all account types. You must provide the following details:

FieldMandatoryTypeDescription
businessYesStringThe ID of the business making the payout.
sourceCurrencyYesStringThe currency which is used to fund the payout
destinationCurrencyYesStringThe currency in which the recipient will be receiving funds
amountYesStringThe value that is to be transferred from the source currency wallet.
descriptionYesStringA simple description of payment e.g "From Daniella”
paymentDestinationYesStringThis is the type of account you want to send your payments to, seeΒ payment destinationsΒ for more details.
customerReferenceYesStringThe transaction's unique identifier on your system. Customer references prevent duplicate transactions. We advise that you add it to your payload
quoteReferenceNoStringThis is the reference generated when the source currency is compared against the destination currency.This is required for cross-currency payouts. You can generate a quote using theΒ Generate quote endpoint.
senderNoObjectThe details of the customer initiating the payout
sender.nameNoStringThe customer's full name. This name would show up in the transfer narration.
sender.emailNoStringThe customer's email.

NGN Pay-Outs

In addition to theΒ common detailsΒ needed to process successful payments, the following fields are also required when sending money to a bank account in Nigeria.

FieldMandatoryTypeDescription
beneficiaryYesObjectThe recipient of the funds. Depending on the currency and beneficiary type, the properties of the beneficiaries are different.
beneficiary.firstNameYesStringThe first name of the beneficiary .
beneficiary.lastNameYesStringThe last name of the beneficiary
beneficiary.accountHolderNameYesStringThis field is required by all type of beneficiaries.
beneficiary.typeYesStringThe type of beneficiary, seeΒ beneficiary typesΒ for more details
beneficiary.countryNoStringThe country in which the bank of the beneficiary is located. This field should be according toΒ ISO 3166-1 alpha-2 codesΒ standards e.g NG, GB
beneficiary.emailNoStringThe beneficiary's email
beneficiary.bankCodeYesStringThe beneficiary bank code. To get the bank code please see theΒ list banks endpointΒ codes for more details.

The payload should look like this :

{
    "amount": 5070,
    "beneficiary": {
        "accountHolderName": "Customer Name",
        "accountNumber": "17874878234",
        "bankCode": "044",
        // "country": "NG",
        "firstName": "Customer",
        "lastName": "Name",
        "type": "individual"
    },
    "business": "{{Your Business ID}}",
    "customerReference": "{{$randomUUID}}",
    "description": "Test",
    "destinationCurrency": "NGN",
    "paymentDestination": "bank_account",
    "sourceCurrency": "NGN",
    "sender":{
        "name":"Customer Name",
        "email":"[email protected]"
    }
}
{
    "business": "{{Your business ID}}",
    "sourceCurrency": "NGN",
    "destinationCurrency": "NGN",
    "amount": "1000",
    "description": "i want to pay my vendor",
    "paymentDestination": "bank_account",
    "customerReference": "{{$randomUUID}}",
    "quoteReference": "1330bd3c-1e09-4c1c-887f-7f1d72ff905e",
    "beneficiary": {
        "firstName": "Hassan",
        "lastName": "Sarz",
        "accountHolderName": "Hassan Sarz",
        "country": "NG",
        "phone": "0803443433",
        "accountNumber": "0124775489",
        "type": "corporate",
        "email": "[email protected]",
        "bankCode": "058"
    }
}