Aadhaar OKYC
kycOTP-based Aadhaar verification (Offline KYC). Two-step: generate OTP, submit OTP.
POST /gw/v1/aadhaar-okyc-v1/SLA p95: 3500 ms
Authentication
Pass your key in the X-API-Key header. Use a test_ key against the sandbox and a live_ key in production. Send an optional Idempotency-Key header to safely retry — the same key returns the same response for 24h.
X-API-Key: live_xxxxxxxxxxxx
Request
Endpoint: POST https://apisathi.dsasathi.com/gw/v1/aadhaar-okyc-v1
| Field | Type | Required | Constraints |
|---|---|---|---|
| otp | string | required | pattern: ^\d{6}$ |
| aadhaar | string | required | pattern: ^\d{12}$ |
| otp_reference | string | required | — |
Code snippets
curl -X POST https://apisathi.dsasathi.com/gw/v1/aadhaar-okyc-v1/ \
-H "X-API-Key: $API_SATHI_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"otp":"123456","aadhaar":"999999990019","otp_reference":"ref_sandbox_001"}'Response
| Field | Type | Required | Constraints |
|---|---|---|---|
| dob | string | optional | — |
| name | string | optional | — |
| gender | string | optional | — |
| address | object | optional | — |
| verified | boolean | optional | — |
Sample response
{
"dob": "1968-05-13",
"name": "Shivshankar Choudhry",
"gender": "M",
"address": {
"house": "12",
"state": "Rajasthan",
"street": "MG Road",
"pincode": "302001",
"district": "Jaipur"
},
"verified": true
}Error codes
| Code | HTTP | When |
|---|---|---|
| INVALID_INPUT | 422 | Request body failed schema validation. |
| INVALID_API_KEY | 401 | Missing, malformed, or revoked X-API-Key. |
| OUT_OF_SCOPE | 403 | API key is not scoped for this product. |
| INSUFFICIENT_BALANCE | 402 | Wallet balance is below the per-call sale price. |
| RATE_LIMITED | 429 | Per-key RPS or RPM limit exceeded. See Retry-After. |
| ROUTER_NO_VENDOR | 503 | No healthy vendor is currently available for this product. |
| VENDOR_AUTH_FAILED | 502 | Upstream vendor rejected our credentials. |
| VENDOR_ERROR | 502 | Upstream vendor returned an unexpected error. |
| TIMEOUT | 504 | Upstream vendor did not respond within the SLA window. |
OpenAPI 3.1
Generated from this product's request/response JSON Schemas.
{
"openapi": "3.1.0",
"info": {
"title": "API Sathi — Aadhaar OKYC",
"version": "1.0.0",
"description": "OTP-based Aadhaar verification (Offline KYC). Two-step: generate OTP, submit OTP."
},
"servers": [
{
"url": "https://apisathi.dsasathi.com/gw/v1"
}
],
"components": {
"securitySchemes": {
"ApiKeyAuth": {
"type": "apiKey",
"in": "header",
"name": "X-API-Key",
"description": "Your live or test key, e.g. `live_xxxxxxxxxxxx`."
}
}
},
"paths": {
"/aadhaar-okyc-v1": {
"post": {
"operationId": "aadhaarOkycV1",
"tags": [
"kyc"
],
"summary": "Aadhaar OKYC",
"description": "OTP-based Aadhaar verification (Offline KYC). Two-step: generate OTP, submit OTP.",
"security": [
{
"ApiKeyAuth": []
}
],
"parameters": [
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string"
},
"description": "Optional. Same key returns the same response for 24h."
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"aadhaar",
"otp_reference",
"otp"
],
"properties": {
"otp": {
"type": "string",
"pattern": "^\\d{6}$"
},
"aadhaar": {
"type": "string",
"pattern": "^\\d{12}$"
},
"otp_reference": {
"type": "string"
}
}
},
"example": {
"otp": "123456",
"aadhaar": "999999990019",
"otp_reference": "ref_sandbox_001"
}
}
}
},
"responses": {
"200": {
"description": "Successful, normalized response.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"dob": {
"type": "string"
},
"name": {
"type": "string"
},
"gender": {
"type": "string"
},
"address": {
"type": "object"
},
"verified": {
"type": "boolean"
}
}
},
"example": {
"dob": "1968-05-13",
"name": "Shivshankar Choudhry",
"gender": "M",
"address": {
"house": "12",
"state": "Rajasthan",
"street": "MG Road",
"pincode": "302001",
"district": "Jaipur"
},
"verified": true
}
}
}
},
"401": {
"description": "Missing, malformed, or revoked X-API-Key.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"call_id": {
"type": "string"
}
}
}
}
}
}
}
},
"402": {
"description": "Wallet balance is below the per-call sale price.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"call_id": {
"type": "string"
}
}
}
}
}
}
}
},
"403": {
"description": "API key is not scoped for this product.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"call_id": {
"type": "string"
}
}
}
}
}
}
}
},
"422": {
"description": "Request body failed schema validation.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"call_id": {
"type": "string"
}
}
}
}
}
}
}
},
"429": {
"description": "Per-key RPS or RPM limit exceeded. See Retry-After.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"call_id": {
"type": "string"
}
}
}
}
}
}
}
},
"502": {
"description": "Upstream vendor rejected our credentials.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"call_id": {
"type": "string"
}
}
}
}
}
}
}
},
"503": {
"description": "No healthy vendor is currently available for this product.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"call_id": {
"type": "string"
}
}
}
}
}
}
}
},
"504": {
"description": "Upstream vendor did not respond within the SLA window.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"call_id": {
"type": "string"
}
}
}
}
}
}
}
}
}
}
}
}
}