We use cookies to optimize your user experience. All information shared with us through cookies is secure and covered by our data privacy obligations. To learn more, view our privacy policy.
KongaPay Logo
KongaPayDevelopers
v1.0
DevelopersVirtual AccountVirtual Account Types

Virtual Account Types

KongaPay supports three types of virtual accounts. Choosing the right type depends on whether your payment amounts are fixed or flexible, and whether the account should be single-use or reusable.

Behavior Matrix

TypeAmount RequiredAmount Must MatchAuto ExpiryCancel via API
nonstatic✅ Yes✅ Yes✅ Yes✅ Yes
static✅ Yes✅ Yes❌ No❌ No
static-flex❌ No❌ No❌ No❌ No

Nonstatic

nonstaticOne-time use · Fixed amount · Auto-expiry

A new, unique account number is generated for each payment request. The amount is fixed at creation and must be matched exactly by the payer. The account expires automatically after the time window you define.

Best for: one-time payments such as order checkouts, invoice settlements, or session-based collections.

Example — Order value: ₦5,000

Account Number5001234567
Expected Amount₦5,000
Amount SentResult
₦5,000✅ Accepted — exact match
₦4,000❌ Rejected — amount mismatch
₦6,000❌ Rejected — amount mismatch
The account automatically expires after the duration set in expiers_in. Any payment attempt after expiry will be rejected.

Static

staticPermanent · Fixed amount · No cancel via API

The account number is permanent and reused across payments. The expected amount is fixed — every payment must match it exactly. The account does not expire and cannot be cancelled via API.

Best for: a consistent, reusable account tied to a fixed recurring charge.

Example — Account: 5008888888 | Expected: ₦5,000

Amount SentResult
₦5,000✅ Accepted — exact match
₦6,000❌ Rejected — amount mismatch

Static Flex

static-flexPermanent · Any amount · Open-ended

The account number is permanent and accepts any payment amount. There is no predefined amount — amount validation is intentionally bypassed for this type.

Best for: open-ended collections such as wallet top-ups, donations, or marketplace payments where the amount varies per transaction.

Example — Account: 5007777777 — accepts any amount

₦1,000₦5,000₦50,000₦200,000

Quick Comparison

TypeAccount NumberPayment Amount
nonstaticNew number per requestFixed — must match exactly
staticPermanent, reusedFixed — must match exactly
static-flexPermanent, reusedFlexible — any amount accepted