OPay collection
Collect from customers via OPay in Nigeria. The customer approves a push prompt in their OPay app; you integrate using the same hosted checkout pattern as card collection.
For payment instructions returned directly in API responses (no hosted UI), use a deposit quote flow via Quotes with bank_code: "OPAY".
How it works
On method selection we send a collection request and the customer gets a push prompt in the OPay app. They approve in-app and the payment completes. No OTP, no redirect, no bank selection — just the payer's OPay phone number, passed as phone_number when initializing.
Initialize payment
POST /api/v1/client/checkout/initialize. Set currency to NGN and pass the payer's OPay phone number.
Authentication
Use Authentication for signing.
Request body (example)
Success response (shape)
Select the method
POST /api/v1/checkout/:access_code/select-method with {"method": "OPAY"}. The response confirms the collection request was sent:
Tell the customer to watch for the OPay prompt and approve it. If they miss it, selecting the method again sends a fresh request.
Quotes flow
OPay is not available through the quotes (create → accept) flow yet: quote
creation stores no payment network for fiat deposits, so an OPay quote cannot
be steered to the OPay path at accept time. Use hosted checkout above.
Confirm
Receive the final result via webhooks (source of truth) and store your reference with the returned transactionRef for reconciliation.