API Sathi docs

Developer Documentation

One API key, every product. Fund your prepaid wallet, send a request, and we handle the rest — routing, retries and failover happen behind a single stable contract. Every product below ships an OpenAPI 3.1 reference, copy-paste code snippets and a sample response.

Getting started — read this first

New here? Follow the step-by-step tutorial — sign-up, wallet, API keys and your first call, with screenshots.

  • Base URL: https://apisathi.in/gw/v1/<product-slug>/ — every call is POST, Content-Type: application/json.
  • Auth is one header only: X-API-Key: live_xxx. The tenant is resolved from the key — do not send an X-Tenant-ID header, it is not used.
  • Only integrate APIs that are actually live. The catalog lists some products not yet wired to a vendor. Fetch GET https://apisathi.in/api/v1/rates and use a product only when available: true. A not-live product returns 503 ROUTER_NO_VENDOR_AVAILABLE.
  • Test keys return SANDBOX MOCK data. A test_ key returns deterministic fake responses (e.g. a fixed sample identity for any input). Never treat a test-key response as real verification — validate every product on the live_ key before going live.
  • Prepaid wallet. Fund before use; an empty wallet returns 402 INSUFFICIENT_BALANCE. Calls that fail because the upstream source was unavailable are auto-refunded and never charged.
  • “Not found” is a 200, not an error — and it is charged. For verification and KYB lookups, a request that ran correctly but matched no record returns 200 { verified: false, result_code, message } — not a 5xx. Branch on verified, never on the HTTP status alone. These are billed because the source bills us for the lookup it performed; only a genuine source failure is free. See the result-code table on any product page.
  • Idempotency. Send Idempotency-Key: <uuid> per request for safe retries — same response for 24h, no double charge.
  • Set your HTTP client timeout to ≥ 20s — most lookups return in under 2s, but credit-bureau pulls take 4–9s (p95 ~8.5s) and our upstream timeout is 15s.

Response codes

  • 200 success · 400 invalid payload (send only documented fields — additionalProperties:false)
  • 401 missing/invalid key · 402 fund wallet · 429 rate-limited or duplicate — back off and retry
  • 422 invalid input — the value was rejected (bad/placeholder identifier, wrong PAN type, reused/expired OTP, no record). Fix the input; retrying the same value fails again. Not charged.
  • 5xx / 503 genuine transient upstream error — not charged, safe to retry after a short backoff (this is NOT bad input — that returns 422)
  • 410 API deprecated/retired — stop calling it; check the catalog for the current equivalent
$ curl -X POST https://apisathi.in/gw/v1/gstin-basic-v1/ -H "X-API-Key: live_xxx" -H "Content-Type: application/json"

Usage & billing reports

Reconcile spend from your own systems. These run on the management API (/api, not /gw) and are authenticated with a JWT rather than your API key — POST your portal credentials to /api/v1/auth/login and send the returned token as Authorization: Bearer <token>. All are scoped to your tenant and accept ?from=YYYY-MM-DD&to=YYYY-MM-DD.

  • GET /api/v1/usage/summary — calls, success rate, average latency, total spend
  • GET /api/v1/usage/by-product — calls and spend per product
  • GET /api/v1/usage/by-day — daily series for reconciliation
  • GET /api/v1/usage/recent — per-call tail with call_id, latency, outcome and sale_paise
  • GET /api/v1/usage/top-errors — most frequent error codes

Every gateway response carries a call_id. Quote it in any support request and we can trace the call end to end.

eSign & Documents

e-Stamp — Article Catalogueestamp-articles-v1

List the stamp articles available for a state, with the `articleId` you must quote when creating an order. Call this FIRST. An article is the head of charge under the state Stamp Act (Simple Agreement, Affidavit, Works Contract, Power of Attorney, and so on), and `articleId` values are state-specific — an id valid in Rajasthan is not valid in Maharashtra. Creating an order with a mismatched article is rejected. The full catalogue is large (1600+ rows across states); filter client-side on `stateCode` for the state you are stamping in. Reference lookup, priced at a nominal rate.

e-Stamp — Create Orderestamp-create-v1

Create an electronic stamp-paper order. Returns an `order_id` you then poll with estamp-status-v1 for the stamped document. BILLING — read this before integrating. Two separate amounts are charged for one call: 1. A flat service fee per order (the price shown for this product). 2. The STAMP DUTY itself, which is passed through to the state at cost — the total of every `stampDutyAmount` in `series`. For a Rajasthan stamp (`stateCode: "RJ"`) the state levies a 30% surcharge on the duty, which is added automatically. The surcharge follows the STAMP, not your billing address: a Maharashtra-registered company stamping in Rajasthan pays it. So a Rajasthan order with 5000 duty is charged: service fee + 6500 duty. Make sure your wallet covers both, or the call returns 402 INSUFFICIENT_BALANCE before anything is created. `refId` must be unique per order (use your loan account number or similar) — a repeat is rejected, which makes retries safe. `articleId` comes from estamp-articles-v1 and must be valid for your `stateCode`.

e-Stamp — Order Statusestamp-status-v1

Fetch the current status of an order created with estamp-create-v1, and the stamped certificate once it is issued. WHERE THE CERTIFICATE IS. When `data.status` is FULFILLED (or CONSUMED), the certificate PDF link is `data.stampCertificateUrl` and its id is `data.eStampId`. Each stamp is also listed in `data.orderItems[]` with its own `certificateNo`, `eStampId` and `stampCertificateUrl`. There is no separate documents array. The top-level `status` is only a message; the order status is `data.status`. THE LINK EXPIRES. `stampCertificateUrl` is a time-limited link: download the PDF and store it in your own system as soon as the order is FULFILLED. To get a fresh link later, call this API again. TEST MODE returns a FULFILLED order whose link opens a sample certificate marked SAMPLE - NOT VALID, so you can build and test the download step. Stamping is not instant: poll every few seconds (not in a tight loop) while `data.status` is IN_PROGRESS. Priced at a nominal rate so polling is cheap.

e-Sign — Request Status & Signed Documentesign-status-v1

Fetch the current status of a signing request created with esign-create-v1, and once signed, the signed PDF plus the signer verification details. PASS THE PER-SIGNER `request_id`, NOT THE GROUP ID. esign-create-v1 returns one `request_id` per signer inside `requests[]`, plus a single `group_id` for the envelope. This endpoint takes the per-signer id; the group id returns 404. For a two-party document you poll twice, once per signer. THE SIGNED URL EXPIRES IN 24 HOURS. `signed_url` is a time-limited link, not permanent storage. Download the PDF and store it in your own system as soon as `signed` is true — do not persist the URL and expect it to work tomorrow. EVIDENCE ARTEFACT: for an Aadhaar signature the response carries `verified_name` (the name held against the Aadhaar record), `name_match_score` (0-1, how closely it matches the name you supplied) and `certifying_authority` (the licensed CA that issued the signature). Together with the signed PDF these are what make the signature defensible under §3A of the IT Act. A low `name_match_score` on an otherwise SUCCESSful signature is worth reviewing before you rely on the document. Polling: signing happens after esign-create-v1 returns, so poll this until `signed` is true or the request expires (`expires_at`, 7 days by default). Priced at a nominal rate so polling is cheap, but poll sensibly — every few seconds, not in a tight loop.

