Seven E-Way Bill quirks that will silently break your TMS
Distance auto-calc, multi-vehicle splits, Part-B updates — a field guide to the failure modes we see in production every week.
E-Way Bill is the digital permit a truck needs to move taxable goods above a certain value. On paper, it's a clean API. In practice, it's seven distinct ways your TMS will silently break, your invoice will get rejected, or your truck will get held at a checkpoint. We've debugged all seven in production. Here they are, in increasing order of how cleverly they hide.
Quirk 1 — Distance auto-calc disagrees with reality
The portal auto-calculates the distance between PIN codes using its own road network. For long-haul lanes, it's usually fine. For lanes that route around a ghat road or a seasonal closure, the auto-calc can be off by 200km. The portal will reject your bill if you override it by more than ~10%. The fix is to pre-fetch the auto-calc beforeyou commit to a freight rate that depends on actual kilometres.
Quirk 2 — Multi-vehicle splits and the "Part-B" trap
When a single invoice ships across multiple trucks (think rakes splitting at a hub), you generate one EWB and update Part-B with each vehicle as it joins. What the docs don't tell you: each Part-B update is rate-limited per IRN, and if you batch them faster than ~1 update per minute, the API silently accepts them but only persists the last one. We lost two days debugging this.
Quirk 3 — Cancellation window is 24h, not 24 calendar hours
You can cancel an EWB within 24 hours of generation. "24 hours" is computed from the timestamp on the bill, in the portal's own timezone, including the seconds. We had a customer try to cancel at 23h 59m 12s and get rejected because the portal took 51 seconds to process the request. The successful cancel landed at 24h 00m 03s. Treat the window as 23h 50m to be safe.
Quirk 4 — Vehicle number format gotchas
The portal accepts vehicle numbers in two formats — with and without spaces. They are stored differently. A bill generated with "MH 12 AB 1234" cannot be looked up with "MH12AB1234" via the API, even though both render identically on the printed bill. Normalise on input, store both, search with both.
Quirk 5 — The "consolidated EWB" silent merge
When a transporter generates a consolidated EWB (multiple consignments on one truck), the underlying individual EWBs go into a sub-state that is technically still "active". If your TMS treats consolidated bills as the source of truth and ignores the individuals, you will under-report on the GST portal. We did this. We caught it during a customer audit. We do not want to do it again.
Quirk 6 — Distance and validity recompute on update
If you update Part-B with a new vehicle, the validity period recomputes from the new distance — not from the original generation time. So a 700km bill with a 7-day validity, updated to a 1,200km route, becomes a 12-day bill, but only from the moment of update. Your alerts based on "expires at +7d from generation" will all be wrong.
Quirk 7 — The NIC outage you can't predict
The NIC portal goes down. Sometimes for an hour, sometimes for a working day. There is no SLA. Trucks loaded before the outage cannot get fresh bills, which means trucks cannot leave the gate. The fix is operational, not technical: maintain a 4-hour buffer of pre-generated bills for high-volume lanes, and have a documented manual fallback (paper challan + later digital reconciliation) for outages over 2 hours.
"Compliance code looks deterministic. It isn't. It's API code with weather, politics, and a 24h timer that doesn't trust your clock."
The composite checklist
None of these are exotic. All of them are in the spec, somewhere, if you look hard enough. But every one of them has bitten a TMS in production. If you're building or buying compliance tooling, walk this list with the team. Ask which ones they handle. The answers separate the toy implementations from the real ones.
- 1Compliance APIs that look deterministic are full of timing, formatting, and silent-merge failure modes.
- 2Always log success responses too — the 'success but silently wrong' class of bug is the most expensive to debug after the fact.
- 3Maintain operational buffers (pre-generated bills, manual fallbacks). Compliance portals will fail; your trucks shouldn't.
Writes about how the world's largest shippers actually run freight — the real workflows, the stuff vendors don't put in slides.
More from the team
After 14 customer interviews, every transporter chose WhatsApp over a slick web portal. Here's the data — and what it taught us about adoption in emerging-market logistics.
Our OCR pipeline turns smudged, curled, sometimes wet paper PODs into structured JSON in 30 seconds. Here's the architecture — and the failure modes nobody warns you about.
Most TMS dashboards drown ops teams in red. We rebuilt the control tower around the five decisions a dispatcher actually makes before lunch.
_1777711377206.png)