Skip to main content
Use OPay Charge to collect Nigerian naira payments through OPay. Charges are processed asynchronously — after you initiate one, Zerocash briefly checks for the first actionable state before responding.
Use Bank Transfer instead when the customer should pay into a temporary account rather than through an OPay wallet.

Happy path

1

Initiate the charge

Send the amount, an optional customer email, and your externalReference.
2

Redirect if asked

If the response carries stepRequired: "redirect", send the customer to redirectUrl.
3

Confirm

Listen for the webhook or query the transaction status.
4

Fulfil

Only once chargeStatus is successful.

1. Initiate the charge

Send a request to Opay Charge.
Response

2. Handle the initial response

The initial response comes back in one of two states.

3. Redirect the customer

When the response includes stepRequired: "redirect", send your customer to redirectUrl to authorise the payment.
After the customer finishes, do not rely on the redirect back to your application. Confirm the final status through a webhook or Get Transaction.

4. Verify the transaction status

Query with the transactionId or your externalReference.

5. Handle webhooks

Redirect required

Testing in sandbox

Direct sandbox OPay charges are redirect-first — every initiation response includes stepRequired: "redirect" and a redirectUrl. Opening that URL completes the simulated transaction. See Testing direct collection APIs for the complete sandbox flow.