POST /payments/v1/payments/direct-charge
Common Payload (Most Providers)
Orange Pre-OTP Payload
Orange providers may require a customer-generated code before request submission.USSD guidance
- Orange Senegal:
#144#391# - Orange Mali:
#144#77# - Orange Burkina Faso:
*144*4*6*amount#
Field Reference
| Field | Type | Required | Notes |
|---|---|---|---|
reference | string | Recommended | Must be unique per transaction |
amount | integer | Yes | Minor-unit value only |
provider | string | Yes | Use slug from Supported Providers |
webhook | string | No | Per-request webhook override |
narration | string | No | Human-readable transaction note |
customerInput.phoneNumber | string | Usually Yes | Format based on provider/country |
customerInput.network | string | Provider-specific | Required for some specific flows like bank transfer |
customerInput.customerCode | string | Provider-specific | Required for Orange pre-OTP flows |
Validation Checklist Before Sending
Amount format
Amount format
Send integer minor-unit amounts only. Decimals are not supported.
Provider slug
Provider slug
Ensure
provider matches a valid slug from Supported Providers.Required customerInput fields
Required customerInput fields
Confirm provider-specific fields exist (
phoneNumber, network, customerCode) before sending request.Reference uniqueness
Reference uniqueness
Generate unique references to prevent duplicate transaction errors.
Related Docs
Direct Charge API
Request flow and response/action handling.
Mobile Money Flows
Processing, redirect, and pre-OTP behavior.
Amount Specification
Minor-unit conversion rules for all amounts.