Cancel or reject an e-Way Bill
Two distinct actions, two distinct windows.
| Action | Who calls it | Window |
|---|---|---|
| Cancel | The party who generated the EWB | 24 hours from generation, only if movement hasn't begun |
| Reject | The party against whose GSTIN someone else generated an EWB | 72 hours from generation |
Cancel
Use this when you generated the EWB and need to take it back — duplicate, order cancelled, wrong vehicle, etc.
POST /v1/ewaybills/{id}/cancel HTTP/1.1
Host: api.in.onefinops.com
Authorization: Bearer ...{
"reasonCode": 2,
"remark": "Order cancelled — buyer did not confirm dispatch"
}reasonCode:
| Value | Reason |
|---|---|
1 | Duplicate |
2 | Order Cancelled |
3 | Data Entry Mistake |
4 | Others |
remark is free text, max 100 characters.
Failure modes:
| Code | HTTP | Meaning |
|---|---|---|
ewaybill.not_cancellable | 409 | Past 24h, or movement has begun (NIC-side condition). |
not_found | 404 | Id doesn't belong to your tenant. |
Successful response returns the updated record with status: "cancelled" and cancelledAt set.
Reject
Use this when someone else generated an EWB against your GSTIN — you didn't order the goods, the bill has wrong details, etc. NIC's reject window is 72 hours from generation.
POST /v1/ewaybills/{id}/reject HTTP/1.1
Host: api.in.onefinops.com
Authorization: Bearer ...
Content-Type: application/json{}(The body is optional; pass an empty object for explicit POST.)
Successful response returns the updated record with status: "rejected".
Reject is irreversible — once you reject an EWB, the originator must regenerate from scratch. Reach out before rejecting if there's a chance the issue is fixable on the originator's side.
Audit trail
Both cancellation and rejection write a permanent record on NIC's side; the EWB itself remains visible. We mirror this on our side: cancelledAt, cancellationReason, and the rejected/cancelled status are visible in GET /v1/ewaybills/{id} indefinitely.
Updated about 5 hours ago
