Partner API
Wallet & Identity

Identity Verification (KYC)

Verify end-user identities in real time against Nigerian identity databases (NIN and BVN) to satisfy compliance, AML, and onboarding requirements.

Base Path/api/v1/partner/kyc
Authx-api-key (+ x-signature on verify)
Supported ID Typesbvn · nin
Rate limit30 requests / 60s (failure circuit breaker)

Verify Customer Identity

Perform an identity verification query by passing the customer's BVN or NIN along with their legal name and date of birth:

Verify customer BVN or NIN

POST /partner/kyc/verify
Signature required
FieldTypeRequiredDescription
identificationTypestringrequiredbvn or nin (case-insensitive)
valuestringrequired11-digit BVN or NIN number
firstnamestringrequiredClaimed first name
lastnamestringrequiredClaimed last name
middlenamestringoptionalClaimed middle name (if available)
dateOfBirthstringrequiredFormat: YYYY-MM-DD
phoneNumberstringoptionalCustomer phone number for cross-matching
partnerReferencestringoptionalUnique reference for tracking the verification event
cURL
Node.js
curl -X POST https://api.billpadi.com/api/v1/partner/kyc/verify \
  -H "Content-Type: application/json" \
  -H "x-api-key: $API_KEY" \
  -H "x-timestamp: $TIMESTAMP" \
  -H "x-signature: $SIGNATURE" \
  -d '{
    "identificationType": "bvn",
    "value": "22198765432",
    "firstname": "Chinedu",
    "lastname": "Okeke",
    "dateOfBirth": "1994-08-22",
    "phoneNumber": "+2348031234567",
    "partnerReference": "KYC-USER-10294"
  }'
const res = await partnerClient.post("/kyc/verify", {
  identificationType: "bvn",
  value: "22198765432",
  firstname: "Chinedu",
  lastname: "Okeke",
  dateOfBirth: "1994-08-22",
  partnerReference: "KYC-USER-10294"
});
Example response — 200 OK
{
  "success": true,
  "message": "Identity verified successfully",
  "data": {
    "verified": true,
    "confidence": 100,
    "reference": "KYC_1720603200000_1A2B",
    "partnerReference": "KYC-USER-10294",
    "matchDetails": {
      "firstname": true,
      "lastname": true,
      "dateOfBirth": true
    },
    "fee": 150
  },
  "timestamp": "2026-07-10T09:20:03.000Z",
  "path": "/api/v1/partner/kyc/verify"
}

Lookup Verification Transaction

Get KYC verification status by reference

GET /partner/kyc/transactions/:reference
API Key only

List KYC Verification Transactions

Retrieve paginated verification records with optional status filtering:

List verification audit logs

GET /partner/kyc/transactions
API Key only
ParamTypeDefaultDescription
pageinteger1Page number
limitinteger20Results per page
statusstring—Filter by status: success or failed
cURL
curl "https://api.billpadi.com/api/v1/partner/kyc/transactions?page=1&limit=20" \
  -H "x-api-key: $API_KEY"
Example response — 200 OK
{
  "success": true,
  "message": "Transactions retrieved",
  "data": [
    {
      "reference": "KYC_1720603200000_1A2B",
      "partnerReference": "KYC-USER-10294",
      "identificationType": "bvn",
      "status": "success",
      "verified": true,
      "fee": 150,
      "createdAt": "2026-07-10T09:20:03.000Z"
    }
  ],
  "pagination": {
    "total": 48,
    "page": 1,
    "limit": 20,
    "totalPages": 3,
    "hasNext": true,
    "hasPrev": false
  },
  "timestamp": "2026-07-10T09:20:03.000Z",
  "path": "/api/v1/partner/kyc/transactions"
}