Skip to content

All guides GST & Indirect Tax

E-Invoicing in India: The Implementation Playbook

OneFinOps Editorial

OneFinOps Editorial

Editorial Team · • 11 min read

Last reviewed: 26 Apr 2026

Quick answer. E-invoicing in India is a digital authentication of B2B / export invoices via the Invoice Registration Portal (IRP), which returns a unique IRN and signed QR code. Applicability has dropped from ₹500 cr (Oct 2020) to ₹5 cr (Aug 2023) of aggregate annual turnover, sweeping most mid-market businesses into scope. The right architecture: invoice generated in your books → JSON to IRP → IRN + QR returned → printed on the invoice and pushed to the GSTN auto-population pipeline (GSTR-1 + e-way bill). The operational discipline is: do it in real time, never in a batch the next day, because errors compound.


Who must e-invoice, applicability today

You are required to issue e-invoices for B2B, exports, deemed exports, and SEZ supplies if your aggregate annual turnover exceeded the threshold in any FY from 2017–18 onwards. The threshold has stepped down:

Effective dateThreshold
1 Oct 2020₹500 cr
1 Jan 2021₹100 cr
1 Apr 2021₹50 cr
1 Apr 2022₹20 cr
1 Oct 2022₹10 cr
1 Aug 2023₹5 cr

Once you cross the threshold in any FY, you remain in scope permanently, even if turnover later drops. There’s no “graduate out” path.

What’s in scope and what’s not

In scope (must e-invoice):

  • B2B supplies (registered counterparty)
  • Exports
  • Deemed exports
  • Supplies to SEZ developers / units
  • Reverse charge supplies (where the registered recipient is liable)

Out of scope (do NOT e-invoice, but B2C QR code applies separately, see below):

  • B2C supplies
  • Bills of supply (composition / exempt)
  • Self-supply between distinct persons of the same legal entity (some interpretations)
  • Specified sectors: insurance, banking, NBFC, GTA (passenger transport), multiplexes, SEZ units (only as supplier, SEZ developer is in scope)

Special cases:

  • B2C with turnover > ₹500 cr: must include a dynamic QR code on the invoice (Notification 14/2020-CT). This is a separate compliance from B2B e-invoicing.
  • Credit / debit notes: e-invoice required if the original invoice was e-invoiced (and the linked invoice’s IRN must be referenced).

The IRP architecture, what actually happens when you “e-invoice”

Your ERP / Books

    │ 1. Build invoice as JSON (Schema v1.1)


Invoice Registration Portal (IRP)

    │ 2. Validate (~80 schema checks, GSTIN active checks, duplicate check)
    │ 3. Generate IRN (SHA-256 hash of GSTIN + FY + Doc Type + Doc Number)
    │ 4. Sign with IRP's digital signature
    │ 5. Return IRN, signed QR, ack number, ack date


Your ERP / Books

    │ 6. Persist IRN + signed QR
    │ 7. Print QR on the PDF / e-invoice document
    │ 8. Send to customer


Downstream pipelines (auto-populated by IRP)

    ├─ GSTR-1, invoice details flow into your next month's GSTR-1
    ├─ E-way bill, if Part-A is required, IRP generates EWB Part-A automatically
    └─ Buyer's GSTR-2A / 2B, appears on the buyer side per IRP timestamp

Once the IRN is generated, the invoice is legally registered. You cannot edit the underlying details, only cancel within 24 hours (then re-issue with a new invoice number) or issue a credit note.

There are now 6 IRPs (IRP1–IRP6), all interoperable. Most ERPs default to IRP1 (NIC). For redundancy, configure failover to a secondary IRP.


Implementation in 8 steps

1. Decide direct API vs GSP integration

Two paths to the IRP:

  • Direct API. You call IRP’s /v1.03/invoice endpoint directly. Requires API access from the IRP (separate credentials per GSTIN), production whitelisting, and continuous monitoring. Recommended for businesses with > 50,000 invoices a month, or where data must not leave your tenant.
  • Via GSP (GST Suvidha Provider). A licensed intermediary handles the IRP credentials, retries, and version updates. Faster onboarding, slightly higher cost per IRN (typically ₹0.10–0.50/IRN). Recommended for everyone else.

OneFinOps connects via authorised GSPs and works either way.

2. Map your invoice fields to e-invoice schema

The schema (currently v1.1) has ~140 fields. Mandatory ones for a typical B2B sale:

SectionFieldNotes
DocumentDocType (INV/CRN/DBN), DocNo, DocDateDocNo must be unique within (GSTIN × FY × DocType)
SellerGSTIN, LegalNm, TrdNm, Addr1/Addr2, Loc, Pin, StcdAll from your seller master
BuyerGSTIN, LegalNm, Addr, Pos (place of supply)Pos is critical, drives interstate vs intrastate
ValDtlsAssVal (taxable), IgstVal, CgstVal, SgstVal, CesVal, RndOffAmt, TotInvValMust reconcile to ItemList totals
ItemListper item: SlNo, PrdDesc, HsnCd, Qty, Unit, UnitPrice, GstRt, IgstAmt, CgstAmt, SgstAmtHSN required (4 / 6 / 8 digit by turnover)
ShipDtlsIf place of delivery ≠ buyer address (e.g., bill-to/ship-to)Optional but common
EwbDtlsTransporter, vehicle, distanceOptional; if provided, EWB Part-A auto-generated

