Techinnoverz Verification API
Techinnoverz Verification API is a REST API for identity, credit, banking, business and vehicle verification in India: Aadhaar OTP, PAN, Voter ID, driving licence, CIBIL, CRIF, Experian and Equifax credit reports, bank account (penny drop), GST and vehicle RC and challan checks. One API key, one prepaid wallet, JSON in and JSON out.
https://verification.techinnoverz.com/api/v1Authentication
Send your key in the x-api-key header on every request. Checks use POST with a JSON body; fetching a stored result uses GET. Create and revoke keys in the Panel; a revoked key stops working immediately.
x-api-key: YOUR_API_KEY Content-Type: application/json
Wallet and billing
You are charged only on successful hits. Failed, no-data and error calls are free.
Charged on a delivered result
A call is charged only when it returns status "found" and the response has been delivered to you. No-data results, errors, timeouts and test calls are never charged.
Balance in every response
Each successful response carries billing.charged and billing.walletBalance, your balance after this call, so you can reconcile without a second call.
Retries never double-charge
Send an Idempotency-Key with each call. If you do not get an answer, retry with the same key: you receive the same result and are charged once.
Zero balance blocks calls
You receive 402 WALLET_EMPTY until the wallet is topped up. Your balance can never go below zero.
Per-hit rates
Per-hit pricing is set on your rate card, before GST. Book a demo to get yours.
Integration notes
Test and live keys
There is one base URL. The prefix of your key decides what happens: tz_test_ keys run against sample data, are never charged and never touch your wallet; tz_live_ keys run real checks and are charged. Live keys are issued once your account has been approved for live access.
Every response carries livemode, true for a live key and false for a test key.
A successful response also carries source and dataAsOf. source is "provider" when the data was fetched for your call, and "stored" when we answered a repeat of the same lookup from a record we kept of an earlier one; dataAsOf is when the data was fetched from its source. A result served from a kept record is billed the same as any other successful result.
Idempotency and retries
Send an Idempotency-Key header (1 to 128 letters, digits or . _ : -) with every check. Calling again with the same key and the same body returns the same result, marked with the Idempotent-Replayed: true header, and never charges twice.
If a call with the key is still running you receive 409 IDEMPOTENCY_IN_PROGRESS with a Retry-After header. The same key with a different body is 422 IDEMPOTENCY_KEY_REUSED. If an earlier attempt failed without charge (SOURCE_ERROR, SOURCE_TIMEOUT or a lost call), retrying with the same key runs the check again. Keys are remembered for 7 days.
Fetching a result again
Every response carries a txnId. GET /requests/{txnId} returns the stored response of that transaction, free of charge. If your connection dropped before you received a found result, fetching it (or retrying with the same Idempotency-Key) within 10 minutes delivers it and charges it once; a result you never fetch is not charged.
Stored responses are kept for 7 days. For Aadhaar, DigiLocker and credit-bureau checks they are kept for 10 minutes only.
Response headers
X-Request-Id repeats the txnId. RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset describe your per-key limit, and Retry-After accompanies 409, 429 and 503 responses.
Timeouts and request size
A call that cannot finish within 30 seconds is answered with an error and is not charged. In the rare case that the result is found just after that, it can still be fetched with its txnId and is then charged once. Request bodies are limited to 64 KB, except checks that take photos (face match and face match with liveness), which accept up to 6 MB with JPEG or PNG images of up to about 2 MB each, base64 encoded. Images are never stored.
Identity & KYC Verification APIs
Verify an individual's identity against Aadhaar, PAN, Voter ID and driving licence records.
| Check | Endpoint | What it verifies |
|---|---|---|
| Aadhaar OTP Verification API | /identity-kyc/aadhaar-otp/send/identity-kyc/aadhaar-otp/verify | Consent-based Aadhaar verification with OTP delivered to the registered mobile number. |
| PAN Verification API | /identity-kyc/pan | Verify PAN card details and status against Income Tax Department records. |
| PAN Advanced Verification API | /identity-kyc/pan-advanced | Verify a PAN and also get its holder type and whether it is linked to Aadhaar. |
| Voter ID Verification API | /identity-kyc/voter-id | Verify EPIC (Voter ID) details against Election Commission of India records. |
| Driving Licence Verification API | /identity-kyc/driving-licence | Verify driving licence number, validity and vehicle class against Parivahan records. |
| Face Match API | /identity-kyc/face-match | Compare two photos and get a match score, for example a selfie against an ID photo. |
| Face Match with Liveness API | /identity-kyc/face-liveness | Check that a selfie is of a live person and matches the photo on their ID, in one call. |
| DigiLocker Verification API | /identity-kyc/digilocker/initiate/identity-kyc/digilocker/fetch | Consent-based fetch of a person's verified documents from DigiLocker. |
- Endpoint
/identity-kyc/aadhaar-otp/send/identity-kyc/aadhaar-otp/verify- What it verifies
- Consent-based Aadhaar verification with OTP delivered to the registered mobile number.
- Endpoint
/identity-kyc/pan- What it verifies
- Verify PAN card details and status against Income Tax Department records.
- Endpoint
/identity-kyc/pan-advanced- What it verifies
- Verify a PAN and also get its holder type and whether it is linked to Aadhaar.
- Endpoint
/identity-kyc/voter-id- What it verifies
- Verify EPIC (Voter ID) details against Election Commission of India records.
- Endpoint
/identity-kyc/driving-licence- What it verifies
- Verify driving licence number, validity and vehicle class against Parivahan records.
- Endpoint
/identity-kyc/face-match- What it verifies
- Compare two photos and get a match score, for example a selfie against an ID photo.
- Endpoint
/identity-kyc/face-liveness- What it verifies
- Check that a selfie is of a live person and matches the photo on their ID, in one call.
- Endpoint
/identity-kyc/digilocker/initiate/identity-kyc/digilocker/fetch- What it verifies
- Consent-based fetch of a person's verified documents from DigiLocker.
Mobile Intelligence APIs
Start from a mobile number to find the name, address, UPI IDs and e-commerce addresses linked to it.
| Check | Endpoint | What it verifies |
|---|---|---|
| Mobile to Address API | /mobile/mobile-to-address | Find the name and address linked to a mobile number. |
| Mobile to Prefill API | /mobile/mobile-prefill | Prefill a customer's name, date of birth, email and address from their mobile number. |
| Mobile to UPI ID API | /mobile/mobile-to-upi-id | Find the UPI ID and registered name linked to a mobile number. |
| Mobile to Multiple UPI IDs API | /mobile/mobile-to-multiple-upi | Find every UPI ID linked to a mobile number. |
| Mobile to E-Commerce Address API | /mobile/mobile-to-ecomm-address | Find delivery addresses used on e-commerce platforms with a mobile number. |
- Endpoint
/mobile/mobile-to-address- What it verifies
- Find the name and address linked to a mobile number.
- Endpoint
/mobile/mobile-prefill- What it verifies
- Prefill a customer's name, date of birth, email and address from their mobile number.
- Endpoint
/mobile/mobile-to-upi-id- What it verifies
- Find the UPI ID and registered name linked to a mobile number.
- Endpoint
/mobile/mobile-to-multiple-upi- What it verifies
- Find every UPI ID linked to a mobile number.
- Endpoint
/mobile/mobile-to-ecomm-address- What it verifies
- Find delivery addresses used on e-commerce platforms with a mobile number.
Background & Bureau Verification APIs
Pull a consumer's credit history from any of the four major credit bureaus.
| Check | Endpoint | What it verifies |
|---|---|---|
| CIBIL Credit Report API | /bureau/cibil-credit-report | Pull a consumer's CIBIL credit score, history and active tradelines. |
| CRIF Credit Report API | /bureau/crif-credit-report | Pull a consumer's CRIF High Mark credit score, history and active tradelines. |
| Experian Credit Report API | /bureau/experian-credit-report | Pull a consumer's Experian credit score, history and active tradelines. |
| Equifax Credit Report API | /bureau/equifax-credit-report | Pull a consumer's Equifax credit score, history and active tradelines. |
- Endpoint
/bureau/cibil-credit-report- What it verifies
- Pull a consumer's CIBIL credit score, history and active tradelines.
- Endpoint
/bureau/crif-credit-report- What it verifies
- Pull a consumer's CRIF High Mark credit score, history and active tradelines.
- Endpoint
/bureau/experian-credit-report- What it verifies
- Pull a consumer's Experian credit score, history and active tradelines.
- Endpoint
/bureau/equifax-credit-report- What it verifies
- Pull a consumer's Equifax credit score, history and active tradelines.
Banking & Finance Verification APIs
Confirm a bank account is real and owned by who it claims to be before money moves.
| Check | Endpoint | What it verifies |
|---|---|---|
| Bank Penny Drop / IES Verification API | /banking/bank-penny-drop | Confirm bank account ownership via penny-drop, with an instant e-statement (IES) option. |
| Bank Account Verification (Penny-less) API | /banking/bank-pennyless | Confirm a bank account and the name held at the bank without sending any money. |
- Endpoint
/banking/bank-penny-drop- What it verifies
- Confirm bank account ownership via penny-drop, with an instant e-statement (IES) option.
- Endpoint
/banking/bank-pennyless- What it verifies
- Confirm a bank account and the name held at the bank without sending any money.
Employment Verification APIs
Check a person's employment history from their EPFO records.
| Check | Endpoint | What it verifies |
|---|---|---|
| UAN Advance API | /employment/uan-advance | Fetch a person's EPFO employment history from their Universal Account Number (UAN). |
- Endpoint
/employment/uan-advance- What it verifies
- Fetch a person's EPFO employment history from their Universal Account Number (UAN).
Business & GST Verification APIs
Verify a business's GST registration and filing status before onboarding it.
| Check | Endpoint | What it verifies |
|---|---|---|
| GST Advance Verification API | /business-gst/gst-advance | Verify GSTIN details, registration status and filing history against GSTN records. |
- Endpoint
/business-gst/gst-advance- What it verifies
- Verify GSTIN details, registration status and filing history against GSTN records.
Vehicle Verification APIs
Verify vehicle registration, ownership and outstanding traffic challans.
| Check | Endpoint | What it verifies |
|---|---|---|
| RC Verification API | /vehicle/rc | Verify vehicle registration certificate (RC) details against Parivahan records. |
| RC Challan Verification API | /vehicle/rc-challan | Check outstanding traffic challans registered against a vehicle. |
- Endpoint
/vehicle/rc- What it verifies
- Verify vehicle registration certificate (RC) details against Parivahan records.
- Endpoint
/vehicle/rc-challan- What it verifies
- Check outstanding traffic challans registered against a vehicle.
Error codes
Non-billable outcomes are explicit, so your retry logic and your reconciliation agree.
400 INVALID_INPUTA field is missing or malformed. The details list each problem. Not charged.
401 INVALID_KEYThe key is missing, revoked, or not a key we issued.
402 WALLET_EMPTYYour available balance is below the price of this call. Top up and retry. Not charged.
403 PRODUCTION_NOT_ENABLEDA live key was used before live access was enabled for your account. Use a test key, or ask us to enable live access.
403 TEST_NOT_ENABLEDA test key was used before test (UAT) access was enabled for your account. Ask us to enable it.
403 API_NOT_ENABLEDThis check is switched off for your account, or is not available for live use yet.
403 IP_NOT_ALLOWEDThe key is restricted to certain IP addresses and this call came from another.
403 ACCOUNT_SUSPENDEDThe account is suspended. Contact support.
404 NO_DATAA valid request, but no record was found. Not charged.
404 ROUTE_NOT_FOUNDThere is no endpoint at that path.
405 METHOD_NOT_ALLOWEDUse the method shown in the Allow header.
409 IDEMPOTENCY_IN_PROGRESSA call with the same Idempotency-Key is still being processed. Retry after the delay in Retry-After.
413 PAYLOAD_TOO_LARGEThe request body is too large. Not charged.
415 UNSUPPORTED_MEDIA_TYPESend the request with Content-Type: application/json.
422 IDEMPOTENCY_KEY_REUSEDThis Idempotency-Key was already used with a different request body. Use a new key for a new request.
429 RATE_LIMITEDToo many requests or too many at once. Wait for the Retry-After delay.
500 INTERNAL_ERRORSomething went wrong on our side. Not charged. Quote the txnId if you contact support.
502 SOURCE_ERRORThe data source returned an error. Not charged.
503 SOURCE_DOWNThe data source is unavailable right now. Not charged. Retry after the delay in Retry-After.
504 SOURCE_TIMEOUTThe data source did not answer in time. Not charged.
Rate limits
60 requests per minute per key and 10 concurrent requests by default, with RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset headers on every response and Retry-After when you are limited. Higher limits are available on request.
Machine-readable documentation
- OpenAPI 3.1 specification — every endpoint, request and response schema.
- llms.txt — a short index of this documentation for AI assistants.
- llms-full.txt — every docs page as plain text.
- Verification API overview — what the product is and who it is for.
Get your API key
Top up your wallet and start integrating today.
