Payment Collection Flow
Please refer to the flow chart below to understand the payment collection flow. The “Merchant Client” refers to our API Clients who are collecting payments from their customers.
For Senegal Orange deposits, the end user receives an SMS with a shortcode after the deposit is initiated. They dial the shortcode, triggering a USSD prompt where they input their PIN to approve the transaction.
Using the API
The unified-collections api endpoint is used for collecting payments across the supported countries. Please find the full API reference here. You will be required to pass in the following parameters :
You will then generate a signature using the parameters above and proceed to make an API request using the payload.
On successful deposit, you will receive a callback response with the deposit details. Please find a detailed description of the callback response under Callback URL Section.
first_name, last_name, account_name, and bank_code fields are only applicable for Nigerian bank deposits.Front End Integration
This section provides a high-level overview of how to integrate your front-end with the Collections API.1
Initiating the unified collections API Request
To begin, integrate the unified Collections API endpoint and initiate a deposit transaction by making an API request.
Sample API Request
2
Transaction Verification
After the initial request is completed, the user will be prompted to input an authentication token on their phone to verify the transaction.
3
Handling Transaction Status
Once the transaction request has been processed, you have two options for managing the transaction status:
- Receiving a Callback. A callback response containing the transaction details will be sent to your configured URL. You can set up an endpoint on your front end to handle this callback and update the user interface accordingly, such as displaying success or failure messages based on the transaction outcome.
- Constantly Querying Transaction Status. Alternatively, you can query the transaction status endpoint periodically (recommended for 2 minutes) to check for updates on the transaction status.
Bank Collections
We supported collections through bank transfers on our unified collections API.The Bank Transfer service is currently available only for Nigerian Naira (NGN) transactions.
For overpayment, the expected amount will be processed, while any excess will be automatically reversed to the customer if the deposit is successful. Always collect the exact amount.
NGN Virtual Account Collections
Niobi now supports NGN virtual account collections as an additional method. Virtual accounts work similarly to bank deposits, but they are temporary and expire within 30 minutes.- Use
payment_method_type:virtual_accountin the collection request payload. - Send the exact amount to avoid reversals.
How It Works
To collect payments through bank transfer (or virtual account) payments, make an API call to our unified collections API with the required payment details (first_name, last_name, account_name, and bank_code). A dynamic virtual bank account will be generated for the transaction, which your customer can use to make the payment. Once the payment is made, a callback notification will be sent to confirm the transaction details.
A dynamic virtual bank account is a temporary, single-use bank account that expires after a single transaction.
Currently supported banks for dynamic virtual accounts:
- 78 Finance Company Limited
- Fidelity Bank
- Globus Bank
Sample API Request
first_name, last_name, account_name, and bank_code fields are required for Nigerian deposits. account_name is the name of the bank user selects the bank code for. bank_code determines which bank issues the virtual account.
Sample API response
South Africa (ZAR) Bank Collections
Our unified collections API supports bank deposits in South Africa. Usepayment_method_type: "bank" in your request.
How It Works
To collect payments through bank transfer payments, make an API call to our unified collections API with the required payment details. An authorization URL will be generated where the user will be redirected to their bank’s authentication system to approve the transaction. Once the payment is made, a callback notification will be sent to confirm the transaction details. Currently supported banks:- ABSA
- FNB
- Investec
- Nedbank
- Standard Bank
- Bidvest Bank
- TymeBank
Sample API Request
Sample API Response
Wave Senegal Collection Flow
This section provides a high-level overview of the collections flow for Wave payment method in Senegal.1
Initiating the unified collections API Request
To begin, integrate the unified Collections API endpoint and initiate a deposit transaction by making an API request with 2 additional fields
successful_url and failure_url.Sample API Request
2
Transaction Verification
A callback response containing an authoriztion url will be sent to your configured URL. Open this authorization url in your browser of choice to proceed with the payment.
3
Handling Transaction Status
Once the transaction request has been processed, you will receive a callback with the transaction details. Alternatively, you can query the transaction status endpoint periodically (recommended for 2 minutes) to check for updates on the transaction status.
OTP Verification (Ivory Coast Orange Payins)
For Orange payins in Côte d’Ivoire, OTP verification is required. This ensures secure authorization of deposits initiated via our Collections API.How It Works
Step 1: Initiate a Deposit Request- Make a request to initiate a deposit using our collections api.
An OTP will be sent to the customer’s mobile number.

