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 includesstepRequired: "redirect", send your customer to redirectUrl to
authorise the payment.
4. Verify the transaction status
Query with thetransactionId or your externalReference.
5. Handle webhooks
Redirect required
Testing in sandbox
Direct sandbox OPay charges are redirect-first — every initiation response includesstepRequired: "redirect" and a redirectUrl. Opening that URL completes the simulated
transaction.
See Testing direct collection APIs for the complete sandbox
flow.