GST Invoice Check

Checks an Indian GST invoice for the wrong tax head (CGST + SGST vs IGST), a rate not in force on the invoice date, and amounts that don't add up.

StopsHelps catch a GST invoice under the wrong tax head

Installation

pnpm dlx shadcn@latest add https://bollard-ui.vercel.app/r/gst-invoice-check.json

The files land in your project. They're yours to edit.

Usage

gst-invoice-check-usage.tsx
import { GstInvoiceCheck, type GstCharged } from "@/components/ui/gst-invoice-check"

<GstInvoiceCheck
  supplierGstin="27AAPFU0939F1ZV"
  placeOfSupply={pos}
  invoiceDate="2026-10-14"
  lines={[
    { description: "Website design", taxableValue: 12000, rate: 18 },
    { description: "Hosting (1 year)", taxableValue: 3000, rate },
  ]}
  charged={charged}
  onFix={setCharged}
/>

What it catches

  • Intra-state vs inter-state head chosen wrongly from GSTIN state and place of supply
  • UTGST vs SGST for union territories without a legislature
  • Rate not in the slab set for the invoice date (pre-22 Sep 2025, GST 2.0, from 1 Feb 2026)
  • Zero-rated LUT exports charged tax
  • CGST/SGST not split evenly, or line amounts and total that don't add up

Props

GstInvoiceCheck props
PropTypeDefault
onFix

Offers a one-tap fix that applies the expected tax heads and total.

(charged: GstCharged) => void—
messages

Reword or translate any sentence.

Partial<typeof GST_INVOICE_CHECK_MESSAGES>—

* required. Also accepts the native props of <section> (className, aria-*, data-*…), passed through to it.

Accessibility

  • Section labelled by its title; tax table uses column headers
  • Findings list is a polite live region with icons that are decorative
  • Fix is a real button

Only what the source does. Test with your own screen reader and content before shipping.

Limitations

  • Checks that a rate exists in a slab set, not that it is the right rate for the HSN/SAC
  • Does not validate the GSTIN on the GST portal
  • Ignores cess, reverse charge and composition cases
  • Rule tables are baked in; future rate changes need a code update

Rules

Rules last verified:

Informational; check the official source. Verified: the 1 Feb 2026 change. The 22 Sep 2025 GST 2.0 slab set (Notification 9/2025-CT(R)) and the UTGST state-code list were not re-fetched this round. Copied components don't update themselves, so re-check after rule changes (see updating a component).

What it stops

Helps catch a GST invoice under the wrong tax head

Also known as

gst · gstin · igst · cgst · sgst · invoice · place of supply · hsn

Field type

Dependencies

Pairs well with