Blog
Invoicing

The CGST/SGST vs. IGST Mistake Freelancers Make Constantly - And How Place of Supply Fixes It

SparkyMinis Team 26 Aug 2026

Picture a freelance consultant registered in Karnataka who mostly bills local clients, also based in Karnataka. For those invoices, she's gotten used to splitting her GST into CGST and SGST - half and half, both going to the same total. Then a new client comes in based in Maharashtra, and out of habit, she raises the invoice exactly the same way: CGST/SGST split, same as always. That's wrong, and it's a mistake that's easy to make precisely because it's easy not to think about - the invoicing habit doesn't automatically flag that something about this client is different.

What actually decides the split

The rule isn't about where your business is registered, or even really about the client's billing address as such - it's about place of supply. If the place of supply is in the same state as your business (an intra-state supply), GST is split into CGST and SGST, each covering half. If the place of supply is in a different state (an inter-state supply) - or involves an export - it's IGST instead, as a single line covering the full tax amount rather than a split.

Get this backwards and the invoice is wrong in a way that isn't cosmetic - it affects how the tax is meant to be claimed and reconciled on both sides, yours and your client's. It's exactly the kind of error that doesn't show up as an obvious problem the day you send the invoice, but becomes a real headache the day someone tries to reconcile it against a GST return.

Where SparkyInvoices takes the guesswork out

This is one of those cases where a small piece of automation removes an entire category of manual error, because the decision doesn't actually require judgment most of the time - it's derivable from data you've already entered.

When you create an invoice, you pick a client, and their billing address and GSTIN are copied onto the invoice automatically. From that GSTIN, SparkyInvoices defaults the place of supply for you. A GSTIN encodes the state it was issued in, so if your business is GST-registered in Karnataka and the client's GSTIN indicates Maharashtra, the system already knows this is an inter-state supply before you've thought about it at all - and the tax split follows automatically, IGST rather than CGST/SGST.

You can still override the place of supply if the real situation is different from what the GSTIN implies - place of supply rules have legitimate exceptions, and the field is editable, not locked. But the default gets you to the right answer the overwhelming majority of the time, without you having to consciously check "wait, is this client in a different state?" on every single invoice you raise. That's the actual value here: not that the software enforces a rule you already knew, but that it removes the moment where you'd have had to remember to apply it.

Why this only works if your own GSTIN is set correctly

The auto-derivation depends on two GSTINs being right: the client's, and yours. Your organization's GSTIN lives in Settings → Business, and it's what the whole CGST/SGST-vs-IGST calculation is anchored to - the system is comparing your state against the client's state, so if your own GSTIN field is missing or wrong, there's nothing correct to compare against. It's worth setting that field before you send your first invoice, even if you're not fully sure yet whether you'll need GST handling for every client - it costs nothing to have it right from day one, and it saves you from a batch of invoices that all need the same correction later.

The line-item-level detail that goes with this

Alongside place of supply, individual line items can carry an HSN or SAC code - the classification code for the goods or service being billed. It's an optional field, not a required one, and leaving it off isn't automatically wrong; plenty of invoices are perfectly valid without it depending on what you're billing and who you're billing it to. But when it does apply, it lives at the line-item level rather than the invoice level, because a single invoice can legitimately include different kinds of goods or services that each carry their own code. Getting comfortable with when it matters is a separate skill from getting the CGST/SGST/IGST split right, but the two often come up in the same conversation, so it's worth knowing they're handled as two distinct, independent fields rather than one bundled setting.

How to do this in SparkyInvoices

Set your organization's GSTIN once, in Settings → Business - that's the anchor for every future calculation. From there, every invoice and quote you create will default its place of supply from the client's GSTIN automatically, with the CGST/SGST/IGST split following from that, and you can override the place of supply on the rare invoice where the default doesn't match the real situation. For the complete rundown of GST handling and everything else in the invoicing workflow, see the SparkyInvoices features page.

Why this is worth getting right early

Tax mistakes on invoices don't usually surface as an immediate problem - they surface months later, when a GST return doesn't reconcile cleanly, or a client's accounts team asks a question you don't have a confident answer to. The freelancer in the scenario above wouldn't have caught her mistake by reading it back - the invoice would have looked completely normal to her, because CGST/SGST is what she's used to seeing. That's exactly the kind of error a default-from-real-data approach is good at catching, precisely because it doesn't rely on you remembering to double-check something that doesn't look wrong on its face.