Supported Payment Methods & Payload Requirements
Payment Flow: How It Works
Cote d’Ivoire features three distinct deposit collection flows depending on the operator:Deposits (Collections)
1. Instant Push Prompt Flow (MTN & Moov)
- Initiation: Submit a POST request to Unified Collections with
payment_method_type: "mtn"or"moov",country_id: 3,currency: "XOF",amount, andmobile(format:225XXXXXXXXXX). - Handset Prompt: The customer immediately receives an on-screen prompt on their phone to enter their PIN and approve the debit.
- Response & Callback: Niobi returns an initial response (
payment_step: 1). Upon user approval, Niobi sends an asynchronous webhook callback (payment_step: 2,status: "success").
2. Wave Redirect Flow (payment_method_type: "wave")
- Initiation: Send a POST request to Unified Collections with
payment_method_type: "wave",country_id: 3,currency: "XOF",amount,successful_url, andfailure_url. - Redirection URL: Niobi generates and returns an
authorization_url(payment_step: 1). Redirect the customer to this URL. On mobile, it opens directly in the Wave app; on desktop, the page shows a QR code the customer can scan with the Wave app on their phone to authorize instead. - Completion: Once the customer approves or cancels the payment in Wave, they’re redirected to your
successful_urlorfailure_urlaccordingly, and Niobi delivers the terminal webhook callback (payment_step: 2).
3. Orange Money OTP Flow (payment_method_type: "orange")
This is a two-step flow, the OTP is generated by the customer after you’ve already initiated the request, not before:
- Step 1, Initiate: Submit a collection request with
payment_method_type: "orange"and the customer’s phone number inmobile. Niobi returns apayment_token(payment_step: 1). - Generate the OTP: Ask the customer to generate their OTP. They dial a USSD code on their Orange Cote d’Ivoire mobile handset to receive it via a USSD prompt on their phone (generating it through the Orange app is also possible but being phased out). The OTP is valid for 2 minutes.
- Step 2, Verify: Once you have the OTP from the customer, submit it together with the
payment_tokenfrom Step 1 toPOST /api/v4/niobi-unified-process-transaction. - Completion: The customer is debited and Niobi delivers the terminal webhook callback (
payment_step: 2). Nosuccessful_urlorfailure_urlis needed for this flow.

The USSD prompt the customer sees on their handset after dialing the code, showing their one-time OTP.
Payouts (Disbursements)
When initiating a payout to Cote d’Ivoire via the Unified Payments endpoint, pass the appropriatepayment_method_type and its corresponding parameters:
- MTN MoMo: Pass
payment_method_type: "mtn"with anmtnarray containingphone_number. - Orange Money: Pass
payment_method_type: "Orange"with anOrangearray containingphone_number. - Moov Money: Pass
payment_method_type: "moov"with aMoovarray containingphone_number. - Wave: Pass
payment_method_type: "wave"with aWavearray containingphone_number.
Sample Requests & Responses
1. MTN MoMo Deposit Request (STK Prompt)
2. Wave Deposit Request (Redirect Flow)
Wave Deposit Response (with Authorization URL)
3. Orange Money Deposit Request (OTP Flow, Step 1: Initiate)
Initial Response (Returns payment_token)
Orange Money Deposit Request (OTP Flow, Step 2: Verify)
Once the customer has generated their OTP, submit it with thepayment_token from the initial response to POST /api/v4/niobi-unified-process-transaction:
Payout Request (MTN MoMo)
Payout Response (Initiation)
Webhook/Callback Examples
Successful Deposit Callback
Successful Payout Callback
Try it
Try it: POST /api/v4/niobi-unified-collections
Collections API reference for Cote D’Ivoire deposits.
Try it: POST /api/v4/niobi-unified-payments
Payments API reference for Cote D’Ivoire payouts.


