Vehicle Challan API
Returns every available e-challan for the vehicle including owner name, state, department, amount, status and payment date.
Authentication
API key + API secret headers, or a Bearer JWT. Obtain the JWT from POST /api/v1/auth/token using your key and secret; tokens are valid for 3600 seconds.
| Scheme | Location | Value |
|---|---|---|
| JWT bearer | Header | Authorization: Bearer <token> |
| API key | Header | X-API-Key: pk_xxxxxxxx |
| API secret | Header | X-API-Secret: sk_xxxxxxxx |
Headers
| Header | Required | Description |
|---|---|---|
| Authorization | Optional | Bearer JWT issued by the token endpoint. |
| X-API-Key | Yes | Your API key (pk_…). |
| X-API-Secret | Yes | Your API secret (sk_…), shown once at creation. |
| Content-Type | Yes | application/json |
| X-Request-Id | No | Your idempotency key; echoed back in the response. |
Parameters & validation rules
| Name | Type | Required | Validation | Description |
|---|---|---|---|---|
| api_key | string | Yes | Your API key. | |
| vehicle_number | string | Yes | Vehicle registration number. |
Example request
curl -X GET \
"https://www.apicentre.in/api/vehicle_challan?api_key=YOUR_API_KEY&vehicle_number=VEHICLE_NUMBER" \
-H "Accept: application/json"
<?php
$ch = curl_init("https://www.apicentre.in/api/vehicle_challan?api_key=YOUR_API_KEY&vehicle_number=VEHICLE_NUMBER");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($data);
const res = await fetch("https://www.apicentre.in/api/vehicle_challan?api_key=YOUR_API_KEY&vehicle_number=VEHICLE_NUMBER");
const data = await res.json();
console.log(data);
import requests
res = requests.get("https://www.apicentre.in/api/vehicle_challan?api_key=YOUR_API_KEY&vehicle_number=VEHICLE_NUMBER")
print(res.json())
import java.net.URI;
import java.net.http.*;
String payload = "{\"rc_number\": \"MH12AB1234\"}";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.yourdomain.com/api/v1/vehicle-challan"))
.header("x-api-key", "YOUR_API_KEY")
.header("x-api-secret", "YOUR_API_SECRET")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(payload))
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
package main
import (
"bytes"
"fmt"
"io"
"net/http"
)
func main() {
payload := []byte(`{"rc_number": "MH12AB1234"}`)
req, _ := http.NewRequest("POST", "https://api.yourdomain.com/api/v1/vehicle-challan", bytes.NewBuffer(payload))
req.Header.Set("x-api-key", "YOUR_API_KEY")
req.Header.Set("x-api-secret", "YOUR_API_SECRET")
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}
Responses
Success 200
{
"status": "200",
"message": "Success",
"vehicle_number": "HR03AM4335",
"challan_count": 6,
"challans": [
{
"state": "Bihar",
"challan_no": "BR449326084075",
"owner_name": "MOHAN SINGH",
"department": "Traffic",
"office_name": "Patna",
"challan_status": "Paid",
"challan_amount": 1000,
"payment_source": "ONLINE",
"payment_date": "2025-10-26",
"challan_place": "AIIMS_GOLUMBER_ANPR",
"vehicle_class": "M-Cycle/Scooter(2WN)"
}
],
"application_no": "VCHALLAN_3DDE206E46E4AEBF",
"amount": "10.00",
"balance_left": "27145.27"
}
Error 4xx
{
"status": "404",
"message": "No Challan Found"
}
HTTP status codes
| Code | Meaning |
|---|---|
| 200 | Success - verification completed and wallet debited. |
| 400 | Validation failed - check the parameter rules below. |
| 401 | Missing or invalid JWT / API key. |
| 402 | Insufficient wallet balance. |
| 403 | API not purchased or key not permitted for this endpoint. |
| 404 | Record not found at the source registry. |
| 422 | Upstream provider returned an unprocessable response. |
| 429 | Rate limit exceeded - retry after the window resets. |
| 500 | Unexpected server error - safe to retry with the same request_id. |
| 503 | Upstream registry temporarily unavailable. |
Rate limit & billing
Rate limit
60 req/min per key
Charge
₹15.00 per successful call
Failed calls
Not charged (4xx/5xx)
When throttled, the API returns 429 with X-RateLimit-Limit, X-RateLimit-Remaining and Retry-After headers.