Skip to main content
Opay is a digital wallet used in Nigeria and Egypt. Customers pay from their Opay wallet balance and confirm each payment with Opay. Payrails processes Opay through two payment service providers (PSPs). The flow is the same with each one, but the supported countries and the required request fields differ. Pick a PSP below for its setup steps and request examples.

How an Opay payment works

Opay is a redirect wallet payment method:
  1. The customer selects Opay at checkout.
  2. Payrails returns a redirect URL from the PSP, and the customer goes to the Opay payment page.
  3. The customer confirms the payment from their Opay wallet.
  4. The PSP sends the customer back to your returnInfo URL.
  5. Payrails receives the final result from the PSP and updates the payment.
Each payment is single-use: the customer confirms every payment on its own. Payrails captures Opay payments immediately, so a successful payment is final. To return funds, refund the payment.

Supported currencies and countries

The supported countries depend on the PSP:
  • dLocal supports Nigeria and Egypt.
  • Flutterwave supports Nigeria only, with NGN (Nigerian naira) as the currency.

Integrate Opay

Choose the PSP that processes Opay for you. Each guide covers the PSP-side setup, the Payrails configuration and the request fields that PSP requires.

dLocal

Opay via dLocal

Flutterwave

Opay via Flutterwave

Compare PSPs

Neither PSP supports saving an Opay instrument or merchant-initiated transactions (MIT). Each Opay payment is a new customer-initiated payment.

Ways to integrate Opay

  • Payrails SDK: the Web SDK shows Opay when your workflow returns it as a payment option, and redirects the customer to the Opay payment page. To control how the redirect opens, listen for the actionRequired event.
  • Payrails API: call lookup payment options, then authorize with oPayWallet as the paymentMethodCode. Each PSP guide lists the meta fields that PSP requires.
In both cases, confirm the final result through webhook notifications or the execution status. Don’t treat the customer’s return to your success URL as proof of payment.
Last modified on October 2, 2026