e-Sign — Create Signing Requestesign-create-v1

Send a PDF for legally-valid electronic signature under the IT Act. PRICING IS PER SIGNATORY, not per request. One call can carry several signers, and each is a separate signing transaction — its own request_id, its own invitation, its own Aadhaar/DSC authentication. The price shown is the rate for ONE signatory; a request is billed at that rate × the number of entries in `signers`. A two-party NDA therefore costs twice the listed rate. Your wallet must cover the full amount before the request is created, or the call returns 402 INSUFFICIENT_BALANCE and nothing is sent. Each signer gets their own `signing_url` and authenticates by Aadhaar OTP, WhatsApp or auto-DSC (`signer_auth_type`). You receive a `group_id` for the whole envelope and a per-signer `request_id`. INVITES ARE SENT FOR YOU. Each signer is emailed/messaged a signing invitation automatically, and the response reports `invitation_status` per signer. You also receive a `signing_url` per signer, so you can additionally surface the link in your own UI if you prefer — but you do not have to deliver it for signing to happen. COMPLETION. Signing happens after this call returns, so the response tells you the request was created, NOT that anything is signed. Track completion by polling, or register a callback and treat it as a prompt to re-check rather than as proof — never release a document on the strength of an unverified callback alone. `sign_coordinates` places the signature block on the page (x/y/page_num). Omit it to use the provider default position.

KYC & Verification

Aadhaar DigiLocker — Startaadhaar-digilocker-init-v1

Start a consented Aadhaar verification. Returns a `kyc_url` — send your customer there and they authenticate with UIDAI directly, entering their Aadhaar number and OTP on the government screen. YOU NEVER SEE THE AADHAAR NUMBER OR THE OTP. That is the difference between this and raw OKYC, and it is why this flow is usually the easier one to get signed off internally. What you get back at the end is a masked Aadhaar number plus the verified demographics. TWO STEPS, TWO CALLS. This one issues the link. Once the customer finishes, call aadhaar-digilocker-fetch-v1 with the `transaction_id` returned here to collect the result. Store that id against your application record — without it you cannot retrieve the verification. `uid` is YOUR reference and must be unique. A repeat is rejected, which is what makes retries safe. Supply `mobile` or `emailId` (at least one); `redirectionUrl` is where the customer lands afterwards, and receives `txnId` plus either `success=true` or `error_code` and `errMsg`. Billed per link issued. The verification itself is billed on the fetch call.

Aadhaar DigiLocker — Fetch Resultaadhaar-digilocker-fetch-v1

Collect the verified record once your customer has completed DigiLocker. Call it with the `transaction_id` from aadhaar-digilocker-init-v1. THE AADHAAR NUMBER IS MASKED and always will be — the full number is never returned by this flow. You receive name, date of birth, gender, care-of, a structured address and a base64 photo. POLL, DO NOT ASSUME. Until the customer finishes, this returns 422 with "The given transaction id for digilocker is not success". That is normal and is not an error on your side — it means they have not completed the UIDAI screens yet. Poll after your redirect fires, or on a sensible interval. Three outcomes are the CUSTOMER’s and not a fault: they declined consent, their DigiLocker account holds no eAadhaar, or they did not select the Aadhaar document. Treat those as a failed verification rather than a retryable error.

Lead Enrichmentlead-enrich-v1

One call that turns a lead into a profile. Send a mobile number — and a PAN if you have one — and we run the relevant lookups across the catalogue and return a single merged result: employment, GST, MSME, directorships and company. THE SECOND HOP IS THE POINT. Identifiers discovered in the first pass are followed automatically: a DIN found from the PAN fetches director details, a CIN fetches company master data. You never round-trip to chase them yourself. PRICING IS NOT FIXED — READ THIS BEFORE BUDGETING. You pay the normal price of each sub-lookup that SUCCEEDED, and nothing for the ones that failed or were skipped. There is no separate orchestration fee. The price shown on this page is the basic-tier FLOOR; a full-tier call on a rich lead costs considerably more. Every response itemises each lookup and what it cost in `lookups[]`, and `totalSalePaise` is exactly what you were billed — so every invoice line traces back to a lookup. WHAT COUNTS AS BILLABLE: a lookup that returns a definitive "no record" IS billed — the source did the work, and `verified: false` is still information. A lookup that FAILED (upstream error) or was SKIPPED (you did not supply the input, or that source is unavailable) costs nothing. TIMING: basic returns in 1-3s. Full includes the MSME lookup, which is currently slow (24-27s), so set your client timeout to at least 45 seconds for `tier: "full"`.

Aadhaar to Masked PANaadhaar-to-masked-pan

Masked PAN linked to input Aadhaar number

DL Validation Plusdl-validation-plus

Validate DL with additional details

Driving License Verificationdriving-license-v1

Verifies a driving licence against the Sarathi (transport department) record: holder name, date of birth, validity dates, licence classes and issuing authority. INPUT FORMAT: send `dl_number` exactly as printed but with no spaces or hyphens (e.g. RJ1420110012345), and `dob` as DD/MM/YYYY (e.g. 15/01/1990). Any other date format is rejected with 400 INVALID_REQUEST. Note that dates in the RESPONSE (dob, valid_from, valid_upto) come back as YYYY-MM-DD; that is the output format only. NOT FOUND: 404 NOT_FOUND means the source has no licence matching that number AND date of birth (usually a wrong date of birth or a typo in the number). It is not a configuration problem and it is NOT charged. Every response, including errors, carries an X-Call-Id header: quote it to support.

IFSC Lookupifsc-lookup-v1

Resolve an IFSC code to its bank, branch, address and payment-rail support.

Name Matchname-match

Score how likely two spellings of a name belong to the same person, from 0 to 100. Built for Indian KYC records: it ignores case, punctuation, titles (Mr, Smt, Dr, Shri) and word order, understands initials (R Kumar / Ravi Kumar), joined names (Vijaykumar / Vijay Kumar), common abbreviations (Mohd / Mohammed, Kr / Kumar) and spelling variants (Preeti / Priti, Rafiq / Rafik). A missing middle name costs a little; a different first name costs a lot. Returns the score, a match flag at your threshold (default 80) and the kind of match.

ID Format Validatorid-format-validate-v1

Check that Indian identifiers are well-formed before you pay for a lookup: PAN, GSTIN (with check character), Aadhaar (Verhoeff check digit), Aadhaar VID, IFSC, mobile, email, UPI ID, CIN, LLPIN, DIN, TAN, Udyam, Voter ID, passport, driving licence and vehicle registration. Send any combination in one call. Each comes back valid or not, with the reason and what its structure tells you (PAN holder type, GSTIN state and embedded PAN, CIN company type and year). This checks format only, not whether the number exists. A full Aadhaar number is never echoed back.

Pincode Lookuppincode-lookup-v1

Look up an Indian pincode and get its district, state, postal division and circle, every post office it covers (head, sub and branch offices, with delivery status) and map coordinates where India Post publishes them. Data: India Post's All India Pincode Directory. Use it to auto-fill addresses and to check that a customer's pincode matches their stated city and state. A pincode India Post does not list returns 404 and is not charged.

