Use this skill with your AI agent
Paste this skill into your AI agent's context, or save the file to your project. Works with any AI agent that reads markdown.
| 1 | --- |
| 2 | name: india-einvoice |
| 3 | description: > |
| 4 | Use this skill whenever asked about India GST e-invoicing, Invoice Registration Portal (IRP), IRN generation, e-invoice JSON schema, NIC portal, GST INV-01 format, e-invoice threshold, B2B invoice reporting under GST, QR code on invoices, GSTR-1 auto-population, e-way bill integration with e-invoice, or any question about generating, validating, or troubleshooting Indian e-invoices. Also trigger when advising on e-invoice compliance for businesses crossing Rs 5 crore turnover, configuring ERP/billing software for IRP integration, or handling IRP rejections. ALWAYS read this skill before touching any India e-invoice work. |
| 5 | version: 1.0 |
| 6 | jurisdiction: IN |
| 7 | category: invoicing |
| 8 | depends_on: |
| 9 | - einvoice-workflow-base |
| 10 | --- |
| 11 | |
| 12 | # India GST E-Invoice Skill v1.0 |
| 13 | |
| 14 | --- |
| 15 | |
| 16 | ## Section 1 -- Quick Reference |
| 17 | |
| 18 | | Field | Value | |
| 19 | |---|---| |
| 20 | | Country | India (Republic of India) | |
| 21 | | Currency | INR (Indian Rupee) | |
| 22 | | E-Invoicing System | Invoice Registration Portal (IRP) under GST | |
| 23 | | Governing Body | Goods and Services Tax Network (GSTN) / Central Board of Indirect Taxes and Customs (CBIC) | |
| 24 | | Key Legislation | CGST Act 2017, Rule 48(4)/(5) of CGST Rules 2017, Notification 10/2023-CT | |
| 25 | | Schema Standard | GST INV-01 JSON (proprietary schema, not UBL) | |
| 26 | | Current Threshold | Aggregate Annual Turnover (AATO) > Rs 5 crore in any FY since 2017-18 | |
| 27 | | Implementation Start | 1 October 2020 (phased rollout by turnover) | |
| 28 | | Current Status | Fully operational; mandatory for AATO > Rs 5 crore since 1 August 2023 | |
| 29 | | Approved IRPs (2026) | NIC (primary), Cygnet, Clear, IRIS, BDO, EY | |
| 30 | | Filing Portal | einvoice1.gst.gov.in (production); einv-apisandbox.nic.in (sandbox) | |
| 31 | |
| 32 | ### Turnover Phase-In Timeline |
| 33 | |
| 34 | | Turnover Threshold | Mandatory From | |
| 35 | |---|---| |
| 36 | | > Rs 500 crore | 1 October 2020 | |
| 37 | | > Rs 100 crore | 1 January 2021 | |
| 38 | | > Rs 50 crore | 1 April 2021 | |
| 39 | | > Rs 20 crore | 1 April 2022 | |
| 40 | | > Rs 10 crore | 1 October 2022 | |
| 41 | | > Rs 5 crore | 1 August 2023 | |
| 42 | |
| 43 | --- |
| 44 | |
| 45 | ## Section 2 -- Mandate Scope |
| 46 | |
| 47 | ### Who Must Comply |
| 48 | |
| 49 | - Any GST-registered taxpayer whose **aggregate annual turnover (AATO)** exceeded Rs 5 crore in **any financial year from FY 2017-18 onwards** |
| 50 | - Once the threshold is crossed in any past year, the obligation is **permanent** even if current-year turnover drops below Rs 5 crore |
| 51 | - Covers: B2B supply invoices, B2B credit notes, B2B debit notes, exports, supplies to SEZ units |
| 52 | |
| 53 | ### Document Types Covered |
| 54 | |
| 55 | | Document | IRP Document Type Code | |
| 56 | |---|---| |
| 57 | | Tax Invoice | INV | |
| 58 | | Credit Note | CRN | |
| 59 | | Debit Note | DBN | |
| 60 | |
| 61 | ### Exempted Categories |
| 62 | |
| 63 | - B2C invoices (not reportable to IRP) |
| 64 | - SEZ units themselves (when issuing) |
| 65 | - Insurance companies, banking companies, financial institutions, NBFCs |
| 66 | - Goods transport agencies (GTA) |
| 67 | - Passenger transport services |
| 68 | - Cinema ticket admissions |
| 69 | |
| 70 | ### Time Limit for Reporting |
| 71 | |
| 72 | | Taxpayer AATO | Reporting Deadline | |
| 73 | |---|---| |
| 74 | | > Rs 100 crore | Within 7 days of invoice date | |
| 75 | | > Rs 10 crore | Within 30 days of invoice date (from 1 April 2025) | |
| 76 | | Up to Rs 10 crore | No specific time limit (expected to extend) | |
| 77 | |
| 78 | After the deadline expires, the IRP permanently rejects IRN generation for that document. |
| 79 | |
| 80 | --- |
| 81 | |
| 82 | ## Section 3 -- Technical Format |
| 83 | |
| 84 | ### Schema Specification |
| 85 | |
| 86 | | Aspect | Detail | |
| 87 | |---|---| |
| 88 | | Format | JSON (not XML) | |
| 89 | | Schema Name | GST INV-01 | |
| 90 | | Current API Version | v1.04 | |
| 91 | | Character Encoding | UTF-8 | |
| 92 | | Date Format | DD/MM/YYYY | |
| 93 | | Decimal Precision | 2 decimal places for amounts | |
| 94 | |
| 95 | ### JSON Structure (Top-Level Objects) |
| 96 | |
| 97 | ```json |
| 98 | { |
| 99 | "Version": "1.1", |
| 100 | "TranDtls": { }, |
| 101 | "DocDtls": { }, |
| 102 | "SellerDtls": { }, |
| 103 | "BuyerDtls": { }, |
| 104 | "DispDtls": { }, |
| 105 | "ShipDtls": { }, |
| 106 | "ItemList": [ ], |
| 107 | "ValDtls": { }, |
| 108 | "PayDtls": { }, |
| 109 | "RefDtls": { }, |
| 110 | "AddlDocDtls": [ ], |
| 111 | "ExpDtls": { }, |
| 112 | "EwbDtls": { } |
| 113 | } |
| 114 | ``` |
| 115 | |
| 116 | ### IRN Generation Algorithm |
| 117 | |
| 118 | The IRN is a **64-character SHA-256 hash** computed by the IRP from four fields: |
| 119 | 1. Supplier GSTIN |
| 120 | 2. Financial Year (derived from invoice date) |
| 121 | 3. Document Type Code |
| 122 | 4. Document Number |
| 123 | |
| 124 | The taxpayer does NOT generate the IRN — the IRP returns it after successful validation. |
| 125 | |
| 126 | --- |
| 127 | |
| 128 | ## Section 4 -- Mandatory Fields |
| 129 | |
| 130 | ### Transaction Details (TranDtls) |
| 131 | |
| 132 | | Field Path | Description | Values | |
| 133 | |---|---|---| |
| 134 | | TranDtls.TaxSch | Tax scheme | Always "GST" | |
| 135 | | TranDtls.SupTyp | Supply type | B2B, SEZWP, SEZWOP, EXPWP, EXPWOP, DEXP | |
| 136 | | TranDtls.RegRev | Reverse charge | Y / N | |
| 137 | | TranDtls.IgstOnIntra | IGST on intra-state | Y / N | |
| 138 | |
| 139 | ### Document Details (DocDtls) |
| 140 | |
| 141 | | Field Path | Description | Constraints | |
| 142 | |---|---|---| |
| 143 | | DocDtls.Typ | Document type | INV, CRN, DBN | |
| 144 | | DocDtls.No | Document number | Max 16 chars, alphanumeric + / - | |
| 145 | | DocDtls.Dt | Document date | DD/MM/YYYY, cannot be future date | |
| 146 | |
| 147 | ### Seller Details (SellerDtls) |
| 148 | |
| 149 | | Field Path | Description | |
| 150 | |---|---| |
| 151 | | SellerDtls.Gstin | 15-char GSTIN | |
| 152 | | SellerDtls.LglNm | Legal name (as per PAN) | |
| 153 | | SellerDtls.Addr1 | Address line 1 | |
| 154 | | SellerDtls.Loc | City/Location | |
| 155 | | SellerDtls.Pin | 6-digit PIN code | |
| 156 | | SellerDtls.Stcd | State code (01-37) | |
| 157 | |
| 158 | ### Buyer Details (BuyerDtls) |
| 159 | |
| 160 | | Field Path | Description | |
| 161 | |---|---| |
| 162 | | BuyerDtls.Gstin | Buyer GSTIN (or URP for unregistered) | |
| 163 | | BuyerDtls.LglNm | Legal name | |
| 164 | | BuyerDtls.Pos | Place of supply (state code) | |
| 165 | | BuyerDtls.Addr1 | Address line 1 | |
| 166 | | BuyerDtls.Loc | Location | |
| 167 | | BuyerDtls.Pin | PIN code | |
| 168 | | BuyerDtls.Stcd | State code | |
| 169 | |
| 170 | ### Item Details (ItemList[]) |
| 171 | |
| 172 | | Field Path | Description | |
| 173 | |---|---| |
| 174 | | SlNo | Serial number (1-based) | |
| 175 | | PrdDesc | Product description | |
| 176 | | IsServc | Is service (Y/N) | |
| 177 | | HsnCd | HSN/SAC code (min 4 digits; 8 digits if AATO > Rs 5 Cr) | |
| 178 | | Qty | Quantity | |
| 179 | | Unit | Unit of measurement (UQC code) | |
| 180 | | UnitPrice | Unit price | |
| 181 | | TotAmt | Total amount (Qty × UnitPrice) | |
| 182 | | AssAmt | Assessable amount (after discount) | |
| 183 | | GstRt | GST rate (IGST or CGST+SGST combined rate) | |
| 184 | | IgstAmt / CgstAmt / SgstAmt | Tax amounts | |
| 185 | | TotItemVal | Total item value including tax | |
| 186 | |
| 187 | ### Value Details (ValDtls) |
| 188 | |
| 189 | | Field Path | Description | |
| 190 | |---|---| |
| 191 | | ValDtls.AssVal | Total assessable value | |
| 192 | | ValDtls.IgstVal | Total IGST | |
| 193 | | ValDtls.CgstVal | Total CGST | |
| 194 | | ValDtls.SgstVal | Total SGST/UTGST | |
| 195 | | ValDtls.TotInvVal | Total invoice value (INR) | |
| 196 | |
| 197 | --- |
| 198 | |
| 199 | ## Section 5 -- Transmission Method |
| 200 | |
| 201 | ### API Integration (Recommended) |
| 202 | |
| 203 | | Parameter | Value | |
| 204 | |---|---| |
| 205 | | Production Base URL | https://einvapi.gst.gov.in | |
| 206 | | Sandbox Base URL | https://einv-apisandbox.nic.in | |
| 207 | | Auth Endpoint | /eivital/v1.04/auth | |
| 208 | | Invoice Generation | POST /eivital/v1.04/Invoice | |
| 209 | | Cancel IRN | POST /eivital/v1.04/Invoice/Cancel | |
| 210 | | Get Invoice by IRN | GET /eivital/v1.04/Invoice/irn/{irn} | |
| 211 | |
| 212 | ### Authentication |
| 213 | |
| 214 | | Header | Description | |
| 215 | |---|---| |
| 216 | | client-id | Issued by IRP on registration | |
| 217 | | client-secret | Issued by IRP on registration | |
| 218 | | user_name | Taxpayer's IRP portal username | |
| 219 | | Gstin | Taxpayer's GSTIN | |
| 220 | | AuthToken | Session token (valid 6 hours / 360 minutes) | |
| 221 | |
| 222 | Auth token must be refreshed after 6 hours. Use `ForceRefreshAccessToken: true` within last 10 minutes of token life. |
| 223 | |
| 224 | ### Alternative Submission Methods |
| 225 | |
| 226 | 1. **GSP/ASP route** — GST Suvidha Provider acts as middleware (recommended for 50+ invoices/day) |
| 227 | 2. **Bulk upload** — JSON file upload via IRP web portal (small-volume fallback) |
| 228 | 3. **Offline tool** — Excel-to-JSON converter on IRP portal (emergency/testing only) |
| 229 | |
| 230 | --- |
| 231 | |
| 232 | ## Section 6 -- Validation Rules |
| 233 | |
| 234 | ### IRP Pre-Checks (Real-Time) |
| 235 | |
| 236 | 1. GSTIN validity — both seller and buyer must be active GSTINs |
| 237 | 2. Duplicate check — combination of seller GSTIN + doc type + doc number + FY must be unique |
| 238 | 3. Date validation — invoice date cannot be future; cannot exceed time limit |
| 239 | 4. HSN validation — must exist in master; 8-digit for goods if AATO > Rs 5 crore |
| 240 | 5. Mathematical validation — line item totals must sum to document totals (tolerance: Rs 1) |
| 241 | 6. State code / PIN code consistency |
| 242 | 7. Tax rate validation — GST rate must be a valid rate (0, 0.1, 0.25, 1, 1.5, 3, 5, 6, 7.5, 12, 14, 18, 28) |
| 243 | |
| 244 | ### Common Rejection Reasons |
| 245 | |
| 246 | | Error Code | Description | Fix | |
| 247 | |---|---|---| |
| 248 | | 2150 | Duplicate IRN | Invoice already reported — check if IRN exists | |
| 249 | | 2163 | Document date exceeds time limit | Cannot fix; issue fresh invoice with new number | |
| 250 | | 2174 | GSTIN not enabled for e-invoicing | Verify IRP registration | |
| 251 | | 2283 | HSN code invalid | Update to valid 4/6/8 digit HSN | |
| 252 | | 2269 | Item value mismatch | Recalculate: TotAmt = Qty × UnitPrice | |
| 253 | | 2287 | Total invoice value mismatch | Verify ValDtls.TotInvVal = sum of all components | |
| 254 | |
| 255 | --- |
| 256 | |
| 257 | ## Section 7 -- Tax Computation Rules |
| 258 | |
| 259 | ### Tax Amount Calculation |
| 260 | |
| 261 | - **Intra-state supply**: Split into CGST + SGST (each = half of applicable GST rate) |
| 262 | - **Inter-state supply**: Full IGST (= full applicable GST rate) |
| 263 | - Place of supply (BuyerDtls.Pos) determines intra vs inter-state |
| 264 | |
| 265 | ### Rounding Rules |
| 266 | |
| 267 | - All amounts rounded to 2 decimal places |
| 268 | - Rounding tolerance at document level: Rs 1 (IRP accepts ±1 difference between sum of line items and document total) |
| 269 | - Round each line item independently, then sum |
| 270 | |
| 271 | ### Multi-Rate Invoice |
| 272 | |
| 273 | - Each line item carries its own GstRt |
| 274 | - ValDtls aggregates all IGST/CGST/SGST across items |
| 275 | - No restriction on mixing rates within a single invoice |
| 276 | |
| 277 | ### Discount Handling |
| 278 | |
| 279 | - Discount applied at item level: AssAmt = TotAmt - Discount |
| 280 | - Tax calculated on AssAmt (assessable amount), not gross amount |
| 281 | |
| 282 | --- |
| 283 | |
| 284 | ## Section 8 -- Archiving Requirements |
| 285 | |
| 286 | | Requirement | Detail | |
| 287 | |---|---| |
| 288 | | Retention Period | Minimum 6 years from due date of annual return (GSTR-9) for the relevant FY; 8 years recommended | |
| 289 | | Format | Original JSON submitted + signed JSON returned by IRP (with IRN and QR) | |
| 290 | | Digital Signature | IRP signs the returned payload with its private key; retain the signed response | |
| 291 | | QR Code | Must appear on printed/PDF invoice; contains IRN, invoice date, supplier GSTIN, buyer GSTIN, invoice value, number of line items, HSN codes, unique hash | |
| 292 | | Storage Medium | No specific medium mandated; must be producible on demand during audit | |
| 293 | | GSTR-1 Linkage | IRP auto-pushes e-invoice data to GSTR-1; retain confirmation of auto-population | |
| 294 | |
| 295 | --- |
| 296 | |
| 297 | ## Section 9 -- Penalties for Non-Compliance |
| 298 | |
| 299 | | Offence | Penalty | Legal Basis | |
| 300 | |---|---|---| |
| 301 | | Issuing invoice without valid IRN when required | Rs 10,000 per invoice OR 100% of tax involved, whichever is higher | Section 122(1)(i) CGST Act | |
| 302 | | Issuing incorrect or false invoice | Up to Rs 25,000 per invoice | Section 122(3) CGST Act | |
| 303 | | Fake invoicing (invoice without actual supply) | 100% of tax evaded or ITC availed (min Rs 10,000) | Section 122(1)(ii) CGST Act | |
| 304 | | General penalty (no specific clause) | Up to Rs 25,000 | Section 125 CGST Act | |
| 305 | | Buyer consequence — ITC denial | Buyer cannot claim Input Tax Credit on invoice without valid IRN | Rule 48(5) CGST Rules | |
| 306 | | Repeated default | GSTIN suspension possible | Section 29(2) CGST Act | |
| 307 | |
| 308 | ### Cascading Impact |
| 309 | |
| 310 | An invoice without IRN is not a valid tax invoice under Rule 48(5). The buyer's ITC claim is denied, which creates commercial pressure on the supplier to comply. |
| 311 | |
| 312 | --- |
| 313 | |
| 314 | ## Section 10 -- Interaction with Tax Skills |
| 315 | |
| 316 | ### GSTR-1 Auto-Population |
| 317 | |
| 318 | - IRP pushes validated e-invoice data to GSTR-1 the next day |
| 319 | - Supplier does NOT need to manually enter these invoices in GSTR-1 |
| 320 | - If discrepancies exist between e-invoice and manually entered GSTR-1 data, the e-invoice data prevails |
| 321 | |
| 322 | ### E-Way Bill Integration |
| 323 | |
| 324 | - If supply value > Rs 50,000 and goods are being transported, e-way bill can be generated in the same API call |
| 325 | - Set EwbDtls fields (TransId, TransName, Distance, TransDocNo, TransDocDt, VehNo, VehType) |
| 326 | - Single API call generates both IRN and EWB number |
| 327 | |
| 328 | ### GSTR-2B / ITC Matching |
| 329 | |
| 330 | - Buyer's GSTR-2B auto-populated from supplier's e-invoices |
| 331 | - Facilitates ITC matching and reconciliation |
| 332 | - Discrepancies flagged automatically in GSTR-2B |
| 333 | |
| 334 | ### Annual Return (GSTR-9) |
| 335 | |
| 336 | - E-invoice data feeds into annual return reconciliation |
| 337 | - Auditors can cross-verify GSTR-9 figures against IRP-reported data |
| 338 | |
| 339 | --- |
| 340 | |
| 341 | ## Disclaimer |
| 342 | |
| 343 | This skill and its outputs are provided for informational and computational purposes only and do not constitute tax, legal, or financial advice. Open Accountants and its contributors accept no liability for any errors, omissions, or outcomes arising from the use of this skill. All outputs must be reviewed and signed off by a qualified professional (such as a CA, CPA, or equivalent licensed practitioner in your jurisdiction) before filing or acting upon. |
| 344 | |
| 345 | The most up-to-date, verified version of this skill is maintained at [openaccountants.com](https://openaccountants.com). |
| 346 |
Run this skill, then get an accountant to check it
After running the full skill pack in your AI agent, sign up and upload your worksheet. We'll connect you with a trusted accountant in our network who can review your numbers before you file.
Verification status
Research-verified
Drafted from authoritative sources (tax authority sites, Big-4 summaries). Awaiting credentialed sign-off.
Needs section-by-section practitioner review to reach accountant-verified.
Section review progress
About
Use this skill whenever asked about India GST e-invoicing, Invoice Registration Portal (IRP), IRN generation, e-invoice JSON schema, NIC portal, GST INV-01 format, e-invoice threshold, B2B invoice reporting under GST, QR code on invoices, GSTR-1 auto-population, e-way bill integration with e-invoice, or any question about generating, validating, or troubleshooting Indian e-invoices. Also trigger when advising on e-invoice compliance for businesses crossing Rs 5 crore turnover, configuring ERP/billing software for IRP integration, or handling IRP rejections. ALWAYS read this skill before touching any India e-invoice work.
Use this skill
This skill is open source and free to use in any AI agent. Copy it, download it, or clone the repo. If you find an error, report an issue — a licensed accountant will review.