RC Challan API
Objective
The Indian Vehicle Challan Check API determines whether a challan has been issued for a specific vehicle. By providing the vehicle's Registration Certificate (RC) details, the API returns information about any existing challans, including details of the accused, the nature of the offence, and the associated fine.
| Input | Output |
|---|---|
| Vehicle registration number(RC Number), chassis number, engine number, and consent | Details about the challan, if issued. The complete list of output fields is provided under the Success Response Details section |
API URL
https://ind-engine.thomas.hyperverge.co/v1/rcChallan
API Endpoint
rcChallan
Overview
The API is RESTful and uses standard HTTP verbs and status codes. The responses are in JSON format, and you should upload all images and files as form-data through a POST request.
Authentication
You need a unique pair of application ID (appId) and application key (appKey) from HyperVerge to verify your identity for accessing the API.
API Request Details
Method - POST
Headers
| Parameter | Mandatory or Optional | Description | Allowed Values |
|---|---|---|---|
| content-type | Mandatory | The media type for the request payload. | application/json |
| appId | Mandatory | The application identifier shared by HyperVerge. You can find the details in the dashboard's credentials tab. | This should be a unique value. |
| appKey | Mandatory | The application key shared by HyperVerge. You can find the details in the dashboard's credentials tab. | This should be a unique value. |
| transactionId | Mandatory | A unique identifier for tracking a user journey. | This should be both unique and easily associated with the user's journey in your application(s). |
Inputs
The following table provides the details of the fields required for the API's request body.
| Parameter | Description | Mandatory or Optional | Allowed Values | Default Value |
|---|---|---|---|---|
rcNumber | The Registration Certificate (RC) number associated with the vehicle | Mandatory | Not Applicable | Not Applicable |
chassisNumber | The unique alphanumeric value assigned to the chassis of the vehicle during manufacturing | Mandatory | Not Applicable | Not Applicable |
engineNumber | The unique alphanumeric identifier assigned to the engine of the vehicle during manufacturing | Mandatory | Not Applicable | Not Applicable |
consent | Provide consent by entering values of either "Y" for yes or "N" for no | Mandatory | Not Applicable | Not Applicable |
Request
The following code shows a standard curl request for the API.
curl --location --request POST 'https://ind-engine.thomas.hyperverge.co/v1/rcChallan' \
--header 'Content-Type: application/json' \
--header 'appId: <Enter_the_HyperVerge_appId>' \
--header 'appKey: <Enter_the_HyperVerge_appKey>' \
--header 'transactionId: <Enter_the_HyperVerge_transactionID>' \
--data '{
"rcNumber": "<Enter_the_RC_Number>",
"chassisNumber": "<Enter_the_Chassis_Number>",
"engineNumber": "<Enter_the_Engine_Number>",
"consent": "<Y_or_N>"
}'
Success Response
The following is a sample of a success response from the API.
- Success Response
{
"status": "success",
"statusCode": "200",
"result": {
"message": "<Message_Describing_Result>",
"challanData": [
{
"documentType": "<Type_Of_Document_Issued>",
"documentId": "<Unique_Challan_Document_ID>",
"status": "<Status_Of_The_Challan>",
"dateIssued": "<Date_And_Time_Of_Issue_in_ISO_8601_Format>",
"accusedName": "<Name_Of_The_Accused>",
"offenceData": [
{
"offenceDescription": "<Description_Of_The_Offence>"
}
],
"amount": "<Fine_Amount>",
"state": "<State_Of_Issuance>"
}
]
},
"metaData": {
"requestId": "<Unique_Request_ID>",
"transactionId": "<Transaction_ID>"
}
}
Success Response Details
| Parameter | Type | Description |
|---|---|---|
| message | string | The message describing the result |
| challanData | array | The detailed information about the fetched challans |
| documentType | string | The type of document issued, for example, a challan |
| documentId | string | A unique identifier for the challan document |
| status | string | The current status of the challan, whether it is disposed or pending |
| dateIssued | string | The date and time when the challan was issued |
| accusedName | string | The name of the person accused of the offense |
| offenceData | array | The details of the committed offence for which the challan was issued |
| offenceDescription | string | A description of the offence committed |
| amount | integer | The amount of the challan, i.e., the fine to be paid |
| state | string | The state in which the offense occurred or where the challan was issued |
Failure Response
You will receive a failure response similar to the following code sample if no challan is found issued against the inputs
{
"status": "success",
"statusCode": 200,
"result": {
"message": "No challan found."
},
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transactiom_ID>"
}
}
Error Responses
The following are some Input Validation error responses from the API.
- Missing Consent
- Missing/Invalid RC
- Missing/Invalid Chassis Number
- Missing/Invalid Engine Number
- Input Validation Error
{
"message": "Please provide consent",
"statusCode": 400,
"status": "failure",
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}
{
"message": "RC number is either blank or invalid.",
"statusCode": 400,
"status": "failure",
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}
{
"message": "Chassis number is either blank or invalid.",
"statusCode": 400,
"status": "failure",
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}
{
"message": "Engine number is either blank or invalid.",
"statusCode": 400,
"status": "failure",
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}
{
"message": "Input Validation Error: is not one of enum values: Y,N",
"statusCode": 400,
"status": "failure"
}
The following are some other error responses from the API.
- Missing or Invalid Credentials
- Internal Server Error
- Upstream Internal Server Error
{
"statusCode": 401,
"status": "failure",
"error": "Missing/Invalid credentials",
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}
{
"message": "Internal Server Error",
"statusCode": 500,
"status": "failure"
}
{
"message": "Upstream source/Government source internal server error. Please start the process again.",
"statusCode": 503,
"status": "failure",
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}
Failure and Error Response Details
failure status, with a relavant status code and error message. The following table lists all error responses. | Status Code | Error Message | Error Description |
|---|---|---|
| 400 | RC is required | Please provide the RC number |
| 400 | consent is required | Please provide the consent |
| 401 | Missing/Invalid credentials | The request is either missing the mandatory appId and appKey combination or has invalid values. |
| 403 | Access Denied | Please contact the HyperVerge team for resolution. |
| 429 | Too many requests | You have exceeded the configured limit on the number of transactions permitted in a minute. Please contact the HyperVerge team for resolution. |
| 500 | Internal Server Error | Please check the request headers or contact the HyperVerge team for resolution. |