Spyne works out CGST and SGST or IGST from where your client actually is, reserves the next number under a lock so the series can never gap or collide, and freezes the document the moment it is issued.
30 days free · no card · your data exports whenever you want it

Invoice numbering in a spreadsheet gaps the first time two people raise one on the same afternoon. And the tax treatment gets picked from a dropdown, which means it gets picked wrong.
Legal name, GSTIN, PAN, address, bank details, numbering format and the document design. Snapshotted onto every invoice you issue.
The tax treatment follows the client's state — never a dropdown. Same state gets CGST and SGST as two lines; another state gets IGST as one; overseas is zero-rated.
Issuing reserves the next number under a lock, freezes the document and records the income. Payments move it to part paid or paid automatically.
Rendered through headless Chrome at real millimetres, so what you preview is what prints and what the client receives. Verified by extracting the text from the finished PDF, not by eyeballing a preview.

Record part payments and full ones. The invoice moves to part paid or paid on its own, and what is overdue is surfaced rather than waiting to be noticed.

Two people pressing Issue at the same instant cannot take the same number, and cannot leave a gap either. GST requires the series to be consecutive within the financial year, and this is how that is kept true.
Intra-state, inter-state or export is derived from your state and your client's. There is no dropdown to get wrong, and an intra-state invoice can never carry IGST.
Your GSTIN, address and logo are snapshotted onto the invoice. Change them tomorrow and last quarter's document still says what the client's copy says.
An issued invoice is corrected with a credit note, because deleting it would break the sequence. The reason survives on the record.


| Tax treatments | Intra-state (CGST + SGST), inter-state (IGST), export (zero-rated), untaxed |
|---|---|
| Numbering | Gapless per financial year, reserved under a lock |
| TDS | Section 194J, applied where it is due |
| Corrections | Credit notes; issued invoices are never deleted |
| Document | A4 PDF, your own design |
| Outside India | GST, SAC codes and TDS switch off; calendar-year numbering |
Yes, and it derives which applies rather than asking. A client in your own state gets CGST and SGST as two separate lines; a client in another state gets IGST as one; a client outside India is zero-rated as an export. An intra-state invoice can never carry IGST.
The number is reserved under a lock on the company record, so one waits for the other. Neither gets a duplicate, and no gap is left — which matters because GST requires the series to be consecutive.
A draft, yes. An issued one is corrected with a credit note — deleting it would leave a gap in the financial-year sequence, which is precisely what an audit looks for.
Yes. An overseas client is treated as a zero-rated export with the declaration and SWIFT details on the document. And if your company itself is outside India, GST, SAC codes and TDS switch off entirely.
These are not separate products. What you record in one is what the next one reads.
Start a trial and generate a full sample company in one click — three months of attendance, payroll, invoices and projects, all joined up. Then delete it and start for real.