All e-way bill and e-invoice API calls

Extend e-way bill validity

POST /v1/ewaybill/extend-validity

Short answer

Send the e-way bill number, where the consignment is now, how far it still has to go and why you need more time. The validity moves forward and you get the new valid_upto back. It works only between 8 hours before and 8 hours after the current expiry.

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.

The window

The government network allows an extension between 8 hours before and 8 hours after the e-way bill's expiry time. Outside that window the request is refused and you are not charged.

It can be done only by the current transporter, or by the generator if no transporter is assigned. The remaining distance cannot be more than the distance declared when the e-way bill was generated.

Reason codes

extension_reason_code is one of 1 Natural Calamity, 2 Law and Order Situation, 4 Transshipment, 5 Accident, 99 Others. extension_remark is required along with it.

On the road or in transit

consignment_status M means the goods are moving in a vehicle: send vehicle_no. T means they are in transit somewhere else; then also send transit_type: R road, W warehouse or O others.

The e-way bill must already have a Part B (vehicle) entry. Without one the network refuses the extension with error 381, so update the vehicle first.

Request fields

FieldTypeRequiredMeaning
gstinstringYesThe GSTIN you act as, with API access set up.
gstin_usernamestringYesThe e-way bill API username for that GSTIN. Never stored.
passwordstringYesThe matching API password. Never stored.
ewaybill_nostringYesThe e-way bill number.
from_placestringYesWhere the consignment is now.
from_stateintegerYesState code of that place.
from_pincodeintegerYesPincode of that place.
remaining_distanceintegerYesKilometres still to travel.
extension_reason_codeintegerYes1, 2, 4, 5 or 99.
extension_remarkstringYesWhy more time is needed.
consignment_statusstringYesM (in movement) or T (in transit).
vehicle_nostringNoRequired when consignment_status is M.
transit_typestringNoR, W or O, for consignment_status T.
test_modebooleanNotrue 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.

Example

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/extend-validity" \
  -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", "from_place": "SURAT", "from_state": 24, "from_pincode": 395010, "remaining_distance": 40, "extension_reason_code": 1, "extension_remark": "Flood", "consignment_status": "M", "vehicle_no": "GJ05CD5678", "test_mode": true }'

Response

{
  "success": true,
  "ewaybill_no": "351000000123",
  "updated_date": "23/10/2026 11:28:00 PM",
  "valid_upto": "25/10/2026 11:59:00 PM",
  "billed_to": "paid",
  "credits_remaining": 197
}

Errors you can expect

CodeMessageWhat to do
381There is No PART-B/Vehicle EntryAdd the vehicle first with the update vehicle call, then extend.

All e-way bill API error codes

Questions

What if I miss the window?
The government network refuses the request. An e-way bill that has expired more than 8 hours ago cannot be extended; a fresh one has to be generated.
Does extending change the vehicle?
No. It changes only the validity. To change the vehicle, use the update vehicle call.

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.