e-Way Bill Module¶
Applies to: e-Way Bill · Which modules do I have?
Purpose¶
Configure e-Way Bill generation and its follow-on operations, and set the expiry alerting that keeps goods from moving on an invalid bill.
Audience¶
Implementation consultants and the customer's logistics or dispatch lead.
Prerequisites¶
- Module enabled for the relevant registrations
- GSP Configuration complete
- Transporter master data loaded
- The customer's dispatch lead times known, so alert horizons can be set realistically
Steps¶
1. Understand the two pipelines¶
An e-Way Bill can be raised two ways, and they behave differently:
| Pipeline | Source | When used |
|---|---|---|
| From an IRN | A registered invoice | The normal path for taxable supplies |
| From a document | A standalone document with no IRN | Delivery challans, bills of supply, bills of entry |
The first is a continuing operation: it must go back to the provider that issued the IRN, not to the tenant's current provider. This is handled automatically by provenance, and it is worth knowing because it explains behaviour that otherwise appears inconsistent after a provider switch. See GSP Abstraction.
2. Confirm which document types take the standalone pipeline¶
By default CHL, BIL and BOE route to e-Way Bill only. See Document Type Routing.
3. Understand Part-A and Part-B¶
| Part | Contains | Without it |
|---|---|---|
| Part-A | The consignment: parties, goods, value, distance | No bill exists |
| Part-B | The vehicle | The bill is not valid for movement |
A bill with Part-A but no Part-B is a common and legitimate intermediate state — the consignment is known before the vehicle is assigned. It becomes a problem only when goods move. Make sure the dispatch process closes Part-B before the vehicle leaves, and that somebody owns that step.
4. Configure distance handling¶
Validity is derived from distance, so distance is not a cosmetic field.
| Approach | Behaviour |
|---|---|
| Supply the distance | Used as given |
| Supply zero | The registration portal computes it from the postal codes |
| Look it up | Available where the provider supports it |
Where a distance has already been resolved for a route, Complifly reuses it rather than paying for the lookup again. That is deliberate cost control, and it is why a distance lookup may return instantly.
5. Set the expiry alert horizon¶
Set EWB_EXPIRY_HORIZON_HOURS from the customer's actual dispatch and transport lead times. An alert that arrives after the decision point is noise; one that arrives too far ahead is ignored. Both failure modes end with an expired bill.
Address alerts to a distribution list, never an individual.
6. Understand extension¶
| Property | Detail |
|---|---|
| Time-limited | Only possible within a window around expiry — not at any time |
| Requires a reason | Supplied at extension |
| Routed by provenance | Goes to the issuing provider |
| Not a substitute for planning | Extension exists for genuine delays, not routine overruns |
7. Configure consolidated bills and multi-vehicle movement, if used¶
Consolidated bills group several bills onto one vehicle as a trip sheet. Multi-vehicle movement splits one consignment across several vehicles.
Both depend on provider capability, and support genuinely differs between providers. Check the capability matrix for the assigned provider before promising either to the business — one provider currently has consolidated generation marked as awaiting a vendor endpoint, which means the feature is deliberately disabled rather than broken. See GSP Abstraction.
8. Statutory constraints — not configurable¶
| Constraint | Consequence |
|---|---|
| Validity is derived from distance | Cannot be extended arbitrarily |
| Part-B is required for movement | Not optional |
| Extension is only possible near expiry | Plan around it |
| Cancellation is time-limited | After the window, rejection by the other party is the remaining route |
| Threshold values and intra-state rules | Set by statute and by state |
Validation¶
| Check | Method | Pass condition |
|---|---|---|
| Generation from an IRN works | Generate a bill from a registered invoice in the sandbox | Bill issued with a validity period |
| Standalone generation works | Generate from a challan | Bill issued |
| Part-B update works | Update the vehicle on a test bill | Part-B recorded and the bill becomes valid for movement |
| Distance handling works | Generate with a supplied distance, and again with zero | Both produce a sensible validity period |
| Extension works | Extend a bill near expiry in the sandbox | Extended, with the reason recorded |
| Cancellation works | Cancel a test bill inside the window | Cancelled |
| Expiry alerts fire in time | Create a bill nearing expiry | Alert arrives with time to act |
| Consolidated bills work, if used | Generate one | Issued. If refused on capability grounds, that is the matrix, not a fault |
| Multi-vehicle works, if used | Initiate and add vehicles | Recorded |
| Provenance followed | After a provider switch in a test tenant, update a vehicle on an older bill | Succeeds |
| Permissions enforced | Sign in as a logistics role and attempt to generate an IRN | Refused |
Troubleshooting¶
| Symptom | Cause | Action |
|---|---|---|
| Bill generated but goods stopped in transit | Part-B never completed | A bill without vehicle details is not valid for movement. Fix the dispatch process, not the configuration |
| Bill expired before delivery | Validity derived from distance, and transit exceeded it | Extension is only possible near expiry. Plan realistically |
| Extension refused | Outside the extension window | Statutory. Not configurable |
| Cancellation refused | Outside the cancellation window | Rejection by the other party is the remaining route |
| Consolidated generation unavailable | Provider capability, not a fault | Check the matrix. An operation awaiting a vendor endpoint is deliberately disabled |
| Update or extension fails after a provider switch | Old provider's credentials withdrawn too early | Restore them while any of its bills remain actionable |
| Distance lookup returns instantly | A previously resolved distance was reused | Working as intended — deliberate cost control |
| Validity shorter than expected | Distance understated | Check the distance supplied; validity follows from it |
| Expiry alerts arrive too late | Horizon shorter than the real dispatch lead time | Set the horizon from actual lead times |
| Nobody acts on expiry alerts | Addressed to an individual, or too noisy | Use a distribution list; tune the horizon to a level people act on |
| A bill from another party appears | Someone raised a bill against this registration | Review and reject if incorrect, within the window |
Related Articles¶
- e-Invoice Module — the IRN a bill can be raised from
- GSP Abstraction — capability differences and provenance
- Document Type Routing — the standalone pipeline
- e-Way Bill Setup — the implementation procedure
- e-Way Bill Failures — the diagnostic tree