Skip to main content
POST
Unified Collections

Integration Quick Reference

List of Supported Countries

Coming Soon
For NGN bank and virtual account deposits, the expected amount is processed and any overpayment is automatically reversed to the customer on successful deposit. Send exact amounts to prevent unnecessary reversals.

NGN Virtual Account - Supported Bank Codes

Pass one of the following codes as bank_code in your request to select the bank that will issue the virtual account.
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.

Special Collection Flows

Some corridors don’t follow the standard STK-push flow above: they require redirect URLs, customer national ID numbers, dynamic virtual bank accounts, or a secondary OTP verification step. For complete architectural walkthroughs, UX screenshots, and lifecycle diagrams, see:
There is no "eft" payment method value. South African EFT collections use payment_method_type: "bank_eft", shown below.
payment_method_type: "bank_eft"Returns an authorization_url where the customer approves the payment directly with their bank (ABSA, FNB, Standard Bank, Nedbank, Investec, Bidvest, TymeBank).Documentation & Guides:
Initial Response: Returns "authorization_url": "https://..." and "payment_step": 1. Redirect the customer to this URL. For a full walkthrough of redirect handling and bank selection, see the South Africa Country Guide.

Body

application/json

Signed request envelope. All root fields except params are authentication fields.

client_id
string
required

Your Client ID from the Niobi Dashboard under Workspace > Integrations.

sender
string
required

The exact title of your integration as registered in the Dashboard. Case-sensitive.

timestamp
integer
required

Unix timestamp in seconds at the time of signing. Must match the value used to generate the signature.

salt
string
required

A unique random string you generate per request. Must be the same value used when generating the signature.

signature
string
required

SHA-256 signature computed from this payload. Generate via the Signature endpoint or your own backend.

params
object
required

Response

Success

success
boolean
Example:

true

message
string

Explains the action payers need to take to complete the transaction. Wording varies by currency: NGN returns bank-transfer instructions, ZAR returns a payment link prompt, and every other currency returns the phone-approval prompt.

Example:

"We've sent a verification prompt to your phone. Please approve it to complete your payment. / Please use the following bank details for making a deposit via your preferred banking application (NGN) / Please use the link provided to finish your payment (ZAR)"

data
object
status_code
string
Example:

"000000"