DIGIPIN Lookupdigipin-v1

Convert between map coordinates and India Post's DIGIPIN, the 10-character code for a roughly 4m x 4m square anywhere in India. Send latitude and longitude to get the DIGIPIN, or a DIGIPIN to get its location. Either way you also get the nearest post office and its pincode, so a captured GPS point becomes a postal address hint. Uses India Post's official open algorithm. Nearest office is approximate: it is the closest office India Post publishes coordinates for, not the postal boundary.

LEI Lookuplei-lookup-v1

Look up a Legal Entity Identifier (LEI) in the Global LEI Index, by LEI, by company registration number (CIN or LLPIN) or by company name. Returns the legal name, registration number, legal and head-office address, entity status, and whether the LEI is currently valid for regulatory use (ISSUED) or has lapsed. RBI requires an LEI for large-value payments and for borrowers above set exposure limits. Name searches return up to 10 entities ranked by how closely the name matches.

Email Checkemail-check-v1

Check an email address without sending it anything: is the format valid, does the domain accept mail (MX record), is it a throwaway / disposable address (about 9,800 known domains), a free provider like Gmail, or a role address like info@ or sales@. deliverable is true when the domain can receive mail and nothing marks the address as junk. It does not confirm that the individual mailbox exists.

HSN / SAC Code Lookuphsn-sac-lookup-v1

Find the right HSN code for goods or SAC code for services, or look up what a code means. Send code to get its description, its place in the tariff (chapter, heading, sub-heading) and the codes under it. Send query to search by plain words: everyday terms like laptop, saree or t-shirt are mapped to the official tariff wording. Data: the GST portal's HSN/SAC master. This returns codes and descriptions only, not GST rates.

Sanctions Screening (UN, OFAC, EU)sanctions-screening-v1

Screen a person or company name against the UN Security Council Consolidated List, the US OFAC SDN list and the EU Consolidated Financial Sanctions List in one call. Lists are refreshed from the official sources every 6 hours. Matching understands spelling variants, initials, word order and aliases. Pass dob to rank hits with the same birth year first and to set aside same-name hits with a different birth year. result is possible_match when at least one hit is not ruled out by date of birth: send those for manual review. A hit is never proof on its own.

PAN Business Profilepan-business-profile-v1

A complete business profile from one PAN, in one call: the PAN holder (name, type, status, address), every GST registration under the PAN with full details (status, constitution, turnover slab, nature of business, latest returns) for the active ones, the company's MCA record (CIN, status, capital, industry, registered address, active directors, registered charges), director identification for individual PANs, and the Legal Entity Identifier (LEI). Pass include_report: true to also get a ready-to-share PDF report. Company and LLP PANs get the MCA record; individual PANs get their director record if they hold a DIN. Parts that a registry has no record of come back empty rather than failing the call. Charged once per call, only when the PAN is found; a PAN with no record anywhere returns 404 and is not charged.

PAN Aadhaar Link Validationpan-aadhaar-link

PAN + Aadhaar input -> linked Yes/No

PAN Basic V1pan-basic-v1

Validate PAN and obtain name associated with PAN

PAN Details Pluspan-details-plus

PAN details V1 plus salaried/self-employed indicator and PAN issue date

PAN Verificationpan-verification-v1

Verify a PAN against the government source. Returns verified flag, name, DOB, gender, Aadhaar-link flag, category (holder type) and address. Send a REAL, well-formed PAN. A structurally invalid or non-existent PAN (e.g. a placeholder like "ABCDE1234F" — the 4th letter must be a valid holder-type code such as P for individual) returns 422 INVALID_INPUT, not a result. Billed on SUCCESS only — invalid/no-record lookups are NOT charged.

PAN to Father Namepan-to-father-name

Father's name from PAN

PAN to Masked Aadhaarpan-to-masked-aadhaar

Returns whether a PAN is linked to an Aadhaar and the masked Aadhaar number seeded against it (first 2 and last 2 digits visible, e.g. 12XXXXXXXX34), without the holder entering Aadhaar or an OTP. The full Aadhaar number is never returned: under the Aadhaar Act only the holder may share it. To check a full number your customer gives you, use pan-aadhaar-link (verifies it, never reveals it). For verified Aadhaar details with consent, use DigiLocker (aadhaar-digilocker-init-v1 / aadhaar-digilocker-fetch-v1). Individual PANs only; a company PAN has no Aadhaar.

Passport Validationpassport-validation

Validate passport via file number and get details

Vehicle RC Verificationvehicle-rc-v1

Fetch RC (Registration Certificate) details for a vehicle from VAHAN.

Voter ID Verificationvoter-id-v1

Verify a Voter ID (EPIC) number against the Election Commission source.

PAN Basic Verificationpan-basic-v1

Confirms a PAN exists and is active, with the registered name. The cheapest PAN check — use it when you only need existence and status. Use PAN Verification for date of birth and holder category, or PAN Details Plus for the full profile. Billed on success only; a PAN with no record is not charged.

PAN Details Pluspan-details-plus

The full PAN profile in one call: name parts, date of birth, gender, PAN type and status, allotment date, Aadhaar-linked flag with the masked Aadhaar, registered address, email and mobile on record, and whether the holder is a company director, salaried, or a sole proprietor. Built for underwriting: one call answers most of a KYC form. For a company PAN, `dob` is the date of incorporation and `signatory_details` lists the authorised signatories.

PAN–Aadhaar Link Statuspan-aadhaar-link

Whether a PAN is linked to the given Aadhaar. Returns a definitive answer either way — `linked: true` or `linked: false` — and both are billed, because both are answers. Individual PANs only: a company PAN has no Aadhaar and is rejected with a clear message (422, not charged).

Voter ID Verificationvoter-id-v1

Verifies an EPIC (voter ID) number against the Election Commission record and returns the registered name, relation, gender, age, state, district and constituency. No record found returns 404 and is not charged. Names on the electoral roll are often spelled differently from PAN/Aadhaar — match with tolerance.

Driving Licence Verification Plusdl-validation-plus

Everything in Driving Licence Verification plus the holder photo, a split address (house, street, city, district, state, pincode), badge details and the last-transaction date — the version to use when the licence is the primary KYC document. Same inputs.

Passport Verificationpassport-validation

Verifies a passport application against the Passport Seva record using the file number and date of birth: given name, surname, masked passport number, application type and key dates. The file number is on the application receipt (e.g. GZ1012345678912); date of birth as DD/MM/YYYY. No record returns 404 and is not charged.

Aadhaar to Masked PANaadhaar-to-masked-pan

Returns the masked PAN linked to an Aadhaar number and whether a link exists — the reverse of PAN to Masked Aadhaar. No OTP. Use it to pre-fill PAN when only Aadhaar is known. Not charged when nothing is linked.

PAN to Father Namepan-to-father-name

Returns the father's name registered against an individual PAN, masked as the source provides it. Used for name-match and KYC form pre-fill. Individual PANs only (4th character P).

ITR Filing Verificationitr-check

