Skip to main content

Overview

FossaPay provides KYC verification through integration with Nigerian government systems. This guide covers the available KYC verification methods and best practices for compliance.

Why KYC Matters

Regulatory Compliance

Meet CBN and NDPR requirements

Fraud Prevention

Prevent identity theft and financial fraud

Risk Management

Identify and manage high-risk customers

Customer Trust

Build trust through verified identities

Available KYC Verifications

FossaPay currently supports three types of KYC verification:

BVN Verification

Verify customer identity using their Bank Verification Number (BVN).
curl -X POST https://api.fossapay.com/v1/customers/kyc/bvn \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "customerId": "cust_123456789",
    "bvn": "12345678901"
  }'
Success Response:
{
  "success": true,
  "message": "BVN verification completed successfully"
}

NIN Verification

Verify customer identity using their National Identification Number (NIN).
curl -X POST https://api.fossapay.com/v1/customers/kyc/nin \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "customerId": "cust_123456789",
    "nin": "12345678901",
    "firstName": "John",
    "lastName": "Doe",
    "dob": "1990-01-15"
  }'
Success Response:
{
  "success": true,
  "message": "NIN verification completed successfully"
}

Address Verification

Verify customer address using electricity meter number.
curl -X POST https://api.fossapay.com/v1/customers/kyc/address \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "customerId": "cust_123456789",
    "meterNumber": "1234567890",
    "houseAddress": "123 Main Street, Victoria Island",
    "state": "LAGOS"
  }'
Success Response:
{
  "success": true,
  "message": "Address verification completed successfully"
}
Valid State Codes: ABUJA, EKO, IKEJA, IBADAN, ENUGU, PH, JOS, KADUNA, KANO, BH, PROTOGY, PHISBOND, ACCESSPOWER, YOLA, ABIA, ADAMAWA, AKWA IBOM, ANAMBRA, BAUCHI, BAYELSA, BENUE, BORNO, CROSS RIVER, DELTA, EBONYI, EDO, EKITI, GOMBE, IMO, JIGAWA, KATSINA, KEBBI, KOGI, KWARA, LAGOS, NASSARAWA, NIGER, OGUN, ONDO, OSUN, OYO, PLATEAU, RIVERS, SOKOTO, TARABA, YOBE, ZAMFARA, FCT

Implementation Flow

1. Create Customer First

Before performing KYC verification, you need a customer ID:
curl -X POST https://api.fossapay.com/api/v1/customers \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "John Doe",
    "email": "john@example.com",
    "phone": "+2348012345678"
  }'

2. Perform KYC Verifications

You can perform any combination of the available KYC checks. Each successful verification upgrades the customer’s KYC level.

Error Handling

Handle verification failures appropriately:
// Example error responses
// 400 Bad Request - Invalid input
{
  "error": 400,
  "message": "Validation failed - invalid BVN format"
}

// 404 Not Found - Customer doesn't exist
{
  "error": 404,
  "message": "Customer not found"
}

Best Practices

Perform KYC verification during onboarding to ensure compliance before enabling transactions.
Keep track of which customers have completed which verifications in your database.
Provide clear feedback to customers when verification fails and guide them on next steps.
Listen to KYC webhook events to update your system automatically when verifications complete.

Next Steps

Create Customer

Create customers before KYC verification

BVN Verification API

Verify customer BVN

NIN Verification API

Verify customer NIN

Address Verification API

Verify customer address