Bank Account Verification in Tanzania

Verify a Tanzanian bank account and retrieve the account holder's name and identity details before initiating a transfer.

Tanzania account verification routes through the national interoperability hub, which connects 19 banks and 4 mobile-money operators across the country. When the hub has it, the response includes the account holder's identity field โ€” typically a TIN for business accounts and a TIN or NIN for personal accounts.

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": "2000000001",
    "country": "TZ",
    "bankCode": "003"
  }'

Request body fields

Field Type Required Description
accountNumber string Yes The bank account number to verify.
country string Yes Always TZ.
bankCode string Yes The bank's unique identifier. See the supported banks table below.

Note: mode: "async" is not supported for Tanzania in v1. All TZ verifications are synchronous.


Supported banks

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

bankCode Institution
003 CRDB Bank
008 NMB Bank
013 EXIM Bank
NBC National Bank of Commerce
STB Stanbic Bank Tanzania
DTB Diamond Trust Bank
BOA Bank of Africa
ABSA ABSA Bank Tanzania
I&M I and M Bank
ECO Ecobank Tanzania
AMA Amana Bank
AZA Azania Bank
DCB DCB Commercial Bank
ABC Banc ABC Tanzania
MKO Mkombozi Commercial Bank
TPB TPB Bank

Read the result

Successful verification

{
  "id": "a1b2c3d4-...-...-...-...",
  "status": "success",
  "verificationType": "ACCOUNT_NUMBER",
  "identifier": "2000000001",
  "country": "TZ",
  "verifiedAt": "2026-04-08T10:05:00.000Z",
  "verified": true,
  "accountNumber": "2000000001",
  "accountName": "Test Shekimweri",
  "bankCode": "003",
  "identity": {
    "idType": "TIN",
    "idValue": "503123579"
  }
}

Note: The identity field is returned when the hub has it. Most personal accounts return a TIN; some business accounts may omit this field. The idValue is returned in full in the API response and is masked to the last 4 digits in application logs.

Failed verification

{
  "id": "a1b2c3d4-...-...-...-...",
  "status": "failed",
  "verificationType": "ACCOUNT_NUMBER",
  "identifier": "2000000001",
  "country": "TZ",
  "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