CORAA
Features/Reconciliation/GST Reconciliation
GSTR-9 / 9C · Reconciliation

GST Reconciliation

Books versus GSTR-2A, 2B, 3B, and 1. Document-grain matching, credit and debit notes included. RCM cross-checked against the portal, not just the books.

CORAA GST reconciliation inside the GSTR-9/9C Working Paper

GST reconciliation runs inside the GSTR-9 / 9C Working Paper, not as a separate task. Upload every quarter of GSTR-2A, every monthly 2B, every 3B and GSTR-1 return, CORAA merges them automatically and reconciles against books quarter by quarter, GSTIN by GSTIN. Matching now runs at document grain: credit notes and debit notes are matched as their own documents across both the GSTR-1 sales recon and the 2A/2B purchase-ITC recon, not netted into invoice totals before comparison, so a mismatched note doesn't hide inside a clean-looking invoice pair. The RCM tab reads the portal side too, cross-checking GSTR-3B Table 3.1(d) and the 2A/2B reverse-charge register against the books' own RCM flag on notified inward supplies. In one books-only engagement, this portal-side cross-check caught RCM liability understated by roughly 1000x, the books simply hadn't flagged the transactions; only reading the portal data surfaced it.

  • Document-grain matching, credit and debit notes matched as their own documents, not netted, across sales and purchase-ITC recon
  • Bill-to-bill matching added to the GSTR-1 sales reconciliation
  • RCM tab cross-checks GSTR-3B Table 3.1(d) and the 2A/2B reverse-charge register against the books' RCM flag
  • Compensation cess included in the ITC recon, kept separate from ordinary tax-rate variance
  • GSTR-2B Rejected-in-IMS documents captured and surfaced as a phantom-ITC risk, not silently dropped
  • GSTR-3B output recon sums every GSTIN per month, no silent drop for multi-registration entities
Two paths, one ledger

The old way, and ours.

Two paths to the same audit conclusion. One leaves traces; the other doesn't.

Traditional

The old way

  • -Senior article downloads every monthly GSTR-2B from the GST portal
  • -Each month copy-pasted into a master Excel reconciliation sheet, credit and debit notes netted into invoice totals to save time
  • -VLOOKUP across thousands of vendor GSTIN rows, manually annotated
  • -RCM liability checked only against the books' own flag, the portal's 3B Table 3.1(d) and 2A/2B reverse-charge register are rarely cross-read
  • -Variances investigated one at a time, often missing the underlying reason
Three days of senior-article time. Credit and debit notes buried inside netted totals. RCM exposure the books never flagged stays invisible because nobody reads the portal side.
CORAA

On the Ledger

  • Upload all twelve months of 2B, four quarters of 2A, and every 3B and GSTR-1 return in one go
  • Books register pulled automatically from Tally / SAP / NetSuite ingest
  • Matching runs at document grain, credit and debit notes matched as their own documents, plus bill-to-bill matching on the GSTR-1 sales side
  • RCM tab cross-checks GSTR-3B Table 3.1(d) and the 2A/2B reverse-charge register against the books' RCM flag on notified categories
  • Compensation cess reconciled alongside ITC, kept separate so ineligible cess isn't wrongly flagged as a rate variance
  • Rejected-in-IMS documents from 2B captured and surfaced as a phantom-ITC risk instead of disappearing
Fifteen minutes end to end. Every credit note, debit note, and reverse-charge line accounted for as its own document, cross-checked against what the portal actually shows.
How it works

Three steps. Every trace logged.

Step 01

Upload portal returns

Drop every GSTR-2A, 2B, 3B, and 1 file the client has produced, across every GSTIN. PDFs from the portal, JSON exports, Excel downloads, CORAA accepts all formats and merges them into one canonical view.

Step 02

CORAA reconciles

Books register is already loaded from the ERP ingest. CORAA matches every document, invoices, credit notes, and debit notes, across books and portal at document grain, runs bill-to-bill matching on the GSTR-1 side, verifies Rule 36(4) caps and Section 17(5) blocks, reconciles compensation cess, and cross-checks the books' RCM flag against GSTR-3B Table 3.1(d) and the 2A/2B reverse-charge register.

Step 03

Review variances

