A successful Vehicle RC Verification call returns success: true and the verification result under data.result.
Success Response — 200
{
"status": "SUCCESS",
"status_code": 200,
"charged": true,
"success": true,
"message": "",
"message_code": "OK",
"order_id": "W2A1739512345abcdef01",
"data": {
"order_id": "W2A1739512345abcdef01",
"result": {
"rc_number": "DL3CAB1234",
"fit_up_to": "2037-03-20",
"registration_date": "2022-03-21",
"owner_name": "Anjali Deshmukh",
"father_name": "",
"present_address": "12 Sector 9, Dwarka, New Delhi, 110075",
"permanent_address": "12 Sector 9, Dwarka, New Delhi, 110075",
"vehicle_category": "LMV",
"vehicle_chasi_number": "MA1AB2CD3EF456789",
"vehicle_engine_number": "0000A123",
"maker_description": "BMW INDIA PVT LTD",
"maker_model": "BMW 220I GRAN COUPE M SPORT",
"body_type": "SEDAN",
"fuel_type": "PETROL",
"color": "SNAPPER ROCKS BLUE M",
"norms_type": "BHARAT STAGE VI",
"financer": "EXAMPLE BANK LTD",
"financed": true,
"insurance_company": "Example General Insurance Co. Ltd.",
"insurance_policy_number": "P1234567890",
"insurance_upto": "2026-05-20",
"manufacturing_date_formatted": "2022-03",
"registered_at": "SOUTH DELHI, Delhi",
"rc_status": "ACTIVE"
}
}
}
Response Keys
| Key |
Type |
What it tells you |
status |
string |
Order lifecycle: SUCCESS, PENDING or FAILED. Describes the order, not the verification — a charged call that came back negative is a completed order. |
status_code |
int |
The HTTP status, echoed into the body. |
charged |
bool |
The authority on billing. Never infer it from the HTTP status. |
success |
bool |
The verification outcome. Independent of charged. |
message |
string |
Human-readable text. For display and logs — do not parse it. |
message_code |
string |
Machine-readable reason from a fixed vocabulary. Branch on this. |
order_id |
string |
Present once a call reached the provider; quote it on a support ticket. Its absence means nothing was billed. |
data.result |
object |
The verification payload for this endpoint. |
When You Are Charged
| message_code |
Charged |
HTTP |
status |
What it means |
OK |
Yes
|
200 |
SUCCESS |
Verified. The provider ran the lookup and returned a result. |
ACCEPTED |
Yes
|
202 |
PENDING |
Queued at the provider. Quote the order_id to collect the result. |
PROVIDER_NO_RESPONSE |
Yes
|
202 |
PENDING |
The provider did not respond in time. Held for manual review — not auto-refunded. |
VERIFICATION_FAILED |
Yes
|
422 |
SUCCESS |
The provider ran the lookup and the details did not verify. The work was done, so the call is billed. |
NO_RECORD_FOUND |
Yes
|
422 |
SUCCESS |
The provider ran the lookup and found no matching record. Billed for the same reason. |
INVALID_INPUT |
No
|
422 |
FAILED |
Your parameters were rejected before any call was placed. |
REQUEST_FAILED |
No
|
400 |
FAILED |
The call was placed and failed definitively. Refunded to your wallet automatically. |
MISSING_API_KEY |
No
|
401 |
FAILED |
No API key on the request. |
INVALID_API_KEY |
No
|
401 |
FAILED |
Key invalid or expired, or the calling IP is not allowed. |
INSUFFICIENT_BALANCE |
No
|
402 |
FAILED |
Your wallet balance is below the price of this call. |
NO_API_ACCESS |
No
|
403 |
FAILED |
Your account is not subscribed to this API. |
NOT_FOUND |
No
|
404 |
FAILED |
No such endpoint. |
RATE_LIMITED |
No
|
429 |
FAILED |
Per-key, per-service one-minute limit exceeded. |
INTERNAL_ERROR |
No
|
500 |
FAILED |
Unexpected error on our side. |
PROVIDER_UNAVAILABLE |
No
|
503 |
FAILED |
The service could not be reached. |