Idyntic Developer Documentation
Integrate predictable Nigerian identity verification into your applications.
Quickstart Guide
1. Generate a Test API key (id_test_...) from Developer Key Management.
2. Pass your secret token in the Authorization: Bearer header.
3. Execute your first verification or wallet balance query.
Authentication & Permission Scopes
Public API calls authenticate using Bearer tokens in the HTTP Authorization header. API keys are strictly environment-specific and scope-restricted.
| Scope Name | Description | Applicable Routes |
|---|---|---|
| BALANCE_READ | Read organization wallet balance in NGN kobo. | GET /api/public/v1/balance |
| NIN_VERIFY | Submit 11-digit NIN identity lookups via idempotency. | POST /api/public/v1/verifications/nin |
| BVN_VERIFY | Submit 11-digit BVN identity lookups via idempotency. | POST /api/public/v1/verifications/bvn |
Request Identity & Idempotency
Charged operations require caller-generated Idempotency-Key headers (8 to 128 characters) to guarantee zero duplicate charges across network retries.
Caller UUID Key
Attach an Idempotency-Key header to identify the logical charged operation.
Atomic Locking
Idyntic locks the key atomically during upstream provider communication. Concurrent retries receive 409 IDEMPOTENCY_IN_PROGRESS with Retry-After: 2.
24h Safe Replay
Repeating the identical request body returns the cached response with Idempotency-Replayed: true and 0 kobo additional charge.
Idempotency Key Utility & Helper
Generate a sample key for testing or inspect how to generate dynamic keys in your client or application codebase.
API Pricing & Billing Rules
Category: Getting Started. Real-time per-call billing schedule for identity lookups and document generation. All rates are calculated in Nigerian Kobo (1 NGN = 100 Kobo). Sandbox test mode is free with unlimited requests.
Standard API Pricing Schedule
| Operation / Endpoint | Method | Required Scope | Successful Lookup (200) | Unresolved / Not Found |
|---|---|---|---|---|
NIN By NIN /api/public/v1/verifications/nin | POST | NIN_VERIFY | ₦100.00 (10,000 kobo) | ₦100.00 (10,000 kobo) |
NIN By Phone /api/public/v1/verifications/nin/phone | POST | NIN_VERIFY | ₦120.00 (12,000 kobo) | ₦100.00 (10,000 kobo) |
BVN By BVN /api/public/v1/verifications/bvn | POST | BVN_VERIFY | ₦110.00 (11,000 kobo) | ₦100.00 (10,000 kobo) |
BVN Slip Preview (Image/Base64) /api/public/v1/verifications/bvn/slip/preview | POST | BVN_VERIFY | ₦0.00 (Free) | ₦0.00 (Free) |
BVN Slip PDF Download /api/public/v1/verifications/bvn/slip/pdf | POST | BVN_VERIFY | ₦100.00 (First generation; free re-downloads) | ₦0.00 |
Get Wallet Balance /api/public/v1/balance | GET | BALANCE_READ | ₦0.00 (Free) | ₦0.00 (Free) |
Real-Time Balance Deduction
Real-TimeVerification fees are deducted from your organization wallet only when a request is successfully processed. If an upstream gateway is unreachable or an operation fails, no charges occur.
Zero Charges on Errors
ProtectedClient errors (HTTP 400, 401, 402), rate-limiting (HTTP 429), and server errors (HTTP 500) are never charged (0 Kobo).
Idempotency Protection
Safe RetryReplaying a request with the same Idempotency-Key returns the cached response within 24 hours with Idempotency-Replayed: true and zero additional charges.
Complimentary Re-downloads
Free ReplayOnce a BVN Slip PDF is generated for a search reference, all subsequent PDF downloads using the same reference within your organization are free (₦0.00).
Structured Response Billing Object
Every API response includes a transparent billing metadata object detailing the transaction cost, currency, and wallet debit status:
/api/public/v1/balance
Category: Wallet Balance. Returns organization wallet balance in Nigerian kobo.
Headers & Requirements
| Header | Type | Requirement |
|---|---|---|
| Authorization | string (Bearer) | Required (BALANCE_READ scope) |
Sample Request
Response Explorer
/api/public/v1/verifications/nin
Category: NIN Verification. Performs live identity verification or returns mock sandbox records.
Headers & Requirements
| Header | Type | Requirement |
|---|---|---|
| Authorization | string (Bearer) | Required (NIN_VERIFY scope) |
| Idempotency-Key | string (8-128 chars) | Required |
| Content-Type | application/json | Required |
Request Body (JSON)
| Field | Type | Description |
|---|---|---|
| nin | string (11 digits) | The Nigerian National Identity Number to verify. |
Pricing & Billing Rule
| Outcome | Charge Amount | Kobo Unit |
|---|---|---|
| Verified Record Found (200 OK) | ₦100.00 | 10,000 kobo |
| Record Not Found (200 OK) / Suspended (422) | ₦100.00 | 10,000 kobo |
| Client Error / Auth Error / Idempotent Replay | ₦0.00 | 0 kobo |
Sample Request
Response Explorer
/api/public/v1/verifications/nin/phone
Category: NIN Verification. Resolves and returns verified National Identity Number (NIN) record details linked to a Nigerian mobile phone number.
Headers & Requirements
| Header | Type | Requirement |
|---|---|---|
| Authorization | string (Bearer) | Required (NIN_VERIFY scope) |
| Idempotency-Key | string (8-128 chars) | Required |
| Content-Type | application/json | Required |
Request Body (JSON)
| Field | Type | Description |
|---|---|---|
| phone | string (Required) | Valid Nigerian mobile phone number (11-digit local format 08012345678 or international format +2348012345678). |
Pricing & Billing Rule
| Outcome | Charge Amount | Kobo Unit |
|---|---|---|
| Verified Record Found (200 OK) | ₦120.00 | 12,000 kobo |
| Record Not Found (200 OK) / Suspended (422) | ₦100.00 | 10,000 kobo |
| Client Error / Auth Error / Idempotent Replay | ₦0.00 | 0 kobo |
Sample Request
Response Explorer
/api/public/v1/verifications/nin/demographic
Category: NIN Verification. Retrieve and verify Nigerian National Identity records by demographic details (first name, surname, date of birth, gender). Implementation details and documentation will be published upon release.
/api/public/v1/verifications/bvn
Category: BVN Verification. Performs live Bank Verification Number identity retrieval or returns mock sandbox records.
Headers & Requirements
| Header | Type | Requirement |
|---|---|---|
| Authorization | string (Bearer) | Required (BVN_VERIFY scope) |
| Idempotency-Key | string (8-128 chars) | Required |
| Content-Type | application/json | Required |
Request Body Parameters
| Field | Type | Requirement | Description |
|---|---|---|---|
| bvn | string (11 digits) | Required | The 11-digit Bank Verification Number to verify. |
Pricing & Billing Rule
| Outcome | Charge Amount | Kobo Unit |
|---|---|---|
| Verified Record Found (200 OK) | ₦110.00 | 11,000 kobo |
| Record Not Found (200 OK) / Suspended (422) | ₦100.00 | 10,000 kobo |
| Client Error / Auth Error / Idempotent Replay | ₦0.00 | 0 kobo |
Sample Request
Response Explorer
/api/public/v1/verifications/bvn/slip/preview
Category: BVN Verification. Generates and returns a watermarked preview image (JPEG) of the official BVN slip for immediate visual verification in your application.
Headers & Requirements
| Header | Type | Requirement |
|---|---|---|
| Authorization | string (Bearer) | Required (BVN_VERIFY scope) |
| Content-Type | application/json | Required |
| Accept | image/jpeg | application/json | Optional (defaults to binary image/jpeg) |
Request Body Parameters
| Field | Type | Requirement | Description |
|---|---|---|---|
| reference | string | Required | The verification reference identifier returned from POST /api/public/v1/verifications/bvn. |
| token | string | Required | The signed slip token from data.slip.token in the verification response. |
| format | "image" | "json" | Optional | Set to json to receive base64 JPEG payload, or omit for direct binary JPEG stream. |
Best Practice for Integrations
25-Minute Window- Slip preview and PDF download should be requested immediately following the verification lookup within the 25-minute window.
- If an integration needs to generate a slip after the 25-minute window has lapsed, it must send a new verification request using a new
Idempotency-Keyto obtain a freshslipToken.
Pricing & Billing Rule
| Outcome | Charge Amount | Billing Object |
|---|---|---|
| Slip Preview Generation (Live & Test) | ₦0.00 (Free) | Omitted (No charges) |
Sample Request
Response Explorer
/api/public/v1/verifications/bvn/slip/pdf
Category: BVN Verification. Compiles and downloads the official high-resolution A4 Bank Verification Number (BVN) slip in PDF format.
Headers & Requirements
| Header | Type | Requirement |
|---|---|---|
| Authorization | string (Bearer) | Required (BVN_VERIFY scope) |
| Content-Type | application/json | Required |
| Accept | application/pdf | application/json | Optional (defaults to binary application/pdf) |
Request Body Parameters
| Field | Type | Requirement | Description |
|---|---|---|---|
| reference | string | Required | The verification reference identifier returned from POST /api/public/v1/verifications/bvn. |
| token | string | Required | The signed slip token from data.slip.token in the verification response. |
| format | "pdf" | "json" | Optional | Set to json to receive base64 PDF payload, or omit for direct binary PDF download stream. |
Best Practice for Integrations
25-Minute Window- Slip preview and PDF download should be requested immediately following the verification lookup within the 25-minute window.
- If an integration needs to generate a slip after the 25-minute window has lapsed, it must send a new verification request using a new
Idempotency-Keyto obtain a freshslipToken.
Pricing & Billing Rule
| Outcome | Charge Amount | Kobo Unit |
|---|---|---|
| First PDF Slip Generation (200 OK) | ₦100.00 | 10,000 kobo |
| Subsequent Re-download (Same Reference) | ₦0.00 (Free) | 0 kobo |
| Test Mode / Client Error / Auth Error | ₦0.00 | 0 kobo |
Sample Request
Response Explorer
/api/public/v1/verifications/bvn/phone
Category: BVN Verification. Retrieve and verify Nigerian Bank Verification Number records by registered phone number. Implementation details and documentation will be published upon release.
Sandbox Test Vectors & Deterministic Fixtures
When using test credentials (id_test_...), use the following input numbers to test predictable scenarios without external provider network calls or wallet charges.
| Test Input | Simulated Result | HTTP Status |
|---|---|---|
| 12345678901 (NIN) 22222222222 (BVN) 08012345678 (Phone) | Deterministic verified identity record | 200 OK |
| 33333333333 / 08033333333 | Simulates identity restricted or suspended by national authorities | 422 Unprocessable |
| 44444444444 / 08044444444 | Simulates merchant insufficient wallet balance error | 402 Payment Required |
| 55555555555 / 08055555555 | Simulates upstream verification provider service outage | 503 Service Unavailable |
| Any other 11 digits / phone number | Simulates record not found in national registry (result: null) | 200 OK |
Standardized Error Response Model
All API errors return a standard JSON envelope with an error code, message, requestId, and billing object.
| Error Code | HTTP Status | Description & Recovery |
|---|---|---|
| INVALID_REQUEST | 400 Bad Request | The request body failed schema validation (e.g. NIN is not 11 digits). |
| INVALID_IDEMPOTENCY_KEY | 400 Bad Request | Idempotency-Key must be 8 to 128 characters matching valid regex format. |
| UNAUTHORIZED | 401 Unauthorized | Invalid, expired, revoked, or insufficiently scoped API key. |
| INSUFFICIENT_BALANCE | 402 Payment Required | Fund merchant wallet balance before executing live verification. |
| IDEMPOTENCY_KEY_REUSED | 409 Conflict | The same Idempotency-Key was previously used with a different request body. |
| IDEMPOTENCY_IN_PROGRESS | 409 Conflict | A request with this key is still actively processing. Retry after Retry-After seconds. |
| IDENTITY_RESTRICTED | 422 Unprocessable | The requested identity record is suspended or restricted by national authorities. |
| RATE_LIMIT_EXCEEDED | 429 Too Many Requests | Rate quota exceeded. Check Retry-After header before executing retries. |
| SERVICE_UNAVAILABLE | 503 Unavailable | Upstream provider is temporarily down. Implement exponential backoff. |
Key Lifecycle & Zero-Downtime Rotation
Manage API keys securely with configurable expiration dates, permanent revocation, and overlap windows.
When updating production credentials, use the Zero-Downtime Rotation feature directly in your Developer Dashboard under Key Management. Rotation issues a replacement key with identical scopes while keeping the previous key active for a configurable overlap grace window (0 to 168 hours) to prevent service interruptions during deployment.
Rate Limits & SLA
Standard rate limits per API key.
Limited to 60 requests per minute per key.
Limited to 120 requests per minute per key.