Developer Documentation

KRID API Reference

Integrate Katsina State's Resident Identity system into your applications. Verify residents, confirm identities, and build services for the people of Katsina.

API Key Auth
RESTful JSON
Swagger Docs
99.9% Uptime

Overview

The KRID API enables authorized partners (government agencies, financial institutions, healthcare providers, and approved third parties) to verify the identity of Katsina State residents. Built on a microservices architecture, the API provides secure, fast, and reliable identity verification.

Partner Verification

Verify KRID numbers, cross-check identity documents, and match faces.

Resident Services

Registration, authentication, profile management, and wallet operations.

Secure by Design

API key authentication, minimal data exposure, and full audit logging.

Authentication

The API uses two authentication methods depending on the endpoint type:

API Key

Used by external partner systems (e.g. KASEDA, SUBEB) for server-to-server verification requests.

X-API-Key: ik_live_your_key_here

Bearer Token (JWT)

Used by citizen-facing applications after resident login via OTP.

Authorization: Bearer eyJhbG...

Obtaining an API Key

  1. Submit a formal request to the iKatsina Digital Infrastructure Office
  2. Include your agency name, intended use case, and estimated request volume
  3. Sign the Data Usage Agreement (DUA)
  4. Receive your API key pair (test + production)

Base URL

Productionhttps://api.ikatsina.ng
Sandboxhttps://staging-api.ikatsina.ng

All endpoints are prefixed with /api. The Swagger interactive docs are available at /api/docs.

Rate Limits

TierRequests / minRequests / day
Standard6010,000
Premium300100,000

Rate limit headers (X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset) are included in every response.

Verification API

These endpoints are for external partners to verify Katsina residents. Authenticated via X-API-Key.

Resident API

These endpoints power citizen-facing applications (KRID portal, mobile app). Authenticated via JWT Bearer token obtained through OTP login.

Response Format

All API responses follow a consistent envelope format:

Success
json
{
  "success": true,
  "data": {
    // Response payload
  }
}
Error
json
{
  "statusCode": 401,
  "message": "Invalid API key",
  "error": "Unauthorized"
}

HTTP Status Codes

CodeMeaning
200Success. Request processed.
201Created. Resident registered successfully.
400Bad Request. Invalid input or validation error.
401Unauthorized. Missing or invalid API key / JWT.
403Forbidden. Insufficient permissions.
404Not Found. Resident or resource does not exist.
409Conflict. Duplicate NIN, BVN, phone, or face.
429Too Many Requests. Rate limit exceeded.
502Bad Gateway. Upstream service temporarily unavailable.

KRID Status Values

Every resident has a status that determines what actions they can perform:

VERIFIED

Active, verified resident. Eligible for all services.

PENDING

Registration under review. Not yet eligible.

SUSPENDED

Account temporarily suspended by admin.

REJECTED

Registration was rejected. Must re-apply.

Quick Start

Verify a KRID number in under 30 seconds. Pick your language:

curl -X POST https://api.ikatsina.ng/api/verify/krid \
  -H "Content-Type: application/json" \
  -H "X-API-Key: ik_live_your_api_key_here" \
  -d '{"kridNumber": "8392740001"}'

SDKs & Examples

JavaScript / TypeScript

npm package with full TypeScript types

Coming Soon

Python

pip package with async support

Coming Soon

PHP

Composer package for Laravel / plain PHP

Coming Soon

Swagger / OpenAPI

Interactive API explorer at /api/docs

Available

Sandbox & Testing

Test Credentials

Base URL:https://staging-api.ikatsina.ng
Test API Key:ik_test_partner_key_dev

Test KRID Numbers

KRIDStatus
8392740001VERIFIED
8392740002PENDING
8392740003SUSPENDED
0000000000Not Found

Important

Sandbox data is reset periodically. Do not use test API keys in production. Production keys begin with ik_live_, test keys with ik_test_.

Support

Integration Support

For help with API integration, onboarding, and technical issues.

api-support@ikatsina.ng

Developer Community

Join the conversation, report bugs, and request features.

developers@ikatsina.ng

Data Privacy

The API returns only minimal, non-sensitive data (first name, last name, LGA, state). Sensitive fields like NIN, BVN, phone, email, and face images are never returned. All verification requests are logged with partner ID for audit compliance.