Benin

Learn everything you need to know to make payouts in Benin with dLocal.


Market specifications

Country reference

country codecurrency codeamount decimals
BJXOF2

Mandatory parameters

Bank transfers

Bank transfer parametersB2CB2BP2P
external_idYesYesYes
payment_method_idYesYesYes
flow_typeYesYesYes
purposeYesYesYes
countryYesYesYes
amountYesYesYes
currencyYesYesYes
beneficiary.first_nameYes-Yes
beneficiary.last_nameYes-Yes
beneficiary.business_name-Yes-
beneficiary.bank_account.accountYesYesYes
beneficiary.bank_account.branchYesYesYes
remitter.first_name--Yes
remitter.last_name--Yes
remitter.address.country--Yes

Wallet transfers

Wallet transfer parametersB2CB2BP2P
external_idYesYesYes
payment_method_idYesYesYes
flow_typeYesYesYes
purposeYesYesYes
countryYesYesYes
amountYesYesYes
currencyYesYesYes
beneficiary.first_nameYes-Yes
beneficiary.last_nameYes-Yes
beneficiary.business_name-Yes-
beneficiary.instant_payment.typeYesYesYes
beneficiary.instant_payment.idYesYesYes
remitter.first_name--Yes
remitter.last_name--Yes
remitter.address.country--Yes

Payment methods

Benin supports payouts via Bank Transfer and Wallet (Mobile Money) transfer. Each method has specific required parameters and validations aligned with the local banking and telecom systems.

Use Bank Transfer to send funds directly to a beneficiary's bank account. Use Wallet transfers to send funds using mobile phone numbers tied to local e-wallets, accepted only from major operators.

Bank transfers

Mandatory parameters

The table below outlines the required parameters for Bank transfers.

Mandatory parameterDescription
external_idUnique payout identification at the merchant's end. Maximum 100 characters.
payment_method_idPayment method identifier. For bank transfers, use BANK_TRANSFER.
flow_typePayout flow type. Valid values: B2C (Business to Consumer), B2B (Business to Business), or P2P (Person to Person).
purposePayout purpose code. See purpose codes reference.
countryCountry code. For Benin, use BJ.
currencyCurrency of the payout. For Benin, use XOF.
amountPayout amount in XOF. Use up to 2 decimal places.
beneficiary.first_nameBeneficiary's first name. Maximum 50 characters. Mandatory for B2C and P2P. Not used for B2B.
beneficiary.last_nameBeneficiary's last name. Maximum 50 characters. Mandatory for B2C and P2P. Not used for B2B.
beneficiary.business_nameBeneficiary's registered business name. Maximum 100 characters. Mandatory only for B2B.
beneficiary.bank_account.accountBeneficiary's bank account number. Between 3 and 30 characters. Automatically converted to IBAN format for the BJ corridor.
beneficiary.bank_account.branchBeneficiary's bank identifier code. Must match one of the bank codes listed in the Bank codes table below.
remitter.first_nameRemitter's first name. Maximum 50 characters. Mandatory only for remittance (P2P).
remitter.last_nameRemitter's last name. Maximum 50 characters. Mandatory only for remittance (P2P).
remitter.address.countryRemitter's country code in ISO 3166-1 alpha-2 format. Mandatory only for remittance (P2P).

Bank codes

beneficiary.bank_account.branch must be one of the following codes.

Bank nameBank code
Bank Of Africa BeninAFRIBJBJ
BANQUE AFRICAINE POUR L'INDUSTRIE ET LE COMMERCEAFICBJBJ
Banque Atlantique du BeninATBJBJBJ
Banque Internationale du BeninBIBEBJBJ
Banque Sahelo-Saharienne pour l'Investissement et le CommerceBSAHBJBJ
BGFI BANK BENINBGFIBJBJ
CBAO BeninCBAOBJBJ
CCEI BANK BENINCCEIBJBJ
CORIS BANK BeninCORIBJBJ
Ecobank BeninECOCBJBJ
NSIA BANQUE BeninDBLNBJBJ
Orabank BeninORBKBJBJ
SOCIETE GENERALESOGEBJBJ
SONIBANK BENINSOCNBJBJ
United Bank for Africa BeninCOBBBJBJ

Example request

