Skip to main content
VerifyAll logo

Verification API for India

KYC and KYB verification API for Indian businesses

The VerifyAll Developer API brings identity verification, PAN verification, company and GST checks, PAN to CIN, credit reports, legal, background, vehicle and bulk verification into your own systems: the same checks as the dashboard, over one REST API with JSON in and JSON out. Build against a Sandbox key with sample data, then switch to your Production key for real checks.

Already have a business account? Sign in to request access

  • Sandbox never charged
  • One answer format
  • Consent on every person check
A PAN check with the Sandbox key
curl -X POST "https://api.verifyall.ai/universal/pan-verification" \
  -H "X-API-Key: $VERIFYALL_SANDBOX_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "pan": "ABCDE1234F",
    "consent": { "obtained": true, "purpose": "Customer onboarding (KYC)" },
    "client_ref": "ORDER-10021"
  }'

Why integrate

One identity and business verification API, built for India

Indian identifiers in, structured results out: PAN, GSTIN, CIN, Udyam number, UAN and more.

  • One API for KYC and KYB

    Identity, PAN, company, GST, Udyam, credit, legal, background, vehicle and bulk checks behind one key, one request format and one answer envelope.

  • Build in the Sandbox

    A Sandbox key answers from fixed sample data, so you can build and test as often as you like. Go live by switching to your Production key; the endpoints and fields stay the same.

  • Same results as the dashboard

    Every API check stays in your VerifyAll account with the same PDF report as a dashboard check, and a usage page lists every call of both keys.

  • Access you control

    Keys created by the account owner, locked to your IP addresses if you choose, with consent recorded on every check about a person.

Business use cases

Put verification inside the systems you already use

Run a check at the moment your own workflow needs it: at sign-up, before a purchase order, before a loan or before a hire.

  • Customer and borrower onboarding

    Verify the PAN a customer typed before you rely on it, with a name match, and add voter ID, driving licence, passport or mobile checks to your sign-up flow.

    KYC checks
  • Vendor onboarding in your ERP

    Check a supplier's GSTIN, find its CIN and company record from its PAN, and confirm its MSME (Udyam) status inside your procurement or ERP system, before the first purchase order.

    PAN to Udyam
  • Lending decisions

    Pull a borrower's credit report with their consent. Every bureau answers in one schema: score, score band, summary, accounts and enquiries.

    Credit reports
  • Hiring and gig workforce

    Start an individual background verification, with or without PAN, or read UAN employment history, from your applicant tracking or onboarding system.

    Background verification
  • Legal and AML due diligence

    Run a legal verification on a person or a business and AML screening as part of your risk checks, and read the finished report back from its record.

    Legal verification
  • Bulk lists

    Send a batch of 5 to 10,000 PANs or GSTINs and read every row back, instead of one call per record.

    Bulk verification

Supported verification services

KYC, KYB, credit and bulk verification APIs

Every check in the API docs, by group: from the PAN verification API and company verification API to PAN to CIN and bulk batches. Your account calls the APIs enabled for it, separately for Sandbox and Production.

Identity checks

  • PAN verification
  • Mobile verification
  • Voter ID verification
  • Passport verification
  • Driving licence verification
  • Mobile number age
  • Bank account verification
  • Address verification (by mobile)
  • Mobile to EPFO (UAN lookup)
  • UAN employment history

Business checks

  • GSTIN verification
  • Company verification (company master data)
  • PAN to CIN (company by PAN)
  • MCA signatories
  • ROC director search (paused)
  • Udyam verification
  • PAN to Udyam
  • TAN verification
  • TAN to company details
  • TIN verification
  • EPFO establishment verification

Credit reports

  • CIBIL credit report
  • CRIF credit report
  • Equifax credit report
  • Experian credit report
  • Commercial credit report

Criminal and legal

  • Legal verification of an individual or a business
  • AML screening (negative due diligence)
  • Case watch on a legal report

Background verification

  • Individual background verification
  • Individual background verification without PAN
  • Basic business verification
  • Comprehensive business verification

Vehicle

  • RC verification with challans
  • Full vehicle legal verification

Company documents (MCA)

  • Order MCA documents

Other checks

  • Hallmark (HUID) verification
  • LPG connection verification (opening soon)

Bulk verification

  • Bulk PAN verification
  • Bulk PAN to Udyam
  • Bulk PAN to CIN
  • Bulk GST verification

How access works

Apply from the dashboard, sign the agreement, create your keys

Access is reviewed by the VerifyAll team for every account. Nothing is unlocked before approval.

  1. Step 1

    Create a business account

    The Developer API is for business accounts. Sign up with your business PAN and add your company details; your business is reviewed and approved, as for running checks in the dashboard.

  2. Step 2

    Request access under Developers

    The account owner fills in one form: a business email on your company domain (confirmed with a code; it becomes your sign-in email), your website or integration domain, the APIs you need with the expected monthly volume of each, your use case, and your authorised signatory with their identity document.

  3. Step 3

    Review and agreement

    The VerifyAll team reviews the request, contacts you and shares the API Services Agreement. You follow it in the dashboard: Pending review, Contact in progress, Agreement pending, Approved.

  4. Step 4

    Create your keys

    Once the agreement is signed, one approval turns on both keys. The main account creates the Sandbox key and, when the integration works, the Production key under Developers.

