Mandatory Bill-to/Ship-to Changes for e-Invoice & e-Way Bill Integrations from 1 August 2026 

GSTN and NIC has introduced mandatory changes to the e-Invoice, e-Way Bill by IRN, and e-Way Bill APIs to improve Bill-to/Ship-to transaction accuracy and goods movement traceability.These changes will be effective in Production from 1 August 2026. Businesses using ERP, GSP/ASP, or direct GST API integrations should update their systems before the go-live date to ensure uninterrupted

What ERP users need to know  

For Bill-to/Ship-to transactions, and combination of  Bill-from/Dispatch-from and Bill-to/Ship-to transactions, where the goods are delivered to a party different from the Bill-to party:

  • Ship-to GSTIN is required when the Ship-to party is registered.
  • URP may be used where the Ship-to party is unregistered.
  • The Bill-to GSTIN and Ship-to GSTIN cannot be the same in a Bill-to/Ship-to transaction.
  • The Ship-to GSTIN must be valid, and the State Code and PIN Code must match the Ship-to details.

Regular transactions and Bill-from/Dispatch-from transactions, where goods are delivered to the Bill-to party, do not require a separate Ship-to GSTIN.

🔧 Key JSON/API Changes  

 1. Generate IRN and e-Way Bill Together   When Ship-to details are provided and an e-Way Bill is also being generated the JSON Structure is as below:

OldNew
“ShipDtls”: {
    “LglNm”: “CBE company pvt ltd”,
    “TrdNm”: “kuvempu layout”,
    “Addr1”: “7th block,”,
    “Addr2”: “kuvempu layout”,
    “Loc”: “Banagalore”,
    “Pin”: 562160,
    “Stcd”: “29”
  },
“ShipDtls”: {
    “Gstin”: “29xxxxxxxxx”,
    “LglNm”: “CBE company pvt ltd”,
    “TrdNm”: “kuvempu layout”,
    “Addr1”: “7th block”,
    “Addr2”: “kuvempu layout”,
    “Loc”: “Banagalore”,
    “Pin”: 562160,
    “Stcd”: “29”
  },

ShipDtls.Gstin – Conditionally mandatory

The field is required when Ship-to Legal Name and Ship-to Address are provided.

Accepted Values in ShipDtls.Gstin :

  • Valid Ship-to GSTIN, or
  • URP, wherever applicable.

 2. Generate e-Way Bill Using IRN   In case of Bill-to/Ship-to transactions, if Ship-to address is not provided at the time of IRN generation it may be provided with a new field added as under:

OldNew
{
  “Irn”: “”,
  “Distance”: 100,
  “TransMode”: “1”,
“TransId”:”12XXXXXX”,  
  “TransName”: “trans name”,
  “TransDocDt”: “01/08/2020”,
  “TransDocNo”: “TRAN/DOC/11”,
  “VehNo”: “KA12ER1234”,
  “VehType”: “R”
}
{
  “Irn”: “”,
  “Distance”: 100,
  “TransMode”: “1”,
“TransId”:”12XXXXXX”,  
  “TransName”: “trans name”,
  “TransDocDt”: “01/08/2020”,
  “TransDocNo”: “TRAN/DOC/11”,
  “VehNo”: “KA12ER1234”,
  “VehType”: “R”,
  “ExpShipDtls”: {
    “Gstin”:”29XXXXXXXXXX”,
    “TrdNm”:”ABC”,
    “Addr1”: “7th block”,
    “Addr2”: “kuvempu layout”,
    “Loc”: “Banagalore”,
    “Pin”: 562160,
    “Stcd”: “29”
  }
}

ExpShipDtls.Gstin – Mandatory

Accepted Values in ExpShipDtls.Gstin:

  • The Ship-to GSTIN, or
  • URP, wherever applicable

An additional field has also been introduced:

ExpShipDtls.TrdNm – Optional

This field is used to provide the Ship-to Trade Name.

 3. Generate e-Way Bill   When Ship-to details are provided for generating the e-Way Bill the JSON Structure is as below  

