Skip to main content
VerifyAll logo
LiveBulk batchSandbox

Bulk Verification API

Send a whole list of PANs or GSTINs in one request and read back each row’s result, in the same shape as the single check.

The documentation opens in the VerifyAll dashboard after sign-in, for accounts with approved API access. New to the API? Start with the developer guide.

Overview

What the Bulk Verification API does

The Bulk Verification API runs one kind of check on a list of identifiers in a single request. Choose the service in the path, pan for PAN verification, pan-to-udyam for PAN to Udyam, pan-to-cin for PAN to CIN or gst for GST verification, then send a batch name and 5 to 10,000 distinct values. Repeats and blanks are dropped for you before the count is taken.

The batch is accepted straight away with a batch_id and runs in the background in chunks. You follow its progress from the batch list (status, counts per outcome and progress_percent) and read the rows as they finish. With include_result=true each successful row carries the full result in the same data schema as the stand-alone check, so the code that reads a single PAN or GSTIN answer also reads a bulk row.

Use it to check a whole vendor master, dealer network or borrower book at once, instead of a loop of single calls with your own retries and bookkeeping.

How it works

  1. 1

    Your server sends POST /bulk-verification-v2/{serviceType}/create with serviceType pan, pan-to-udyam, pan-to-cin or gst, a batch name and the values. Outside 5 to 10,000 distinct values the batch is refused with 400 invalid_request before any charge.

  2. 2

    The batch is charged upfront from your prepaid wallet, per unique value, and the answer carries data.batch_id with outcome pending.

  3. 3

    Rows are checked against live records in the background. A row that could not be answered is retried, then followed up by our team, and refunded if it cannot be checked. Watch progress_percent on GET /bulk-verification-v2/{serviceType}, or receive bulk_batch.completed on your webhook endpoint.

  4. 4

    Read the rows with GET /bulk-verification-v2/{serviceType}/{batchId}/records (add include_result=true for full results) or one row with GET /bulk-verification-v2/record/{recordId}; every row has its own PDF report.

Request and response

Bulk verification API endpoints and fields

The main fields; the full reference with every field, error code and a cURL sample is in the dashboard docs.

Endpoints
EndpointWhat it does
POST/bulk-verification-v2/{serviceType}/createCreate a batch for pan, pan-to-udyam, pan-to-cin or gst
GET/bulk-verification-v2/{serviceType}List batches of one service with status, counts, progress and limits
GET/bulk-verification-v2/{serviceType}/{batchId}/recordsList the rows of a batch, with filters and optional full results
GET/bulk-verification-v2/record/{recordId}Read one row with its full result
GET/bulk-verification-v2/record/{recordId}/certificateDownload the Udyam certificate PDF of a PAN to Udyam row, when one was found

Request fields

Bulk Verification API request fields
FieldWhat it is
serviceTypeRequiredIn the path: pan, pan-to-udyam, pan-to-cin or gst.
nameRequiredA batch name or reference, 1 to 200 characters.
valuesRequiredThe PANs or GSTINs: 5 to 10,000 distinct values. For pan-to-cin, company or LLP PANs (fourth letter C or F).
client_refOptionalYour own reference, stored with the batch (up to 100 characters).
include_resultOptionalQuery option of the records list: true to return each successful row’s full result.

What the answer returns

Bulk Verification API answer fields
FieldWhat it is
batch_idThe id of the new batch, returned by the create call with status pending.
statusBatch status: pending, processing, completed, completed_with_errors or failed.
counts / processed / progress_percentRows by outcome (success, no_record, invalid_input, failed), rows finished so far and how far the batch is, 0 to 100.
total_records / amount_chargedDistinct values in the batch and what the batch was charged (0.00 for a sandbox batch).
limitsmin_batch_size and max_batch_size (5 and 10,000), and large_batch_size, above which a batch takes a while.
value / nameFor each row, the identifier as you sent it and the name the check found.
errorWhy a row has no result: reason (no_record, invalid_input, source_busy, source_unavailable, system_error), a plain message and whether it was refunded.
resultA successful row’s full result in the same schema as the single PAN, PAN to Udyam, PAN to CIN or GST check.