Whether a PAN has filed income-tax returns, and for which assessment years — acknowledgement number and date per year, with form and filing type where the source has them. A quick income-compliance check for lending and vendor onboarding: no OTP, no consent flow, no document upload. Both outcomes are answers and both are billed: `has_filings: true` with the list, or `has_filings: false` when the PAN has never filed.

Credit & Bureau

CIBIL Credit Reportcredit-report-cibil-v1

Consent-based CIBIL (TransUnion) credit report and score for an individual, looked up by PAN + mobile. Returns the bureau score plus the structured credit report (accounts, enquiries). CONSENT REQUIRED. You must hold the borrower’s consent for the credit pull before calling, and keep it as evidence. How you collect it is up to you: an OTP (see the Credit Consent OTP SMS API), a signed / e-signed loan application, or a recorded checkbox with timestamp. Mandatory fields: `mobile` (the number linked to the person’s credit record), `pan`, `name`, `gender` (`male`/`female`) and `consent` (must be `"Y"`). Optional: `consent_reference` (your application / e-sign / consent-log id, stored with the call as evidence) and `otp` (if you collected consent by OTP). Billed on SUCCESS only. (A downloadable-PDF variant is available separately as CIBIL Credit Report (PDF).) TIMING: bureau pulls are slow — typical 4-9s, p95 ~8.5s. Our upstream timeout is 15s, so set your client timeout to at least 20s. A client timeout below ~10s will surface as a failure on your side for calls we complete successfully. Timeouts are never charged.

Credit Report (Experian)credit-report-v1

Consumer credit report from Experian, pulled by mobile number with explicit borrower consent. SINGLE CALL — there is NO separate "send OTP" / OTP-initiation endpoint. The consent OTP is handled at YOUR end: send an OTP to the borrower’s registered mobile using your own OTP/SMS system, have them confirm it, then pass that same OTP here (in the `otp` field) as proof of consent. The OTP must be UNIQUE per request — reusing the same OTP for the same mobile is rejected as an invalid OTP. `device_type` and the internal name-lookup flag are set by API Sathi server-side, so you do not send them. Billed on SUCCESS only: a rejected OTP / device_ip / consent / timestamp returns a 4xx and is NOT charged. TIMING: bureau pulls are slow — typical 4-9s, p95 ~8.5s. Our upstream timeout is 15s, so set your client timeout to at least 20s. A client timeout below ~10s will surface as a failure on your side for calls we complete successfully. Timeouts are never charged. OPTIONAL FIELDS: `pan`, `date_of_birth` (YYYY-MM-DD) and `email` improve the bureau match; send them in the request BODY (never in headers). `report_type` adds a PDF and/or XML of the report: "3" = JSON + PDF link, "4" = JSON + PDF + XML links. The links expire after 1 hour, so download and store the file straight away. RESPONSE: the score is at `credit_score`; the full Experian report is at `report.result_json.INProfileResponse` (accounts in CAIS_Account, enquiries in CAPS). The layout is the Experian bureau format, so it differs from the CIBIL report. `result_code` 102 = no record at the bureau, 103 = name not found for this mobile, 106 = mobile not authenticated by the bureau.

CRIF Credit Reportcredit-report-crif-v1

Consumer credit report and score for an individual, pulled by mobile number with explicit borrower consent. SINGLE CALL — there is NO separate "send OTP" endpoint. The consent OTP is handled at YOUR end: send an OTP to the borrower’s registered mobile using your own OTP/SMS system (see the Credit Consent OTP SMS API), have them confirm it, then pass that same OTP here as proof of consent. The OTP must be UNIQUE per request. Billed on SUCCESS only (a successful pull includes the "no record found" case). TIMING: bureau pulls are slow — typical 4-9s, p95 ~8.5s. Our upstream timeout is 15s, so set your client timeout to at least 20s. A client timeout below ~10s will surface as a failure on your side for calls we complete successfully. Timeouts are never charged.

ITR Checkitr-check

Check IT returns filed last 3 FY with type and ack number

Masked Mobile Credit Reportmasked-mobile-report-v1

Credit report against a masked mobile number with consent (Experian, via API Sathi).

Skip Tracingskip-tracing

Alternate mobile + likely current addresses post disbursal

Skip Tracingskip-tracing

Locate and profile a borrower from a PAN or mobile number: current and historical addresses, alternate mobiles and emails, employment and business profile, bank and UPI presence, social footprint — each section with its own confidence and source status. Built for collections and field-verification teams. Supply `pan` or `mobile` (at least one); `name` improves matching. Sections the sources cannot resolve come back empty with `metadata.<section>.status` explaining why, and the call is still billed — it is a search, not a lookup.

KYB & Company Validation

CIN (COI) Validation Advancecin-advanced-v1

Validate a company CIN and fetch enriched MCA master data, directors and charges.

CIN (COI) Validation Basiccin-basic-v1

Validate a company CIN and fetch master company data from MCA.

CIN Enhancedcin-enhanced-v1

Deep MCA company profile for a CIN: master data, directors, charges and signatories.

CIN to PANcin-to-pan-v1

Resolve the company PAN linked to a CIN.

Company Name to CINcompany-to-cin-v1

Resolve candidate CINs for a company name with match scores.

Company Name to PANcompany-to-pan-v1

Resolve candidate company PANs for a company name with match scores.

Contact to GSTcontact-to-gst-v1

Find GSTINs linked to a mobile number with legal/trade names.

DIN Validation Basicdin-basic-v1

Validate a Director Identification Number and return director name and status.

DIN to PANdin-to-pan-v1

Resolve the PAN linked to a Director Identification Number (DIN).

GST Enhancedgst-enhanced-v1

Enhanced GSTIN intelligence: taxpayer details, contacts, business nature PLUS the full GST return filing history (GSTR1 / GSTR3B / GSTR9 / GSTR9C) with filing dates, status, delayed flag and return-filing frequency. Use this to fetch a business’s GST returns.

GSTIN Authentication Advancedgstin-verify-v1

Authenticate a GSTIN and return taxpayer details, return filings and places of business.

GSTIN Authentication Basicgstin-basic-v1

Authenticate a GSTIN and return core taxpayer details.

GSTIN Search by PANgstin-by-pan-v1

List all GSTINs registered against a PAN, optionally filtered by state.

GSTIN to Contact Detailsgstin-to-contact-v1

Fetch the registered mobile and email contact for a GSTIN.

Mobile to Udyam Lookupmobile-to-udyam-v1

Find Udyam (MSME) registrations linked to a mobile number. SLOW BY DESIGN — SET A LONG TIMEOUT. This endpoint takes 24-27 seconds against a source that is currently degraded; measured 24.5s and 26.3s on consecutive live calls. Set your client timeout to at least 45 seconds. A 30-second client timeout WILL fail intermittently on this product even though the call succeeds on our side, and you will be charged for a result you never see. Every other product in the catalogue returns in a few seconds; this one is the exception.

PAN to CINpan-to-cin-v1

Resolve the company CIN and basics (name, status, incorporation date) linked to a COMPANY PAN. Requires a company/entity PAN — the 4th letter must be C, F, H, A, T etc., NOT an individual PAN (P). An individual or unrecognized PAN returns 422 INVALID_INPUT (a company has no CIN). Billed on success only.

PAN to DINpan-to-din-v1

