List products
curl --request GET \
--url https://api.sendpadi.com/api/v1/merchant/identity/products \
--header 'X-Api-Key: <api-key>' \
--header 'X-Signature: <x-signature>' \
--header 'X-Timestamp: <x-timestamp>'const options = {
method: 'GET',
headers: {
'X-Timestamp': '<x-timestamp>',
'X-Signature': '<x-signature>',
'X-Api-Key': '<api-key>'
}
};
fetch('https://api.sendpadi.com/api/v1/merchant/identity/products', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.sendpadi.com/api/v1/merchant/identity/products"
headers = {
"X-Timestamp": "<x-timestamp>",
"X-Signature": "<x-signature>",
"X-Api-Key": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text){
"success": true,
"data": {
"products": [
{
"product": "bvn_basic",
"name": "BVN validate",
"description": "Confirm that a name and/or date of birth match a BVN. Does not return the full record or photo.",
"price": 70,
"currency": "NGN",
"available": true
},
{
"product": "bvn_enhanced",
"name": "BVN full lookup",
"description": "Full BVN record including photo, email, address and enrollment details when available",
"price": 100,
"currency": "NGN",
"available": true
},
{
"product": "nin_basic",
"name": "NIN basic lookup",
"description": "Name, date of birth, gender, phone number and photo linked to a NIN",
"price": 100,
"currency": "NGN",
"available": true
},
{
"product": "nin_enhanced",
"name": "NIN enhanced lookup",
"description": "Full NIN record including photo and address details when available",
"price": 100,
"currency": "NGN",
"available": true
}
]
}
}Identity
List products
List BVN validate, BVN full, and NIN lookup products with your NGN price per call. Use product to pick the matching verify endpoint. Scope: identity:read.
GET
/
api
/
v1
/
merchant
/
identity
/
products
List products
curl --request GET \
--url https://api.sendpadi.com/api/v1/merchant/identity/products \
--header 'X-Api-Key: <api-key>' \
--header 'X-Signature: <x-signature>' \
--header 'X-Timestamp: <x-timestamp>'const options = {
method: 'GET',
headers: {
'X-Timestamp': '<x-timestamp>',
'X-Signature': '<x-signature>',
'X-Api-Key': '<api-key>'
}
};
fetch('https://api.sendpadi.com/api/v1/merchant/identity/products', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.sendpadi.com/api/v1/merchant/identity/products"
headers = {
"X-Timestamp": "<x-timestamp>",
"X-Signature": "<x-signature>",
"X-Api-Key": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text){
"success": true,
"data": {
"products": [
{
"product": "bvn_basic",
"name": "BVN validate",
"description": "Confirm that a name and/or date of birth match a BVN. Does not return the full record or photo.",
"price": 70,
"currency": "NGN",
"available": true
},
{
"product": "bvn_enhanced",
"name": "BVN full lookup",
"description": "Full BVN record including photo, email, address and enrollment details when available",
"price": 100,
"currency": "NGN",
"available": true
},
{
"product": "nin_basic",
"name": "NIN basic lookup",
"description": "Name, date of birth, gender, phone number and photo linked to a NIN",
"price": 100,
"currency": "NGN",
"available": true
},
{
"product": "nin_enhanced",
"name": "NIN enhanced lookup",
"description": "Full NIN record including photo and address details when available",
"price": 100,
"currency": "NGN",
"available": true
}
]
}
}What this endpoint is for: catalog + pricing before you verify. You do not look up a BVN/NIN here.
price is what you are charged in NGN when the provider answers (found or not found). available is false when the product is disabled or has no merchant price yet. Sample amounts in the playground are examples — always use the live price from this endpoint.
product | Verify endpoint |
|---|---|
bvn_basic | Validate BVN |
bvn_enhanced | Look up BVN (full) |
nin_basic | Verify NIN (basic) |
nin_enhanced | Verify NIN (enhanced) |

