Pay with Bank is a payment method that enables customers to pay directly from their bank account without leaving your checkout experience.
Unlike a traditional bank transfer, where the customer copies a virtual account number, opens their banking app, and completes the transfer manually, Pay with Bank streamlines the process. The customer simply selects their bank, enters their account number, verifies the payment with a One-Time Password (OTP), and authorizes the transaction—all within a secure authentication flow.
Once the payment is successfully authorized, Monnify processes the transaction and notifies your application through the transaction verification and webhook flow.
| Feature | Bank Transfer | Pay with Bank |
|---|---|---|
| Customer copies a virtual account number | Yes | No |
| Customer opens their banking app | Yes | No |
| Customer enters their account number | No | Yes |
| Customer authorizes with an OTP | No | Yes |
| Real-time payment confirmation | Yes | Yes |
| Standard Monnify webhooks | Yes | Yes |
Pay with Bank follows the same transaction lifecycle as every other Monnify payment method. The only difference is the customer authentication experience.
Pay with Bank supports two integration methods.
| Integration Method | Description |
|---|---|
| Hosted Checkout (Recommended) | Add PAY_WITH_BANK to the paymentMethods array. Monnify handles the complete customer authentication experience. |
| Direct API Integration | Build your own payment experience by integrating directly with the Pay with Bank APIs. |
Regardless of the integration method you choose, transaction verification and webhook notifications remain the same.
If you're already using the Monnify Checkout (Web SDK or Checkout URL), enabling Pay with Bank requires no additional API calls.
Simply include PAY_WITH_BANK in the paymentMethods array when initializing your transaction.
When the checkout page is displayed, customers will see Pay with Bank as one of the available payment methods alongside any others you've enabled.
After selecting Pay with Bank, the customer:
No additional backend integration is required when using the Monnify Checkout.
Choose this option if you're building your own payment experience and are not using the Monnify hosted checkout.
Initialize a Monnify transaction using the Transaction Initialization API. The response includes a transactionReference, which is required for the next step.
The authorizationUrl contains the secure bank authentication page. Redirect your customer to this URL to complete authentication.
The customer will:
Returning from the authorization page does not indicate that the payment was successful. Always verify the final transaction status before fulfilling an order.
You can verify payments in one of two ways:
You can also retrieve the latest Pay with Bank attempt for a transaction using the status endpoint.
Pay with Bank currently supports:
| Bank | Bank Code |
|---|---|
| Moniepoint | 50515 |
Support for additional banks will be added over time. Existing integrations will continue to work without modification as new banks become available.
transactionReference for reconciliation and support.PAY_WITH_BANK to thepaymentMethods array—no additional integration is required.authorizationUrl to complete authentication.