Release Date: September 2026
TL;DR
- Added to API Reference: The Verify OTP endpoint (
POST /api/v4/niobi-unified-process-transaction), previously supported and announced in earlier releases, is now formally documented in the API Reference with interactive schemas, parameter definitions, and error codes.
- Clarified Two-Step Flow: Streamlined end-to-end guidance and sequence diagrams for corridors requiring interactive OTP authorization (e.g. Côte d’Ivoire Orange Money), clarifying the separation between Step 1 (
payment_token issuance) and Step 2 (OTP verification).
Updates & Improvements
Verify OTP Published in API Reference (/api/v4/niobi-unified-process-transaction)
Certain mobile money operators, such as Orange Money in Côte d’Ivoire (country_id: 3, currency: "XOF"), require the payer to generate or receive an authorization one-time password (OTP) before funds can be debited.
While this two-step capability was previously supported, Release 10.0.0 brings this endpoint into the core API Reference suite with full documentation, interactive testing, and clearer developer guidance:
The Two-Step Payment Flow
Step 1: Initiation (POST /api/v4/niobi-unified-collections)
Submit the standard signed collection payload specifying payment_method_type: "orange" and the customer’s mobile number:
Step 1 Response: Niobi returns an acknowledgement with payment_step: 1 and a payment_token:
In production, the authorization OTP is valid for 2 minutes.
Step 2: Verification (POST /api/v4/niobi-unified-process-transaction)
Prompt the customer to enter the OTP in your application, then dispatch a signed request containing the payment_token from Step 1 and the customer’s otp:
Step 2 Response: The endpoint completes debiting and returns the synchronous result with payment_step: 2:
A terminal asynchronous webhook callback (payment_step: 2, status: "success") is also dispatched to your callback_url.
Sandbox Testing
To test this flow in the sandbox environment:
- Initiate the collection with any Côte d’Ivoire test MSISDN.
- In Step 2, pass
"otp": "000000" to simulate a successful verification.
Documentation Links