Skip to main content
POST

NIC validations

  1. Generation of E Way Bill using the E Way Bill API System will be blocked for the following scenarios where the Supplier is enabled for E Invoice. Such E Way Bills need to be generated either along with the IRN generation or with reference to the IRN using E Invoice System only
    • B2B and Export transactions where document date is equal to or greater than 01/10/2020
    • Document type - Tax Invoice
  2. If the other party GSTIN is cancelled, generation of E Way Bill is allowed if the document date is within the period during which the GSTIN was active
  3. If the distance is passed as ‘0’ (Zero) and the distance between the PIN codes provided is available in E Way Bill database, the system will replace the distance as per the database. Passing ‘0’ is an indication that the user wants the system to take the distance as per the E Way Bill database
  4. If the distance is passed and is differing by more than ±10% of the pin to pin distance stored in system, the response will have corresponding error code
  5. If the distance is passed and the actual distance in database is less that 100 kms, the distance passed has to be less than distance in database plus 10% of the distance. (Ex. If the distance is 60 kms, distance up to 66kms is allowed)
  6. If the distance between the two pin-codes provided is not available in E Way Bill database, E-waybill will be generated with an alert message as “The distance between the given PIN codes are not available in the system.” and it’s a responsibility of the generator to provide correct distance in such cases.
  7. If fromPincode and toPincode are same then, maximum distance allowed is 100 kms. If the supply type is ‘Line Sales’, it can be up to 300 kms
  8. The actual distance from source to destination cannot be greater than 4000.
  9. PIN Codes are validated against the State they belong to, actFromStateCode- fromPincode and actToStateCode- toPincod
  10. If the PIN Code does not exist in the master database of the E Way Bill System and the first 3 digits of the PIN code matches with the respective State as per the pattern of PIN code-to-State mapping pattern defined by postal department, then E Way Bill gets generated
  11. For ‘Other Country’, State code as 96 as well as 99 are accepted but system stores the state code as 99
  12. Generation of duplicate E-waybills for the same document by Consignee and Transporter is not allowed hence forth, hence now onwards neither Consignor nor Consignee nor Transporter can generate duplicate E-waybills for the same document.
  13. For SKD/CKD/Lots movement in multiple vehicles, you have to generate a delivery challan for each of the vehicle containing the items being moved in the respective vehicles, the last vehicle should carry the original invoice.
  14. Regeneration of e-waybill is possible for the cancelled e-waybill as well as for the E-waybill having status “DIS”.
  15. For Outward, if Bill To GSTIN(toGstin) belongs to SEZ, Bill To state(toState) should be Other Country and ship to statecode (actTostatecode) should be the actual state code.
  16. Similarly for Inward, if Bill From GSTIN(fromGstin) belongs to SEZ, Bill From state(fromState) should be Other Country and Dispatch from statecode (actFromstatecode) should be the actual state code.
  17. Tax rates are being validated. Only the allowed tax rates will be accepted.
  18. Document type is validated against the supply and sub supply type. Accordingly, the type of Consigner and Consignee is allowed.
  19. The system checks for the duplicate e-way bill on the same document number of the consignor. If already one e-way bill exists with same document number, the system will not allow generating one more e-way bill on the same number. That is, if the consignor is trying to generate multiple e-way bills based on one document number, the system throws error. Even if the consignee or transporter tries to generate an E Way Bill for the same document number, system will not allow generation of E Way Bill as consigner himself has used the document number for generation of E Way Bill. However, if consignee or transporter tries to generate the multiple e-way bills on the same document number of the consignor, provided the consigner has not used the document number already to generate E Way Bill, the system will generate E Way Bill and alert through API to the consignee or transporter that already there is one e-way bill with that document number.
  20. To identify the type of movement of goods, type of transaction is being captured.
  21. Additional fields for cessNonAdvolValue and otherValue have been introduced to enter CESS Non Advol amount and any other charges (+/-) written in invoice.
  22. Sum of totalValue, cgstValue, sgstValue, igstValue, cessValue , otherValue and cessNonAdvolValue should be equal to or less than totInvValue with a grace value of Rs. 2.00.
    (Relaxation of validation on Total Invoice Amount for certain RSP HSNs
    As per Notification No. 20/2025, validation related to the above calculations has been relaxed for specific HSNs while validating the Total Invoice Amount).
  23. We have added a new Status DIS for such E Way bills that have been generated with only Part A and Part B is not updated even after 15 days of generation of this temporary number.
  24. Passing transporterId is mandatory for generating Part A Slip and transDocNo, transMode and vehicleNo should be blank.
  25. Alerting the generator of the E-Way Bill through SMS message, in case the total invoice value is more than Rs. 10 Crores.
  26. GSTR1 fields (cgstValue, sgstValue, igstValue, cessValue, totalValue, otherValue and totInvValue in main object and cgstRate, sgstRate, igstRate, cessRate, cessNonAdvol, taxableAmount) are mandatory as per the intrastate or interstate transaction.
  27. Maximum number of items in each invoice should not exceed more than 250 items.
  28. In case of tax payer generating as supplier, the GSTIN of the requesting tax payer should be fromGstin
  29. In case of tax payer generating as recipient, the GSTIN of the requesting tax payer should be - toGstin
  30. In case of transporter(enrolled transporter / GSTIN updated as transporter in e-way bill portal) generating e-way bill, the GSTIN/TRANSIN of the requesting person should be -transporterId
  31. Enrolled transporter(TRANSIN) cannot be supplier (- fromGstin) or buyer (- toGstin)
  32. The following fields should have the one of the values given in the master codes
    1. Supply Type
    2. Sub Supply Type
    3. Document Type
    4. Transportation Mode
    5. Unit Quantity Code
  33. The Document Date should be less than or equal to current date
  34. The Transport document Date should be greater than equal to document date
  35. - fromGstin and - toGstin should be valid GSTIN number of the supplier and recipient. In case of unregistered person involved in the transaction, pass URP in these fields.
  36. In case of ‘Bill to – ship to’ transaction, - toGstin,- toTrdName and - toStateCode should be passed with ‘Bill To’ party and - toAddr1, - toAddr2, - toPlace, - toPincode and - actToStateCode values should be passed with ‘Ship To’ party.
  37. In case of ‘Bill From – Dispatch From’ transaction, - fromGstin, - fromTrdName and - fromStateCode should be passed with ‘Bill From’ party and - fromAddr1, - fromAddr2, - fromPlace, - fromPincode and - actFromStateCode values should be passed with ‘Dispatch from’ party.
  38. e-Way Bill cannot be generated with only SAC codes(99) for Services, minimum one HSN code belonging to Goods is mandatory.
  39. HSN Code should be valid as per the GST master
  40. In case of intra-state transaction, where both - fromGstin and - toGstin belong to same state(fromStateCode and toStateCode should be same), the SGST and CGST tax rate and value has to be passed
  41. In case of inter-state transaction, where both - fromGstin and - toGstin belong to different states(fromStateCode and toStateCode should be different), the IGST tax rate and value has to be passed
  42. In case of one of the party is SEZ unit, then IGST tax rate and value has to be passed
  43. In case of road is a transportation mode , the vehicle number should be passed and transport document number is optional
  44. In case of rail, air or ship is a transportation mode, the transport document number is must
  45. If the transportation is done through the transporter, trans_id field should have valid TRANSID or GSTIN
  46. In case of road transportation, if the vehicle is ‘over dimension cargo’, pass O, otherwise R (regular).
  47. Vehicle type ODC is provisioned for transport mode ‘Ship’
  48. If Mode transportation is selected has ship, the vehicle type can be ODC and Vehicle Number has to be provided
  49. UQC Code while Initializing multi-vehicle movement UQC value is not validating against the UQC provided while generating Eway bill
  50. If vehicle number is passed, the format of the vehicle should be valid and as per the format
  51. For temporary registered vehicles, the registration number format should be ‘TMXXXXXX’
  52. In case of sub supply type is others, then pass the - subSupplyDesc accordingly.
  53. In case of import or export, the actual distance being travelled in the country has to be passed.
  54. Limiting generation of E Way Bill within 180 days of Document Date.
  55. Railways integration for validating Trans Document number.While updating transportation details if mode is Rail, then RR number to be provided as “tansDocNo” should be mandatorily prefixxed with P/F/L depending on the railway system where RR number is generated
  56. TDS/TCS cannot be used as supplier GSTINs during e-way bill generation.

