Skip to main content
All posts Behind TatvaBooks

Sales Ledger Mismatch Detector — Protect Your GSTR-1

Posting an interstate sale to a Sales — Local ledger silently corrupts your GSTR-1 B2B split. Here's how we block the wrong CGST/SGST-vs-IGST post at entry.

TB

The TatvaBooks team

Founding team of Chartered Accountants · Tatva Fintech · 18 May 2026 · 7 min read

TL;DR

Posting an interstate sale to a Sales — Local ledger (or vice versa) silently corrupts the GSTR-1 B2B split. TatvaBooks reads the customer's GSTIN state, classifies the chosen ledger, and disables the post button when the two contradict — blocking the mistake at entry instead of catching it on the 11th.

Every CA firm has lived this exact scenario. You will recognise it in the first three lines.

A customer in Pune places an order with your client, who is also in Pune. CGST + SGST applies. The article opens the accounting software, picks the customer, types the amount, and selects "Sales — Interstate" from the sales ledger dropdown by mistake. The system happily posts. CGST + SGST is credited against an interstate sales ledger.

On the 11th, GSTR-1 generates. B2B Interstate inflates. B2B Intrastate understates. Total CGST and SGST collected matches — everything else is wrong. The customer's GSTR-2B doesn't reconcile against your invoice. The customer calls.

Three working days later, you've revised GSTR-1, written an apology email, and lost half a day of partner time.

We've seen this on dozens of client books over the years. The root cause is always the same: the accounting software treats ledger selection as a free choice. It accepts whatever the user types. It has no opinion about whether the choice is internally consistent.

We disagreed with this design. So we changed it.

What the system does now

When a user creates a sale voucher in TatvaBooks:

  1. The moment a customer is picked, the system reads their GSTIN. The first two digits give the state code.
  2. The system compares that state code to the company's state. Same → intrastate. Different → interstate.
  3. The system reads each sales ledger and classifies it: Sales — Local (intrastate), Sales — Interstate, Sales — Export, or "other" for custom-named ledgers that don't fit a standard kind.
  4. If the chosen sales ledger's kind contradicts the intra-vs-inter determination, the system shows a red banner and disables the submit button.

The banner says, literally:

⚠ Sales ledger mismatch — Intrastate sale (customer same state) — must use a Sales — Local ledger, not Sales — Interstate. Posting blocked.

It is not a warning the user can dismiss. The post button is actually disabled. The voucher cannot enter the books until either the customer is changed or the ledger is corrected.

What this prevents in business terms

  • A wrong-ledger sale silently corrupting GSTR-1 reconciliation across a quarter
  • The B2B Intrastate / B2B Interstate split being mathematically impossible to derive from the books
  • The customer's 2B not matching your GSTR-1, and the resulting phone call
  • A revision of GSTR-1 in the next period (which itself can fail if the original is locked)
  • The partner's time spent forensically tracing the bad voucher

It also protects audit trail. Posted vouchers are immutable in TatvaBooks — you cancel via a paired cancellation voucher, not by editing. So a wrong-ledger voucher that did post would require a formal cancellation and re-post. The system saves you that step by refusing the bad post in the first place.

What it doesn't do

We want to be specific about the limits.

Custom-named sales ledgers are exempted. If you've named a ledger "Sales — Vendor X" or "Sales — Project A," the system has no opinion. It can't infer whether such a ledger is intended for intrastate or interstate. We skip the check rather than enforce a wrong rule.

Export sales are exempted. Sales to SEZ or against LUT have their own logic (zero-rated, IGST refund). The mismatch detector doesn't apply.

It can't catch every error. If the customer's GSTIN is wrong (typed incorrectly during onboarding, or the customer gave you a wrong number), the intra/inter determination is wrong from the start. We can't catch that — we can only verify against the data we have.

For these reasons, the mismatch detector is one safety net among several. Period-locks, GSTR-1 preview reconciliation, and the balanced-voucher database trigger together form a system. No single feature owns the whole job. It's the same place-of-supply audit that anchors our 60-minute GSTR-1 close — except here the check happens at posting, not on the 11th.

Why this is the feature we're most proud of

Most accounting software design assumes the user is competent and attentive. Most data-entry users are not — not because they're careless, but because they're busy and aren't Chartered Accountants. They're sales executives, office assistants, first-year articles. They don't know that picking the wrong sales ledger corrupts GSTR-1 in a way that takes a partner's afternoon to undo.

We can either expect them to know. Or we can build a product that doesn't need them to know.

We chose the second. It's one of the decisions that sets TatvaBooks apart from the global cloud products — they accept the wrong-ledger post; we refuse it.

— The TatvaBooks team

TB

The TatvaBooks team

Founding team of Chartered Accountants · Tatva Fintech

Written by the TatvaBooks founding team — Chartered Accountants with two decades of practice across audit, GST, TDS and payroll, working alongside the engineers who build the product.

What's true today

TatvaBooks is in private beta. Some features described on this page are live; some are shipping over the next quarter. Live today: the sale voucher, sales-ledger mismatch detector, place-of-supply auto-detection, immutable posted vouchers, balanced-voucher enforcement, payroll, inventory and AS-2 manufacturing costing. GSTR-2B import with ITC reconciliation is live; e-Invoice IRN/QR is prepared and sandbox-tested, with live filing to the NIC portal on our near-term roadmap. We don't file GST returns or e-invoices to the government for you — your books and reconciliations are kept clean so you (or your CA) submit on the portal. Coming during the beta: the iOS + Android apps, bank-feed automation and workflow automation. Your CA onboarding contact will tell you what's in your beta build on the day you sign up.

Last updated · June 2026 · Tatva Fintech Pvt. Ltd., Pune

Try TatvaBooks

Books anyone can keep. Books your CA can trust.

Join the private beta. A Chartered Accountant on our team onboards you in under 24 hours.