Developer Documentation
Comprehensive API documentation for NIN verification slips, BVN verification slips, and IPE clearance services. Integrate seamlessly with our secure APIs.
How to use this page: The table below lists every available endpoint. Click any "View Details" link to jump to full documentation with code examples. Each section also shows all slip tier endpoints in a clear table — no need to guess!
Quick Reference — All API Endpoints
Every endpoint at a glance. Use this table to quickly find the URL you need.
| Service | Slip Tier | Method | Endpoint URL | Details |
|---|---|---|---|---|
| NIN Verification by NIN Number | ||||
| NIN by NIN | Premium | POST | https://checkmybvnnin.com.ng/api/verification/nin_by_nin.php | View Details ↓ |
| NIN by NIN | Standard | POST | https://checkmybvnnin.com.ng/api/verification/nin_standard_slip.php | View Details ↓ |
| NIN by NIN | Regular | POST | https://checkmybvnnin.com.ng/api/verification/nin_regular_slip.php | View Details ↓ |
| NIN by NIN | VNIN | POST | https://checkmybvnnin.com.ng/api/verification/vnin_slip.php | View Details ↓ |
| NIN Verification by Phone Number | ||||
| NIN by Phone | Premium | POST | https://checkmybvnnin.com.ng/api/verification/nin_by_phone_premium.php | View Details ↓ |
| NIN by Phone | Standard | POST | https://checkmybvnnin.com.ng/api/verification/nin_by_phone_standard.php | View Details ↓ |
| NIN by Phone | Regular | POST | https://checkmybvnnin.com.ng/api/verification/nin_by_phone_regular.php | View Details ↓ |
| NIN by Phone | VNIN | POST | https://checkmybvnnin.com.ng/api/verification/vnin_slip.php | View Details ↓ |
| NIN Verification by Demographics | ||||
| NIN by Demo | Premium | POST | https://checkmybvnnin.com.ng/api/verification/nin_by_demo.php | View Details ↓ |
| BVN Verification | ||||
| BVN Verification | Premium | POST | https://checkmybvnnin.com.ng/api/verification/bvn_premium_slip.php | View Details ↓ |
| BVN Verification | Standard | POST | https://checkmybvnnin.com.ng/api/verification/bvn_full_details_slip.php | View Details ↓ |
| IPE Clearance (API) | ||||
| IPE Clearance | Submit Request | POST | https://checkmybvnnin.com.ng/api/verification/ipe.php | View Details ↓ |
| IPE Clearance | Check Status | POST | https://checkmybvnnin.com.ng/api/verification/ipe_status.php | View Details ↓ |
| NIN Validation (API) | ||||
| NIN Validation | Submit Request | POST | https://checkmybvnnin.com.ng/api/verification/validation.php | View Details ↓ |
| NIN Validation | Check Status | POST | https://checkmybvnnin.com.ng/api/verification/validation_status.php | View Details ↓ |
API Authentication
All API requests require authentication using your API key. Include it in the request payload as shown below.
// PHP Example
$apiKey = 'YOUR_API_KEY_HERE';
$url = 'https://checkmybvnnin.com.ng/api/verification/nin_by_nin.php';
$payload = json_encode([
'api_key' => $apiKey,
'nin' => '12345678901'
]);
// JavaScript Example
const apiKey = 'YOUR_API_KEY_HERE';
const url = 'https://checkmybvnnin.com.ng/api/verification/nin_by_nin.php';
const payload = {
api_key: apiKey,
nin: '12345678901'
};
# Python Example
import requests
import json
api_key = 'YOUR_API_KEY_HERE'
url = 'https://checkmybvnnin.com.ng/api/verification/nin_by_nin.php'
payload = {
'api_key': api_key,
'nin': '12345678901'
}
1 NIN Verification Slips by NIN Number
Generate NIN verification slips using the 11-digit NIN number. 4 slip tiers available — each with its own endpoint URL.
| Slip Tier | Method | Endpoint URL |
|---|---|---|
| Premium Slip | POST | https://checkmybvnnin.com.ng/api/verification/nin_by_nin.php |
| Standard Slip | POST | https://checkmybvnnin.com.ng/api/verification/nin_standard_slip.php |
| Regular Slip | POST | https://checkmybvnnin.com.ng/api/verification/nin_regular_slip.php |
| VNIN Slip | POST | https://checkmybvnnin.com.ng/api/verification/vnin_slip.php |
Code Examples & Parameters
All 4 slip tiers accept the same parameters — just change the endpoint URL to the one you need from the table above.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| api_key | string | Yes | Your API authentication key |
| nin | string | Yes | 11-digit NIN number |
{
"api_key": "YOUR_API_KEY_HERE",
"nin": "12345678901"
}
{
"status": "success",
"response_code": "00",
"user_data": {
"nin": "12345678901",
"first_name": "JOHN",
"last_name": "DOE",
"middle_name": "MICHAEL",
"gender": "MALE",
"date_of_birth": "15-05-1985",
"phone_number": "08012345678",
"address": "123 Sample Street, Lagos"
},
"message": "PDF generated successfully",
"pdf_base64": "base64_encoded_pdf_data_here..."
}
$apiKey = "YOUR_API_KEY_HERE";
$nin = "12345678901"; // your NIN
$url = 'https://checkmybvnnin.com.ng/api/verification/nin_by_nin.php';
// Make API request
$payload = json_encode([
'api_key' => $apiKey,
'nin' => $nin
]);
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $payload,
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'Content-Length: ' . strlen($payload)
]
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$curlError = curl_error($ch);
curl_close($ch);
// Handle response
if ($curlError) {
echo "API connection failed: " . $curlError;
exit;
}
$apiResponse = json_decode($response, true);
if ($apiResponse['status'] === 'success' && !empty($apiResponse['pdf_base64'])) {
// Decode and save PDF
$pdfData = base64_decode($apiResponse['pdf_base64']);
$fileName = "nin_slip_" . $nin . ".pdf";
file_put_contents($fileName, $pdfData);
echo "PDF saved successfully: " . $fileName;
} else {
echo "Error: " . $apiResponse['message'];
}
2 NIN Verification Slips by Phone Number
Generate NIN verification slips using registered phone number. 4 slip tiers available — each with its own endpoint URL.
| Slip Tier | Method | Endpoint URL |
|---|---|---|
| Premium Slip | POST | https://checkmybvnnin.com.ng/api/verification/nin_by_phone_premium.php |
| Standard Slip | POST | https://checkmybvnnin.com.ng/api/verification/nin_by_phone_standard.php |
| Regular Slip | POST | https://checkmybvnnin.com.ng/api/verification/nin_by_phone_regular.php |
| VNIN Slip | POST | https://checkmybvnnin.com.ng/api/verification/vnin_slip.php |
Code Examples & Parameters
All 4 slip tiers accept the same parameters — just change the endpoint URL to the one you need from the table above.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| api_key | string | Yes | Your API authentication key |
| phone | string | Yes | 11-digit phone number (e.g., 08012345678) |
{
"api_key": "YOUR_API_KEY_HERE",
"phone": "08012345678"
}
{
"status": "success",
"response_code": "00",
"user_data": {
"nin": "12345678901",
"first_name": "JOHN",
"last_name": "DOE",
"middle_name": "MICHAEL",
"gender": "MALE",
"date_of_birth": "15-05-1985",
"phone_number": "08012345678",
"address": "123 Sample Street, Lagos"
},
"message": "PDF generated successfully",
"pdf_base64": "base64_encoded_pdf_data_here..."
}
3 NIN Verification Slips by Demographic Details
Generate NIN verification slips using personal demographic information.
| Slip Tier | Method | Endpoint URL |
|---|---|---|
| Premium Slip | POST | https://checkmybvnnin.com.ng/api/verification/nin_by_demo.php |
Code Examples & Parameters
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| api_key | string | Yes | Your API authentication key |
| firstname | string | Yes | Individual's first name |
| lastname | string | Yes | Individual's last name |
| dob | string | Yes | Date of birth (DD-MM-YYYY format) |
| gender | string | No | Gender (MALE/FEMALE) |
{
"api_key": "YOUR_API_KEY_HERE",
"firstname": "JOHN",
"lastname": "DOE",
"dob": "15-05-1985",
"gender": "MALE"
}
{
"status": "success",
"response_code": "00",
"user_data": {
"nin": "12345678901",
"first_name": "JOHN",
"last_name": "DOE",
"middle_name": "MICHAEL",
"gender": "MALE",
"date_of_birth": "15-05-1985",
"phone_number": "08012345678",
"address": "123 Sample Street, Lagos"
},
"message": "PDF generated successfully",
"pdf_base64": "base64_encoded_pdf_data_here..."
}
$apiKey = "YOUR_API_KEY_HERE";
$firstName = "JOHN";
$lastName = "DOE";
$dob = "1985-05-15"; // yyyy-mm-dd from form
$gender = "MALE";
// Convert DOB from yyyy-mm-dd to dd-mm-yyyy
$formattedDob = date("d-m-Y", strtotime($dob));
$url = 'https://checkmybvnnin.com.ng/api/verification/nin_by_demo.php';
$payload = json_encode([
'api_key' => $apiKey,
'firstname' => $firstName,
'lastname' => $lastName,
'dob' => $formattedDob,
'gender' => $gender
]);
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $payload,
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'Content-Length: ' . strlen($payload)
],
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$curlError = curl_error($ch);
curl_close($ch);
if (!empty($curlError)) {
echo "cURL Error: $curlError";
} elseif ($httpCode !== 200) {
echo "HTTP Error: $httpCode";
} else {
$result = json_decode($response, true);
if (!empty($result['pdf_base64'])) {
$pdfData = base64_decode($result['pdf_base64']);
$filePath = 'nin_slip_' . time() . '.pdf';
file_put_contents($filePath, $pdfData);
echo "PDF saved successfully: $filePath";
} else {
echo "Error: " . $result['message'];
}
}
4 BVN Verification Slips
Generate BVN verification slips using 11-digit BVN number. 2 service tiers available — each with its own endpoint URL.
| Slip Tier | Method | Endpoint URL |
|---|---|---|
| Premium Slip | POST | https://checkmybvnnin.com.ng/api/verification/bvn_premium_slip.php |
| Standard Slip | POST | https://checkmybvnnin.com.ng/api/verification/bvn_full_details_slip.php |
Code Examples & Parameters
Both slip tiers accept the same parameters — just change the endpoint URL to the one you need from the table above.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| api_key | string | Yes | Your API authentication key |
| bvn | string | Yes | 11-digit BVN number |
{
"api_key": "YOUR_API_KEY_HERE",
"bvn": "12345678901"
}
{
"status": "success",
"response_code": "00",
"user_data": {
"bvn": "12345678901",
"first_name": "JOHN",
"last_name": "DOE",
"middle_name": "MICHAEL",
"gender": "MALE",
"date_of_birth": "15-05-1985",
"phone_number": "08012345678",
"address": "123 Sample Street, Lagos"
},
"message": "BVN slip generated successfully",
"pdf_base64": "base64_encoded_pdf_data_here..."
}
5 IPE Clearance Services (API)
Submit IPE clearance requests via API. Your request will be stored as pending and processed by the team. Balance is deducted immediately upon submission.
| Service | Method | Endpoint URL |
|---|---|---|
| IPE Clearance Submission | POST | https://checkmybvnnin.com.ng/api/verification/ipe.php |
| IPE Check Status | POST | https://checkmybvnnin.com.ng/api/verification/ipe_status.php |
How it works: When you call this endpoint, your balance is deducted and the IPE request is saved as "pending". The processing team will handle it and update the status. You'll receive a transaction ID to track your request.
Code Examples & Parameters
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| api_key | string | Yes | Your API authentication key |
| trackingID | string | Yes | Unique tracking ID for the IPE submission (1-20 alphanumeric characters) |
{
"api_key": "YOUR_API_KEY_HERE",
"trackingID": "IPE202400001"
}
{
"success": true,
"message": "IPE clearance request submitted successfully. Your request is now pending processing.",
"data": {
"transaction_id": "ipe_a1b2c3d4e5f6a1b2c3d4e5f6",
"tracking_id": "IPE202400001",
"status": "pending",
"amount_charged": "500.00",
"balance_before": "5000.00",
"balance_after": "4500.00",
"note": "Your IPE clearance is being processed. You can check the status in your transaction history."
}
}
HTTP Status: 200 OK
// Insufficient balance
{
"success": false,
"message": "Insufficient balance. Your balance is ₦200.00 but IPE clearance costs ₦500.00"
}
// Duplicate tracking ID
{
"success": false,
"message": "This tracking ID has already been submitted and is pending processing."
}
// Invalid parameters
{
"success": false,
"message": "Invalid trackingID format. Must be 1 to 20 alphanumeric characters."
}
HTTP Status: 400 Bad Request
$apiKey = "YOUR_API_KEY_HERE";
$trackingID = "IPE202400001";
$url = 'https://checkmybvnnin.com.ng/api/verification/ipe.php';
$payload = json_encode([
'api_key' => $apiKey,
'trackingID' => $trackingID
]);
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $payload,
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'Content-Length: ' . strlen($payload)
]
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$result = json_decode($response, true);
if ($result['success'] === true) {
echo "IPE submitted! Transaction ID: " . $result['data']['transaction_id'];
echo "Status: " . $result['data']['status'];
echo "Balance after: ₦" . $result['data']['balance_after'];
} else {
echo "Error: " . $result['message'];
}
5b IPE Clearance — Check Status (API)
Check the status of a previously submitted IPE clearance request. When the IPE is completed, the response includes the new NIN and new tracking ID.
| Service | Method | Endpoint URL |
|---|---|---|
| IPE Check Status | POST | https://checkmybvnnin.com.ng/api/verification/ipe_status.php |
6. NIN Validation (API)
Submit NIN validation requests via API. This API collects the NIN and error type, stores the request as pending for processing, and deducts your balance.
| Service | Method | Endpoint URL |
|---|---|---|
| NIN Validation | POST | https://checkmybvnnin.com.ng/api/verification/validation.php |
| Validation Check Status | POST | https://checkmybvnnin.com.ng/api/verification/validation_status.php |
6b NIN Validation — Check Status (API)
Check the status of a previously submitted NIN validation request. Use either your ticket_id or transaction_id to look up the request.
| Service | Method | Endpoint URL |
|---|---|---|
| Validation Check Status | POST | https://checkmybvnnin.com.ng/api/verification/validation_status.php |
Error Handling
All API responses follow a consistent format. Check the status field for success or error indications.
HTTP Status Codes
{
"status": "success",
"response_code": "00",
"user_data": {
"nin": "12345678901",
"first_name": "JOHN",
"last_name": "DOE",
"middle_name": "MICHAEL",
"gender": "MALE",
"date_of_birth": "15-05-1985",
"phone_number": "08012345678",
"address": "123 Sample Street, Lagos"
},
"message": "PDF generated successfully",
"pdf_base64": "base64_encoded_data..."
}
HTTP Status: 200 OK
{
"status": "error",
"response_code": "01",
"message": "Invalid NIN number provided",
"error_code": "INVALID_NIN"
}
HTTP Status: 400 Bad Request
{
"status": "error",
"response_code": "02",
"message": "API Response: Record not found. The ID data you entered does not exist or may be incorrect. Please ensure all details are correct and resubmit"
}
HTTP Status: 400 Bad Request