Skip to content
Lira APILira API

Identity/KYC Verification in Nigeria

Bank Verification Number (BVN)

Verify a Nigerian Bank Verification Number (BVN) and retrieve the holder's identity details: full name, date of birth, phone number, and address.

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. Verification POST requests also require an Idempotency-Key header.


Make the verification request

Submit the BVN via the identity verification endpoint. Set country to NG and idType to bvn.

Terminal
curl -X POST https://api.lira.com/api/v1/verify/identity \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Idempotency-Key: YOUR_IDEMPOTENCY_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "country": "NG",
    "idType": "bvn",
    "idNumber": "12345678901"
  }'

Request body fields

FieldTypeRequiredDescription
countrystringYesAlways NG.
idTypestringYesAlways bvn.
idNumberstringYesThe 11-digit BVN to verify.
modestringNosync (default) or async. Use async to receive the result via webhook.
webhookUrlstringNoOverride webhook URL for this request. Only used in async mode.
validationobjectNoOptional fields to match against the BVN record. See validation section below.

Optional validation

You can include a validation object to check whether specific fields match the BVN record. The response will include a validation object indicating whether each field matched.

Terminal
curl -X POST https://api.lira.com/api/v1/verify/identity \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Idempotency-Key: YOUR_IDEMPOTENCY_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "country": "NG",
    "idType": "bvn",
    "idNumber": "12345678901",
    "validation": {
      "firstName": "Jane",
      "lastName": "Doe",
      "dateOfBirth": "1990-01-15"
    }
  }'
Validation fieldTypeDescription
firstNamestringFirst name to match against the BVN record.
lastNamestringLast name to match against the BVN record.
dateOfBirthstringDate of birth in YYYY-MM-DD format.
selfiestringBase64-encoded selfie image for facial comparison.

Read the result

Successful verification

JSON
{
  "id": "c3d4e5f6-...-...-...-...",
  "status": "success",
  "verificationType": "BVN",
  "idType": "bvn",
  "country": "NG",
  "identifier": "12345678901",
  "verifiedAt": "2026-03-15T14:30:00.000Z",
  "verified": true,
  "firstName": "Jane",
  "lastName": "Doe",
  "middleName": "Amara",
  "dateOfBirth": "1990-01-15",
  "phoneNumber": "08012345678",
  "gender": "Female",
  "nin": "12345678901",
  "registrationDate": "2015-06-20",
  "address": {
    "state": "Lagos",
    "lga": "Ikeja",
    "town": "Oregun",
    "street": "1 Test Street"
  }
}

Successful verification with validation

When you include a validation object in the request, the response includes match results for each field you submitted:

JSON
{
  "id": "c3d4e5f6-...-...-...-...",
  "status": "success",
  "verificationType": "BVN",
  "idType": "bvn",
  "country": "NG",
  "identifier": "12345678901",
  "verifiedAt": "2026-03-15T14:30:00.000Z",
  "verified": true,
  "firstName": "Jane",
  "lastName": "Doe",
  "dateOfBirth": "1990-01-15",
  "validation": {
    "firstName": { "value": "Jane", "match": true },
    "lastName": { "value": "Doe", "match": true },
    "dateOfBirth": { "value": "1990-01-15", "match": true }
  }
}

Failed verification

JSON
{
  "id": "c3d4e5f6-...-...-...-...",
  "status": "failed",
  "verificationType": "BVN",
  "idType": "bvn",
  "country": "NG",
  "identifier": "12345678901",
  "verifiedAt": "2026-03-15T14:30:00.000Z",
  "verified": false,
  "error": {
    "code": "IDENTITY_NOT_FOUND",
    "message": "No identity record found for the provided BVN"
  }
}

Note

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


Response fields reference

FieldTypeDescription
idstringUnique verification ID. Store this to retrieve the result later or correlate with a webhook.
statusstringsuccess, failed, error, or pending (async only).
verificationTypestringAlways BVN for this endpoint.
idTypestringAlways bvn.
countrystringAlways NG.
identifierstringThe BVN submitted in the request.
verifiedbooleantrue if the BVN was confirmed; false otherwise.
verifiedAtstringISO 8601 timestamp of when the verification completed.
firstNamestringHolder's first name. Present when status is success.
lastNamestringHolder's last name. Present when status is success.
middleNamestringHolder's middle name. May be null.
dateOfBirthstringDate of birth in YYYY-MM-DD format. Present when status is success.
phoneNumberstringRegistered phone number. Present when status is success.
genderstringGender as recorded in the BVN registry.
ninstringNational Identification Number linked to the BVN.
registrationDatestringDate the BVN was registered.
enrollmentBranchstringBank branch where the BVN was enrolled. May be null.
enrollmentInstitutionstringFinancial institution where the BVN was enrolled. May be null.
levelOfAccountstringAccount level classification. May be null.
addressobjectAddress on file. Fields may be null depending on the record.
address.statestringState of residence.
address.lgastringLocal government area.
address.townstringTown or city.
address.streetstringStreet address.
validationobjectPresent only when validation was included in the request. Contains match results.
errorobjectPresent when status is failed or error.
error.codestringMachine-readable failure code. See error handling table below.
error.messagestringHuman-readable description.

Nigeria-specific notes

  • A BVN is an 11-digit number issued by the Central Bank of Nigeria. Validate the length before submitting.
  • BVN verification returns significantly more identity data than bank account or phone number verification. Use it for KYC and onboarding flows where you need the holder's full profile.
  • The nin field (National Identification Number) is linked to the BVN and returned when available.

Error handling

error.codeCauseAction
IDENTITY_NOT_FOUNDBVN not found in the registryAsk the user to check their BVN is correct
INVALID_ID_NUMBERBVN format is invalidEnsure the BVN is exactly 11 digits
UNSUPPORTED_ID_TYPEidType is not supported for the given countryUse bvn for Nigeria
UNSUPPORTED_COUNTRYCountry code not supported for identity verificationCurrently only NG is supported
PROVIDER_ERRORUpstream system returned an errorRetry with exponential backoff
PROVIDER_TIMEOUTUpstream system timed outRetry: transient error

For the full error code reference, see Errors.


Next steps