{
  "external_id": "BJ_BT_B2C_001",
  "payment_method_id": "BANK_TRANSFER",
  "flow_type": "B2C",
  "purpose": "OTHER_SERVICES",
  "country": "BJ",
  "amount": 25000.00,
  "currency": "XOF",
  "beneficiary": {
    "first_name": "Fabrice",
    "last_name": "Adjovi",
    "bank_account": {
      "account": "BJ0610100100010154210001990",
      "branch": "AFRIBJBJ"
    }
  },
  "notification_url": "https://thisisawebsite.net/payments"
}
{
  "external_id": "BJ_BT_B2B_002",
  "payment_method_id": "BANK_TRANSFER",
  "flow_type": "B2B",
  "purpose": "OTHER_SERVICES",
  "country": "BJ",
  "amount": 500000.00,
  "currency": "XOF",
  "beneficiary": {
    "business_name": "Cotonou Trading SARL",
    "bank_account": {
      "account": "BJ0610100100010154210002881",
      "branch": "ECOCBJBJ"
    }
  },
  "notification_url": "https://thisisawebsite.net/payments"
}
{
  "external_id": "BJ_BT_P2P_003",
  "payment_method_id": "BANK_TRANSFER",
  "flow_type": "P2P",
  "purpose": "REMITTANCES",
  "country": "BJ",
  "amount": 15000.00,
  "currency": "XOF",
  "beneficiary": {
    "first_name": "Fabrice",
    "last_name": "Adjovi",
    "bank_account": {
      "account": "BJ0610100100010154210001990",
      "branch": "AFRIBJBJ"
    }
  },
  "remitter": {
    "first_name": "Awa",
    "last_name": "Traore",
    "address": {
      "country": "SN"
    }
  },
  "notification_url": "https://thisisawebsite.net/payments"
}

Wallet transfers

Mandatory parameters

The table below outlines the required parameters for Wallet transfers.

Mandatory parameterDescription
external_idUnique payout identification at the merchant's end. Maximum 100 characters.
payment_method_idPayment method identifier. For wallet transfers, use INSTANT_PAYMENT.
flow_typePayout flow type. Valid values: B2C (Business to Consumer), B2B (Business to Business), or P2P (Person to Person).
purposePayout purpose code. See purpose codes reference.
countryCountry code. For Benin, use BJ.
currencyCurrency of the payout. For Benin, use XOF.
amountPayout amount in XOF. Use up to 2 decimal places.
beneficiary.first_nameBeneficiary's first name. Maximum 50 characters. Mandatory for B2C and P2P. Not used for B2B.
beneficiary.last_nameBeneficiary's last name. Maximum 50 characters. Mandatory for B2C and P2P. Not used for B2B.
beneficiary.business_nameBeneficiary's registered business name. Maximum 100 characters. Mandatory only for B2B.
beneficiary.instant_payment.typeBeneficiary's wallet provider. Type of wallet being used: MTN, MOOV, or Celtiis.
beneficiary.instant_payment.idBeneficiary's wallet identifier, in E.164 format: +229 followed by 8 digits. Ex: +22970123456.
remitter.first_nameRemitter's first name. Maximum 50 characters. Mandatory only for remittance (P2P).
remitter.last_nameRemitter's last name. Maximum 50 characters. Mandatory only for remittance (P2P).
remitter.address.countryRemitter's country code in ISO 3166-1 alpha-2 format. Mandatory only for remittance (P2P).

Example request

{
  "external_id": "BJ_WT_B2C_001",
  "payment_method_id": "INSTANT_PAYMENT",
  "flow_type": "B2C",
  "purpose": "OTHER_SERVICES",
  "country": "BJ",
  "amount": 10000.00,
  "currency": "XOF",
  "beneficiary": {
    "first_name": "Fabrice",
    "last_name": "Adjovi",
    "instant_payment": {
      "type": "MTN",
      "id": "+22970123456"
    }
  },
  "notification_url": "https://thisisawebsite.net/payments"
}
{
  "external_id": "BJ_WT_B2B_002",
  "payment_method_id": "INSTANT_PAYMENT",
  "flow_type": "B2B",
  "purpose": "OTHER_SERVICES",
  "country": "BJ",
  "amount": 200000.00,
  "currency": "XOF",
  "beneficiary": {
    "business_name": "Cotonou Trading SARL",
    "instant_payment": {
      "type": "MOOV",
      "id": "+22970123457"
    }
  },
  "notification_url": "https://thisisawebsite.net/payments"
}
{
  "external_id": "BJ_WT_P2P_003",
  "payment_method_id": "INSTANT_PAYMENT",
  "flow_type": "P2P",
  "purpose": "REMITTANCES",
  "country": "BJ",
  "amount": 5000.00,
  "currency": "XOF",
  "beneficiary": {
    "first_name": "Fabrice",
    "last_name": "Adjovi",
    "instant_payment": {
      "type": "Celtiis",
      "id": "+22970123458"
    }
  },
  "remitter": {
    "first_name": "Awa",
    "last_name": "Traore",
    "address": {
      "country": "SN"
    }
  },
  "notification_url": "https://thisisawebsite.net/payments"
}

Did this page help you?