Monnify supports a range of payment methods so your customers can pay the way that suits them best. You can choose to offer all methods or restrict to specific ones per transaction.
The most popular payment method in Nigeria. When a customer selects this option, Monnify generates a dynamic virtual account number for that specific transaction. The customer transfers the exact amount to that account from any bank app or USSD code, and Monnify confirms the payment instantly.
bankCode when retrieving account details, Monnify also returns a USSD string the customer can dial.SDK key: "ACCOUNT_TRANSFER"
Customers can pay using their Mastercard, Visa, or Verve debit card. Monnify handles the card collection flow within the checkout modal, including 3D Secure authentication where required.
SDK key: "CARD"
Customers dial a bank-specific USSD code to authorize the payment directly from their phone, with no internet connection required. This is ideal for customers without smartphones or in low-connectivity areas.
bankCode is provided.SDK key: "USSD"
Customers enter their phone number to initialize a payment session. They then receive a prompt on their feature phone or smartphone to authorize the debit from their mobile money wallet.
SDK key: "PHONE_NUMBER"
A persistent virtual account number dedicated to a specific customer. Unlike the dynamic account used for one-time payments, a reserved account stays the same, and every transfer to it is automatically reconciled to that customer.
Best for:
See Reserved / Virtual Accounts for full integration details.
A "pull" payment method. The merchant creates a mandate and the customer authorizes it once. After that, Monnify can automatically debit the customer's bank account on a schedule without them needing to initiate each payment.
Best for:
See Direct Debit / Mandates for full integration details.
By default, all available payment methods appear on the checkout. You can restrict them per transaction using the paymentMethods array in either the SDK initialization or the Initialize Transaction API payload.
monnify-js for JavaScript, monnify-ts for TypeScript): pass paymentMethods: ["CARD", "ACCOUNT_TRANSFER"]"paymentMethods": ["ACCOUNT_TRANSFER", "USSD", "PHONE_NUMBER"]paymentMethods: [PaymentMethod.CARD, PaymentMethod.ACCOUNT_TRANSFER]Omitting paymentMethods shows all available methods. Passing an empty array will cause an error, so always include at least one method.
| Method | Checkout (SDK) | Checkout API | Reserved Account | Direct Debit |
|---|---|---|---|---|
| Bank Transfer | ✓ | ✓ | ✓ | — |
| Debit Card | ✓ | ✓ (PCI-DSS) | — | — |
| USSD | ✓ | ✓ | ✓ | — |
| Phone Number | ✓ | — | — | — |
| Direct Debit | — | — | — | ✓ |
Rate this page
How helpful is the content on this page?