v2.0 Go to Console
Financial Rails Nigeria · NIBSS 2 Tiers

BVN Verification

Verify Bank Verification Numbers (BVN) against the NIBSS central database in real time. Confirm that a BVN belongs to a specific individual, retrieve their full biographical profile, and gate financial onboarding flows with a single API call.

Two tiers are available: Basic for fast identity confirmation (names, DOB, phone, Base64-encoded biometric photo), and Advance for full KYC disclosure including the Base64-encoded biometric photo — required for face-matching workflows.

< 1.5s

Typical latency

NIBSS

Authoritative source

11-digit

BVN format

Sandbox mode available

Use a test key prefixed with sk_test_ to run requests against a sandboxed dataset without consuming wallet credits or hitting the live NIBSS rails.

Basic Verification

POST /v1/ng/bvn-basic/ Requires API key

Confirms that a BVN belongs to a real registered individual and returns core biographical data. Use this tier when you need identity confirmation without biometric photo retrieval.

Returns name (first, last, middle), date of birth, gender, and registered phone number.

Request payload

Send as Content-Type: application/json with a valid Authorization: Bearer <api-key> header.

Field Description
id_number string · Required The 11-digit Bank Verification Number to look up. Must be numeric.
Example: "22123456789"

Response fields

Top-level envelope

Field Type Description
success boolean true when the lookup completed without a fault. A false value means the request itself failed — not that the BVN was invalid.
code string Machine-readable result. BVN_VERIFIED on success. See Error Codes for failure values.
message string Human-readable status message.
verification_type string Always "BVN" for this endpoint.
data object BVN record from the NIBSS database. See data object below.
meta.request_id string Unique request identifier. Include in all support queries and audit logs.
meta.timestamp string UTC response time in ISO 8601 format.
meta.api_version string API version used to serve this request.

data object

Field Type Description
bvnstringThe BVN as registered in NIBSS.
firstnamestringFirst name as registered.
lastnamestringSurname as registered.
middlenamestringMiddle name. May be an empty string if not registered.
birthdatestringDate of birth. Format: DD-MM-YYYY.
genderstring"Male" or "Female".
phonestringPhone number registered at BVN enrolment.
photostringBase64-encoded biometric photo. Present on Advance tier only.
match_resultstringAlways "CONFIRMED" on a successful lookup.

Advance Verification

POST /api/v1/ng/bvn-advance/ Coming Soon

Retrieves the complete NIBSS record — including the Base64-encoded biometric photo, residential address, and full enrolment details. Required for face-matching workflows.

The Advance endpoint is required for biometric face-matching workflows. Chain the returned photo field with the Liveness Check and Face Comparison endpoints for a full identity verification flow.

Error Codes

HTTP Code Cause & Resolution
400BVN_NOT_FOUNDThe BVN does not exist in NIBSS. Check for transcription errors — must be exactly 11 digits.
400BVN_VERIFICATION_FAILEDThe NIBSS lookup returned an error outside of a not-found case. Verify the BVN format and retry.
400API_COST_NOT_FOUNDService pricing could not be resolved for your organisation. Contact support.
401UNAPPROVED_ORGANISATIONYour organisation has not been approved. Complete the approval process in the Console before making live requests.
401SUBSCRIPTION_REQUIREDYour account is not subscribed to the BVN service. Enable it in the Console under Services.
402INSUFFICIENT_FUNDSYour organisation's wallet balance is too low. Top up in the Console before retrying.
500SERVER_ERRORUnexpected error connecting to the identity provider. Retry with exponential backoff. Include meta.request_id in any support query.
503SERVICE_UNAVAILABLEThe NIBSS verification service is temporarily unreachable. Retry after a short delay.
504TIMEOUTThe NIBSS database request timed out. Retry once — if it continues, check the API status page.

Features & Benefits

Real-time sovereign rail

Connected directly to the NIBSS central database — the same authoritative source used by Nigerian banks. Results are live, not cached or stale.

🧪

Sandbox mode

Test the full integration cycle using sk_test_ keys against sandboxed data without consuming credits or hitting production infrastructure.

🗂️

Tiered access

Choose the data depth you need. Basic for lightweight confirmation. Advance for full biometric KYC including the profile photo for face matching.

📋

Audit-ready logging

Every request returns a unique request_id and ISO 8601 timestamp — ready to attach to compliance reports and KYC audit trails.

Recommended KYC flow

  1. Call BVN Basic to confirm the identity record exists and retrieve biographical data.
  2. Call the Liveness Check API to confirm the selfie was captured from a real, live person.
  3. Call BVN Advance (or Face Comparison) to match the selfie against the NIBSS biometric photo.

This three-step pattern satisfies CBN KYC Tier 2 requirements and covers both identity fraud and presentation attack vectors.