LedgerdropGST

e-Invoice JSON โ†’ spreadsheet

A folder of IRN files, one sheet

India's e-invoice is the one structured invoice here that is not XML. Schema INV-1.1, straight out of the IRP โ€” the same file your accounting software exported. Drop a hundred of them and read the totals across.

Drop your files here โ†’

Schema INV-1.1IRNIGST / CGST + SGSTGSTIN check digit

01 โ€” Two ways to get the date wrong

10/06/2026 is 10 June

DocDtls.Dt is dd/mm/yyyy. Read as ISO it becomes October 6th; read the American way it becomes the same thing. Both numbers sit in a legal range, the row still looks right, and the entry lands in the wrong month. Here the format is taken literally and nothing else is guessed.

The IRN โ€” the 64-character hash the IRP gave back โ€” travels in the reference column. It is what a query, a reconciliation, or a notice is answered with.

02 โ€” One tax, two shapes

IGST or CGST + SGST

Within a state the tax arrives as CGST and SGST, each half the rate. Across states it arrives as IGST. Never both โ€” so the tax column is their sum, and the rate comes from GstRt, never from dividing one amount by another.

Where RndOffAmt carries the invoice-level rounding, taxable value plus tax legitimately stops matching the total. Those rows are not flagged as out of balance, because they are not.

The GSTIN is checked, not just copied

A GSTIN carries a base-36 check digit over its first fourteen characters. Input tax credit is posted against the buyer's GSTIN: one wrong character and the credit lands on somebody else's account, while everything on the supplier's side looks normal. A number that fails its own check digit is marked in the sheet, with the reason spelled out โ€” and a string that is not GSTIN-shaped is left alone rather than called wrong.

What is not done here

Nothing is sent to the IRP, no IRN is generated and no signature is verified: the JSON is read inside the browser and stays there. This is not an e-invoicing registrar โ€” it reads the files you already have.

A printed invoice with only the QR code on it is a different problem: the signed QR is a JWT, and reading it is not the same as reading the document. If a file carries no structured data, the row comes out empty and marked, never invented.

Trying it

Drop files on the main page โ€” up to 10 invoices per export and 20 a day, free, no account, and the count resets at midnight. Pro lifts both limits for 29 โ‚ฌ once, with no renewal.

Nothing is uploaded

Files are read in the browser. There is no server they could go to, and it takes two minutes to check: open developer tools, the Network tab, and drop an invoice โ€” not one request goes out. Which countries are read.