Resolve the Director Identification Number (DIN) linked to a PAN.

TAN Lookuptan-lookup-v1

Look up TANs registered against a company name with match scores.

TAN to Companytan-to-company-v1

Validate a TAN and fetch the associated company name, status and address.

GST Compliance — E-Way Bill & E-Invoice

Cancel E-Way Bill (E-Invoice)einvoice-cancel-ewb-v1

Cancel an e-way bill that was generated through the e-invoice system. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. THE BODY IS RELAYED VERBATIM. Send the portal’s documented request body as `payload` and we pass it through untouched. Consult the e-way bill / e-invoice API specification for the fields this operation expects; the sample below shows the envelope, not the body.

Cancel IRNeinvoice-cancel-irn-v1

Cancel a registered IRN within the window the portal permits. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. THE BODY IS RELAYED VERBATIM. Send the portal’s documented request body as `payload` and we pass it through untouched. Consult the e-way bill / e-invoice API specification for the fields this operation expects; the sample below shows the envelope, not the body.

Extract Signed QR Codeeinvoice-extract-qr-v1

Decode the signed QR payload on an e-invoice and return its contents in readable form. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. THE BODY IS RELAYED VERBATIM. Send the portal’s documented request body as `payload` and we pass it through untouched. Consult the e-way bill / e-invoice API specification for the fields this operation expects; the sample below shows the envelope, not the body.

Extract Signed Invoiceeinvoice-extract-signed-invoice-v1

Decode the signed invoice payload returned at IRN generation. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. THE BODY IS RELAYED VERBATIM. Send the portal’s documented request body as `payload` and we pass it through untouched. Consult the e-way bill / e-invoice API specification for the fields this operation expects; the sample below shows the envelope, not the body.

Generate E-Way Bill from IRNeinvoice-generate-ewb-by-irn-v1

Raise an e-way bill directly against an already-registered IRN, without re-keying the invoice. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. THE BODY IS RELAYED VERBATIM. Send the portal’s documented request body as `payload` and we pass it through untouched. Consult the e-way bill / e-invoice API specification for the fields this operation expects; the sample below shows the envelope, not the body.

Generate IRN — Large Invoiceeinvoice-generate-irn-bulk-v1

Register an invoice carrying up to 1000 line items. Same contract as Generate IRN, sized for bulk documents. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. THE BODY IS RELAYED VERBATIM. Send the portal’s documented request body as `payload` and we pass it through untouched. Consult the e-way bill / e-invoice API specification for the fields this operation expects; the sample below shows the envelope, not the body.

Generate IRNeinvoice-generate-irn-v1

Register an invoice and obtain its IRN, signed QR code and acknowledgement. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. THE BODY IS RELAYED VERBATIM. Send the portal’s documented request body as `payload` and we pass it through untouched. Consult the e-way bill / e-invoice API specification for the fields this operation expects; the sample below shows the envelope, not the body.

Generate QR Imageeinvoice-generate-qr-image-v1

Render a signed QR payload as an image for printing on the invoice. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. THE BODY IS RELAYED VERBATIM. Send the portal’s documented request body as `payload` and we pass it through untouched. Consult the e-way bill / e-invoice API specification for the fields this operation expects; the sample below shows the envelope, not the body.

Get E-Invoice by Acknowledgementeinvoice-get-by-ack-v1

Fetch a registered e-invoice using its acknowledgement number. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. PARAMETERS ARE RELAYED VERBATIM. Put the portal’s documented query parameters in `query_string` exactly as the portal names them — they are case-sensitive and we do not rewrite them. THE SAMPLE BELOW IS ILLUSTRATIVE unless noted. Two parameter names are confirmed against the live portal: `GSTIN=` on the taxpayer lookup (upper case) and `hsncode=` on the HSN lookup (lower case) — the portal is inconsistent about casing, which is why we relay rather than normalise. For every other read, check the portal specification; if a parameter is rejected, the portal names the one it wanted and we will correct the sample.

Get E-Invoice by IRNeinvoice-get-by-irn-v1

Fetch a registered e-invoice using its IRN. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. PARAMETERS ARE RELAYED VERBATIM. Put the portal’s documented query parameters in `query_string` exactly as the portal names them — they are case-sensitive and we do not rewrite them. THE SAMPLE BELOW IS ILLUSTRATIVE unless noted. Two parameter names are confirmed against the live portal: `GSTIN=` on the taxpayer lookup (upper case) and `hsncode=` on the HSN lookup (lower case) — the portal is inconsistent about casing, which is why we relay rather than normalise. For every other read, check the portal specification; if a parameter is rejected, the portal names the one it wanted and we will correct the sample.

Get E-Way Bill Details by IRNeinvoice-get-ewb-by-irn-v1

Fetch the e-way bill details attached to a registered IRN. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. PARAMETERS ARE RELAYED VERBATIM. Put the portal’s documented query parameters in `query_string` exactly as the portal names them — they are case-sensitive and we do not rewrite them. THE SAMPLE BELOW IS ILLUSTRATIVE unless noted. Two parameter names are confirmed against the live portal: `GSTIN=` on the taxpayer lookup (upper case) and `hsncode=` on the HSN lookup (lower case) — the portal is inconsistent about casing, which is why we relay rather than normalise. For every other read, check the portal specification; if a parameter is rejected, the portal names the one it wanted and we will correct the sample.

Get IRN by Document Detailseinvoice-get-irn-by-doc-v1

Find the IRN for an invoice from its document type, number and date. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. PARAMETERS ARE RELAYED VERBATIM. Put the portal’s documented query parameters in `query_string` exactly as the portal names them — they are case-sensitive and we do not rewrite them. THE SAMPLE BELOW IS ILLUSTRATIVE unless noted. Two parameter names are confirmed against the live portal: `GSTIN=` on the taxpayer lookup (upper case) and `hsncode=` on the HSN lookup (lower case) — the portal is inconsistent about casing, which is why we relay rather than normalise. For every other read, check the portal specification; if a parameter is rejected, the portal names the one it wanted and we will correct the sample.

Get QR Imageeinvoice-get-qr-image-v1

Retrieve a previously generated QR image. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. PARAMETERS ARE RELAYED VERBATIM. Put the portal’s documented query parameters in `query_string` exactly as the portal names them — they are case-sensitive and we do not rewrite them. THE SAMPLE BELOW IS ILLUSTRATIVE unless noted. Two parameter names are confirmed against the live portal: `GSTIN=` on the taxpayer lookup (upper case) and `hsncode=` on the HSN lookup (lower case) — the portal is inconsistent about casing, which is why we relay rather than normalise. For every other read, check the portal specification; if a parameter is rejected, the portal names the one it wanted and we will correct the sample.

E-Invoice Taxpayer Lookupeinvoice-get-taxpayer-v1

Check whether a GSTIN is enabled for e-invoicing and fetch its registered details. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. PARAMETERS ARE RELAYED VERBATIM. Put the portal’s documented query parameters in `query_string` exactly as the portal names them — they are case-sensitive and we do not rewrite them. THE SAMPLE BELOW IS ILLUSTRATIVE unless noted. Two parameter names are confirmed against the live portal: `GSTIN=` on the taxpayer lookup (upper case) and `hsncode=` on the HSN lookup (lower case) — the portal is inconsistent about casing, which is why we relay rather than normalise. For every other read, check the portal specification; if a parameter is rejected, the portal names the one it wanted and we will correct the sample.

