Skip to main content

Nigeria

Supported payment methods and integration details for Nigeria

Nigeria flag

Country Details

Country ID: 17  •   Country Code: 234  •   Currency: NGN (Nigerian Naira)

Supported Payment Methods & Payload Requirements

Opay and PalmPay Collections:
Opay and PalmPay are not separate Niobi payment methods. Customers can fund the dynamic virtual account by transferring from their Opay or PalmPay wallet, or from any Nigerian banking app. The API call on your end is the same virtual account deposit request.

Payment Flow: How It Works

Deposits (Collections via Dynamic Virtual Accounts)

  1. Initiation: Send a signed POST request to the Unified Collections endpoint with payment_method_type: "virtual_account" along with first_name, last_name, account_name, and bank_code.
  2. Virtual Account Generation: Niobi returns an initial response (payment_step: 1) containing the generated account_number and bank_name.
  3. Customer Transfer: Display the account details to the customer. The customer transfers the exact amount via their bank app, Opay, or PalmPay within 30 minutes.
  4. Callback Confirmation: Once the funds land, Niobi delivers an asynchronous webhook callback (payment_step: 2, status: "success") to your callback_url.

Supported Virtual Account Issuing Banks (Collections)

Pass one of the following codes as bank_code in your collection request:
Exact Amount Required:
Ensure customers transfer the exact requested amount. Any overpayment is automatically reversed to the payer upon successful settlement.

Payouts (Bank Transfers)

  1. Initiation: Send a signed POST request to the Unified Payments endpoint with payment_method_type: "bank".
  2. Bank Parameters: Include a bank array containing the recipient’s bank_name, bank_code, branch_name, account_name, and account_number.
  3. Processing: Niobi returns an initial acknowledgement (payment_step: 1).
  4. Callback Delivery: Niobi delivers a terminal callback (payment_step: 2) to your client_callback_url once the funds have cleared the recipient’s bank.

List of Supported Nigerian Banks for Payouts

Pass one of the following codes as bank_code in the bank array when initiating a payout:

Sample Requests & Responses

Deposit request

account_name is the name of the account holder for the bank selected via bank_code. bank_code determines which bank issues the virtual account. sub_merchant_id is optional and only needed if you’re onboarding multiple brands under one account; see Sub-Merchant Management.

Deposit response (successfully initiated)

This is the initial acknowledgement, not the final result. payment_step: 1 means the request was accepted and a dynamic virtual account was generated; it does not mean the customer has paid yet. Await the terminal callback (payment_step: 2).

Payout request

bank_code here is First Bank of Nigeria, from the list above; swap in whichever bank the recipient account is held at.

Payout response (successfully initiated)

Payout response (failed to initiate)

Webhook/Callback Examples

Successful deposit

Failed deposit

payment_step: 2 is the terminal status on the transaction, sent for both success and failure. Ensure your callback listener acknowledges with HTTP 200 OK and reconciles your database.

Successful payout

Failed payout

Try it

Try it: POST /api/v4/niobi-unified-collections

Collections API reference for Nigeria deposits.

Try it: POST /api/v4/niobi-unified-payments

Payments API reference for Nigeria payouts.

Transaction Limits

For the full list of minimum and maximum transaction limits for Nigeria (NGN) collections and payouts, please see the Transaction Limits for Nigeria section on the Transaction Limits page.
Deposit Settlement & Overpayment Protection:
For NGN virtual account deposits, customers must transfer the exact requested amount. If an overpayment occurs, the expected amount is processed and the excess is automatically reversed to the customer upon successful settlement.