NIN Verification
8 endpoints
NIN Verify (all slips)
Charged
Instant
POST
https://idfixer.com.ng/api/v1 /nin/verify
One endpoint for every NIN slip. method is nin (default), phone or demographic. slip_type is premium (default), standard, regular or vnin; vnin only works with method nin. Send nin for method nin, phone for method phone, or firstname, lastname, dob and gender for method demographic. You are charged the same as the matching endpoint below, and nothing if no record is found.
Body parameters
api_keystring required
Your secret API key.
methodenum optional
nin (default), phone or demographic.
slip_typeenum optional
premium (default), standard, regular or vnin.
ninstring optional
11-digit NIN, for method nin.
cURL
PHP
Node.js
Python
Copy
curl -X POST 'https://idfixer.com.ng/api/v1/nin/verify' \
-H 'Content-Type: application/json' \
-d '{"api_key":"YOUR_API_KEY","method":"nin","slip_type":"standard","nin":"12345678901"}'
<?php
$ch = curl_init('https://idfixer.com.ng/api/v1/nin/verify');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(array (
'api_key' => 'YOUR_API_KEY',
'method' => 'nin',
'slip_type' => 'standard',
'nin' => '12345678901',
)),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);
const response = await fetch('https://idfixer.com.ng/api/v1/nin/verify', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"method": "nin",
"slip_type": "standard",
"nin": "12345678901"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://idfixer.com.ng/api/v1/nin/verify',
json={
"api_key": "YOUR_API_KEY",
"method": "nin",
"slip_type": "standard",
"nin": "12345678901"
},
timeout=60,
)
print(response.json())
● 200 OK Copy
{
"success": true,
"transaction_id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5",
"user_data": {
"status": "success",
"message": "Record found",
"user_data": {
"nin": "12345678901",
"firstName": "JOHN",
"middleName": "ADE",
"surname": "DOE",
"gender": "m",
"birthDate": "15-05-1990",
"telephoneNo": "08012345678",
"photo": "<base64 string>"
},
"pdf_base64": "<base64 string>",
"address": "12 SAMPLE STREET, IKEJA, LAGOS"
}
}
NIN Premium Slip
Charged
Instant
POST
https://idfixer.com.ng/api/v1 /nin/premium-slip
Returns the full NIN record, with photo and a printable premium slip (pdf_base64).
Body parameters
api_keystring required
Your secret API key.
ninstring required
11-digit National Identification Number.
cURL
PHP
Node.js
Python
Copy
curl -X POST 'https://idfixer.com.ng/api/v1/nin/premium-slip' \
-H 'Content-Type: application/json' \
-d '{"api_key":"YOUR_API_KEY","nin":"12345678901"}'
<?php
$ch = curl_init('https://idfixer.com.ng/api/v1/nin/premium-slip');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(array (
'api_key' => 'YOUR_API_KEY',
'nin' => '12345678901',
)),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);
const response = await fetch('https://idfixer.com.ng/api/v1/nin/premium-slip', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"nin": "12345678901"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://idfixer.com.ng/api/v1/nin/premium-slip',
json={
"api_key": "YOUR_API_KEY",
"nin": "12345678901"
},
timeout=60,
)
print(response.json())
● 200 OK Copy
{
"success": true,
"transaction_id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5",
"user_data": {
"status": "success",
"message": "Record found",
"user_data": {
"nin": "12345678901",
"firstName": "JOHN",
"middleName": "ADE",
"surname": "DOE",
"gender": "m",
"birthDate": "15-05-1990",
"telephoneNo": "08012345678",
"photo": "<base64 string>"
},
"pdf_base64": "<base64 string>",
"address": "12 SAMPLE STREET, IKEJA, LAGOS"
}
}
● 400 Error
{
"success": false,
"message": "Record not found."
}
NIN Standard Slip
Charged
Instant
POST
https://idfixer.com.ng/api/v1 /nin/standard-slip
Same lookup as Premium, returned with the standard slip design.
Body parameters
api_keystring required
Your secret API key.
ninstring required
11-digit National Identification Number.
cURL
PHP
Node.js
Python
Copy
curl -X POST 'https://idfixer.com.ng/api/v1/nin/standard-slip' \
-H 'Content-Type: application/json' \
-d '{"api_key":"YOUR_API_KEY","nin":"12345678901"}'
<?php
$ch = curl_init('https://idfixer.com.ng/api/v1/nin/standard-slip');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(array (
'api_key' => 'YOUR_API_KEY',
'nin' => '12345678901',
)),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);
const response = await fetch('https://idfixer.com.ng/api/v1/nin/standard-slip', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"nin": "12345678901"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://idfixer.com.ng/api/v1/nin/standard-slip',
json={
"api_key": "YOUR_API_KEY",
"nin": "12345678901"
},
timeout=60,
)
print(response.json())
● 200 OK Copy
{
"success": true,
"transaction_id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5",
"user_data": {
"status": "success",
"message": "Record found",
"user_data": {
"nin": "12345678901",
"firstName": "JOHN",
"middleName": "ADE",
"surname": "DOE",
"gender": "m",
"birthDate": "15-05-1990",
"telephoneNo": "08012345678",
"photo": "<base64 string>"
},
"pdf_base64": "<base64 string>",
"address": "12 SAMPLE STREET, IKEJA, LAGOS"
}
}
NIN Regular Slip
Charged
Instant
POST
https://idfixer.com.ng/api/v1 /nin/regular-slip
Same lookup as Premium, returned with the regular slip design.
Body parameters
api_keystring required
Your secret API key.
ninstring required
11-digit National Identification Number.
cURL
PHP
Node.js
Python
Copy
curl -X POST 'https://idfixer.com.ng/api/v1/nin/regular-slip' \
-H 'Content-Type: application/json' \
-d '{"api_key":"YOUR_API_KEY","nin":"12345678901"}'
<?php
$ch = curl_init('https://idfixer.com.ng/api/v1/nin/regular-slip');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(array (
'api_key' => 'YOUR_API_KEY',
'nin' => '12345678901',
)),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);
const response = await fetch('https://idfixer.com.ng/api/v1/nin/regular-slip', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"nin": "12345678901"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://idfixer.com.ng/api/v1/nin/regular-slip',
json={
"api_key": "YOUR_API_KEY",
"nin": "12345678901"
},
timeout=60,
)
print(response.json())
● 200 OK Copy
{
"success": true,
"transaction_id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5",
"user_data": {
"status": "success",
"message": "Record found",
"user_data": {
"nin": "12345678901",
"firstName": "JOHN",
"middleName": "ADE",
"surname": "DOE",
"gender": "m",
"birthDate": "15-05-1990",
"telephoneNo": "08012345678",
"photo": "<base64 string>"
},
"pdf_base64": "<base64 string>",
"address": "12 SAMPLE STREET, IKEJA, LAGOS"
}
}
NIN Data (no slip)
Charged
Instant
POST
https://idfixer.com.ng/api/v1 /nin/by-nin
Returns the NIN record data only, for when you do not need a printable slip.
Body parameters
api_keystring required
Your secret API key.
ninstring required
11-digit National Identification Number.
cURL
PHP
Node.js
Python
Copy
curl -X POST 'https://idfixer.com.ng/api/v1/nin/by-nin' \
-H 'Content-Type: application/json' \
-d '{"api_key":"YOUR_API_KEY","nin":"12345678901"}'
<?php
$ch = curl_init('https://idfixer.com.ng/api/v1/nin/by-nin');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(array (
'api_key' => 'YOUR_API_KEY',
'nin' => '12345678901',
)),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);
const response = await fetch('https://idfixer.com.ng/api/v1/nin/by-nin', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"nin": "12345678901"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://idfixer.com.ng/api/v1/nin/by-nin',
json={
"api_key": "YOUR_API_KEY",
"nin": "12345678901"
},
timeout=60,
)
print(response.json())
● 200 OK Copy
{
"success": true,
"transaction_id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5",
"user_data": {
"status": "success",
"message": "Record found",
"user_data": {
"nin": "12345678901",
"firstName": "JOHN",
"middleName": "ADE",
"surname": "DOE",
"gender": "m",
"birthDate": "15-05-1990",
"telephoneNo": "08012345678",
"photo": "<base64 string>"
},
"pdf_base64": "<base64 string>",
"address": "12 SAMPLE STREET, IKEJA, LAGOS"
}
}
NIN by Phone Number
Charged
Instant
POST
https://idfixer.com.ng/api/v1 /nin/by-phone
Finds a NIN record using the phone number registered to it.
Body parameters
api_keystring required
Your secret API key.
phonestring required
11-digit phone number, e.g. 08012345678.
variantstring optional
Slip design: premium (default), standard or regular.
cURL
PHP
Node.js
Python
Copy
curl -X POST 'https://idfixer.com.ng/api/v1/nin/by-phone' \
-H 'Content-Type: application/json' \
-d '{"api_key":"YOUR_API_KEY","phone":"08012345678","variant":"premium"}'
<?php
$ch = curl_init('https://idfixer.com.ng/api/v1/nin/by-phone');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(array (
'api_key' => 'YOUR_API_KEY',
'phone' => '08012345678',
'variant' => 'premium',
)),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);
const response = await fetch('https://idfixer.com.ng/api/v1/nin/by-phone', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"phone": "08012345678",
"variant": "premium"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://idfixer.com.ng/api/v1/nin/by-phone',
json={
"api_key": "YOUR_API_KEY",
"phone": "08012345678",
"variant": "premium"
},
timeout=60,
)
print(response.json())
● 200 OK Copy
{
"success": true,
"transaction_id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5",
"user_data": {
"status": "success",
"message": "Record found",
"user_data": {
"nin": "12345678901",
"firstName": "JOHN",
"middleName": "ADE",
"surname": "DOE",
"gender": "m",
"birthDate": "15-05-1990",
"telephoneNo": "08012345678",
"photo": "<base64 string>"
},
"pdf_base64": "<base64 string>",
"address": "12 SAMPLE STREET, IKEJA, LAGOS"
}
}
NIN by Demographics
Charged
Instant
POST
https://idfixer.com.ng/api/v1 /nin/by-demo
Finds a NIN record using name, date of birth and gender.
Body parameters
api_keystring required
Your secret API key.
firstnamestring required
First name.
lastnamestring required
Surname.
dobstring required
Date of birth: DD-MM-YYYY (YYYY-MM-DD and DD/MM/YYYY are also accepted).
genderstring required
m or f (male / female also accepted).
variantstring optional
Slip design: premium (default), standard or regular.
cURL
PHP
Node.js
Python
Copy
curl -X POST 'https://idfixer.com.ng/api/v1/nin/by-demo' \
-H 'Content-Type: application/json' \
-d '{"api_key":"YOUR_API_KEY","firstname":"JOHN","lastname":"DOE","dob":"15-05-1990","gender":"m"}'
<?php
$ch = curl_init('https://idfixer.com.ng/api/v1/nin/by-demo');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(array (
'api_key' => 'YOUR_API_KEY',
'firstname' => 'JOHN',
'lastname' => 'DOE',
'dob' => '15-05-1990',
'gender' => 'm',
)),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);
const response = await fetch('https://idfixer.com.ng/api/v1/nin/by-demo', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"firstname": "JOHN",
"lastname": "DOE",
"dob": "15-05-1990",
"gender": "m"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://idfixer.com.ng/api/v1/nin/by-demo',
json={
"api_key": "YOUR_API_KEY",
"firstname": "JOHN",
"lastname": "DOE",
"dob": "15-05-1990",
"gender": "m"
},
timeout=60,
)
print(response.json())
● 200 OK Copy
{
"success": true,
"transaction_id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5",
"user_data": {
"status": "success",
"message": "Record found",
"user_data": {
"nin": "12345678901",
"firstName": "JOHN",
"middleName": "ADE",
"surname": "DOE",
"gender": "m",
"birthDate": "15-05-1990",
"telephoneNo": "08012345678",
"photo": "<base64 string>"
},
"pdf_base64": "<base64 string>",
"address": "12 SAMPLE STREET, IKEJA, LAGOS"
}
}
vNIN Slip
Charged
Instant
POST
https://idfixer.com.ng/api/v1 /vnin/premium-slip
Generates a virtual NIN (vNIN) slip. Only available by NIN number.
Body parameters
api_keystring required
Your secret API key.
ninstring required
11-digit National Identification Number.
cURL
PHP
Node.js
Python
Copy
curl -X POST 'https://idfixer.com.ng/api/v1/vnin/premium-slip' \
-H 'Content-Type: application/json' \
-d '{"api_key":"YOUR_API_KEY","nin":"12345678901"}'
<?php
$ch = curl_init('https://idfixer.com.ng/api/v1/vnin/premium-slip');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(array (
'api_key' => 'YOUR_API_KEY',
'nin' => '12345678901',
)),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);
const response = await fetch('https://idfixer.com.ng/api/v1/vnin/premium-slip', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"nin": "12345678901"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://idfixer.com.ng/api/v1/vnin/premium-slip',
json={
"api_key": "YOUR_API_KEY",
"nin": "12345678901"
},
timeout=60,
)
print(response.json())
● 200 OK Copy
{
"success": true,
"transaction_id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5",
"user_data": {
"status": "success",
"message": "Record found",
"user_data": {
"nin": "12345678901",
"firstName": "JOHN",
"middleName": "ADE",
"surname": "DOE",
"gender": "m",
"birthDate": "15-05-1990",
"telephoneNo": "08012345678",
"photo": "<base64 string>"
},
"pdf_base64": "<base64 string>",
"address": "12 SAMPLE STREET, IKEJA, LAGOS"
}
}
BVN Services
7 endpoints
BVN Verify (all slips)
Charged
Instant
POST
https://idfixer.com.ng/api/v1 /bvn/verify
One endpoint for both BVN slips. slip_type is premium (default) or standard. Charged the same as BVN Premium Slip or BVN Standard Slip, and nothing if no record is found.
Body parameters
api_keystring required
Your secret API key.
bvnstring required
11-digit BVN.
slip_typeenum optional
premium (default) or standard.
cURL
PHP
Node.js
Python
Copy
curl -X POST 'https://idfixer.com.ng/api/v1/bvn/verify' \
-H 'Content-Type: application/json' \
-d '{"api_key":"YOUR_API_KEY","bvn":"12345678901","slip_type":"premium"}'
<?php
$ch = curl_init('https://idfixer.com.ng/api/v1/bvn/verify');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(array (
'api_key' => 'YOUR_API_KEY',
'bvn' => '12345678901',
'slip_type' => 'premium',
)),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);
const response = await fetch('https://idfixer.com.ng/api/v1/bvn/verify', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"bvn": "12345678901",
"slip_type": "premium"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://idfixer.com.ng/api/v1/bvn/verify',
json={
"api_key": "YOUR_API_KEY",
"bvn": "12345678901",
"slip_type": "premium"
},
timeout=60,
)
print(response.json())
● 200 OK Copy
{
"success": true,
"transaction_id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5",
"user_data": {
"bvn": "22123456789",
"nin": "12345678901",
"first_name": "JOHN",
"middle_name": "ADE",
"last_name": "DOE",
"date_of_birth": "15-05-1990",
"gender": "Male",
"phone": "08012345678",
"address": "12 SAMPLE STREET, IKEJA",
"state_of_origin": "LAGOS",
"lga": "IKEJA",
"name_on_card": "JOHN DOE",
"photo": "<base64 string>",
"pdf_base64": "<base64 string>"
}
}
BVN Premium Slip
Charged
Instant
POST
https://idfixer.com.ng/api/v1 /bvn/premium-slip
Returns the full BVN record, with photo and a printable premium slip.
Body parameters
api_keystring required
Your secret API key.
bvnstring required
11-digit Bank Verification Number.
cURL
PHP
Node.js
Python
Copy
curl -X POST 'https://idfixer.com.ng/api/v1/bvn/premium-slip' \
-H 'Content-Type: application/json' \
-d '{"api_key":"YOUR_API_KEY","bvn":"22123456789"}'
<?php
$ch = curl_init('https://idfixer.com.ng/api/v1/bvn/premium-slip');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(array (
'api_key' => 'YOUR_API_KEY',
'bvn' => '22123456789',
)),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);
const response = await fetch('https://idfixer.com.ng/api/v1/bvn/premium-slip', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"bvn": "22123456789"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://idfixer.com.ng/api/v1/bvn/premium-slip',
json={
"api_key": "YOUR_API_KEY",
"bvn": "22123456789"
},
timeout=60,
)
print(response.json())
● 200 OK Copy
{
"success": true,
"transaction_id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5",
"user_data": {
"bvn": "22123456789",
"nin": "12345678901",
"first_name": "JOHN",
"middle_name": "ADE",
"last_name": "DOE",
"date_of_birth": "15-05-1990",
"gender": "Male",
"phone": "08012345678",
"address": "12 SAMPLE STREET, IKEJA",
"state_of_origin": "LAGOS",
"lga": "IKEJA",
"name_on_card": "JOHN DOE",
"photo": "<base64 string>",
"pdf_base64": "<base64 string>"
}
}
● 404 Error
{
"success": false,
"message": "No record found for this BVN."
}
BVN Standard Slip
Charged
Instant
POST
https://idfixer.com.ng/api/v1 /bvn/standard-slip
Same lookup as BVN Premium, returned with the standard slip design.
Body parameters
api_keystring required
Your secret API key.
bvnstring required
11-digit Bank Verification Number.
cURL
PHP
Node.js
Python
Copy
curl -X POST 'https://idfixer.com.ng/api/v1/bvn/standard-slip' \
-H 'Content-Type: application/json' \
-d '{"api_key":"YOUR_API_KEY","bvn":"22123456789"}'
<?php
$ch = curl_init('https://idfixer.com.ng/api/v1/bvn/standard-slip');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(array (
'api_key' => 'YOUR_API_KEY',
'bvn' => '22123456789',
)),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);
const response = await fetch('https://idfixer.com.ng/api/v1/bvn/standard-slip', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"bvn": "22123456789"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://idfixer.com.ng/api/v1/bvn/standard-slip',
json={
"api_key": "YOUR_API_KEY",
"bvn": "22123456789"
},
timeout=60,
)
print(response.json())
● 200 OK Copy
{
"success": true,
"transaction_id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5",
"user_data": {
"bvn": "22123456789",
"nin": "12345678901",
"first_name": "JOHN",
"middle_name": "ADE",
"last_name": "DOE",
"date_of_birth": "15-05-1990",
"gender": "Male",
"phone": "08012345678",
"address": "12 SAMPLE STREET, IKEJA",
"state_of_origin": "LAGOS",
"lga": "IKEJA",
"name_on_card": "JOHN DOE",
"photo": "<base64 string>",
"pdf_base64": "<base64 string>"
}
}
● 404 Error
{
"success": false,
"message": "No record found for this BVN."
}
BVN Retrieval
Charged
Async
POST
https://idfixer.com.ng/api/v1 /bvn/retrieval
Finds a BVN from a phone number and name. You get a transaction_id back; poll BVN Retrieval Status for the result. If no BVN is found, the charge is refunded automatically. Set retrieval_type to central_risk to submit a Central Risk ticket instead (processed by our team).
Body parameters
api_keystring required
Your secret API key.
retrieval_typestring optional
bvn_retrieval (default) or central_risk.
phonestring required
11-digit phone number (bvn_retrieval).
first_namestring required
First name (bvn_retrieval).
middle_namestring optional
Middle name (bvn_retrieval).
last_namestring required
Surname (bvn_retrieval).
ticket_idstring optional
Required when retrieval_type is central_risk.
batch_idstring optional
Optional, central_risk only.
cURL
PHP
Node.js
Python
Copy
curl -X POST 'https://idfixer.com.ng/api/v1/bvn/retrieval' \
-H 'Content-Type: application/json' \
-d '{"api_key":"YOUR_API_KEY","retrieval_type":"bvn_retrieval","phone":"08012345678","first_name":"JOHN","last_name":"DOE"}'
<?php
$ch = curl_init('https://idfixer.com.ng/api/v1/bvn/retrieval');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(array (
'api_key' => 'YOUR_API_KEY',
'retrieval_type' => 'bvn_retrieval',
'phone' => '08012345678',
'first_name' => 'JOHN',
'last_name' => 'DOE',
)),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);
const response = await fetch('https://idfixer.com.ng/api/v1/bvn/retrieval', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"retrieval_type": "bvn_retrieval",
"phone": "08012345678",
"first_name": "JOHN",
"last_name": "DOE"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://idfixer.com.ng/api/v1/bvn/retrieval',
json={
"api_key": "YOUR_API_KEY",
"retrieval_type": "bvn_retrieval",
"phone": "08012345678",
"first_name": "JOHN",
"last_name": "DOE"
},
timeout=60,
)
print(response.json())
● 200 OK Copy
{
"success": true,
"reference": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5",
"transaction_id": "BVNR3F9A1C27D84E6B5F0A9C2D1E",
"request_status": "pending",
"message": "BVN retrieval submitted. Poll /api/v1/bvn/retrieval-status with this transaction_id for the result."
}
BVN Retrieval Status
Free
Instant
POST
https://idfixer.com.ng/api/v1 /bvn/retrieval-status
Checks a BVN Retrieval. data.status is In-Progress, Successful (with bvn and full_name) or Failed (refunded: true). Poll every few seconds until it is no longer In-Progress.
Body parameters
api_keystring required
Your secret API key.
transaction_idstring optional
transaction_id from BVN Retrieval. Send this or reference.
referencestring optional
reference from BVN Retrieval.
cURL
PHP
Node.js
Python
Copy
curl -X POST 'https://idfixer.com.ng/api/v1/bvn/retrieval-status' \
-H 'Content-Type: application/json' \
-d '{"api_key":"YOUR_API_KEY","transaction_id":"BVNR3F9A1C27D84E6B5F0A9C2D1E"}'
<?php
$ch = curl_init('https://idfixer.com.ng/api/v1/bvn/retrieval-status');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(array (
'api_key' => 'YOUR_API_KEY',
'transaction_id' => 'BVNR3F9A1C27D84E6B5F0A9C2D1E',
)),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);
const response = await fetch('https://idfixer.com.ng/api/v1/bvn/retrieval-status', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"transaction_id": "BVNR3F9A1C27D84E6B5F0A9C2D1E"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://idfixer.com.ng/api/v1/bvn/retrieval-status',
json={
"api_key": "YOUR_API_KEY",
"transaction_id": "BVNR3F9A1C27D84E6B5F0A9C2D1E"
},
timeout=60,
)
print(response.json())
● 200 OK Copy
{
"success": true,
"data": {
"reference": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5",
"transaction_id": "BVNR3F9A1C27D84E6B5F0A9C2D1E",
"phone": "08012345678",
"status": "Successful",
"bvn": "22123456789",
"full_name": "JOHN DOE",
"refunded": false
}
}
BVN Modification
Charged
Manual
POST
https://idfixer.com.ng/api/v1 /bvn/modification
Submits a BVN modification for our team to process. Get variant_id from the BVN Modification page on your dashboard. Extra fields depend on the variant: change of name needs new_first_name, new_surname (new_middle_name optional); change of DOB needs new_dob; address needs address_line_1, town_city, state (address_line_2, postal_code optional); phone needs new_phone.
Body parameters
api_keystring required
Your secret API key.
bvnstring required
11-digit BVN.
ninstring required
11-digit National Identification Number.
enrollment_typestring required
AGENCY or one of: Nibss Modification, First Bank Modifications, Access Bank Modifications, Keystone Bank Modifications, Heritage Bank Modifications, Gt Bank Modifications, Lapo Microbank Mod.
variant_idinteger required
Modification type, from your dashboard.
cURL
PHP
Node.js
Python
Copy
curl -X POST 'https://idfixer.com.ng/api/v1/bvn/modification' \
-H 'Content-Type: application/json' \
-d '{"api_key":"YOUR_API_KEY","bvn":"22123456789","nin":"12345678901","enrollment_type":"AGENCY","variant_id":1,"new_first_name":"JOHN","new_surname":"DOE"}'
<?php
$ch = curl_init('https://idfixer.com.ng/api/v1/bvn/modification');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(array (
'api_key' => 'YOUR_API_KEY',
'bvn' => '22123456789',
'nin' => '12345678901',
'enrollment_type' => 'AGENCY',
'variant_id' => 1,
'new_first_name' => 'JOHN',
'new_surname' => 'DOE',
)),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);
const response = await fetch('https://idfixer.com.ng/api/v1/bvn/modification', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"bvn": "22123456789",
"nin": "12345678901",
"enrollment_type": "AGENCY",
"variant_id": 1,
"new_first_name": "JOHN",
"new_surname": "DOE"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://idfixer.com.ng/api/v1/bvn/modification',
json={
"api_key": "YOUR_API_KEY",
"bvn": "22123456789",
"nin": "12345678901",
"enrollment_type": "AGENCY",
"variant_id": 1,
"new_first_name": "JOHN",
"new_surname": "DOE"
},
timeout=60,
)
print(response.json())
● 200 OK Copy
{
"success": true,
"reference": "REQ-20261007-8F3A2C",
"message": "Request submitted successfully. It will be processed shortly."
}
BVN Registration
Charged
Manual
POST
https://idfixer.com.ng/api/v1 /bvn/registration
Submits a BVN user creation request for our team to process.
Body parameters
api_keystring required
Your secret API key.
bvnstring required
BVN.
first_namestring required
First name.
last_namestring required
Surname.
agent_location, bank, account_no, account_name, email, phone_no, home_address, state_of_residence, date_of_birth, local_government, geo_political_zonestring optional
Optional extra details.
cURL
PHP
Node.js
Python
Copy
curl -X POST 'https://idfixer.com.ng/api/v1/bvn/registration' \
-H 'Content-Type: application/json' \
-d '{"api_key":"YOUR_API_KEY","bvn":"22123456789","first_name":"JOHN","last_name":"DOE"}'
<?php
$ch = curl_init('https://idfixer.com.ng/api/v1/bvn/registration');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(array (
'api_key' => 'YOUR_API_KEY',
'bvn' => '22123456789',
'first_name' => 'JOHN',
'last_name' => 'DOE',
)),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);
const response = await fetch('https://idfixer.com.ng/api/v1/bvn/registration', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"bvn": "22123456789",
"first_name": "JOHN",
"last_name": "DOE"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://idfixer.com.ng/api/v1/bvn/registration',
json={
"api_key": "YOUR_API_KEY",
"bvn": "22123456789",
"first_name": "JOHN",
"last_name": "DOE"
},
timeout=60,
)
print(response.json())
● 200 OK Copy
{
"success": true,
"reference": "REQ-20261007-8F3A2C",
"message": "Request submitted successfully. It will be processed shortly."
}
IPE & Validation
9 endpoints
Instant IPE Clearance
Charged
Instant
POST
https://idfixer.com.ng/api/v1 /nin/instant-ipe
Clears a NIN from the IPE list using its Tracking ID. If you saved a webhook URL on your Developer page, the result is also sent there (see Webhooks).
Body parameters
api_keystring required
Your secret API key.
tracking_idstring required
15-character NIMC Tracking ID (letters and numbers).
cURL
PHP
Node.js
Python
Copy
curl -X POST 'https://idfixer.com.ng/api/v1/nin/instant-ipe' \
-H 'Content-Type: application/json' \
-d '{"api_key":"YOUR_API_KEY","tracking_id":"0SLT9LJS17C5G5D"}'
<?php
$ch = curl_init('https://idfixer.com.ng/api/v1/nin/instant-ipe');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(array (
'api_key' => 'YOUR_API_KEY',
'tracking_id' => '0SLT9LJS17C5G5D',
)),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);
const response = await fetch('https://idfixer.com.ng/api/v1/nin/instant-ipe', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"tracking_id": "0SLT9LJS17C5G5D"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://idfixer.com.ng/api/v1/nin/instant-ipe',
json={
"api_key": "YOUR_API_KEY",
"tracking_id": "0SLT9LJS17C5G5D"
},
timeout=60,
)
print(response.json())
● 200 OK Copy
{
"success": true,
"transaction_id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5",
"data": {
"tracking_id": "0SLT9LJS17C5G5D",
"status": "successful",
"reply": "..."
}
}
Instant IPE Status
Free
Instant
POST
https://idfixer.com.ng/api/v1 /nin/instant-ipe-status
Checks the live status of an Instant IPE Tracking ID.
Body parameters
api_keystring required
Your secret API key.
tracking_idstring required
15-character NIMC Tracking ID (letters and numbers).
cURL
PHP
Node.js
Python
Copy
curl -X POST 'https://idfixer.com.ng/api/v1/nin/instant-ipe-status' \
-H 'Content-Type: application/json' \
-d '{"api_key":"YOUR_API_KEY","tracking_id":"0SLT9LJS17C5G5D"}'
<?php
$ch = curl_init('https://idfixer.com.ng/api/v1/nin/instant-ipe-status');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(array (
'api_key' => 'YOUR_API_KEY',
'tracking_id' => '0SLT9LJS17C5G5D',
)),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);
const response = await fetch('https://idfixer.com.ng/api/v1/nin/instant-ipe-status', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"tracking_id": "0SLT9LJS17C5G5D"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://idfixer.com.ng/api/v1/nin/instant-ipe-status',
json={
"api_key": "YOUR_API_KEY",
"tracking_id": "0SLT9LJS17C5G5D"
},
timeout=60,
)
print(response.json())
● 200 OK Copy
{
"success": true,
"data": {
"tracking_id": "0SLT9LJS17C5G5D",
"status": "successful",
"reply": "..."
}
}
NIN IPE Clearance
Charged
Async
POST
https://idfixer.com.ng/api/v1 /nin/ipe
Submits a NIN for IPE clearance. Check progress with NIN IPE Status using the reference returned in data.
Body parameters
api_keystring required
Your secret API key.
ninstring required
11-digit National Identification Number.
cURL
PHP
Node.js
Python
Copy
curl -X POST 'https://idfixer.com.ng/api/v1/nin/ipe' \
-H 'Content-Type: application/json' \
-d '{"api_key":"YOUR_API_KEY","nin":"12345678901"}'
<?php
$ch = curl_init('https://idfixer.com.ng/api/v1/nin/ipe');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(array (
'api_key' => 'YOUR_API_KEY',
'nin' => '12345678901',
)),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);
const response = await fetch('https://idfixer.com.ng/api/v1/nin/ipe', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"nin": "12345678901"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://idfixer.com.ng/api/v1/nin/ipe',
json={
"api_key": "YOUR_API_KEY",
"nin": "12345678901"
},
timeout=60,
)
print(response.json())
● 200 OK Copy
{
"success": true,
"transaction_id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5",
"data": {
"status": "success",
"reference": "IPE_REF_12345",
"message": "..."
}
}
NIN IPE Status
Charged
Instant
POST
https://idfixer.com.ng/api/v1 /nin/ipe-status
Checks a NIN IPE Clearance request. Note: each successful status check is charged at the IPE price.
Body parameters
api_keystring required
Your secret API key.
referencestring required
reference returned by NIN IPE Clearance.
cURL
PHP
Node.js
Python
Copy
curl -X POST 'https://idfixer.com.ng/api/v1/nin/ipe-status' \
-H 'Content-Type: application/json' \
-d '{"api_key":"YOUR_API_KEY","reference":"IPE_REF_12345"}'
<?php
$ch = curl_init('https://idfixer.com.ng/api/v1/nin/ipe-status');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(array (
'api_key' => 'YOUR_API_KEY',
'reference' => 'IPE_REF_12345',
)),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);
const response = await fetch('https://idfixer.com.ng/api/v1/nin/ipe-status', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"reference": "IPE_REF_12345"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://idfixer.com.ng/api/v1/nin/ipe-status',
json={
"api_key": "YOUR_API_KEY",
"reference": "IPE_REF_12345"
},
timeout=60,
)
print(response.json())
● 200 OK Copy
{
"success": true,
"transaction_id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5",
"data": {
"status": "success",
"message": "..."
}
}
NIN Validation
Charged
Async
POST
https://idfixer.com.ng/api/v1 /nin/validation
Opens a NIN validation request. You are charged when it is accepted; poll NIN Validation Status for the outcome. validation_type is one of: no_record_found (No Record Found), sim_validation (SIM Validation), bank_validation (Bank Validation), modification_validation (Modification Validation) or photographic_error (Photographic Error). The short names no_record, sim, bank, modification and photo_error also work. An unknown type is rejected before you are charged.
Body parameters
api_keystring required
Your secret API key.
ninstring required
11-digit National Identification Number.
validation_typeenum optional
no_record_found (default), sim_validation, bank_validation, modification_validation or photographic_error.
cURL
PHP
Node.js
Python
Copy
curl -X POST 'https://idfixer.com.ng/api/v1/nin/validation' \
-H 'Content-Type: application/json' \
-d '{"api_key":"YOUR_API_KEY","nin":"12345678901","validation_type":"sim_validation"}'
<?php
$ch = curl_init('https://idfixer.com.ng/api/v1/nin/validation');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(array (
'api_key' => 'YOUR_API_KEY',
'nin' => '12345678901',
'validation_type' => 'sim_validation',
)),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);
const response = await fetch('https://idfixer.com.ng/api/v1/nin/validation', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"nin": "12345678901",
"validation_type": "sim_validation"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://idfixer.com.ng/api/v1/nin/validation',
json={
"api_key": "YOUR_API_KEY",
"nin": "12345678901",
"validation_type": "sim_validation"
},
timeout=60,
)
print(response.json())
● 200 OK Copy
{
"success": true,
"transaction_id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5",
"request_status": "pending",
"data": {
"status": "success",
"transaction_id": "VAL-88213",
"message": "..."
}
}
NIN Validation Status
Free
Instant
POST
https://idfixer.com.ng/api/v1 /nin/validation-status
Checks a NIN Validation request. Send either nin or the transaction_id found in the data of the submission response.
Body parameters
api_keystring required
Your secret API key.
ninstring optional
11-digit NIN. Send this or transaction_id.
transaction_idstring optional
data.transaction_id from NIN Validation.
cURL
PHP
Node.js
Python
Copy
curl -X POST 'https://idfixer.com.ng/api/v1/nin/validation-status' \
-H 'Content-Type: application/json' \
-d '{"api_key":"YOUR_API_KEY","nin":"12345678901"}'
<?php
$ch = curl_init('https://idfixer.com.ng/api/v1/nin/validation-status');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(array (
'api_key' => 'YOUR_API_KEY',
'nin' => '12345678901',
)),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);
const response = await fetch('https://idfixer.com.ng/api/v1/nin/validation-status', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"nin": "12345678901"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://idfixer.com.ng/api/v1/nin/validation-status',
json={
"api_key": "YOUR_API_KEY",
"nin": "12345678901"
},
timeout=60,
)
print(response.json())
● 200 OK Copy
{
"success": true,
"data": {
"nin": "12345678901",
"status": "Successful",
"response": "Validation Successful"
}
}
Instant NIN Validation
Charged
Async
POST
https://idfixer.com.ng/api/v1 /nin/instant-validation
Submits a NIN for instant validation. Use Instant Validation Status to follow it.
Body parameters
api_keystring required
Your secret API key.
nin_numberstring required
11-digit NIN.
cURL
PHP
Node.js
Python
Copy
curl -X POST 'https://idfixer.com.ng/api/v1/nin/instant-validation' \
-H 'Content-Type: application/json' \
-d '{"api_key":"YOUR_API_KEY","nin_number":"12345678901"}'
<?php
$ch = curl_init('https://idfixer.com.ng/api/v1/nin/instant-validation');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(array (
'api_key' => 'YOUR_API_KEY',
'nin_number' => '12345678901',
)),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);
const response = await fetch('https://idfixer.com.ng/api/v1/nin/instant-validation', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"nin_number": "12345678901"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://idfixer.com.ng/api/v1/nin/instant-validation',
json={
"api_key": "YOUR_API_KEY",
"nin_number": "12345678901"
},
timeout=60,
)
print(response.json())
● 200 OK Copy
{
"success": true,
"transaction_id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5",
"data": {
"status": "pending",
"message": "..."
}
}
Instant Validation Status
Free
Instant
POST
https://idfixer.com.ng/api/v1 /nin/instant-validation-status
Checks an Instant NIN Validation request.
Body parameters
api_keystring required
Your secret API key.
nin_numberstring required
11-digit NIN.
cURL
PHP
Node.js
Python
Copy
curl -X POST 'https://idfixer.com.ng/api/v1/nin/instant-validation-status' \
-H 'Content-Type: application/json' \
-d '{"api_key":"YOUR_API_KEY","nin_number":"12345678901"}'
<?php
$ch = curl_init('https://idfixer.com.ng/api/v1/nin/instant-validation-status');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(array (
'api_key' => 'YOUR_API_KEY',
'nin_number' => '12345678901',
)),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);
const response = await fetch('https://idfixer.com.ng/api/v1/nin/instant-validation-status', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"nin_number": "12345678901"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://idfixer.com.ng/api/v1/nin/instant-validation-status',
json={
"api_key": "YOUR_API_KEY",
"nin_number": "12345678901"
},
timeout=60,
)
print(response.json())
● 200 OK Copy
{
"success": true,
"data": {
"status": "successful",
"message": "..."
}
}
NIN Validation (Manual)
Charged
Manual
POST
https://idfixer.com.ng/api/v1 /nin/validation-manual
Submits a NIN and name for our team to validate. Get variant_id from the NIN Validation page on your dashboard.
Body parameters
api_keystring required
Your secret API key.
ninstring required
11-digit National Identification Number.
first_namestring required
First name.
last_namestring required
Surname.
variant_idinteger required
Validation type, from your dashboard.
cURL
PHP
Node.js
Python
Copy
curl -X POST 'https://idfixer.com.ng/api/v1/nin/validation-manual' \
-H 'Content-Type: application/json' \
-d '{"api_key":"YOUR_API_KEY","nin":"12345678901","first_name":"JOHN","last_name":"DOE","variant_id":1}'
<?php
$ch = curl_init('https://idfixer.com.ng/api/v1/nin/validation-manual');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(array (
'api_key' => 'YOUR_API_KEY',
'nin' => '12345678901',
'first_name' => 'JOHN',
'last_name' => 'DOE',
'variant_id' => 1,
)),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);
const response = await fetch('https://idfixer.com.ng/api/v1/nin/validation-manual', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"nin": "12345678901",
"first_name": "JOHN",
"last_name": "DOE",
"variant_id": 1
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://idfixer.com.ng/api/v1/nin/validation-manual',
json={
"api_key": "YOUR_API_KEY",
"nin": "12345678901",
"first_name": "JOHN",
"last_name": "DOE",
"variant_id": 1
},
timeout=60,
)
print(response.json())
● 200 OK Copy
{
"success": true,
"reference": "REQ-20261007-8F3A2C",
"message": "Request submitted successfully. It will be processed shortly."
}
Other ID Requests
10 endpoints
NIN Modification
Charged
Manual
POST
https://idfixer.com.ng/api/v1 /nin/modification
Submits a NIN modification for our team to process. Get variant_id from the NIN Modification page. Extra fields depend on the variant. Change of name: new_first_name, new_surname (optional new_middle_name and old_first_name/old_middle_name/old_surname). Address: address_line_1, town_city, state (optional address_line_2, postal_code). Phone: new_phone (optional old_phone). Phone + name: new_first_name, new_surname, new_phone (optional old_*). The four date-of-birth types (Change of DOB, DOB Modification (Above 5 Years), DOB + Name, DOB + Phone) need the Attestation & DOB form and attestation_letter, the attestation letter as base64 (PDF, JPG or PNG, max 5MB; a data: URI prefix is fine). Five-year rule: Change of DOB, DOB + Name and DOB + Phone only accept a new date of birth up to 5 years earlier or later than the old one. A bigger change must use DOB Modification (Above 5 Years), which only accepts changes of more than 5 years. Requests that break the rule are rejected with HTTP 422 and are not charged. Form fields: old_dob, new_dob, surname, first_name (middle_name optional), sex, marital_status, phone (11 digits, starts with 0), state_of_origin, lga_of_origin, town_of_origin, place_of_birth, state_of_birth, lga_of_birth, current_residence, resident_address, highest_education, occupation, work_address, requesting_org_address, father_surname, father_first_name, father_state_of_origin, father_lga, mother_surname, mother_first_name, mother_state_of_origin, mother_lga, attestation_number. DOB + Name replaces surname/first_name/middle_name with old_surname, old_first_name, new_surname, new_first_name (old/new middle names optional). DOB + Phone replaces phone with old_phone and new_phone. DOB types are billed at their own price.
Body parameters
api_keystring required
Your secret API key.
ninstring required
11-digit National Identification Number.
variant_idinteger required
Modification type, from your dashboard.
attestation_letterbase64 optional
Required for the three date-of-birth types.
cURL
PHP
Node.js
Python
Copy
curl -X POST 'https://idfixer.com.ng/api/v1/nin/modification' \
-H 'Content-Type: application/json' \
-d '{"api_key":"YOUR_API_KEY","nin":"12345678901","variant_id":1,"new_first_name":"JOHN","new_surname":"DOE"}'
<?php
$ch = curl_init('https://idfixer.com.ng/api/v1/nin/modification');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(array (
'api_key' => 'YOUR_API_KEY',
'nin' => '12345678901',
'variant_id' => 1,
'new_first_name' => 'JOHN',
'new_surname' => 'DOE',
)),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);
const response = await fetch('https://idfixer.com.ng/api/v1/nin/modification', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"nin": "12345678901",
"variant_id": 1,
"new_first_name": "JOHN",
"new_surname": "DOE"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://idfixer.com.ng/api/v1/nin/modification',
json={
"api_key": "YOUR_API_KEY",
"nin": "12345678901",
"variant_id": 1,
"new_first_name": "JOHN",
"new_surname": "DOE"
},
timeout=60,
)
print(response.json())
● 200 OK Copy
{
"success": true,
"reference": "REQ-20261007-8F3A2C",
"message": "Request submitted successfully. It will be processed shortly."
}
Attestation
Charged
Manual
POST
https://idfixer.com.ng/api/v1 /attestation
Submits an attestation request. Only phone and nin are required; you can also send title, surname, first_name, gender, new_dob, old_dob, marital_status, residence/origin/birth details and parents' details (same fields as the dashboard form).
Body parameters
api_keystring required
Your secret API key.
phonestring required
Phone number.
ninstring required
11-digit National Identification Number.
cURL
PHP
Node.js
Python
Copy
curl -X POST 'https://idfixer.com.ng/api/v1/attestation' \
-H 'Content-Type: application/json' \
-d '{"api_key":"YOUR_API_KEY","phone":"08012345678","nin":"12345678901","surname":"DOE","first_name":"JOHN"}'
<?php
$ch = curl_init('https://idfixer.com.ng/api/v1/attestation');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(array (
'api_key' => 'YOUR_API_KEY',
'phone' => '08012345678',
'nin' => '12345678901',
'surname' => 'DOE',
'first_name' => 'JOHN',
)),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);
const response = await fetch('https://idfixer.com.ng/api/v1/attestation', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"phone": "08012345678",
"nin": "12345678901",
"surname": "DOE",
"first_name": "JOHN"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://idfixer.com.ng/api/v1/attestation',
json={
"api_key": "YOUR_API_KEY",
"phone": "08012345678",
"nin": "12345678901",
"surname": "DOE",
"first_name": "JOHN"
},
timeout=60,
)
print(response.json())
● 200 OK Copy
{
"success": true,
"reference": "REQ-20261007-8F3A2C",
"message": "Request submitted successfully. It will be processed shortly."
}
CAC Retrieval
Charged
Manual
POST
https://idfixer.com.ng/api/v1 /cac/retrieval
Retrieves documents for an existing CAC business or company. Track it with CAC Status.
Body parameters
api_keystring required
Your secret API key.
cac_namestring optional
Business/company name. Send this and/or registration_number.
registration_numberstring optional
RC/BN number.
retrieval_documentstring optional
memart, certificate or status_report.
cURL
PHP
Node.js
Python
Copy
curl -X POST 'https://idfixer.com.ng/api/v1/cac/retrieval' \
-H 'Content-Type: application/json' \
-d '{"api_key":"YOUR_API_KEY","cac_name":"ACME VENTURES","registration_number":"RC1234567","retrieval_document":"certificate"}'
<?php
$ch = curl_init('https://idfixer.com.ng/api/v1/cac/retrieval');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(array (
'api_key' => 'YOUR_API_KEY',
'cac_name' => 'ACME VENTURES',
'registration_number' => 'RC1234567',
'retrieval_document' => 'certificate',
)),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);
const response = await fetch('https://idfixer.com.ng/api/v1/cac/retrieval', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"cac_name": "ACME VENTURES",
"registration_number": "RC1234567",
"retrieval_document": "certificate"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://idfixer.com.ng/api/v1/cac/retrieval',
json={
"api_key": "YOUR_API_KEY",
"cac_name": "ACME VENTURES",
"registration_number": "RC1234567",
"retrieval_document": "certificate"
},
timeout=60,
)
print(response.json())
● 200 OK Copy
{
"success": true,
"reference": "REQ-20261007-8F3A2C",
"message": "Request submitted successfully. It will be processed shortly."
}
CAC Registration
Charged
Manual
POST
https://idfixer.com.ng/api/v1 /cac/registration
Registers a new Business Name, Company or NGO with CAC. Our team files it and uploads the certificate, so poll CAC Status with the reference. Send every document as a base64 string (a data: URI prefix is fine). Documents can be JPG, PNG, WEBP or PDF, up to 5MB each. business_name needs surname, first_name, phone, business_name_1, id_card, passport_photo, signature, and either business_video (base64 MP4/MOV/WEBM/3GP, max 45MB) or business_video_url (an https link). Optional: other_name, dob, gender, alt_phone, email, home_address, business_name_2, business_address. company needs company_name_1, company_type, business_nature, company_address, directors (1 to 10 objects, each with full_name; optional dob, gender, nationality, phone, email, address, id_type, id_number, shares), and the arrays directors_id, passport_photos and signatures (one base64 file per director). Optional: company_name_2, share_capital, num_shares, secretary_name, secretary_phone, secretary_email, proof_of_address. ngo needs ngo_name_1, ngo_name_2 (ngo_name_3 optional), office_state, office_lga, office_city, office_house_no, office_street, ngo_mission, objective_1 to objective_3 (up to objective_6). For each of chairman_, secretary_ and treasurer_ it needs surname, first_name, dob (YYYY-MM-DD, 18+), gender (Male/Female), nationality, phone, email, state, lga, city, house_no, street, id_number (other_name optional), plus the files nin_slip, passport and signature, e.g. chairman_nin_slip. States and LGAs must be spelled exactly as on the dashboard.
Body parameters
api_keystring required
Your secret API key.
cac_typestring required
business_name, company or ngo.
…mixed required
Fields for that type (see above).
cURL
PHP
Node.js
Python
Copy
curl -X POST 'https://idfixer.com.ng/api/v1/cac/registration' \
-H 'Content-Type: application/json' \
-d '{"api_key":"YOUR_API_KEY","cac_type":"business_name","surname":"DOE","first_name":"JOHN","phone":"08012345678","business_name_1":"ACME VENTURES","business_name_2":"ACME GLOBAL VENTURES","business_address":"12 Ahmadu Bello Way, Kano","id_card":"<base64 string>","passport_photo":"<base64 string>","signature":"<base64 string>","business_video_url":"https://drive.google.com/file/d/xyz/view"}'
<?php
$ch = curl_init('https://idfixer.com.ng/api/v1/cac/registration');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(array (
'api_key' => 'YOUR_API_KEY',
'cac_type' => 'business_name',
'surname' => 'DOE',
'first_name' => 'JOHN',
'phone' => '08012345678',
'business_name_1' => 'ACME VENTURES',
'business_name_2' => 'ACME GLOBAL VENTURES',
'business_address' => '12 Ahmadu Bello Way, Kano',
'id_card' => '<base64 string>',
'passport_photo' => '<base64 string>',
'signature' => '<base64 string>',
'business_video_url' => 'https://drive.google.com/file/d/xyz/view',
)),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);
const response = await fetch('https://idfixer.com.ng/api/v1/cac/registration', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"cac_type": "business_name",
"surname": "DOE",
"first_name": "JOHN",
"phone": "08012345678",
"business_name_1": "ACME VENTURES",
"business_name_2": "ACME GLOBAL VENTURES",
"business_address": "12 Ahmadu Bello Way, Kano",
"id_card": "<base64 string>",
"passport_photo": "<base64 string>",
"signature": "<base64 string>",
"business_video_url": "https://drive.google.com/file/d/xyz/view"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://idfixer.com.ng/api/v1/cac/registration',
json={
"api_key": "YOUR_API_KEY",
"cac_type": "business_name",
"surname": "DOE",
"first_name": "JOHN",
"phone": "08012345678",
"business_name_1": "ACME VENTURES",
"business_name_2": "ACME GLOBAL VENTURES",
"business_address": "12 Ahmadu Bello Way, Kano",
"id_card": "<base64 string>",
"passport_photo": "<base64 string>",
"signature": "<base64 string>",
"business_video_url": "https://drive.google.com/file/d/xyz/view"
},
timeout=60,
)
print(response.json())
● 200 OK Copy
{
"success": true,
"reference": "REQ-20261007-8F3A2C",
"message": "Request submitted successfully. It will be processed shortly."
}
POST
https://idfixer.com.ng/api/v1 /cac/status
Checks a CAC registration or retrieval by its reference. status is pending, in_progress, completed or failed. admin_response holds our team's note (for example the RC/BN number). files lists the documents we attached; send include_files=true to get them as base64.
Body parameters
api_keystring required
Your secret API key.
referencestring required
reference returned when you placed the request.
include_filesboolean optional
true to include each file as base64.
cURL
PHP
Node.js
Python
Copy
curl -X POST 'https://idfixer.com.ng/api/v1/cac/status' \
-H 'Content-Type: application/json' \
-d '{"api_key":"YOUR_API_KEY","reference":"SRV58D1A88A1792608730","include_files":true}'
<?php
$ch = curl_init('https://idfixer.com.ng/api/v1/cac/status');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(array (
'api_key' => 'YOUR_API_KEY',
'reference' => 'SRV58D1A88A1792608730',
'include_files' => true,
)),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);
const response = await fetch('https://idfixer.com.ng/api/v1/cac/status', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"reference": "SRV58D1A88A1792608730",
"include_files": true
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://idfixer.com.ng/api/v1/cac/status',
json={
"api_key": "YOUR_API_KEY",
"reference": "SRV58D1A88A1792608730",
"include_files": True
},
timeout=60,
)
print(response.json())
● 200 OK Copy
{
"success": true,
"data": {
"reference": "SRV58D1A88A1792608730",
"type": "Business Name Registration",
"status": "completed",
"admin_response": "Registered. BN 1234567",
"files": [
{
"index": 0,
"extension": "pdf",
"size": 182233,
"base64": "<base64 string>"
}
],
"created_at": "2026-10-24 10:00:00",
"updated_at": "2026-10-27 14:30:00"
}
}
Services & Prices
Free
Instant
POST
https://idfixer.com.ng/api/v1 /services
Lists every endpoint with what a successful call costs on your account. available is false when a service isn't switched on for you. Call it by GET with your key in an Authorization: Bearer header, or by POST.
Body parameters
api_keystring required
Your secret API key.
cURL
PHP
Node.js
Python
Copy
curl -X POST 'https://idfixer.com.ng/api/v1/services' \
-H 'Content-Type: application/json' \
-d '{"api_key":"YOUR_API_KEY"}'
<?php
$ch = curl_init('https://idfixer.com.ng/api/v1/services');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(array (
'api_key' => 'YOUR_API_KEY',
)),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);
const response = await fetch('https://idfixer.com.ng/api/v1/services', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://idfixer.com.ng/api/v1/services',
json={
"api_key": "YOUR_API_KEY"
},
timeout=60,
)
print(response.json())
● 200 OK Copy
{
"success": true,
"currency": "NGN",
"services": [
{
"code": "nin/premium-slip",
"name": "NIN Premium Slip",
"price": 120,
"available": true
},
{
"code": "bvn/premium-slip",
"name": "BVN Premium Slip",
"price": 105,
"available": true
}
]
}
Wallet Balance
Free
Instant
POST
https://idfixer.com.ng/api/v1 /balance
Returns the wallet balance your API calls are charged from. Call it by GET with your key in an Authorization: Bearer header, or by POST with api_key in the JSON body. Check it before a large batch so calls don't fail with "Insufficient balance".
Body parameters
api_keystring required
Your secret API key.
cURL
PHP
Node.js
Python
Copy
curl -X POST 'https://idfixer.com.ng/api/v1/balance' \
-H 'Content-Type: application/json' \
-d '{"api_key":"YOUR_API_KEY"}'
<?php
$ch = curl_init('https://idfixer.com.ng/api/v1/balance');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(array (
'api_key' => 'YOUR_API_KEY',
)),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);
const response = await fetch('https://idfixer.com.ng/api/v1/balance', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://idfixer.com.ng/api/v1/balance',
json={
"api_key": "YOUR_API_KEY"
},
timeout=60,
)
print(response.json())
● 200 OK Copy
{
"success": true,
"developer": "you@example.com",
"wallet_balance": 43500.5,
"currency": "NGN"
}
Check Status
Free
Instant
POST
https://idfixer.com.ng/api/v1 /status
Fetches the current status of any request our team processes (NIN or BVN modification, CAC, attestation, delinking, JAMB and the other requests on this page that return a reference). Send the reference by POST (JSON body) or GET (/status?reference=…, with your key in an Authorization: Bearer header). status is pending, in_progress, completed or failed. admin_response holds our team's note. files lists any documents we attached; add include_files=true to receive them as base64. You can only look up your own requests. For NIN Validation, IPE and Personalization, use their own status endpoints.
Body parameters
api_keystring required
Your secret API key.
referencestring required
reference returned when you placed the request.
include_filesboolean optional
true to include attached files as base64.
cURL
PHP
Node.js
Python
Copy
curl -X POST 'https://idfixer.com.ng/api/v1/status' \
-H 'Content-Type: application/json' \
-d '{"api_key":"YOUR_API_KEY","reference":"SRV58D1A88A1792608730"}'
<?php
$ch = curl_init('https://idfixer.com.ng/api/v1/status');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(array (
'api_key' => 'YOUR_API_KEY',
'reference' => 'SRV58D1A88A1792608730',
)),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);
const response = await fetch('https://idfixer.com.ng/api/v1/status', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"reference": "SRV58D1A88A1792608730"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://idfixer.com.ng/api/v1/status',
json={
"api_key": "YOUR_API_KEY",
"reference": "SRV58D1A88A1792608730"
},
timeout=60,
)
print(response.json())
● 200 OK Copy
{
"success": true,
"data": {
"reference": "SRV58D1A88A1792608730",
"service": "nin-modification",
"type": "Change of Name",
"status": "completed",
"amount": 6000,
"admin_response": "Done. New details reflect on NIMC.",
"files": [],
"created_at": "2026-10-24 10:00:00",
"updated_at": "2026-10-25 09:12:00"
}
}
Self Service Delinking
Charged
Manual
POST
https://idfixer.com.ng/api/v1 /self-service-delinking
Submits a SIM/NIN self-service delinking request.
Body parameters
api_keystring required
Your secret API key.
emailstring required
Valid email address.
ninstring required
11-digit National Identification Number.
cURL
PHP
Node.js
Python
Copy
curl -X POST 'https://idfixer.com.ng/api/v1/self-service-delinking' \
-H 'Content-Type: application/json' \
-d '{"api_key":"YOUR_API_KEY","email":"customer@example.com","nin":"12345678901"}'
<?php
$ch = curl_init('https://idfixer.com.ng/api/v1/self-service-delinking');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(array (
'api_key' => 'YOUR_API_KEY',
'email' => 'customer@example.com',
'nin' => '12345678901',
)),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);
const response = await fetch('https://idfixer.com.ng/api/v1/self-service-delinking', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"email": "customer@example.com",
"nin": "12345678901"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://idfixer.com.ng/api/v1/self-service-delinking',
json={
"api_key": "YOUR_API_KEY",
"email": "customer@example.com",
"nin": "12345678901"
},
timeout=60,
)
print(response.json())
● 200 OK Copy
{
"success": true,
"reference": "REQ-20261007-8F3A2C",
"message": "Request submitted successfully. It will be processed shortly."
}
JAMB Services
Charged
Manual
POST
https://idfixer.com.ng/api/v1 /jamb-services
Submits a JAMB request (result checker, admission status, etc.). Get variant_id from the JAMB Services page.
Body parameters
api_keystring required
Your secret API key.
variant_idinteger required
JAMB service type, from your dashboard.
jamb_identifierstring required
JAMB registration number or profile code.
jamb_yearstring required
4-digit year, e.g. 2024.
cURL
PHP
Node.js
Python
Copy
curl -X POST 'https://idfixer.com.ng/api/v1/jamb-services' \
-H 'Content-Type: application/json' \
-d '{"api_key":"YOUR_API_KEY","variant_id":1,"jamb_identifier":"1234567890","jamb_year":"2024"}'
<?php
$ch = curl_init('https://idfixer.com.ng/api/v1/jamb-services');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(array (
'api_key' => 'YOUR_API_KEY',
'variant_id' => 1,
'jamb_identifier' => '1234567890',
'jamb_year' => '2024',
)),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);
const response = await fetch('https://idfixer.com.ng/api/v1/jamb-services', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"api_key": "YOUR_API_KEY",
"variant_id": 1,
"jamb_identifier": "1234567890",
"jamb_year": "2024"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://idfixer.com.ng/api/v1/jamb-services',
json={
"api_key": "YOUR_API_KEY",
"variant_id": 1,
"jamb_identifier": "1234567890",
"jamb_year": "2024"
},
timeout=60,
)
print(response.json())
● 200 OK Copy
{
"success": true,
"reference": "REQ-20261007-8F3A2C",
"message": "Request submitted successfully. It will be processed shortly."
}