Skip to content

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

  1. The customer selects Bank Transfer.
  2. We create a temporary virtual account scoped to the session.
  3. The customer sees the account number, bank name, and account name.
  4. The customer transfers the exact amount from their banking app.
  5. We detect the transfer and confirm the payment.
  6. 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.

ZevPay Checkout Developer Documentation