Bank Account Verification in Zambia

Verify a Zambian bank account and retrieve the account holder's name before initiating a transfer.

Prerequisites

You'll need an API key. See Quickstart or Authentication if you don't have one yet.

Note: Verification endpoints use an API key in the X-API-Key header — not a Bearer token.


Make the verification request

curl -X POST https://api.lira.com/api/v1/verify/account \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "accountNumber": "1234567890",
    "country": "ZM",
    "bankCode": "023"
  }'

Request body fields

Field Type Required Description
accountNumber string Yes The bank account number to verify.
country string Yes Always ZM.
bankCode string Yes The bank's unique identifier. See the supported banks table below.
mode string No sync (default) or async. Use async to receive the result via webhook.

Supported banks

Use one of the following bankCode values when verifying a Zambian bank account.

bankCode Bank Name
002 Absa Bank
003 Access Bank
005 Access Bank (formerly ATMA)
006 Bank of China
007 Citibank
008 Ecobank
010 Indo Zambia Bank
011 Investrust Bank
012 First Alliance Bank
013 First Capital
014 FNB
016 Stanbic Bank
017 Standard Chartered Bank
022 United Bank for Africa
023 Zanaco
025 ZICB
028 AB Bank
032 Natsave
033 Access Bank
036 Bayport
037 Zambia National Building Society

Read the result

Successful verification

{
  "id": "ver_a1b2c3d4-...",
  "status": "success",
  "verificationType": "ACCOUNT_NUMBER",
  "identifier": "1234567890",
  "country": "ZM",
  "verifiedAt": "2026-04-08T10:05:00.000Z",
  "verified": true,
  "accountNumber": "1234567890",
  "accountName": "John Banda",
  "bankCode": "023",
  "bankName": "Zanaco"
}

Note: Zambian bank account verifications do not return address fields (state, lga). Only accountName, bankCode, and bankName are returned on success.

Failed verification

{
  "id": "ver_a1b2c3d4-...",
  "status": "failed",
  "verificationType": "ACCOUNT_NUMBER",
  "identifier": "1234567890",
  "country": "ZM",
  "verifiedAt": "2026-04-08T10:05:00.000Z",
  "verified": false,
  "error": {
    "code": "ACCOUNT_NOT_FOUND",
    "message": "No account found for the provided details"
  }
}

Note: A 200 OK HTTP response does not mean the verification succeeded. Always check the status field.


Error handling

error.code Cause Action
ACCOUNT_NOT_FOUND Account number not found at the specified bank Ask the user to check their account number and bank code
INVALID_BANK_CODE Bank code not recognised Check the bankCode against the supported banks table
INVALID_ACCOUNT_NUMBER Account number format is invalid Validate format before submitting
PROVIDER_ERROR Upstream system returned an error Retry with exponential backoff
PROVIDER_TIMEOUT Upstream system timed out Retry — transient error

For the full error code reference, see Errors.


Next steps