Skip to content
HitchPay API Docs

VIRTUAL ACCOUNTS

Overview

Create virtual accounts for your customers, collect money into them, and reconcile the inflows. NGN accounts are issued instantly; foreign-currency (USD/EUR/GBP) accounts are issued by our partner ban

/v1/customer

All Customer Accounts & Collections endpoints live under this base path.

Use this section to

  • Enroll customers and submit their KYC documents
  • Generate NGN or foreign-currency (USD/EUR/GBP) virtual accounts
  • Track a customer's accounts and reconcile inflows into them

Response format

Success

{
  "status": "success",
  "message": "...",
  "data": { }
}

Error

{
  "status": "error",
  "code": "ERROR_CODE",
  "message": "..."
}

Currencies

NGN (default), USD, EUR, GBP.

Customer identity

Every customer has a uuid, returned at enrollment. Use it everywhere :uuid / customer_id appears in later calls.

Typical integration flow

  1. Enroll the customer to get their uuid.
  2. Submit KYC — one call per document type the target account requires.
  3. Check KYC status until the required items are approved.
  4. Generate an account in the currency you want.
    • NGN accounts come back active immediately.
    • USD/EUR/GBP accounts come back pending; wait for the account-created webhook (or account-failed).
  5. Money paid into the account credits your business wallet in that currency and fires a credit webhook.
  6. Reconcile any time by listing collections.

KYC requirements per account

Account currency Required (all must be approved)
NGN (via Safe Haven / Dot Bank) BVN
NGN (via 9PSB) BVN and NIN
USD / EUR / GBP A government ID (passport, national ID, or driver's license — with its document number) and proof of address

For USD/EUR/GBP, an approved BVN is optional — when present it's passed to the partner bank as the customer's bank identifier for NG nationals.

Note: Document-type KYC (passport, driver's license, national ID, proof of address) is accepted on submission, but the partner bank performs the authoritative review at account-issuance time and can still decline it — surfaced via the account-failed webhook.

Questions? Email [email protected]. Also on GitBook.