Request body schema

View request body schema

Authorizations

authorization
string
header
required

E-Way Bill taxpayer access token returned by Authenticate.

x-api-key
string
header
required

Sandbox API key from your Sandbox account.

Headers

x-api-version
string
default:1.0.0

API version

x-source
enum<string>
default:primary

NIC server for the session used by this request. primary selects NIC1. secondary selects NIC2. Defaults to primary. See NIC1 and NIC2 routing.

Available options:
primary,
secondary
x-proxy
enum<string>

NIC server that receives the request. If omitted, the request goes to the server selected by x-source. When specified, selects the other server. See NIC1 and NIC2 routing.

Available options:
primary,
secondary

Body

application/json

E-Way Bill schema.

supplyType
enum<string>
required
Available options:
O,
I
Required string length: 1
subSupplyType
string
required

Sub Supply Type

See supply and sub-supply types.

docType
enum<string>
required

Document Type

See E-Way Bill document types.

Available options:
INV,
CHL,
BIL,
BOE,
OTH
docNo
string
required

Document Number (Alphanumeric with / and - are allowed)

Maximum string length: 16
docDate
string
required

Document Date

Pattern: [0-3][0-9]/[0-1][0-9]/[2][0][1-2][0-9]
fromGstin
string
required

From GSTIN (Supplier or Consignor)