Sync GSTIN from Common Portaleinvoice-sync-gstin-v1

Refresh a GSTIN's details from the GST common portal when the e-invoice system holds stale data. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. PARAMETERS ARE RELAYED VERBATIM. Put the portal’s documented query parameters in `query_string` exactly as the portal names them — they are case-sensitive and we do not rewrite them. THE SAMPLE BELOW IS ILLUSTRATIVE unless noted. Two parameter names are confirmed against the live portal: `GSTIN=` on the taxpayer lookup (upper case) and `hsncode=` on the HSN lookup (lower case) — the portal is inconsistent about casing, which is why we relay rather than normalise. For every other read, check the portal specification; if a parameter is rejected, the portal names the one it wanted and we will correct the sample.

Cancel E-Way Billewb-cancel-v1

Cancel an e-way bill you generated. Only permitted within the window the portal allows and before verification in transit. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. THE BODY IS RELAYED VERBATIM. Send the portal’s documented request body as `payload` and we pass it through untouched. Consult the e-way bill / e-invoice API specification for the fields this operation expects; the sample below shows the envelope, not the body.

Close E-Way Billewb-closure-v1

Close an e-way bill so it can no longer be acted on. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. THE BODY IS RELAYED VERBATIM. Send the portal’s documented request body as `payload` and we pass it through untouched. Consult the e-way bill / e-invoice API specification for the fields this operation expects; the sample below shows the envelope, not the body.

Extend E-Way Bill Validityewb-extend-validity-v1

Extend validity on a consignment still in transit. Allowed only inside the portal's permitted window around expiry. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. THE BODY IS RELAYED VERBATIM. Send the portal’s documented request body as `payload` and we pass it through untouched. Consult the e-way bill / e-invoice API specification for the fields this operation expects; the sample below shows the envelope, not the body.

Generate Consolidated E-Way Billewb-generate-consolidated-v1

Combine several e-way bills moving on one vehicle into a single consolidated bill (trip sheet). CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. THE BODY IS RELAYED VERBATIM. Send the portal’s documented request body as `payload` and we pass it through untouched. Consult the e-way bill / e-invoice API specification for the fields this operation expects; the sample below shows the envelope, not the body.

Generate E-Way Billewb-generate-v1

Generate an e-way bill for a consignment. Returns the EWB number and validity. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. THE BODY IS RELAYED VERBATIM. Send the portal’s documented request body as `payload` and we pass it through untouched. Consult the e-way bill / e-invoice API specification for the fields this operation expects; the sample below shows the envelope, not the body.

Get E-Way Bills by Dateewb-get-by-date-v1

List the e-way bills you generated on a given date. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. PARAMETERS ARE RELAYED VERBATIM. Put the portal’s documented query parameters in `query_string` exactly as the portal names them — they are case-sensitive and we do not rewrite them. THE SAMPLE BELOW IS ILLUSTRATIVE unless noted. Two parameter names are confirmed against the live portal: `GSTIN=` on the taxpayer lookup (upper case) and `hsncode=` on the HSN lookup (lower case) — the portal is inconsistent about casing, which is why we relay rather than normalise. For every other read, check the portal specification; if a parameter is rejected, the portal names the one it wanted and we will correct the sample.

Get E-Way Bill by Documentewb-get-by-document-v1

Find the e-way bill generated against a specific consignor document. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. PARAMETERS ARE RELAYED VERBATIM. Put the portal’s documented query parameters in `query_string` exactly as the portal names them — they are case-sensitive and we do not rewrite them. THE SAMPLE BELOW IS ILLUSTRATIVE unless noted. Two parameter names are confirmed against the live portal: `GSTIN=` on the taxpayer lookup (upper case) and `hsncode=` on the HSN lookup (lower case) — the portal is inconsistent about casing, which is why we relay rather than normalise. For every other read, check the portal specification; if a parameter is rejected, the portal names the one it wanted and we will correct the sample.

Get E-Way Bills Raised by Othersewb-get-by-other-party-v1

List e-way bills other parties have raised against your GSTIN. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. PARAMETERS ARE RELAYED VERBATIM. Put the portal’s documented query parameters in `query_string` exactly as the portal names them — they are case-sensitive and we do not rewrite them. THE SAMPLE BELOW IS ILLUSTRATIVE unless noted. Two parameter names are confirmed against the live portal: `GSTIN=` on the taxpayer lookup (upper case) and `hsncode=` on the HSN lookup (lower case) — the portal is inconsistent about casing, which is why we relay rather than normalise. For every other read, check the portal specification; if a parameter is rejected, the portal names the one it wanted and we will correct the sample.

Get Consolidated E-Way Billsewb-get-consolidated-v1

Fetch a consolidated e-way bill (trip sheet) and the bills it covers. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. PARAMETERS ARE RELAYED VERBATIM. Put the portal’s documented query parameters in `query_string` exactly as the portal names them — they are case-sensitive and we do not rewrite them. THE SAMPLE BELOW IS ILLUSTRATIVE unless noted. Two parameter names are confirmed against the live portal: `GSTIN=` on the taxpayer lookup (upper case) and `hsncode=` on the HSN lookup (lower case) — the portal is inconsistent about casing, which is why we relay rather than normalise. For every other read, check the portal specification; if a parameter is rejected, the portal names the one it wanted and we will correct the sample.

E-Way Bill Error Listewb-get-error-list-v1

The portal's current error-code list, useful for mapping rejection reasons to messages. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. PARAMETERS ARE RELAYED VERBATIM. Put the portal’s documented query parameters in `query_string` exactly as the portal names them — they are case-sensitive and we do not rewrite them. THE SAMPLE BELOW IS ILLUSTRATIVE unless noted. Two parameter names are confirmed against the live portal: `GSTIN=` on the taxpayer lookup (upper case) and `hsncode=` on the HSN lookup (lower case) — the portal is inconsistent about casing, which is why we relay rather than normalise. For every other read, check the portal specification; if a parameter is rejected, the portal names the one it wanted and we will correct the sample.

Get E-Way Bills Assigned to Transporter — by Dayewb-get-for-transporter-day-v1

As a transporter, list the e-way bills assigned to you for a given day. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. PARAMETERS ARE RELAYED VERBATIM. Put the portal’s documented query parameters in `query_string` exactly as the portal names them — they are case-sensitive and we do not rewrite them. THE SAMPLE BELOW IS ILLUSTRATIVE unless noted. Two parameter names are confirmed against the live portal: `GSTIN=` on the taxpayer lookup (upper case) and `hsncode=` on the HSN lookup (lower case) — the portal is inconsistent about casing, which is why we relay rather than normalise. For every other read, check the portal specification; if a parameter is rejected, the portal names the one it wanted and we will correct the sample.

Get E-Way Bills Assigned to Transporter — by GSTINewb-get-for-transporter-gstin-v1