Base URL https://api.verifyall.ai. Authenticate with the X-API-Key header (a va_sandbox_ or va_live_ key). Every answer carries data, status_code, success, message and message_code; checks add outcome, checkResultId, charged and charged_amount.

Key features

Bulk Verification API features and capabilities

  • Up to 10,000 values a batch

    Every service takes 5 to 10,000 distinct values in one request. Duplicates and blanks are removed before the batch is counted and charged.

  • Same result shape as the single check

    With include_result=true a row carries exactly the data of the stand-alone check, so one parser serves both single and bulk answers.

  • Rows that cannot be checked are refunded

    A row that could not be checked after retries and follow-up is refunded, and its error says so with refunded true.

  • bulk_batch.completed webhook

    Get a signed call on your endpoint when the batch reaches its final status, with the counts and the records URL, instead of polling.

Use cases

Where businesses use the Bulk Verification API

  • Vendor master clean-up

    Re-check every supplier PAN or GSTIN in your ERP in one batch and fix the rows that come back invalid or with no record.

  • MSME status of suppliers

    Run PAN to Udyam across your supplier list to see which suppliers hold a Udyam registration, and keep each certificate PDF.

  • Dealer and seller onboarding drives

    Verify a large intake of dealers, distributors or marketplace sellers by GSTIN in one request.

  • Loan book and portfolio reviews

    Re-verify borrower PANs or business PANs across a portfolio during an audit or a periodic review.

Industries

Coverage

Indian PANs (pan, pan-to-udyam), company and LLP PANs (pan-to-cin) and GSTINs (gst), 5 to 10,000 distinct values per batch. Each row is checked exactly as the single check would check it.

Limitations to plan for

  • Business accounts only. The whole batch is charged upfront for every unique value; a row with no record is charged because the lookup ran, and a row that could not be checked is refunded.
  • One batch holds one kind of identifier. To run GST and PAN checks on the same list, send two batches.
  • The batch list, records and record endpoints take the Production key only. Sandbox results are read with GET /check-results.
  • A large batch is processed in chunks and takes a while; progress_percent shows how far it is.

Integration

How to integrate the Bulk Verification API

From a business account to your first live call.

  1. Step 1

    Create a business account on VerifyAll and get it approved, as for running checks in the dashboard.

  2. Step 2

    Request Developer API access under Developers in the dashboard: the APIs you need, your expected monthly volume and your use case. The VerifyAll team reviews it and shares the API Services Agreement.

  3. Step 3

    Once the agreement is signed and access is approved, create your Sandbox key and build against sample data. Sandbox calls are never charged.

  4. Step 4

    Create your Production key, recharge your wallet and switch the key in your code: the endpoint and fields stay the same.

Get started

Request access to the Bulk Verification API

Tell us what you want to verify. We reply within one business day with access steps, Sandbox details and your API pricing.

Tell us about your integration

Tell us what you want to verify and how many checks you expect. Our team replies within one business day with access steps, Sandbox details and your API pricing.

We use these details only to reply to your request. See our privacy policy.

  • Contact sales

    Questions on volumes, onboarding or the API agreement.

    Contact sales
  • View API documentation

    The full reference for Bulk Verification API (endpoints, fields, errors, cURL) opens in the dashboard once your access is approved.

    Open the docs (sign-in)
  • Create a business account

    API keys are issued to an approved business account. Sign up, then request access under Developers.

    Create account

Pricing

Production calls are charged per check from your prepaid VerifyAll wallet, at your account’s API price; GST is added separately when you recharge. Sandbox calls are never charged. Your API prices are shown in the dashboard once access is approved. How pricing works

Already have a business account? Sign in to request access

Bulk Verification API: frequently asked questions

Answers for teams planning an integration.

Still have questions? Our team is happy to help.

Contact Support

All bulk verification APIsRun Bulk verification in the dashboard, without codeBrowse the API Marketplace

Start with the Bulk Verification API

Request access, build against the Sandbox, then go live with your Production key.