Who Must Generate E-Invoices in 2026?
The e-invoice mandate started in October 2020 for businesses above ₹500 crore turnover and has been progressively widened. The current thresholds:
- ₹5 crore turnover and above — mandatory for all B2B supplies, exports, deemed exports, SEZ supplies, and credit/debit notes against B2B invoices. This threshold has been in effect since August 2023.
- Below ₹5 crore — voluntary. Many smaller manufacturers opt in because their B2B buyers prefer e-invoiced suppliers (it auto-fills their GSTR-2B).
Aggregate turnover means PAN-level turnover across all GSTINs in India for any financial year from 2017-18 onwards. Once you cross the threshold in any year, you remain in the mandate even if turnover later drops.
Exempt categories (do not need e-invoice even above the threshold): SEZ units (not developers), banks, insurers, NBFCs, GTAs, passenger transport, multiplex services, and registered persons under Rule 14 (specified composition).
The 7-Step E-Invoice Generation Process
Below is the official process. Steps 2 to 5 are typically automated by your ERP or accounting software — but you should understand each step so you can debug a failed e-invoice when it happens (and it will).
Register your GSTIN on the Invoice Registration Portal
Visit einvoice1.gst.gov.in, click Registration, and enter your GSTIN. The portal sends an OTP to the mobile and email registered against the GSTIN; enter the OTP and create your IRP user-id and password. Each GSTIN registers separately even if you share a PAN.
If you plan to use an API integration (which is what every ERP including OEMup does), also generate API user credentials under API Registration. You will need a static IP whitelisted; coordinate with your IT team.
Prepare the invoice in the GSTN JSON schema (INV-1)
The GSTN publishes the e-invoice JSON schema as INV-1 (currently version 1.1). Every e-invoice must contain a seller block with GSTIN and address, a buyer block with GSTIN and place of supply, a document block with type / number / date, an item list with HSN codes and taxable value, and a tax totals block.
A minimal sample looks like this (manufacturer with a 2-line invoice for a pump and a motor):
{
"Version": "1.1",
"TranDtls": { "TaxSch": "GST", "SupTyp": "B2B" },
"DocDtls": { "Typ": "INV", "No": "INV/2026/0418", "Dt": "04-05-2026" },
"SellerDtls": { "Gstin": "24ABCDE1234F1Z5", "LglNm": "Acme Pumps Pvt Ltd", "Loc": "Rajkot", "Pin": 360001, "Stcd": "24" },
"BuyerDtls": { "Gstin": "27FGHIJ5678K2Z9", "LglNm": "Bharat Industries", "Pos": "27", "Loc": "Pune", "Pin": 411001, "Stcd": "27" },
"ItemList": [
{ "SlNo": "1", "PrdDesc": "Centrifugal Pump 5HP", "HsnCd": "84137010", "Qty": 2, "Unit": "NOS", "UnitPrice": 42000, "TotAmt": 84000, "GstRt": 18, "IgstAmt": 15120, "TotItemVal": 99120 },
{ "SlNo": "2", "PrdDesc": "Induction Motor 3HP", "HsnCd": "85015220", "Qty": 2, "Unit": "NOS", "UnitPrice": 28500, "TotAmt": 57000, "GstRt": 18, "IgstAmt": 10260, "TotItemVal": 67260 }
],
"ValDtls": { "AssVal": 141000, "IgstVal": 25380, "TotInvVal": 166380 }
}
Upload the JSON to the IRP
Three upload paths exist:
- Manual upload — log in to einvoice1.gst.gov.in, paste the JSON, click upload. Practical only for very low volume (under 5 invoices/day).
- Direct API — your ERP calls the IRP API directly using your registered credentials. Requires whitelisted static IP.
- GSP / ASP route — your ERP calls a GST Suvidha Provider (Cygnet, Masters India, ClearTax, IRIS, etc.) which forwards to the IRP. No static-IP requirement; typical for cloud ERPs.
OEMup uses the GSP route by default — no IP whitelisting needed and it works from a tablet on the shop floor.
Receive the IRN and signed QR from the IRP
If the JSON validates, the IRP returns within 1–2 seconds a JSON containing the IRN (64-character SHA256 hash), the signed QR (Base64 string of the JWT signed by the IRP's private key), and an acknowledgement number. Save all three against the invoice.
If the JSON fails validation, the IRP returns a list of error codes. See the common errors table below.
Print the IRN and QR on the buyer copy
Under Rule 48(4), the invoice you give the buyer must carry the IRN (printed as text) and the signed QR (printed as a 2D code). Without these, the invoice is not a valid tax document and the buyer cannot claim ITC against it.
Place the QR somewhere scannable — top-right or bottom of the invoice are conventional. Quiet zone of at least 2mm around the QR is recommended.
Share the invoice with the buyer
The signed PDF (or printout) goes to the buyer by email, WhatsApp, or courier. Buyers can verify the IRN authenticity at einvoice1.gst.gov.in by entering the IRN, or by scanning the QR with the GST Verify app.
Auto-report to GSTR-1 and the buyer's GSTR-2A/2B
The IRP forwards the e-invoice to GSTN, which auto-populates your GSTR-1 (outward supplies) and the buyer's GSTR-2A and 2B (inward supplies). When you file GSTR-1, you only verify what the IRP has already pushed — you do not re-enter the invoice. This is the biggest hidden benefit of e-invoice: GSTR-1 reconciliation drops from days to minutes.
Skip the 7 steps — let OEMup auto-generate every E-Invoice for you
OEMup posts the JSON, fetches the IRN, embeds the QR, and reports to GSTN — all in the background, included in every plan. No Connector. No add-on.
Book a Demo →Common E-Invoice Errors and How to Fix Them
Ten error codes account for ~95% of failed e-invoice generations. Here is the quick reference:
| Code | Meaning | Fix |
|---|---|---|
| 2150 | Duplicate IRN for the same document number | The same INV number was already submitted. Use a fresh INV number; you cannot regenerate an IRN against the same number. |
| 2172 | Invalid GSTIN of buyer / seller | GSTIN format wrong, or the GSTIN is cancelled/inactive. Verify on GST portal > Search Taxpayer. |
| 2176 | HSN code does not exist | HSN code is invalid or fewer digits than required (8-digit mandatory above ₹5cr turnover for B2B). |
| 2189 | Document date cannot be future-dated | Set DocDt to today or earlier. The IRP rejects future dates. |
| 2193 | Invalid place of supply | Pos must be the buyer's state code (2-digit). Common error: writing buyer state code as buyer pincode. |
| 2210 | Tax amount mismatch (CGST + SGST not equal to GstRt × AssVal) | Recompute tax; rounding to 2 decimal places per line item is required. |
| 2233 | Total invoice value mismatch | TotInvVal must equal AssVal + IgstVal + CgstVal + SgstVal + CessVal − Discount + RoundOff. Validate the math. |
| 2244 | Item value mismatch | TotItemVal per line must equal Qty × UnitPrice + IgstAmt + CgstAmt + SgstAmt + CesAmt. |
| 2265 | Pin code does not match state | Buyer pin code's first 2 digits do not match the state code. Common with Delhi (110) vs Haryana (12x). |
| 2272 | Document type invalid for B2C | You set SupTyp = B2C but B2C is not allowed under e-invoice. Change to B2B / EXP / SEZWP / DEXP as applicable. |
Manufacturer-Specific Tips
Multi-line BOM invoices
Manufacturers often invoice a finished product whose BOM has 50+ raw components. The e-invoice JSON allows up to 1000 line items, so this is not a hard limit — but the buyer typically wants the finished SKU on the invoice, not every component. Best practice: invoice the finished product as one line item, and keep the BOM as an internal record. The HSN you put on the invoice line is the HSN of the finished goods, not the raw material.
Branch transfers and stock transfers
Inter-state stock transfers between two GSTINs of the same legal entity are treated as SUPLY under GST and require an e-invoice. SupTyp is B2B, with seller GSTIN as the despatching branch and buyer GSTIN as the receiving branch. Intra-state transfers between two godowns of the same GSTIN are not supplies and do not need an e-invoice.
Job-work invoices
The Section 4(5)(a) job-work challan is not an invoice and does not need an IRN. But when the job-worker raises a tax invoice for the conversion charges (the value-add), that invoice does need an e-invoice if the job-worker is above ₹5 crore. The principal manufacturer also needs an e-invoice when raising the principal-to-job-worker invoice if any sale of materials is involved.
Returns and reverse invoices
For sales returns above ₹5 crore turnover, issue a credit note with SupTyp=B2B and DocTyp=CRN. The credit note gets its own IRN and reduces the buyer's ITC and your output tax. Do not delete or reverse the original e-invoice — that is not a permitted operation.
An e-invoice can only be cancelled within 24 hours of generation, and only if the buyer has not accepted it in their GSTR-2A. After 24 hours, you must use a credit note. This is the most common compliance mistake — set up a daily check on cancellations within your shift.
How OEMup Automates the Whole Thing
For OEMup users, the entire 7-step process collapses to clicking Save Invoice. Behind the scenes:
- OEMup builds the INV-1 JSON from the invoice you saved.
- OEMup calls the IRP via its GSP integration, returns within 2 seconds.
- OEMup embeds the IRN and signed QR on the printed PDF.
- OEMup logs the acknowledgement number against the invoice for audit.
- If the IRP returns an error, OEMup surfaces the error code with a one-line explanation.
Same flow for credit notes, debit notes, branch transfers, exports, and SEZ supplies. No add-on charge, no Connector, no Windows machine running in the background.
Stop manually generating e-invoices
OEMup includes native e-invoice and e-way bill in every plan. Book a demo and see your own invoice get IRN'd live on the call.
Get a Demo →Frequently Asked Questions
What is the e-invoice turnover threshold in 2026?
Is e-invoice required for B2C sales?
What is an IRN and why is it 64 characters?
Can I generate an e-invoice from Tally?
What happens if I make a mistake in an e-invoice?
Do I need a Digital Signature Certificate (DSC) to generate an e-invoice?
Can a manufacturer with multi-line BOM invoices use e-invoice?
Is e-invoice required for job-work challans?
Next Steps
- Confirm your aggregate turnover and whether the mandate applies to you.
- If yes, register your GSTIN on the IRP today (it's free and takes 5 minutes).
- Decide between manual upload, direct API, or ERP integration based on your monthly invoice volume.
- If you do over 50 B2B invoices a month, an ERP integration pays for itself in admin time alone.
Related reading: OEMup vs Tally for manufacturers · 5 things Tally cannot do · OEMup accounting module