All e-way bill and e-invoice API calls
POST /v1/ewaybill/update-vehicle
Send the e-way bill number, the new vehicle number, where the vehicle is now and a reason code. The vehicle details on the e-way bill change and you get the update time and the unchanged validity back.
Cost: 3 credits per successful call. A rejection or an upstream failure is never charged.
Every call accepts "test_mode": true and returns a sample in the live shape, free. Set up your API credentials before the first real call.
reason_code is one digit from the government's list: 1 Due to Break Down, 2 Due to Transhipment, 3 Others (say why in reason_remark), 4 First Time. First Time is the code for the initial Part B entry on an e-way bill generated without a vehicle.
Part B can be updated by the generator of the e-way bill when no transporter is assigned, or by the assigned transporter. The e-way bill must still be active and within its validity.
For road, send the vehicle number; the transport document number is optional. For rail, air or ship, the transport document number is required instead.
No. A vehicle update leaves valid_upto unchanged. To extend validity, use the extend validity call.
| Field | Type | Required | Meaning |
|---|---|---|---|
| gstin | string | Yes | The GSTIN you act as, with API access set up. |
| gstin_username | string | Yes | The e-way bill API username for that GSTIN. Never stored. |
| password | string | Yes | The matching API password. Never stored. |
| ewaybill_no | string | Yes | The e-way bill number to update. |
| vehicle_no | string | Yes | New vehicle number. |
| from_place | string | Yes | Where the vehicle is now. |
| from_state | integer | Yes | State code of that place. |
| reason_code | string | Yes | 1 Break Down, 2 Transhipment, 3 Others, 4 First Time. |
| reason_remark | string | No | Free text, up to 50 characters. |
| trans_mode | string | No | 1 Road, 2 Rail, 3 Air, 4 Ship. |
| trans_doc_no / trans_doc_date | string | No | Transport document number and date (dd/MM/yyyy), required for rail, air or ship. |
| test_mode | boolean | No | true returns a sample in the live shape: free, nothing is filed. |
Send your API key in the x-api-key header. Government API credentials are used for the one call and never stored.
The request below runs in test mode, so it is free and files nothing. Remove test_mode for a real call.
curl -X POST "https://www.gstinapi.in/v1/ewaybill/update-vehicle" \
-H "x-api-key: YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{ "gstin": "24AAAAA0000A1Z5", "gstin_username": "YOUR_EWB_API_USER", "password": "YOUR_EWB_API_PASSWORD", "ewaybill_no": "351000000123", "vehicle_no": "GJ05CD5678", "from_place": "SURAT", "from_state": 24, "reason_code": "1", "reason_remark": "Vehicle broke down", "test_mode": true }'Response
{
"success": true,
"ewaybill_no": "351000000123",
"vehicle_update_date": "23/10/2026 11:28:00 AM",
"valid_upto": "24/10/2026 11:59:00 PM",
"billed_to": "paid",
"credits_remaining": 197
}| Code | Message | What to do |
|---|---|---|
| 325 | Could not retrieve data | The e-way bill number is not available to your GSTIN. Check the number and that you are the generator or the assigned transporter. |
Not affiliated with the Government of India. Rules are the government network's own and can change; if a page here looks out of date, tell us.