The most common implementation mistake is mis-mapping UnitPrice (= price before discount) and Discount (= line discount). The schema is strict: AssAmt = Qty × UnitPrice − Discount + OthChrg. Get the math wrong by ₹1 and the IRP rejects the invoice.

3. Codify HSN and rate at the item master

HSN code is mandatory at the item level. Turnover-linked granularity:

  • Turnover < ₹5 cr: 4-digit HSN for B2B
  • Turnover ≥ ₹5 cr: 6-digit HSN for B2B

Most ERPs allow free-text HSN entry. Don’t. Wire HSN at the item-master level, validated against the GST HSN database (which OneFinOps’ Catalog Agent does automatically). Auto-correct mid-quarter HSN drift.

4. Decide on synchronous vs asynchronous IRN

Two patterns:

  • Synchronous (preferred). When the invoice is saved in books, the system blocks until IRN is back. Latency is typically 1–3 seconds. The user sees the IRN before the invoice is printed. Robust against missing IRNs.
  • Asynchronous. Invoice is saved, IRN call queued, QR added to the PDF when the IRN returns. Better UX in batch-billing scenarios. Risk: a queue back-up means invoices print without QR, which is technically non-compliant.

Synchronous is the default. Use async only for scheduled batch billing (e.g., subscription invoices generated at midnight).

5. Plumb the e-way bill side

If the consignment value is ≥ ₹50,000, an e-way bill is required for movement. Two ways:

  • EWB Part-A from IRP. When you e-invoice with EwbDtls populated, IRP generates EWB Part-A automatically. You then add Part-B (vehicle number, transporter ID) closer to dispatch.
  • Standalone EWB. Generate via the EWB portal independently, required for non-e-invoiced movements (e.g., interstate stock transfer between own branches).

The trap: if you e-invoice and also generate a standalone EWB, you’ll have two EWB numbers. Duplicate EWBs trigger interception during transit. Always generate EWB via IRP when e-invoicing.

6. Handle the cancellation window

You have 24 hours from IRN generation to cancel. After 24 hours, the only path is a credit note (which itself must be e-invoiced if the original was).

Cancellation is at the IRN level, not the invoice level. If you re-issue with the same invoice number after cancellation, IRP will reject (DocNo uniqueness). Always increment the invoice number on re-issue.

7. Reconcile IRN status against your books

A robust system reconciles three states daily:

  • In books, IRN generated, happy path.
  • In books, IRN not generated, investigation list. Either an API failure (retry) or schema rejection (fix and resubmit).
  • IRN generated, not in books, orphaned IRN. Usually a duplicate generation that needs cancellation.

Without this reconciliation, you’ll discover unfiled invoices when GSTR-1 fails to auto-populate next month.

8. Plan for IRP outages

The IRP has had multi-hour outages historically. Your architecture must:

  • Queue invoices when IRP is down. Hold the invoice in pre-IRN state, allow continued billing.
  • Failover to secondary IRP automatically, the IRP1–IRP6 endpoints are interoperable.
  • Don’t print QR on the invoice until IRN is back, the QR is the proof of authentication.
  • GSTN gives a 72-hour window for late IRN generation in case of IRP downtime (with declaration). Use this only as a last resort.

Common error codes and what they mean

The IRP returns specific error codes when validation fails. Top errors and root causes:

CodeMeaningRoot causeFix
2150Duplicate IRNDocNo already used in this FY × GSTIN × DocTypeIncrement doc number
2172GSTIN inactiveBuyer GSTIN suspended / cancelledValidate via GSTN search before posting
2189Pos not allowedPlace of supply doesn’t match seller / buyer state for the supply typeRecheck POS rules (Section 10/11/12)
2197Tax amount mismatchComputed tax ≠ declared taxRecompute at item level, almost always a rounding bug
2235HSN invalidHSN doesn’t exist for that GST rateLook up correct HSN
2240Item rate not in HSN-permitted ratesItem’s GST rate doesn’t match the HSN’s allowed ratesEither fix the rate or fix the HSN
2270Buyer GSTIN-PIN mismatchBuyer’s PIN doesn’t match the state of GSTINUpdate buyer master
3010Date not in current FYDocument date too old (or in future)Fix date; backdating not allowed
4005EWB already generatedAn EWB already exists for this DocNoCancel the EWB or skip Part-A
9999IRP server errorIRP outageRetry with exponential backoff; failover IRP

A good system maintains a rule library that catches these before hitting IRP, saving the round-trip latency.


B2C QR code, separate, often missed

For sellers with aggregate annual turnover > ₹500 cr, every B2C invoice must carry a dynamic QR code containing payment details (UPI / IFSC / VPA). This is not an IRP-generated QR, it’s a self-generated QR with prescribed content.

