ediverse Explore the platform

Spotlight PEPPOL BIS Billing 3.0 The EU e-invoicing mandate is here — France Sept 2026, Belgium Jan 2026, Germany 2025.

India — GST e-Invoice and the IRP

India deployed a partial clearance mandate from October 2020 under the aegis of GSTN: every B2B invoice above a decreasing turnover threshold must obtain a signed IRN from an Invoice Registration Portal before it becomes valid.

Regulatory timeline

  • GST Council — 35th meeting of 21 June 2019. Approval of the e-invoicing concept for large taxpayers.
  • GST Notification 13/2020-Central Tax of 21 March 2020. Legal framework for e-invoicing with go-live initially set for 1 April 2020, deferred to October 2020 for technical reasons.
  • 1 October 2020. Mandatory go-live for taxpayers with turnover > INR 500 cr (≈ €60M) in the previous fiscal year.
  • GST Notification 88/2020-Central Tax of 10 November 2020. Threshold lowered to INR 100 cr from 1 January 2021.
  • GST Notification 5/2021-Central Tax of 8 March 2021. Threshold brought to INR 50 cr from 1 April 2021.
  • GST Notification 1/2022-Central Tax of 24 February 2022. Threshold at INR 20 cr from 1 April 2022.
  • GST Notification 17/2022-Central Tax of 1 August 2022. Threshold at INR 10 cr from 1 October 2022.
  • GST Notification 10/2023-Central Tax of 10 May 2023. Threshold at INR 5 cr (≈ €550,000) from 1 August 2023.
  • 2024-2026. No further wave announced to date. Discussions focus on including B2C and possible near-real-time reporting.

Technical schema

The mandated format is JSON compliant with the GST INV-01 schema published by GSTN, current version 1.1. No XML, no UBL, no EN 16931 — the schema is Indian proprietary and structured around GST semantics: GSTIN, HSN/SAC codes, intra-state taxes (CGST + SGST) or inter-state (IGST), supply type (B2B, EXPWP, EXPWOP, SEZWP, SEZWOP, DEXP).

Minimal IRP payload:

jsonirp-gst-inv01.json
{
  "Version": "1.1",
  "TranDtls": {
    "TaxSch": "GST",
    "SupTyp": "B2B",
    "RegRev": "N",
    "IgstOnIntra": "N"
  },
  "DocDtls": {
    "Typ": "INV",
    "No": "INV-2026-00187",
    "Dt": "16/05/2026"
  },
  "SellerDtls": {
    "Gstin": "27AAACR5055K1Z7",
    "LglNm": "Ediverse Demo Pvt Ltd",
    "Addr1": "MG Road",
    "Loc": "Bengaluru",
    "Pin": 560001,
    "Stcd": "29"
  },
  "BuyerDtls": {
    "Gstin": "29ABACR5055M1Z3",
    "LglNm": "Mysore Trading Co",
    "Pos": "29",
    "Addr1": "Sayyaji Rao Road",
    "Loc": "Mysuru",
    "Pin": 570001,
    "Stcd": "29"
  },
  "ItemList": [{
    "SlNo": "1",
    "PrdDesc": "Software services",
    "HsnCd": "998314",
    "Qty": 10,
    "Unit": "OTH",
    "UnitPrice": 1000.00,
    "TotAmt": 10000.00,
    "AssAmt": 10000.00,
    "GstRt": 18.0,
    "CgstAmt": 900.00,
    "SgstAmt": 900.00,
    "TotItemVal": 11800.00
  }],
  "ValDtls": {
    "AssVal": 10000.00,
    "CgstVal": 900.00,
    "SgstVal": 900.00,
    "TotInvVal": 11800.00
  }
}

The IRP normalises the payload, computes a SHA-256 hash over (supplier GSTIN + fiscal year + document number) and returns:

  • An IRN (Invoice Reference Number), 64-hex characters.
  • A QR code base64-encoded containing IRN, GSTIN, amount, date, hash and digital signature.
  • A JWS signature over the returned payload.
  • Optionally, an e-Way Bill number when the invoice value exceeds INR 50,000 for inter-state transport.

Submission flow

Three channels to the IRP:

  • Direct IRP API (REST/JSON over HTTPS, GSTIN token authentication). Reserved to taxpayers > INR 50 cr or to technology providers.
  • Accredited ASP/GSP (Application Service Provider / GST Suvidha Provider) inserted between the ERP and the IRP. Most large enterprises go through a GSP such as Tally, ClearTax, IRIS, or GSTN-approved providers.
  • GSTN portal (einvoice1.gst.gov.in) — manual web entry for small taxpayers.
textirp-flow.txt
┌────────────┐    ┌──────────────┐    ┌────────────┐
│ IN Seller  │───>│ IRP (GSTN)   │───>│ IN Buyer   │
│ (ERP)      │JSON│  or ASP/GSP  │    │ (ERP)      │
└────────────┘    └──────┬───────┘    └────────────┘


                ┌──────────────────┐
                │ Signed IRN       │  ← synchronous return,
                │ (SHA-256) + QR   │     within a second
                │ + e-Way Bill     │
                └──────────────────┘

Since 2023, GSTN operates up to 6 IRPs in parallel (einvoice1 to einvoice6) to spread the load: ERPs must implement routing based on the seller's GSTIN. The IRN must be obtained within 24 hours of issuance (window extended by the GST Council in April 2023; before that, immediate obligation).

Validation

Common pitfalls

  1. 24-hour IRN window. Since 2023, the IRP requires the IRN to be obtained within 24h of the issuance date. Overnight batches are no longer safe, especially for invoices issued late in the day that roll to the next.
  2. Multi-IRP and GSTIN routing. GSTN runs 6 IRPs in parallel: einvoice1 to einvoice6. Routing follows the supplier GSTIN (mod 6 or GSTN internal rule). An ERP that hard-codes einvoice1 may be overloaded or non-compliant with the announced distribution.
  3. HSN/SAC codes at the right precision. The HSN (Harmonised System of Nomenclature) or SAC (Service Accounting Code) must be entered with 4 digits when turnover < INR 5 cr and 6 digits when turnover > INR 5 cr. A wrong precision is rejected by the IRP with error code 2150.
  4. Supply type (SupTyp). The distinction between B2B, EXPWP (export with VAT payment), EXPWOP (export without VAT), SEZWP (sale to a Special Economic Zone with VAT), SEZWOP, DEXP (deemed export) must match the commercial nature: an error here distorts the recoverable VAT on the buyer side.
  5. Separate e-Way Bill for transport. The IRN does not replace the e-Way Bill mandatory for goods transport > INR 50,000 inter-state. Many integrations conflate the two: the e-Way Bill can be generated from the IRN via a separate API, but remains mandatory and needs extra fields (transport mode, vehicle number, distance).