OldNew
{
“supplyType”: “O”,
“subSupplyType”: “1”,
“subSupplyDesc”: “”,
“docType”: “INV”,
“docNo”: “sum/1/23/79”,
“docDate”: “07/07/2017”,
“fromGstin”: “29AAFCC9980M1ZR”,
“fromTrdName”: “welton”,
“fromAddr1”: “2ND CROSS NO 5919 A”,
“fromAddr2”: “BORNE ROAD”,
“fromPlace”: “FRAZER TOWN”,
“fromPincode”: 560090,
“fromStateCode”: 29,
“toGstin”: “29AEKPV7203E1Z9”,
“toTrdName”: “sthuthya”,
“toAddr1”: “Shree Nilaya”,
“toAddr2”: “Dasarahosahalli”,
“toPlace”: “Beml Nagar”,
“toPincode”: 560090,
“actToStateCode”: 29,
“toStateCode”: 27,
“transactionType”: 2,
“otherValue”: “0”,
“totalValue”: 56099,
“cgstValue”: 0,
“sgstValue”: 0,
“igstValue”: 300.67,
“cessValue”: 400.56,
“cessNonAdvolValue”: 400,
“totInvValue”: 68358,
“transporterId”: “”,
“transporterName”: “”,
“transDocNo”: “”,
“transMode”: “1”,
“transDistance”: “100”,
“transDocDate”: “”,
“vehicleNo”: “PVC1234”,
“vehicleType”: “R”,
“itemList”: [
{
“productName”: “Wheat”,
“productDesc”: “Wheat”,
“hsnCode”: 1001,
“quantity”: 4,
“qtyUnit”: “BOX”,
“cgstRate”: 0,
“sgstRate”: 0,
“igstRate”: 3,
“cessRate”: 3,
“cessNonadvol”: 0,
“taxableAmount”: 5609889
}
]
}
{
“supplyType”: “O”,
“subSupplyType”: “1”,
“subSupplyDesc”: “”,
“docType”: “INV”,
“docNo”: “sum/1/23/79”,
“docDate”: “07/07/2017”,
“fromGstin”: “29AAFCC9980M1ZR”,
“fromTrdName”: “welton”,
“fromAddr1”: “2ND CROSS NO 5919 A”,
“fromAddr2”: “OSBORNE ROAD”,
“fromPlace”: “FRAZER TOWN”,
“fromPincode”: 560090,
“fromStateCode”: 29,
“toGstin”: “29AEKPV7203E1Z9”,
“toTrdName”: “sthuthya”,
“toAddr1”: “Shree Nilaya”,
“toAddr2”: “Dasarahosahalli”,
“toPlace”: “Beml Nagar”,
“toPincode”: 560090,
“actToStateCode”: 29,
“toStateCode”: 27,
“transactionType”: 2,
 “shipToGSTIN”: “29ABCDE8755F1Z2”,
“shipToTradeName”: “XYZ Traders”,
“otherValue”: “0”,
“totalValue”: 56099,
“cgstValue”: 0,
“sgstValue”: 0,
“igstValue”: 300.67,
“cessValue”: 400.56,
“cessNonAdvolValue”: 400,
“totInvValue”: 68358,
“transporterId”: “”,
“transporterName”: “”,
“transDocNo”: “”,
“transMode”: “1”,
“transDistance”: “100”,
“transDocDate”: “”,
“vehicleNo”: “PVC1234”,
“vehicleType”: “R”,
“itemList”: [
{
“productName”: “Wheat”,
“productDesc”: “Wheat”,
“hsnCode”: 1001,
“quantity”: 4,
“qtyUnit”: “BOX”,
“cgstRate”: 0,
“sgstRate”: 0,
“igstRate”: 3,
“cessRate”: 3,
“cessNonadvol”: 0,
“taxableAmount”: 5609889
}
]
}

 Important API Validations   

ERP/API integrations should be prepared for the following validations:

  • Ship-to GSTIN is mandatory when applicable.
  • Bill-to GSTIN and Ship-to GSTIN cannot be the same in a Bill-to/Ship-to transaction.
  • Ship-to State Code must match the GSTIN State Code.
  • Ship-to PIN Code must belong to the Ship-to State Code.

 Action Required for ERP & API Users   To ensure uninterrupted e-Invoice and e-Way Bill generation after 1 August 2026, businesses

should:

  • Update ERP master data to capture Ship-to GSTIN.
  • Modify API payloads to include the new mandatory fields.
  • Send URP where the consignee is unregistered.
  • Validate Bill-to/Ship-to transaction logic.
  • Update Logic not to provide same GSTIN for Bill-to and ship-to fields.
  • Clearly define the logic for Regular and Bill-to/ship-to transactions.
  • Should not print the Ship-to GSTIN on the EWay bill print PDF.

 FAQ’s :

  • If the Goods or delivered to a different branch registered under same GSTIN of Head-office, is it a Bill-to/ship-to transaction?
    • No. It is a regular transaction, Please provide the Branch address in the Billing address field and do not provide shipping address fields
  • Will Ship-to GSTIN be printed on the e-Way Bill?
    • No. Ship-to GSTIN shall not be printed on the e-Way Bill generated on the e-Way Bill portal.
  • Will Ship-to GSTIN be provided through GET e-Way Bill APIs?
    • No. Ship-to GSTIN shall not be provided through the GET e-Way Bill APIs.
  • What will continue to be visible on the e-Way Bill?
    • The relevant Ship-to address and PIN code shall continue to be shown as per the existing practice.
  • Does entering URP mean that the transaction is treated as a domestic supply to an unregistered person?
    • No. Entry of URP is a system-level treatment for EWB generation in export-related movement. The nature of export shall be determined based on export invoice, shipping bill, customs documents, transport documents and other applicable records.  

Discover more from GSTZen

Subscribe now to keep reading and get access to the full archive.

Continue reading