When To Use Direct Charge
Backend-Driven Flows
Best for server-to-server payment initiation where you control the full transaction lifecycle.
Provider-Specific Inputs
Use when payment requires provider-specific fields like
network or customer OTP codes.Recurring / Embedded UX
Useful for tightly integrated experiences where redirect checkout is not preferred.
Endpoints
| Method | Endpoint | Purpose |
|---|---|---|
GET | /payments/v1/payments/direct-charge/{provider}/properties | Fetch provider-specific properties (optional for some providers) |
POST | /payments/v1/payments/direct-charge | Initiate direct charge |
GET | /payments/v1/payments/verify/{reference} | Verify final transaction status |
Integration Steps
Pick provider slug
Select a valid provider from Supported Providers.
Fetch provider properties (optional)
For providers like Pawapay, fetch required properties (for example network values) before charging.
Send direct charge request
Call the direct-charge endpoint with
provider, amount, and customerInput.Fetch Provider Properties (Optional)
Direct Charge Request
Request Fields
| Field | Type | Required | Description |
|---|---|---|---|
provider | string | Yes | Provider slug (for example mtn-momo-ivory-coast) |
amount | integer | Yes | Amount in minor units (no decimals) |
customerInput | object | Yes | Provider/customer fields (for example phoneNumber) |
reference | string | Recommended | Unique merchant reference |
webhook | string | No | Override webhook for this transaction |
narration | string | No | Transaction description |
metadata | object | No | Custom metadata returned downstream |
Action Types and Handling
processing
processing
Customer/provider interaction is in progress (for example USSD/STK authorization pending).
Keep payment state pending and wait for webhook/verification final status.
redirect
redirect
Redirect customer to provider URL (usually at
data.data.link).
Do not treat redirect completion alone as payment success.bank-transfer
bank-transfer
Display returned bank transfer instructions (account name/number, amount, expiry).
Wait for webhook/verification before marking success.
Amount Rule (Important)
100.00 NGN->100002500.75 NGN->250075
Final Status Confirmation
For order fulfillment, rely on:- Webhooks for async payment updates.
GET /payments/v1/payments/verify/{reference}for backend verification.
Related Docs
Direct Charge Flows
Understand
processing, redirect, and pre-OTP patterns.Example Payloads
Copy provider-specific request examples.
Supported Providers
Provider slugs, limits, and country coverage.