Every receipt becomes a balanced ledger entry your accountant can trust.
Photograph a tax invoice. Snap Apps reads it, validates it against nine deterministic checks, and posts a double-entry transaction with the right BAS label already attached — G11, 1B, the lot. Not a summary a human wrote by hand.
Capture → extraction → document → transaction
Four layers, each one a database record, not a throwaway API response. A better model in six months re-runs the whole layer without touching the one above it.
Original bytes, kept forever — the legal record the ATO expects.
A versioned read of that image. Every attempt kept, none overwritten.
The curated result, with confidence, provenance, and a tax-invoice verdict.
A proposed, balanced ledger entry with a BAS label already attached.
A number no naive OCR tool can produce
Reading a total off a receipt is the easy part. Knowing whether that GST is legally claimable takes a model of what a valid tax invoice is — which is the part everyone else skipped.
of GST credits you cannot claim. 12 receipts are missing a supplier ABN, have an ABN that fails the checksum, or were never issued as a valid tax invoice.
Backed by valid tax invoices — the seven ATO elements present, ABN verified against the register, GST arithmetic reconciled to the cent.
Every document carries an is_tax_invoice verdict from validators, not a guess from the model. A GST claim without one is flagged before your BAS is lodged — not after the ATO asks.
One receipt, two tax treatments — split correctly
Hubdoc captures header totals only. A grocery run for site lunch mixes GST-free fresh food with taxable packaged goods, and a single total can't say which is which.
The books are balanced by the database
A posted transaction's splits must sum to exactly zero, or Postgres refuses the commit. That's a constraint trigger, not a form validation someone could forget to add.
Drafts can sit half-built and be edited freely — the check only fires on status = 'posted'. Nothing reaches your BAS in an unbalanced state, because the database itself won't allow it.
Scan all year. The worksheet is already done.
Every occupation-relevant scan is tagged against the ATO deduction labels as it's captured — not reconstructed from a shoebox in June.
One practice login. Every client's BAS position, reconciled.
Onboard a client base, not one user at a time. Xero sync posts into the chart of accounts you already run, and every scan a client takes rolls up into a firm-wide BAS review queue — no client left reading their own receipts at deadline.
Start with the next receipt in your pocket.
Free for 20 scans a month, no card required. Bring your accountant in when you're ready.