As a transporter, list the e-way bills assigned to you by a particular GSTIN. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. PARAMETERS ARE RELAYED VERBATIM. Put the portal’s documented query parameters in `query_string` exactly as the portal names them — they are case-sensitive and we do not rewrite them. THE SAMPLE BELOW IS ILLUSTRATIVE unless noted. Two parameter names are confirmed against the live portal: `GSTIN=` on the taxpayer lookup (upper case) and `hsncode=` on the HSN lookup (lower case) — the portal is inconsistent about casing, which is why we relay rather than normalise. For every other read, check the portal specification; if a parameter is rejected, the portal names the one it wanted and we will correct the sample.

HSN Code Lookupewb-get-hsn-v1

Resolve an HSN code to its official description. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. PARAMETERS ARE RELAYED VERBATIM. Put the portal’s documented query parameters in `query_string` exactly as the portal names them — they are case-sensitive and we do not rewrite them. THE SAMPLE BELOW IS ILLUSTRATIVE unless noted. Two parameter names are confirmed against the live portal: `GSTIN=` on the taxpayer lookup (upper case) and `hsncode=` on the HSN lookup (lower case) — the portal is inconsistent about casing, which is why we relay rather than normalise. For every other read, check the portal specification; if a parameter is rejected, the portal names the one it wanted and we will correct the sample.

Get E-Way Bills Rejected by Othersewb-get-rejected-v1

List your e-way bills that the counterparty has rejected. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. PARAMETERS ARE RELAYED VERBATIM. Put the portal’s documented query parameters in `query_string` exactly as the portal names them — they are case-sensitive and we do not rewrite them. THE SAMPLE BELOW IS ILLUSTRATIVE unless noted. Two parameter names are confirmed against the live portal: `GSTIN=` on the taxpayer lookup (upper case) and `hsncode=` on the HSN lookup (lower case) — the portal is inconsistent about casing, which is why we relay rather than normalise. For every other read, check the portal specification; if a parameter is rejected, the portal names the one it wanted and we will correct the sample.

E-Way Bill Taxpayer Lookupewb-get-taxpayer-v1

Look up a taxpayer's registration details as the e-way bill system holds them. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. PARAMETERS ARE RELAYED VERBATIM. Put the portal’s documented query parameters in `query_string` exactly as the portal names them — they are case-sensitive and we do not rewrite them. THE SAMPLE BELOW IS ILLUSTRATIVE unless noted. Two parameter names are confirmed against the live portal: `GSTIN=` on the taxpayer lookup (upper case) and `hsncode=` on the HSN lookup (lower case) — the portal is inconsistent about casing, which is why we relay rather than normalise. For every other read, check the portal specification; if a parameter is rejected, the portal names the one it wanted and we will correct the sample.

Get E-Way Bills for Transporter by Stateewb-get-transporter-by-state-v1

As a transporter, list assigned e-way bills filtered by state. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. PARAMETERS ARE RELAYED VERBATIM. Put the portal’s documented query parameters in `query_string` exactly as the portal names them — they are case-sensitive and we do not rewrite them. THE SAMPLE BELOW IS ILLUSTRATIVE unless noted. Two parameter names are confirmed against the live portal: `GSTIN=` on the taxpayer lookup (upper case) and `hsncode=` on the HSN lookup (lower case) — the portal is inconsistent about casing, which is why we relay rather than normalise. For every other read, check the portal specification; if a parameter is rejected, the portal names the one it wanted and we will correct the sample.

Enrolled Transporter Lookupewb-get-transporter-v1

Look up a transporter enrolled on the e-way bill system by their transporter ID. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. PARAMETERS ARE RELAYED VERBATIM. Put the portal’s documented query parameters in `query_string` exactly as the portal names them — they are case-sensitive and we do not rewrite them. THE SAMPLE BELOW IS ILLUSTRATIVE unless noted. Two parameter names are confirmed against the live portal: `GSTIN=` on the taxpayer lookup (upper case) and `hsncode=` on the HSN lookup (lower case) — the portal is inconsistent about casing, which is why we relay rather than normalise. For every other read, check the portal specification; if a parameter is rejected, the portal names the one it wanted and we will correct the sample.

Get E-Way Billewb-get-v1

Fetch a single e-way bill by its number, with full Part-A and Part-B detail. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. PARAMETERS ARE RELAYED VERBATIM. Put the portal’s documented query parameters in `query_string` exactly as the portal names them — they are case-sensitive and we do not rewrite them. THE SAMPLE BELOW IS ILLUSTRATIVE unless noted. Two parameter names are confirmed against the live portal: `GSTIN=` on the taxpayer lookup (upper case) and `hsncode=` on the HSN lookup (lower case) — the portal is inconsistent about casing, which is why we relay rather than normalise. For every other read, check the portal specification; if a parameter is rejected, the portal names the one it wanted and we will correct the sample.

Add Vehicle to Multi-Vehicle Movementewb-multivehicle-add-v1

Add vehicle details to an initiated multi-vehicle movement. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. THE BODY IS RELAYED VERBATIM. Send the portal’s documented request body as `payload` and we pass it through untouched. Consult the e-way bill / e-invoice API specification for the fields this operation expects; the sample below shows the envelope, not the body.

Change Vehicle on Multi-Vehicle Movementewb-multivehicle-change-v1

Change vehicle details already recorded against a multi-vehicle movement. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. THE BODY IS RELAYED VERBATIM. Send the portal’s documented request body as `payload` and we pass it through untouched. Consult the e-way bill / e-invoice API specification for the fields this operation expects; the sample below shows the envelope, not the body.

Initiate Multi-Vehicle Movementewb-multivehicle-init-v1

Start a multi-vehicle movement for a single e-way bill, where one consignment is split across vehicles. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. THE BODY IS RELAYED VERBATIM. Send the portal’s documented request body as `payload` and we pass it through untouched. Consult the e-way bill / e-invoice API specification for the fields this operation expects; the sample below shows the envelope, not the body.

Re-generate Consolidated E-Way Billewb-regenerate-consolidated-v1

Re-issue a consolidated e-way bill (trip sheet), typically after a vehicle change. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. THE BODY IS RELAYED VERBATIM. Send the portal’s documented request body as `payload` and we pass it through untouched. Consult the e-way bill / e-invoice API specification for the fields this operation expects; the sample below shows the envelope, not the body.

Reject E-Way Billewb-reject-v1

Reject an e-way bill raised against your GSTIN by another party. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. THE BODY IS RELAYED VERBATIM. Send the portal’s documented request body as `payload` and we pass it through untouched. Consult the e-way bill / e-invoice API specification for the fields this operation expects; the sample below shows the envelope, not the body.

E-Way Bill Report by Assigned Dateewb-report-by-transporter-date-v1

Transporter-assigned e-way bill report for a given assignment date. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. PARAMETERS ARE RELAYED VERBATIM. Put the portal’s documented query parameters in `query_string` exactly as the portal names them — they are case-sensitive and we do not rewrite them. THE SAMPLE BELOW IS ILLUSTRATIVE unless noted. Two parameter names are confirmed against the live portal: `GSTIN=` on the taxpayer lookup (upper case) and `hsncode=` on the HSN lookup (lower case) — the portal is inconsistent about casing, which is why we relay rather than normalise. For every other read, check the portal specification; if a parameter is rejected, the portal names the one it wanted and we will correct the sample.

