Identity, company, employment and risk verification — PAN, EPFO, MCA, Udyam, sanctions screening and more. Prepaid, predictable, and built for India.
Every endpoint follows the same pattern: POST JSON, get a verification envelope back.
Email api@connexolve.in for a sandbox key (cnx_test_…). No setup, no card.
Hit sandbox.connexolve.in with your key. Responses are instant and deterministic — perfect for building.
Swap to api.connexolve.in and a cnx_live_… key. Top up your prepaid wallet and you're billing real verifications.
Call GET /v1/usage any time for per-endpoint spend. Every call is logged with a verificationId.
# Magic value "CLEAN PERSON" → clean; "SANCTIONED PERSON" → 3 matches curl -X POST https://sandbox.connexolve.in/v1/screen/negative-diligence \ -H "Authorization: Bearer cnx_test_…" \ -H "Content-Type: application/json" \ -d '{"name":"CLEAN PERSON"}'
{
"success": true,
"verificationId": "cnxv_01KSPRP2H6RMMKQCMRENST5DHF",
"endpoint": "screen.negative-diligence",
"status": "completed",
"data": { "clean": true, "matchCount": 0 },
"billing": { "charged": false, "amount": 0, "currency": "INR" },
"meta": { "environment": "test", "latencyMs": 12 }
}
Bearer token on every request. Keys are environment-scoped and can't cross environments.
cnx_test_… works only on sandbox. cnx_live_… works only on production. Using one on the wrong host returns CNX_KEY_ENVIRONMENT_MISMATCH.
Authorization: Bearer cnx_live_…
Prepaid, in paise, never a surprise. You only pay for conclusive results.
Top up in advance. Each live call holds the price, then commits on success or releases on a retryable failure. Sandbox calls are always free.
A successful verification is billed. A conclusive CNX_NO_RECORD_FOUND (422) is billed — it's a real answer. Transient errors (5xx, rate limits) are never billed.
Send Idempotency-Key to safely retry. A replayed key returns the original result and is never double-charged.
If your wallet can't cover a call you get 402 CNX_INSUFFICIENT_BALANCE before any provider is contacted — no partial charges.
The sandbox returns deterministic results for these inputs, so you can build and test every code path before going live — free.
name: "CLEAN PERSON" → clean.name: "SANCTIONED PERSON" → 3 matches across sanctions lists.
pan: "AAAAA0000A" → success.pan: "AAAAA9999A" → no-record (billable on live).
Any field set to "ZZZZZ0000Z" → CNX_SOURCE_UNAVAILABLE (retryable, never billed). Test your retry logic.
mobile: "9000000001" → MNRL revocation hit. Other numbers → not found.
Every error returns the same envelope with a stable error.code. Retryable errors are never billed.
CNX_INVALID_INPUT (400) · CNX_INVALID_IDENTIFIER (400) · CNX_AUTH_INVALID (401) · CNX_KEY_ENVIRONMENT_MISMATCH (401) · CNX_INSUFFICIENT_BALANCE (402)
CNX_NO_RECORD_FOUND — a conclusive answer that the record doesn't exist. This is billed on live, because it's a real result.
CNX_RATE_LIMITED (429) · CNX_SOURCE_UNAVAILABLE (503) · CNX_SOURCE_TIMEOUT (504). Safe to retry; never billed.
Add an Idempotency-Key header so a retry returns the original result instead of charging twice.
All 43 endpoints with live request/response examples, generated from the contract. sandbox means the framework is ready and live-provider responses are being verified.
Open full API reference →