This guide is in English for now. The tool itself works in your language.
E-Way Bill › E-way bill JSON format
E-way bill bulk JSON format explained
The files made here follow the e-way bill portal's published bulk format, "EWB JSON Attributes, Version 1.0.0621" (NIC). You never need to edit them, but this helps you read the portal's error messages.
The e-way bill file
One object with "version": "1.0.0621" and a list billLists, one entry per e-way bill:
| Fields | Meaning |
|---|---|
| supplyType, subSupplyType, subSupplyDesc | O outward / I inward; reason code (1 Supply, 3 Export, 4 Job Work, 5 For Own Use, 8 Others, 9 SKD/CKD/Lots, 10 Line Sales, 11 Recipient Not Known, 12 Exhibition or Fairs); a description only for Others |
| docType, docNo, docDate | INV, BIL, BOE, CHL or OTH; up to 16 characters; DD/MM/YYYY |
| transType | 1 regular, 2 bill to - ship to, 3 bill from - dispatch from, 4 both |
| fromGstin … fromStateCode, actualFromStateCode | Sender, and the state the goods actually leave from |
| toGstin … toStateCode, actualToStateCode | Receiver ("URP" if unregistered), and the state the goods actually go to |
| totalValue, cgstValue, sgstValue, igstValue, cessValue, OthValue, totInvValue | Taxable value, taxes, other charges (round off), invoice value |
| transMode, transDistance, vehicleNo, vehicleType, transporterId, transDocNo, transDocDate | Part B and transporter |
| mainHsnCode, itemList | Main HSN; each item with HSN, quantity, unit, taxable amount and rates |
Rules the portal checks
- Inside one state, CGST and SGST; between states, or when one party is an SEZ, IGST.
- State codes are numbers: 3 Punjab, 7 Delhi, 27 Maharashtra… Goods to or from outside India use 99, "Other Countries" (the e-invoice uses 96 instead).
- Bill to - ship to: GSTIN, name and state of the "bill to" party; address, place, PIN and actualToStateCode of the "ship to" place.
- The item values plus taxes plus other charges must match the invoice value (a 2-rupee difference is allowed).
- Distance up to 4,000 km; the transport document date not before the document date; the document date not in the future.
- Without Part B (no mode, vehicle or transport document) the portal gives a number without validity.
The Part B (vehicle update) file
{"version": "1.0.0621", "userGstin": …, "vehicleUpdts": [ … ]}, each entry with ewbno (12 digits), transMode, vehicleNo or docNo + docDate, fromPlace, fromState and reason (1 break down, 2 transhipment, 3 others with a remark, 4 first time).
A short example
{"version": "1.0.0621", "billLists": [{
"userGstin": "03AABCS1234K1ZQ", "supplyType": "O", "subSupplyType": 1, "subSupplyDesc": "", "docType": "INV",
"docNo": "INV/26-27/101", "docDate": "05/11/2026", "transType": 1,
"fromGstin": "03AABCS1234K1ZQ", "fromTrdName": "Sharma Yarns", "fromPlace": "Ludhiana", "fromPincode": 141010, "fromStateCode": 3, "actualFromStateCode": 3,
"toGstin": "27AAPFU0939F1ZV", "toTrdName": "Shree Traders", "toPlace": "Pune", "toPincode": 411001, "toStateCode": 27, "actualToStateCode": 27,
"totalValue": 37400, "cgstValue": 0, "sgstValue": 0, "igstValue": 1870, "cessValue": 0, "TotNonAdvolVal": 0, "OthValue": 0, "totInvValue": 39270,
"transMode": 1, "transDistance": 0, "vehicleNo": "PB10AB1234", "vehicleType": "R", "mainHsnCode": "52051200",
"itemList": [{"itemNo": 1, "productName": "Cotton yarn 40s", "hsnCode": "52051200", "quantity": 100, "qtyUnit": "KGS", "taxableAmount": 25000, "igstRate": 5, "cgstRate": 0, "sgstRate": 0, "cessRate": 0, "cessNonAdvol": 0}]
}]}
(Shortened: one of the two items; address lines and empty transporter fields left out. GSTINs are made-up examples.)