Update Part-B / Vehicle Numberewb-update-partb-v1

Attach or change the vehicle and transport details (Part-B) on an existing e-way bill. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. THE BODY IS RELAYED VERBATIM. Send the portal’s documented request body as `payload` and we pass it through untouched. Consult the e-way bill / e-invoice API specification for the fields this operation expects; the sample below shows the envelope, not the body.

Update Transporterewb-update-transporter-v1

Reassign an e-way bill to a different transporter GSTIN. CREDENTIALS ARE THE TAXPAYER’S, AND ARE PER CALL. `gstin`, `username` and `password` are the credentials the GST portal issued to that taxpayer for API access — not an API Sathi login. They are sent per request rather than stored against your account, because one customer legitimately files for several GSTINs. They are write-only: they never appear in your call history or in our logs. DO NOT SEND A REQUEST ID. The portal requires a unique id on every request. We mint it from the call id, so it is guaranteed unique and it ties your call to our trace and the portal’s record — one identifier for a support conversation. A `request_id` you send is ignored. FAILURE IS NOT CHARGED. The portal reports a rejection in its own body rather than as an HTTP error — a wrong credential, an expired e-way bill, a duplicate document. We surface it as an error with the portal’s reason, release the wallet hold, and you are not billed. You pay for calls the portal accepted. READING A 502. A `VENDOR_ERROR` carries the portal’s own words in `reason`, and the wording tells you where the problem is. “Invalid login credentials” or “Incorrect user id” means the taxpayer’s `username`/`password` — not your API Sathi key, and not our platform. Those are issued by the GST portal to that GSTIN and must be enabled for API access there. Anything mentioning a header, an action or a mandatory parameter is ours: send it to us with the call id and we will fix the mapping. THE BODY IS RELAYED VERBATIM. Send the portal’s documented request body as `payload` and we pass it through untouched. Consult the e-way bill / e-invoice API specification for the fields this operation expects; the sample below shows the envelope, not the body.

Employment & Income

UAN Advanced V3uan-advanced-v3

Employment lookup by mobile number, with EPFO passbook for the last 3 months. A MOBILE MATCHING MANY RECORDS IS CURRENTLY AN ERROR, NOT A RESULT. If the number is linked to more records than the source will return, the call fails with 502 VENDOR_ERROR and the reason “Too many responses” rather than a list. That is a definitive outcome — retrying will not help. Treat it as “narrow the query” and, where you can, use a more specific lookup. We are reviewing this classification with the source and expect to return it as a normal response rather than an error.

UAN Advanced V4uan-advanced-v4

Employment history since 2012 by mobile number, with EPFO passbook for the last 3 months. A MOBILE MATCHING MANY RECORDS IS CURRENTLY AN ERROR, NOT A RESULT. If the number is linked to more records than the source will return, the call fails with 502 VENDOR_ERROR and the reason “Too many responses” rather than a list. That is a definitive outcome — retrying will not help. Treat it as “narrow the query” and, where you can, use a more specific lookup. We are reviewing this classification with the source and expect to return it as a normal response rather than an error.

UAN Basic V3uan-basic-v3

Latest employment lookup by mobile number (UAN + current employer). A MOBILE MATCHING MANY RECORDS IS CURRENTLY AN ERROR, NOT A RESULT. If the number is linked to more records than the source will return, the call fails with 502 VENDOR_ERROR and the reason “Too many responses” rather than a list. That is a definitive outcome — retrying will not help. Treat it as “narrow the query” and, where you can, use a more specific lookup. We are reviewing this classification with the source and expect to return it as a normal response rather than an error.

UAN Basic V4uan-basic-v4

Employment history since 2012 by mobile number (UAN + employers). A MOBILE MATCHING MANY RECORDS IS CURRENTLY AN ERROR, NOT A RESULT. If the number is linked to more records than the source will return, the call fails with 502 VENDOR_ERROR and the reason “Too many responses” rather than a list. That is a definitive outcome — retrying will not help. Treat it as “narrow the query” and, where you can, use a more specific lookup. We are reviewing this classification with the source and expect to return it as a normal response rather than an error.

Communication

Vehicle & Transport

Mobile Intelligence

Mobile Lock — Lockdevice-lock-v1

Lock a financed handset remotely. Built for device finance and phone EMI: when a borrower defaults, the handset is restricted until they pay. THE HANDSET MUST BE ENROLLED FIRST. Locking works against a `key_id` issued when the device was enrolled and provisioned with the on-device agent. You cannot lock an arbitrary phone by IMEI — enrolment happens at the point of sale, or on a device the borrower hands over for provisioning. LOCKING IS ASYNCHRONOUS. A 200 means the instruction was accepted, not that the screen is already locked — the handset applies it when it next reaches the network. The response carries `state` (PENDING or COMPLETE). Confirm with device-control-status-v1 rather than assuming; a phone that is switched off or out of coverage will report PENDING for as long as it stays that way. Use device-unlock-v1 to release. Every action is recorded in device-action-history-v1, which is the audit trail you will want in a dispute.

Mobile Lock — Unlockdevice-unlock-v1

Release a locked handset. Same asynchronous behaviour as device-lock-v1 — a 200 means the instruction was accepted, not that the borrower can already use the phone. CONFIRM BEFORE YOU TELL THE CUSTOMER. Poll device-control-status-v1 until the LOCK control reads unlocked. Telling a borrower their phone is unlocked while it is still restricted is the single most common support complaint on device finance, and it is avoidable.

Mobile Lock — Statusdevice-control-status-v1

The current on/off state of every control on an enrolled handset, including the handset lock. This is how you confirm a lock or unlock actually landed, since both are applied asynchronously. Returns one entry per control with `name` and `action_status`. The handset lock is the entry named LOCK.

Mobile Lock — Action Historydevice-action-history-v1

Every control action ever applied to a handset, with status and timestamps. This is the audit trail for disputes — it shows who locked what and when, and whether each instruction completed.

Mobile Lock — Enrolled Devicesdevice-list-v1

List the handsets enrolled under your account with their key ids and status. Use it to recover a `key_id` you did not store against your loan record. Reference lookup, priced at a nominal rate.

Coming next

On the roadmap; prices are indicative selling rates per successful call.

Aadhaar Offline QR / XML Verifyno license needed₹5 · soon
OCR — PAN₹4.50 · soon
OCR — Aadhaar₹2 · soon
OCR — Cheque₹3 · soon
OCR — Passport₹3 · soon
OCR — Voter ID₹2 · soon
OCR — Driving License₹2 · soon
OCR — Bank Passbook₹2 · soon
ITR Analysis₹30 · soon
Form 26AS / AIS Analysis₹25 · soon
Salary Slip Analysis₹8 · soon
GST Return (GSTR) Analysis₹20 · soon
Credit Report Analysis₹8 · soon
Face Match₹4 · soon
Liveness Check₹5 · soon

Already live: Bank Statement Analyser, Average Bank Balance, Name Match, ID Format Validator, Pincode Lookup, DIGIPIN, LEI Lookup, Email Check, HSN / SAC Lookup, Bank Statement to Excel, Sanctions Screening and IFSC Lookup.