The most common failure: the QR is “static” (same for every invoice) instead of “dynamic” (encodes the specific bill amount + reference). Static QR is non-compliant. Use a UPI-payment-link generator that creates a per-invoice QR with the exact amount and a unique reference.


E-invoicing under multi-GSTIN

A pan-India business with one PAN and multiple GSTINs (one per state) must e-invoice per GSTIN. Each GSTIN has:

  • Its own IRP credentials
  • Its own DocNo sequence (DocNo uniqueness is per GSTIN × FY × DocType)
  • Its own GSTR-1 auto-population

If your billing system shares an invoice number sequence across GSTINs, IRP will reject every invoice with the same number. Branch-tag your DocNo (e.g., KA-2026-0001, MH-2026-0001) to avoid collisions.

Inter-GSTIN movement under the same PAN is treated as a “supply” under GST (interstate stock transfer = IGST, intrastate self-supply = generally not taxable). E-invoice if you cross a GSTIN boundary; use a delivery challan if intrastate same-GSTIN.


The 30-day implementation plan

For a team starting from zero on a ₹5–50 cr turnover business:

WeekMilestone
1Confirm applicability. Choose direct API vs GSP. Inventory all invoice-issuing systems (ERP, billing, e-commerce).
2Map fields to e-invoice schema. Audit item master HSN codes. Validate buyer GSTINs in active state.
3Configure IRP credentials per GSTIN. Run sandbox tests with 50 representative invoices. Resolve schema errors.
4Go live in production. Monitor first week’s reconciliation daily. Set up alerts on IRN failures.

Most ₹5–20 cr businesses can self-serve via a GSP. Above ₹50 cr, expect a 60-day implementation with IT involvement.


Tooling: what to look for

  • GSP-authorised (or you handle direct IRP credentials yourself).
  • Sub-second IRN response with built-in retry + failover.
  • Schema validation pre-flight, catches errors before IRP round-trip.
  • HSN auto-validation at item master level.
  • Multi-GSTIN aware, separate sequences and credentials.
  • Reconciliation dashboard, IRN vs books vs GSTR-1.
  • EWB integration, Part-A auto from IRP, Part-B added at dispatch.
  • B2C QR generator with dynamic content per invoice.

OneFinOps connects to the IRP via authorised GSPs. E-invoicing is built into Receivables, every B2B invoice gets an IRN as it’s posted, EWB Part-A flows in the same write, GSTR-1 auto-populates next month. Start a free trial or book a 30-min walkthrough.


Frequently asked questions

What if my buyer doesn’t accept e-invoiced PDFs?

Legally, the e-invoice and the PDF you generate are equivalent, the IRN + QR is the authentication. If the buyer wants the official portal-rendered PDF, they can fetch it themselves from the IRP. As of 2024, a small number of large enterprises insist on the IRP-rendered PDF; most accept the seller-generated PDF with QR.

Can I e-invoice in advance of the actual supply?

The DocDate on the e-invoice must reflect the actual date of issue. Issuing an e-invoice in advance of the supply is a tax invoice issued in advance, perfectly legal but the GST liability is at the time of supply / payment per Section 12/13 of CGST. Avoid backdating; IRP will reject DocDates that are too old.

How do I e-invoice an invoice with no GSTIN buyer?

That’s a B2C invoice, outside e-invoicing scope. Issue per regular GST invoice rules. If you’re > ₹500 cr turnover, the dynamic B2C QR applies.

What if the IRP is down?

Continue posting invoices in your books with status pending-IRN. Don’t dispatch goods or share the invoice with the buyer until IRN is back. If IRP is down for an extended period, GSTN typically issues an extension (last seen in Aug 2023, 72-hour grace period). Document the outage.

Can I cancel an IRN after 24 hours?

No. You can only issue a credit note (which itself must be e-invoiced and reference the original IRN). Re-issuance of the original invoice number is not allowed.

How do credit notes work in e-invoicing?

A credit note is an e-invoice with DocType=CRN. It must reference the original invoice’s IRN in RefDtls > InvRm and PrecDocDtls. The credit note’s IRN is generated by IRP just like a regular invoice. The accounting adjustment then flows through GSTR-1 in the credit-note section.

Does e-invoicing apply to interstate stock transfers between own GSTINs?

Yes, generally, same PAN, different GSTIN, interstate = supply under Section 25(4)/25(5). E-invoice required, IGST charged, ITC available to the receiving GSTIN. Common ground for confusion; consult your tax counsel for the precise treatment in your structure.


Sources


This guide is operational, not legal advice. Cross-border, SEZ, and reverse-charge nuances should be reviewed with your tax counsel.

Tags

  • e-invoicing India
  • IRN generation
  • IRP
  • e-way bill
  • B2C QR code
  • GSTR-1 e-invoice
  • e-invoicing 5 crore threshold
  • IRN cancellation

Stop running this in spreadsheets.

OneFinOps does the work this guide describes, receivables, payables, procurement and compliance on one record.