Maximum string length: 15
Pattern: ^[0-9]{2}[0-9A-Z]{13}$|^URP$|^urp$
actFromStateCode
integer
required

Actual From State Code

Required range: x <= 99
fromPincode
integer
required

From Pincode

Required range: 100000 <= x <= 999999
fromStateCode
integer
required

From State Code

Required range: x <= 99
toGstin
string
required

To GSTIN (Consignee or Recipient)

Maximum string length: 15
Pattern: ^[0-9]{2}[0-9A-Z]{13}$|^URP$|^urp$
toPincode
integer
required

To Pincode

actToStateCode
integer
required

Actual To State Code

Required range: x <= 99
toStateCode
integer
required

To State Code

Required range: x <= 99
transactionType
integer
required

Transaction type

See transaction types.

Required range: x <= 4
totInvValue
number
required

Total Invoice Value (Including taxable value, tax value,and other charges if any)

Must be a multiple of 0.01
transDistance
string
required

Distance (<4000 km)

itemList
object[]
required

The itemList value.

subSupplyDesc
string

Other Sub Supply Description

See supply and sub-supply types.

Maximum string length: 20
fromTrdName
string

From Trade Name (Consignor Trade name)

Maximum string length: 100
fromAddr1
string

From Address Line 1 (Valid Special Chars #,-,/)

Maximum string length: 120
fromAddr2
string

From Address Line 2(Valid Special Chars # , - ,/)

Maximum string length: 120
fromPlace
string

From Place

Maximum string length: 50
toTrdName
string

To Trade Name (Consignee Trade name or Recipient Trade name)

Maximum string length: 100
toAddr1
string

To Address Line 1 (Valid Special Chars #,-,/)

Maximum string length: 120
toAddr2
string

To Address Line 2 (Valid Special Chars #,-,/)

Maximum string length: 120
toPlace
string

To Place

Maximum string length: 50
totalValue
number

Sum of Taxable value

Must be a multiple of 0.01
cgstValue
number

CGST value

Must be a multiple of 0.01
sgstValue
number

SGST value

Must be a multiple of 0.01
igstValue
number

IGST value

Must be a multiple of 0.01
cessValue
number

Cess value

Must be a multiple of 0.01
cessNonAdvolValue
number

Cess Non Advol value

Must be a multiple of 0.01
otherValue
number

Other charges, if any

Must be a multiple of 0.01
transMode
enum<string>

Mode of transport (Road-1, Rail-2, Air-3, Ship-4)

See transport modes.

Available options:
1,
2,
3,
4
transporterName
string

Name of the transporter

Maximum string length: 100
transporterId
string

15 Digit Transporter GSTIN/TRANSIN

Pattern: [0-9]{2}[0-9|A-Z]{13}
transDocNo
string

Transport Document Number (Alphanumeric with / and – are allowed)

Maximum string length: 15
transDocDate
string

Transport Document Date

vehicleNo
string

Vehicle Number

See vehicle number formats.

Required string length: 7 - 15
vehicleType
string

Vehicle Type

See vehicle types.

Response

200 - application/json

212 Invalid Consignee GSTIN / 702 Distance between pincodes is too high or low / 200 EWB generated with alert / 604 Duplicate EWB / 620 Invoice value cannot be less than sum of items / 200 EWB generated / 359 User GSTIN should match from GSTIN / 619 Transporter Id is mandatory for Part A

An E-Way Bill success or NIC business-failure response. Both variants use HTTP 200.

code
enum<integer>
required

NIC response code.

Available options:
200
timestamp
integer<int64>
required

Unix timestamp.

transaction_id
string
required

Request transaction identifier.

data
object
required