Verify a bank account
Verify a bank account number and retrieve the account holder's name and details. Supports sync and async modes.
Headers
- Type: stringIdempotency
- Key min length:1max length:255requiredRequired for verification mutations. Use a unique printable ASCII key per logical request; retries with the same key return the original response.
Body·
required
application/json
- Type: stringaccount
Number min length:4max length:15Pattern: ^\d+$requiredBank account number (digits only)
- Type: stringbank
Code min length:2max length:10requiredBank routing code for the account country
- Type: stringenumcountryrequired
ISO 3166-1 alpha-2 country code. Supported: NG, GH, ZM, TZ.
values- N
G - G
H - Z
M - T
Z
- Type: stringenummode
syncreturns the verification result in the response.asyncreturnspendingand delivers the final result via your registered webhooks (configure under/webhooks).values- sync
- async
Responses
- application/json
- application/json
- application/json
- application/json
Request Example for post/verify/account
curl https://api.lira.com/api/v1/verify/account \
--request POST \
--header 'Idempotency-Key: verify-request-20260504-001' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_SECRET_TOKEN' \
--data '{
"accountNumber": "0123456789",
"bankCode": "044",
"country": "NG",
"mode": "sync"
}'
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "success",
"verificationType": "ACCOUNT_NUMBER",
"identifier": "0123456789",
"country": "NG",
"verifiedAt": "2026-04-22T10:15:30.000Z",
"verified": true,
"origin": "api",
"accountNumber": "0123456789",
"accountName": "JANE DOE",
"bankCode": "044",
"bankName": "Access Bank",
"address": {
"town": "Ikeja",
"lga": "Ikeja",
"state": "Lagos",
"street": "15 Allen Avenue"
},
"identity": {
"idType": "NIN",
"idValue": "12345678901"
},
"error": {
"code": "ACCOUNT_NOT_FOUND",
"message": "Account number not found at the bank"
}
}