How a photographed or handwritten bill book enters the return: your consent, the page’s own arithmetic, your tick, and one document counted once.
Why this is the one file a model reads
Every other file fynxIQ takes, from a marketplace report to the GSTR-2B, is read by rules in your browser and never uploaded; at most, if you ask, an unfamiliar sheet’s name, headings and a few samples are read to suggest its columns. No rule reads handwriting, so a photographed or PDF bill, sale or purchase, is the one kind of file sent through fynxIQ’s server to a model, and the one that has to earn its way into the return. The model is a reader with no authority.
Consent is asked once, and it can be taken back
The first time, the screen asks for a tick beside a sentence saying the page will be read by the AI providers named in the privacy policy: Anthropic’s Claude, or Google’s Gemini when Claude cannot read it. Neither may train on it. It is asked once for the account, a practice’s clients included, and recorded with its date; after that, pages are read as they are dropped. The page goes with the buyer’s details on it. The owner of the account gives the agreement, and can turn it off in Settings; anyone else in the account is asked to have the owner agree.
fynxIQ keeps no copy: the image is held in memory for the request and never written to disk or to the database. Each file, a JPEG, PNG, WebP or HEIC photograph or a PDF of up to 8 MB, is read on its own, because a reader shown several bills at once can move a figure from one to another and leave both agreeing with themselves.
Each counts once against the plan’s monthly allowance, shown on the pricing page. One on which no invoice with a number and a date can be made out comes back as Could not read and is given back to the allowance; it can be tried again, filled in by hand from the paper, or removed. A spreadsheet never counts against it.
The reader copies, and the page checks itself
The reader is told to transcribe, not compute: copy every figure as written, never add up the lines or work out the tax, and copy a wrong figure wrong. It is also told to name each field it is unsure of and to leave out a field the page lacks.
What comes back is held against the page in integer paise. A check that fails shows its arithmetic under the field it marks, and the checks that passed are listed, folded, under the page. On a sale:
- Every amount reads as rupees: three digits after a point, as in 10.000, is almost certainly a misread comma, and is not guessed either way.
- The line items add up to the amount before tax, and that amount plus the tax gives the total.
- The tax is the rate applied to that amount. Where no rate is written, a rate is taken only if exactly one GST rate turns the base into the tax charged.
- The amount in words gives the same total. Words and digits share no strokes, so one misreading cannot make the same mistake in both.
- The buyer’s GSTIN carries a correct check digit (the GSTIN structure published by GSTN), and its first two digits name the state written on the bill.
- The tax head agrees with the two states: integrated tax between states, central and state or union territory tax within one (sections 7 and 8 of the IGST Act, 2017). A supply to an SEZ unit is inter-state even inside one state (sections 16 and 7(5) of the IGST Act, 2017). Nothing on a page proves its buyer is one, so you mark it yourself, under More details on the review screen: it then goes to Table 6B, with payment of tax when the page charges IGST and under LUT or bond when it charges none.
- The seller’s GSTIN is, character by character, the registration the return is for.
- The date falls inside the period being filed. An earlier month’s invoice never declared may be declared late until 30 November after its financial year or its annual return, whichever is earlier (section 37(3) of the CGST Act); a later one belongs to a later return. A page dated in an earlier month is asked about as a register row is: the return waits until you say, for its number, whether its own month’s return already has it or it is being declared late now.
- The buyer was invoiced under the same GSTIN before, the one check not taken from the page. One misread character always fails the check digit, but a GSTIN misread in two or more places still passes about once in thirty-six, and a number that passes is only well formed: it may be another business’s registration, or nobody’s. fynxIQ remembers, per client, the valid GSTIN each buyer was confirmed under, and is silent about a buyer it has not seen. A disagreement here marks the buyer’s GSTIN and name Check this; kept as they are, the invoice goes into the return with a warning.
A tick records that a person looked, never that a figure is verified
The review screen lists the pages read, one row to a page, each with its state in words: Ready to check, Check 2 fields, 1 question, Duplicate of #1, Looks right, or Not yours, stays out. A page still being read says Reading, and the ones above it can be checked meanwhile; one that came back unread says Could not read, with Try again, Fill in by hand and Remove beside it. One line under the list gives the count, the amount before tax and the tax, in figures.
The pages are checked one at a time, with the picture beside the fields: every page of a PDF, made bigger with a click. The five fields that matter come first: the customer (on a purchase, the supplier), their GSTIN, the number, the date and the amount before tax. The tax split, the items and more details are folded below them, and a fold opens by itself when it holds something to check. The screen says Written by AI, because a model wrote what the fields hold until you change them.
A field the page’s own figures contradict, or one the reader was unsure of and nothing proved, is marked Check this, with the reason under it: the check that failed and its arithmetic, or that the reader was not sure. A field the arithmetic proved carries a small ✓, and one a person confirmed shows ✓ you checked. A field nothing checked, such as the name of a customer not seen before, carries no mark. Any figure can be corrected, and the checks run again at once.
When a sales page was read twice and the two readings differ, a question names the field and offers both values as buttons, with a third, Neither: I typed what the paper says, to press after typing the figure from the paper into the field. Where one reading found an invoice on the page and the other found none, the screen asks whether there is one. A page cannot go on while a question is open.
Each page has one tick, This invoice matches the paper (This bill matches the paper on the Purchases screen), shown when a field is marked. It can be ticked only once you have clicked into each marked field, and it confirms those fields as they are written then. On a field the reader was unsure of, the tick clears the mark. On one the page’s own figures contradict, it records that you looked: the field is shown as kept as on the paper, and it goes into the return with a warning. Changing a field afterwards takes the tick off. A buyer GSTIN kept although it fails its check digit is still never filed against a registration: that supply goes in Table 5 or Table 7 as a sale to an unregistered buyer, and the buyer cannot take credit on it until it is reported against the right GSTIN.
Each page has one button: Looks right, next invoice, and on the last one left to look at, Add 12 invoices to the return, counting only those that can go in (on the Purchases screen, Looks right, next bill and Add 12 bills to the books). Nothing is in the return until that last button is pressed. When it cannot be pressed, the reason is written under it, and Leave this one out sits beside it. A page with a field still marked Check this and no tick cannot go in. One issued by another GSTIN, or on the Purchases screen a bill not made out to yours, stays out: the screen says so on the page and in the list, and you can correct the GSTIN if the paper was misread. Otherwise it is not passed on with the rest, so it does not hold up the return. A ticked field is marked confirmed by a person, never verified.
If the owner has switched on Keeping evidence in Settings, off until then, each invoice confirmed on the prepare screen leaves a record when the GSTR-1 JSON is downloaded: number, date, buyer, figures, which checks agreed, which fields a person changed, who downloaded the return, and a SHA-256 hash of the file. The file is never kept; the hash lets anyone show later that a photograph or PDF the client kept is, byte for byte, the one that was read, so keep the original file with the paper.
One document is counted once, on a sale or a purchase
Rule 46(b) of the CGST Rules, 2017 says a tax invoice carries a consecutive serial number, unique for the financial year. One number, issued under one GSTIN in one financial year, is one document. A page photographed twice shows in the list as Duplicate of #1: identical copies go with one button, and copies that differ are named field by field and left for you.
Across files, a photograph and a register carrying the same number are counted once when date, buyer GSTIN, place of supply, value, tax and cess all agree, keeping the copy coded on every line, or else the first. When they disagree, the return is blocked, naming the files and the parts that differ, until the wrong copy is corrected or removed.
Bills photographed on the Purchases screen get the same review and arithmetic, then the purchase side’s checks: the supplier’s GSTIN passes its check digit and is not yours, the bill is made out to the GSTIN claiming the credit, the tax head fits the supplier’s state and the place of supply, and the date is no later than the month. A bill failing either of the first two stays out of the books; the rest join the purchase register, counted once where the register already has them, and are matched against the GSTR-2B. Since 1 January 2022, credit on a supplier’s invoice or debit note can be taken only once the supplier has reported it and it appears in your GSTR-2B (section 16(2)(aa) of the CGST Act; rule 36(4) of the CGST Rules, as substituted by Notification 40/2021-Central Tax).
fynxIQ reads what the page carries and does not judge the paper
fynxIQ does not decide whether a page is a valid tax invoice under rule 46 of the CGST Rules, 2017, and does not read addresses or signatures. With no invoice number or no date, the page comes back as Could not read, and you can fill it in by hand from the paper. With no buyer GSTIN, it is a supply to an unregistered buyer, in Table 5 or Table 7. A code written once is taken for every line without one; with none at all, nothing is invented and the line holds the GSTR-1 JSON, because Table 12 needs a code on every line, so type it in the items on the review screen before you add the page. With no rate that fits the tax, that line is held back and the return blocked. With no line items read, the items open by themselves: add them from the paper with Add an item, or leave the page out. A page added with none blocks the return until you start over.
A photograph is never as certain as a file read by rules, so the doubt is shown: a person looks at each document, and what the page contradicts carries a warning. The tax in the return is worked out as the rate on each line’s value, and the tax written on the page checks it. Cess read off a page does not reach the return yet. fynxIQ does not file: you upload the JSON on the portal and file the return there yourself, with your DSC or EVC.
In the app, on every plan, the free one included: Bills and invoices from photos and PDFs.
Which file to download, and from where: the list for each marketplace and the GST portal.
By Raunak Pathak, founder of fynxIQ, who files GST returns on it. Last updated 10 October 2026. This is general information about how GST returns work, not advice about your particular return.