The core of the product

The validation gate

Most tools show what the model guessed. We check the math first. Checksums, HSN, does it add up. The entry has to earn its place.

See the checks before export.

Most tools show a guess. We check it. Checksums. Directory. Does the math on the page add up.

Below is a real invoice from the test corpus. Pick a scenario and run the gates.

Press “Run the gates” to validate invoice INV/2025/1042.
A failed invoice is never exported. It waits in the review queue with the scan and the reason.

Core checks and reference safeguards

A printed IRN must be 64 hexadecimal characters and have value-bound transcription evidence, or a person must confirm it. Unresolved or conflicting reads stay in review. This is not IRP issuance or signature verification; invoices without an IRN remain supported.

These checks catch specific errors, not every possible misread. A valid checksum is not proof of the intended supplier, and we do not query live GST registration.

GSTIN mod-36 checksum

A GSTIN’s fifteenth character is a check digit computed over the first fourteen. Invalid checksums block automatic approval. Some wrong GSTINs still pass, so checksum validity alone cannot prove counterparty identity.

seller + buyercatches digit misreads

HSN directory

Every line’s HSN code is checked for format. Directory misses are warnings by default, not export blockers. Neither check proves that the supplier chose the correct classification.

formatdirectory warnings

Arithmetic closure

Line items must sum to taxable value; taxable value times rate must equal the taxes; taxes plus taxable must equal the grand total. The product uses a default arithmetic tolerance of ±₹1. Balanced numbers alone do not prove that every field was read correctly.

lines → taxabletaxable → taxestotal closes

Regime consistency

Place of supply decides CGST plus SGST versus IGST. Intra-state invoices claiming IGST, or the reverse, stop at the gate instead of your books.

place of supplyCGST / SGST vs IGST

When something fails, your operator sees this

Held invoices reach the review queue. The scan sits beside the fields and current failure reasons. Fit or zoom the source, correct the fields and confirm to open the next exception. Confirmation is logged; it does not import into Tally.

This preview is live: the scanner misread one character of the seller's GSTIN. Correct it and watch the checksum gate flip to green.

Sourcescan beside the fields
0automatic exports without passing the gate
Review queue / Kaveri Tools / KT/25-26/769
Scanned invoice under review Verified
invoice_noKT/25-26/769
invoice_date17/11/2025
total_value₹21,340.00
checksum failed: got ‘G’, expected ‘M’ possible 6↔G misread

fix the GSTIN above; the checksum gate re-runs as you type

Try it: change G to 6 in the GSTIN field.

Every field carries its evidence

EntryLedger keeps the source reference, validation results and confirmation history with the invoice. The selected-batch manifest lists invoice IDs, source references and XML hashes. It is not proof of a successful Tally import or a tax-compliance certificate.

Sourcescan beside the fields
0automatic exports without passing the gate
1 pageaudit trail per invoice, produced automatically
NextThe gate is only half the story. The other half is how it behaves on scans that are genuinely terrible.See the accuracy evidence