Open any variance to see the underlying document, the cause attribution, and the action options, accept, flag for client, or amend Form 3CD Clause 34 disclosure. RCM exposure and phantom-ITC flags from Rejected-in-IMS documents surface the same way.

Inside the module

What you actually get.

Three-bucket match, now at document grain

Every document, invoice, credit note, or debit note, lands in one of three buckets: matched (clean tie), books-only (in your ledger but not on portal), or portal-only (on portal but not in books). Credit notes and debit notes are matched as their own documents instead of being netted into invoice totals first, and the GSTR-1 sales side also runs bill-to-bill matching.

  • Matched, books-only, portal-only, applied per document, not per netted invoice
  • Credit notes and debit notes matched in their own right across GSTR-1 and 2A/2B
  • Bill-to-bill matching added to the GSTR-1 sales reconciliation
  • A variance in a note can no longer hide inside a netted invoice pair

RCM reads the portal side too

The RCM tab cross-checks GSTR-3B Table 3.1(d) and the 2A/2B reverse-charge register against the books' own RCM flag on inward lines in notified categories, GTA, legal services, director sitting fees, security services, sponsorship, import of services. Reading the portal side surfaces Sec 9(3)/9(4) exposure with interest that a books-only read cannot see.

  • Notified categories: GTA, legal services, director sitting fees, security services, sponsorship, import of services
  • Cross-checked against GSTR-3B Table 3.1(d) and the 2A/2B reverse-charge register
  • Surfaces RCM-not-discharged exposure under Sec 9(3)/9(4), with interest
  • In one engagement, caught RCM liability understated by roughly 1000x on a books-only read

Rule 36(4) ITC limit verification

Per Rule 36(4), provisional ITC claimed under GSTR-3B cannot exceed eligible credit in GSTR-2B by more than the rounding tolerance. CORAA verifies this cap month by month and flags excess.

  • Monthly cap calculation per period
  • Excess claims flagged with the eligible vs claimed delta
  • Disclosure auto-prepared for Form 3CD

Section 17(5) blocked credit detection

Identifies ITC claimed on blocked categories, motor vehicles, food and beverages, club memberships, staff welfare. Flags for review against the registered nature of business.

  • Motor vehicle ITC, flagged unless eligible business
  • Food, beverages, outdoor catering
  • Staff welfare and employee gifts
  • Membership of clubs and health & fitness centres

Compensation cess in the ITC recon

Compensation cess now runs through the ITC reconciliation alongside the tax-rate match, pair formation, cess summary, and ERP recognition, with a fix so ITC-ineligible cess is no longer wrongly flagged as an ordinary rate variance.

  • Cess pairs formed alongside the rate match
  • Cess summary reported separately from IGST/CGST/SGST variance
  • ITC-ineligible cess no longer mis-flagged as a tax-rate variance

GSTR-2B Rejected-in-IMS capture

Documents the taxpayer rejected in the government's Invoice Management System are now captured and surfaced as a phantom-ITC risk flag, instead of silently disappearing from the reconciliation.

  • Every IMS-rejected document tracked, not dropped
  • Flagged as a phantom-ITC risk for review
  • Feeds the same variance-with-reason view as every other recon line

Every GSTIN, every month

The GSTR-3B output reconciliation now sums across every GSTIN per month. Multi-registration entities used to silently lose all but one GSTIN from the output-tax total; every registration now counts.

  • Multi-GSTIN entities summed correctly per month
  • No silent drop of secondary registrations
  • Applies to the output-tax side of the 3B recon

Multi-file ingestion, with sync integrity

GSTN portal exports come in many shapes, quarterly 2A PDFs, monthly 2B JSON, 3B summaries, GSTR-1 outward registers. CORAA accepts each format and merges into one canonical reconciliation. Every sync now carries its own per-tab, per-account staleness and error state, so a stale or errored fetch is never stored as if it were true data.

  • PDFs, JSON exports, and Excel files from third-party tools, all accepted
  • Re-uploads supersede earlier files automatically
  • Per-tab, per-account staleness and error state on every sync
  • A failed fetch can't silently overwrite good data with an error state

GST health checks

