Browse documentation
API reference

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.

Base URLhttps://verification.techinnoverz.com/api/v1

Authentication

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.

Headers
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.

  • 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.

  • 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.

  • 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.

Employment Verification APIs

Check a person's employment history from their EPFO records.

  • 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.

  • 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.

  • 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_INPUT

A field is missing or malformed. The details list each problem. Not charged.

401 INVALID_KEY

The key is missing, revoked, or not a key we issued.

402 WALLET_EMPTY

Your available balance is below the price of this call. Top up and retry. Not charged.

403 PRODUCTION_NOT_ENABLED

A 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_ENABLED

A test key was used before test (UAT) access was enabled for your account. Ask us to enable it.

403 API_NOT_ENABLED

This check is switched off for your account, or is not available for live use yet.

403 IP_NOT_ALLOWED

The key is restricted to certain IP addresses and this call came from another.

403 ACCOUNT_SUSPENDED

The account is suspended. Contact support.

404 NO_DATA

A valid request, but no record was found. Not charged.

404 ROUTE_NOT_FOUND

There is no endpoint at that path.

405 METHOD_NOT_ALLOWED

Use the method shown in the Allow header.

409 IDEMPOTENCY_IN_PROGRESS

A call with the same Idempotency-Key is still being processed. Retry after the delay in Retry-After.

413 PAYLOAD_TOO_LARGE

The request body is too large. Not charged.

415 UNSUPPORTED_MEDIA_TYPE

Send the request with Content-Type: application/json.

422 IDEMPOTENCY_KEY_REUSED

This Idempotency-Key was already used with a different request body. Use a new key for a new request.

429 RATE_LIMITED

Too many requests or too many at once. Wait for the Retry-After delay.

500 INTERNAL_ERROR

Something went wrong on our side. Not charged. Quote the txnId if you contact support.

502 SOURCE_ERROR

The data source returned an error. Not charged.

503 SOURCE_DOWN

The data source is unavailable right now. Not charged. Retry after the delay in Retry-After.

504 SOURCE_TIMEOUT

The 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

Get your API key

Top up your wallet and start integrating today.

Open Panel