Bank Transfer
Bank transfer is the most common way to pay in Nigeria. When the customer picks it, we create a temporary bank account for the session. The customer transfers the exact amount from any Nigerian bank, and the payment confirms automatically once the transfer arrives.
Identifier: bank_transfer (or bank in the inline SDK).
How it works
- The customer selects Bank Transfer.
- We create a temporary virtual account scoped to the session.
- The customer sees the account number, bank name, and account name.
- The customer transfers the exact amount from their banking app.
- We detect the transfer and confirm the payment.
- The session moves to completed and your webhook fires.
What the customer sees
Selecting the method returns the account details for the transfer:
json
{
"payment_method": "bank_transfer",
"account_number": "1234567890",
"bank_name": "Providus Bank",
"account_name": "ZevPay Checkout",
"amount": 500000,
"expires_at": "2026-01-01T12:30:00.000Z"
}amount is in kobo. bank_name reflects the bank that issued the account. account_name is your business name where available, otherwise "ZevPay Checkout".
Key details
- The account is valid for 30 minutes, matching the session.
- On a standard or inline session, the amount must match exactly. A different amount is rejected at the bank.
- On an invoice that allows partial payments, the customer may pay any amount up to the remaining balance.
- Confirmation is automatic. Your integration does not poll the bank. We confirm the session and send a webhook.
Verifying the payment
Confirm the payment from your server before fulfilling. See Verify Session and Payment Lifecycle.