Beyond the return-to-return reconciliation, a set of standing checks flags risk that a pure tie-out misses: place-of-supply and HSN-rate mismatches, composition-scheme vendors billing tax they shouldn't, e-invoice applicability, GSTIN checksum validity, missing IRNs for taxpayers above the ₹5 Cr e-invoicing threshold, and ITC-at-risk on cancelled or suspended vendors under Section 16(2)(c).

  • Place-of-supply and HSN-rate mismatch flags
  • Composition-scheme vendors billing tax they aren't entitled to
  • E-invoice applicability and IRN presence above the ₹5 Cr AATO threshold
  • GSTIN checksum validity and cancelled/suspended-vendor ITC-at-risk under Sec 16(2)(c)
Frequently asked

Answers, up front.

The annual return is the destination; the reconciliation is the path. Embedding it inside the Working Paper eliminates the need to navigate between modules to tie out a single variance. Form 3CD operates on the same principle, TDS and TCS reconciliations live as tabs inside Form 3CD.
Yes. CORAA performs twelve books-only checks without portal data, output tax computation, ITC eligibility flags, RCM applicability from the books' own flag, GSTIN sanity, blocked-credit detection. The full document-grain match, plus the portal-side RCM cross-check against GSTR-3B Table 3.1(d) and the 2A/2B reverse-charge register, requires 2A, 2B, or 3B upload.
The engine used to net credit and debit notes into invoice totals before matching. It now matches them as their own documents, at document grain, across both the GSTR-1 sales recon and the 2A/2B purchase-ITC recon. A note that doesn't tie out surfaces as its own variance instead of being absorbed into a netted invoice figure.
RCM liability depends on the auditor correctly flagging the inward supply in the books in the first place, a step that's easy to miss. The RCM tab now cross-checks GSTR-3B Table 3.1(d) and the 2A/2B reverse-charge register against that books flag for notified categories, GTA, legal services, director sitting fees, security services, sponsorship, import of services. In one books-only engagement this portal-side read caught RCM liability understated by roughly 1000x, exposure the books alone never surfaced. CORAA surfaces the exposure with the Sec 9(3)/9(4) reference and interest computation; the auditor decides how to act on it.
Re-uploads supersede earlier versions automatically; nothing duplicates. If a client sends fresh 2B for a quarter, CORAA replaces the older file with the newer one and re-reconciles. Every sync also carries its own staleness and error state per tab and per account, so a failed or stale fetch is never stored as if it were good data, and it can't silently overwrite a prior good reconciliation.
CORAA matches on normalized GSTIN. Minor case or whitespace differences are absorbed. Genuinely different GSTINs (vendor changed registration, books carry the old GSTIN) surface as variances with the cause noted, allowing the auditor to update the Party Master.
Yes. The GSTR-9/9C generator runs on invoice-grain signed 8A, so credit and debit notes are netted correctly instead of double-counted, with per-GSTIN honesty for multi-registration entities. The reconciliation output, document-grain matches, RCM cross-check, cess summary, and Rejected-in-IMS flags, feeds those tables directly rather than being re-keyed.
Rule 36(4) caps how much provisional ITC can be claimed relative to what's in GSTR-2B. Section 17(5) is a separate test on the same claimed ITC: it flags credit claimed on categories the law blocks outright, motor vehicles, food and beverages, club memberships, staff welfare, regardless of whether the 2B supports the amount. A claim can pass the Rule 36(4) cap and still fail the Section 17(5) test.
The reconciliation itself only compares what's in the books against what's on the portal. The health checks run alongside it and catch risk a pure tie-out misses: place-of-supply and HSN-rate mismatches, composition-scheme vendors billing tax they aren't entitled to, e-invoice applicability and missing IRNs above the ₹5 Cr AATO threshold, GSTIN checksum validity, and ITC-at-risk on cancelled or suspended vendors under Sec 16(2)(c).
Yes. The GSTR-3B output reconciliation sums across every GSTIN per month rather than just one, so a multi-registration entity doesn't silently lose secondary registrations from its output-tax total the way earlier versions did.
See it on a real ledger

Run gst reconciliation on one of your engagements.

Bring a Trial Balance and a General Ledger. We'll walk through reconciliation end-to-end on your data, not a sandbox.

Run your first audit free →
GST Reconciliation AI for CA Firms, Books vs GSTR-2A/2B/3B/1 | CORAA