Nightly checks

OwnerGeneral ManagerAccountant

Updated September 23, 2026

What this does

Every night a set of read-only checks runs against each shop's books. Each compares two things that should agree and, when they don't, files an Exception with the rows and amounts involved, enough to verify or refute on sight. They change nothing. They're the reason you can trust the reports without re-adding them yourself.

The checks

AR tie-out — ledger receivables equals the sum of open invoice balances less open customer credits, on two cuts, with no paid or void invoice still carrying a balance. On after AR onboarding or the first posted invoice.

Terminal balance — no paid, void, or cancelled invoice carries a balance.

Money-in recognized — every payment applied since the shop's cutover has a matching ledger credit to receivables, in aggregate.

Bill postability — every open bill has accounts that exist and lines that sum, so it can post when paid.

Stale money-in — bank-feed credits in the transaction inbox that have sat unresolved longer than the shop's threshold.

Unposted entries — anything that should have posted (is_posted) and didn't, after a two-day grace.

Stripe reconciliation and webhook liveness — the app and Stripe agree on subscriptions and processed events; the webhook is still delivering. Shops without Stripe billing see "nothing to expect."

Working them

They land under Accounting → Documents & Intelligence → Exceptions with severity and the evidence. Fix the cause, then resolve; resolving alone doesn't change the books and the check will re-file tomorrow. The two that recur most are stale rows (an imported invoice that says paid but shows a balance) and money in Undeposited Funds that nobody has deposited.

Common problems

A check fires every night for the same thing. The condition is still true. Read the evidence rows; they name the invoice or payment.

AR tie-out is off by exactly one credit memo. Open customer credits live in receivables and are part of the subledger side. If the check still complains, the credit was posted to the wrong account.