How to Create GST-Compliant Invoices in India.

The invoice is the first place your income becomes a record, and everything downstream inherits whatever it said. A working guide to raising invoices that hold up, with four interactive tools: invoice anatomy, a place-of-supply checker, the six-step flow, and the four checks that run before issue.

How to Create GST-Compliant Invoices in India.

Most freelancers don't discover an invoicing problem while invoicing. They discover it nine months later, when a client's accountant refuses to release a payment, or when the numbers in a return don't reconcile with the numbers in a bank account, and nobody can say which version is real.The invoice is the first place your income becomes a record. Everything downstream, what you think you earned this year, what you can actually show, what eventually goes into a return, inherits whatever the invoice said. Get it right at that point and the rest is arithmetic. Get it wrong and you're reconstructing a year of work from bank statements and memory.So rather than a list of rules to read, here's the thing itself, in pieces you can poke at.

Start here: what's actually on a tax invoice

Click any field below. Each one is doing a job, and two of them do considerably more work than the rest.

Interactive · 1 of 4 Invoice anatomy

Pick a field on the invoice to see what it's for, and what happens when it's wrong.

The question that causes the most damage: which split applies?

When your client is in your state, the tax splits into two components. When they're in a different state, it's a single one. When they're outside India, or an SEZ unit, it's a different treatment again.

This isn't a preference, it follows from where the supply is treated as happening. It sounds trivial until you have clients in four states and you're setting it by hand thirty times a year. Try it:

Interactive · 2 of 4 Which split applies to your invoice?

You set the rate, this only shows how it splits, and why. Which rate applies to your particular service is a separate question, and one worth asking a CA rather than a calculator.

Two more things that go wrong quietly

A GSTIN that doesn't hold up. Fifteen characters, usually pasted from a WhatsApp message. It can be mistyped. It can belong to a registration since cancelled. It can be the client's registration in a different state from the one you're billing, a business operating in five states has five GSTINs, and they aren't interchangeable. None of this announces itself. The invoice looks fine, and the problem surfaces on the client's side, months later.

Zero-rating an export without cover. If you invoice a client outside India, there's a document that has to be in place for that financial year before you can raise the invoice without charging tax. If it isn't, the invoice is still issued, the client still pays what it says, and the shortfall doesn't disappear, it lands on you. This is the most expensive invoicing mistake an Indian freelancer with overseas clients can make, and it's invisible at the moment it happens.

Doing this in Variabl, step by step

The idea is that you shouldn't have to hold any of the above in your head. You enter facts about the client and the work; the tax treatment is derived from those facts rather than typed in.

Interactive · 3 of 4 From client to paid, in six steps

1. Add the client once, properly

The billing address state is the field that matters most, it decides how every future invoice to this client is taxed. A state within India sets up a domestic supply; a country outside India makes it an export. You also set their standing here: registered, unregistered, SEZ, export or overseas.

If you enter a GSTIN, it's checked against the GST network before the client is saved. A number that doesn't exist is refused outright. If the registration exists but has been cancelled, the client is still created and you're told — that's a different problem from a typo, and you may want to go back to the client about it.

Only have their PAN? You can look up the GSTINs registered against it in a given state. If more than one comes back, you pick. They're separate registrations, and choosing for you would be guessing.

2. Build the invoice

Line items take a description and either a flat amount or a quantity and rate. You can set a SAC code per line and, where the work is genuinely mixed, a different rate per line rather than one rate across the whole invoice.

Notes, terms, which of your saved payment methods print on the document, and which of the five templates renders the PDF are all set here.

3. Preview before anything is created

The preview computes the whole invoice : line totals, subtotal, the tax split, the total, the invoice type and the place of supply, without creating anything.

The split isn't something you picked from a dropdown. It's derived from your state and the client's, exactly the way the checker above did it. This is the step worth actually reading: it's the last point at which a wrong client or a wrong state costs you nothing.

4. Save it as a draft

A draft has no invoice number. That's deliberate, it isn't a tax document yet, so it hasn't consumed a number in your series. Change it, delete it, rebuild it. Nothing is committed.

