Cancel an E-Way Bill
NIC permits the generator of an EWB to cancel it within 24 hours of generation, and only if movement has not begun. Past that window, the EWB cannot be cancelled — its record stays in NIC's system regardless.
This is different from rejection, which is what a counter-party (recipient or supplier named on the EWB but not the generator) does. See Reject an E-Way Bill.
The call
POST /v1/ewaybills/cancel HTTP/1.1
Host: api.in.onefinops.com
Authorization: Bearer eyJhbGciOi...
gstin: 29ABCDE1234F1Z5
Content-Type: application/json
X-Request-Id: 4f1d8a2c-…{
"ewbNumber": 112345678901,
"cancelReasonCode": "2",
"cancelRemark": "Order cancelled — buyer did not confirm dispatch"
}cancelReasonCode:
| Value | Reason |
|---|---|
"1" | Duplicate |
"2" | Order cancelled |
"3" | Data entry mistake |
"4" | Others |
cancelRemark is free text, max 100 characters.
Response
The EWB record with status: "CNL" and cancelDate populated. Cancelled EWBs are not deleted — they remain visible via GET /v1/ewaybills/ewbnumber?ewbNumber=… indefinitely, flagged cancelled.
Failure modes
| Status | Body code | Meaning |
|---|---|---|
| 404 | not_found | The EWB isn't visible to your tenant. |
| 409 | ewaybill.not_cancellable | Past 24 hours, or NIC has marked movement as begun (a Part-B with vehicle in transit, for example). |
| 502 | upstream.failure | NIC refused — read upstream.code / upstream.message. |
When you can't cancel
If you're past 24 hours, or movement has begun, NIC won't accept the cancel. Options at that point:
- If a counter-party caused the issue (wrong consignee, wrong GSTIN), ask them to reject the EWB within 72 hours of generation.
- If the journey is overrunning, see Extend validity.
- If the EWB stays as-is and lapses, that's NIC's audit trail — no API call recovers it.
Where to next
- Reject an E-Way Bill — for counter-parties.
- Generate an EWB — back to the lifecycle.
- Cancel an IRN — for the linked invoice.
Updated about 13 hours ago
