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 AccountHow It Works

How It Works

The end-to-end lifecycle of a virtual account payment from creation through to settlement notification.

Payment Flow

  1. 1

    Create a Virtual Account

    Your server calls POST /virtual/new-account with a unique reference, amount (if applicable), account type, and callback URL.

  2. 2

    KongaPay generates an account number

    KongaPay generates and returns a virtual account number linked to your settlement account.

  3. 3

    Present to your customer

    You present the virtual account number and bank name (KongaPay) to your customer.

  4. 4

    Customer initiates transfer

    The customer initiates a bank transfer to the virtual account from any Nigerian bank.

  5. 5

    KongaPay receives inflow

    KongaPay receives the inflow via NIP/NPS, identifies the virtual account, and maps it to your settlement account.

  6. 6

    Amount validation

    For nonstatic and static accounts, KongaPay validates that the amount matches exactly. Static-flex skips this check.

  7. 7

    Callback fired

    The transaction is processed and stored. KongaPay fires a POST callback to your webhook URL with the payment result.

  8. 8

    Reconciliation

    Your server receives and validates the callback, then reconciles using external_reference and session_id.

Idempotency

Every virtual account request requires a unique reference (external_reference). Submitting the same reference twice will return a 409 Conflict โ€” no duplicate account is created. This protects you from accidental double-creation caused by network retries.

๐Ÿ’ก
Generate a unique reference per transaction on your server before calling the API. Store it locally for status checks and reconciliation.

Data Flow Diagram

Your ServerPOST /virtual/new-accountโ†’KongaPay API
KongaPay APIaccount_number returnedโ†’Your Server
Your Serverpresent account numberโ†’Customer
Customerbank transferโ†’Nigerian Bank
Nigerian BankNIP/NPS inflowโ†’KongaPay
KongaPayPOST callbackโ†’Your Webhook

Key Fields

external_reference

Your unique reference โ€” use to track and reconcile payments

session_id

NIP session ID assigned by interbank network โ€” use for deduplication

account_number

The virtual account number to share with your customer

callback_url

Your webhook URL where KongaPay will POST payment notifications