If what you need is a quote rather than an invoice, save it as a proforma instead. A proforma never gets a number and never becomes a tax document.

5. Issue it

Issuing assigns the next number in your series and makes the invoice final. Before that happens, four checks run. If something looks wrong, nothing is issued and you get the warnings instead you decide whether to proceed.

Try the four checks in the next section.

6. Send it, then record what comes back

Share by email or WhatsApp with the PDF attached; the recipient and wording come from the invoice itself. When money arrives, record it against the invoice, including part payments, which leave the invoice open for the balance rather than pretending it's settled.

If it goes quiet, a reminder is phrased for how overdue the invoice actually is. Worth checking when you last chased before you chase again.

What gets caught before a number is assigned

Four checks run at issue. They exist because these are the four mistakes that are cheap to catch beforehand and expensive to catch afterwards. Pick a scenario and see what fires.

Interactive · 4 of 4 Would this invoice get through?
Pick a scenario above.

A clean run means these four checks found nothing. It isn't a certificate that the invoice is correct, it's four specific traps, not an audit. The judgement stays yours.

Exports, SEZ, and the document behind them

If you work with overseas or SEZ clients, read this twice.

Variabl keeps a record of your cover per financial year, and can tell you two different things. The first is which years you have on file. The second, the one that matters is which of your already-issued invoices are exposed: raised zero-rated in a year with nothing backing them. That's a list of specific invoices with a total, not a status light.

One practical note: cover can't be added from a chat or from the assistant. It needs the actual document uploaded, which happens in the app.

Keeping the number series clean

The series is what people damage without realising. Three rules make it hard to get wrong:

  • Drafts don't take numbers. Experiment freely, numbers are assigned at issue, not at creation.
  • Cancelling doesn't delete. A cancelled invoice stays on record with its number intact, and that number isn't reused. An invoice that simply vanishes from a series is a worse problem than one marked cancelled.
  • Closing isn't the same as paying. If something is written off or settled outside the system, closing it stops the chasing without claiming money arrived. Recording a payment that didn't happen makes your books wrong in the direction nobody thinks to check.

Retainers: set it once, let it run

If you bill the same client the same amount every month, put the invoice on a schedule instead of duplicating last month's. Take an invoice that's already correct and repeat it, the schedule copies the client, lines and amounts, and each generated invoice takes its own number when it's raised.

Two things worth knowing. A start date in the past doesn't backfill months that have gone by. And if a client asks for their invoice early you can raise the next one immediately, but that consumes a real number, so it isn't a way to test whether the schedule works.

Why any of this matters beyond the invoice

Every invoice you raise correctly is a row of clean data. Across a year, those rows are your income record, what you earned, from whom, in which state, taxed which way, and how much is still outstanding. That record is what makes "how did this year go?" answerable in a sentence instead of a weekend.

It's also what a return is built from. If the invoices are right, filing is a summarisation exercise. If they aren't, filing is an investigation. Same work either way, the only variable is whether you do it in March, or in the thirty seconds it takes to read a preview.

Raise your next invoice on Variabl

Tax split derived from the client, not typed in. Four checks before the number is assigned. Your income record building itself as you go.

Get started free

Common questions

No. You can invoice without a registration, the document is a bill of supply rather than a tax invoice, and you don't charge GST on it. In Variabl you'd raise the invoice with tax switched off. Whether you should be registered is a separate question that depends on your turnover and what you supply, and it's worth asking a CA rather than guessing.

Not the way you'd change a draft. Once issued, it's a document a client may already have acted on. If it's wrong, cancel it, it stays on record, marked cancelled, and issue a corrected one.

Set their country on the client record and the invoice is treated as an export automatically. Read the export section above before you raise the first one, there's a document that needs to be in place first.

Variabl lets you set one per line item. Whether it's mandatory for you depends on your registration and turnover.

Filing and CA review are separate parts of the platform. This guide is about the invoice, the document everything else is built from.

General information, not advice on your specific situation.