Testing before approval: while your request is being reviewed, the VerifyAll team can give your account temporary access to selected APIs, with an end date and request limits, so you can test your integration. It ends at final approval, when your approved access takes over.

Sandbox and Production

Two keys, two environments

The key you send decides what happens; nothing in the request can change it. Code written against the Sandbox works in Production by changing the key.

Sandbox and Production keys compared
PropertySandboxProduction
Key starts withva_sandbox_va_live_
DataFixed sample data. No live check is run.The real check.
WalletNever charged. Works at a zero balance.Charged at your account’s API price for the check.
Marked in the answerenvironment "sandbox", meta.sample true, charged falseenvironment "live"
Use it forBuilding and testing your integration.Real work.

Sandbox answers are sample data, never a lookup of what you sent, so never use one for a decision. The placeholder values in the docs (such as ABCDE1234F) are refused with the Production key before anything is charged.

Request and answer format

One consistent format for every check

The same field names and the same answer envelope on every endpoint, whichever check you run.

The Sandbox answer
{
  "data": { "pan": "ABCDE1234F", "pan_valid": true, "name": "...", "...": "the check's own fields" },
  "status_code": 200,
  "success": true,
  "message": "Verification completed successfully.",
  "message_code": "success",
  "outcome": "verified",
  "checkResultId": 5012,
  "charged": false,
  "charged_amount": "0.00",
  "registrySource": { "registry": "Sample data", "checkedAt": "2026-10-17T09:30:00.000Z" },
  "environment": "sandbox",
  "meta": { "sample": true }
}
  • One flat request

    One JSON object in VerifyAll’s own snake_case field names, the same on every check: pan, gstin, cin, mobile, uan, name, dob, consent, client_ref. The endpoint is the check; dates are YYYY-MM-DD.

  • One answer envelope

    data, status_code, success, message and message_code on every answer; checks add outcome, checkResultId, charged and charged_amount. Every field of data is always present.

  • Safe retries

    Send an Idempotency-Key with every check: resending after a timeout returns the first answer and never charges twice. Every answer carries an X-Request-Id you can also set yourself.

  • Results you can read back

    Read a stored result again by its checkResultId, search by your client_ref, and download the same PDF reports as the dashboard. Reading results is free.

  • Checks that finish later

    Legal, background, full vehicle legal, MCA documents and bulk answer at once with outcome pending and a record id. Read the record, or add a webhook under Developers > Webhooks and be told when the check or the batch is finished.

  • Fields checked first

    A missing, malformed or unknown field is refused with a list of every problem before anything runs or is charged.

API documentation

API docs inside your dashboard

Once access is on, the API docs open under Developers in your dashboard, for the owner and for team members. Until then, the guides further down walk through an integration from Sandbox to Production.

Sign in to open the docs
  • A page for every endpoint: its cURL, Node.js and Python request, parameters, request body, answers, use cases and good practice.
  • Guides for keys, requests and answers, results and PDF reports, billing, limits and safe retries, and data protection.
  • Search across the docs, and a page for every HTTP status with what to do.
  • Downloads: the OpenAPI document and a Postman collection with Sandbox and Production environments.
  • A usage page with every call of both keys, page by page.

Security and consent

Keys you control, consent you record

Call the API from your server only, never from a web page or an app a customer can download.

  • Two keys, shown once

    One Sandbox and one Production key per account, created by the main account only. The full key is shown once; VerifyAll keeps only a fingerprint. Rotate or revoke at any time.

  • IP allow-list and expiry

    Lock each key to up to 50 IP addresses or CIDR ranges, and give it an expiry date with a reminder email seven days before.

  • APIs enabled per account

    Your account can call the APIs enabled for it, separately for Sandbox and Production. A key reaches check and result endpoints only, never account, billing or team settings.

  • Consent on every person check

    Every check about a person carries a consent object: that you hold the person’s consent and the purpose. A credit report also records when and how consent was given. You keep the consent record.

Your results stay in your account until you delete them, or until the Auto Delete setting removes them after the number of days you choose. See Security and the Privacy Policy.

Pricing

Pay per check from your prepaid wallet

No separate subscription for the API. Your API prices are shown in the dashboard once access is on.

How pricing works
  • Production calls are paid from your account’s prepaid wallet, the same one the dashboard uses, at your account’s API price for each check. A check without a separate API price is charged at your normal price on the Rate Card.
  • GST is charged once, when you recharge the wallet. The price is set by the endpoint you call, never by anything in the request.
  • A lookup that ran and found no record is charged, because the lookup was done. A check that fails because the source was unavailable or because of an error on our side is refunded in the same request.
  • Sandbox calls, requests refused before the check started, and reading results, records and PDF reports are never charged.

Guides

Read before you integrate

Developer API: FAQs

Access, the two keys, the format and pricing.

Still have questions? Our team is happy to help.

Contact Support

Get API access for KYC and KYB verification

Create a business account, or sign in as the account owner, and request access under Developers. The VerifyAll team reviews every request; talk to sales about volumes and the checks you need.