Every finance team we have talked to has a version of this Monday: the bank shows a deposit from Thursday, the AR aging report still shows the invoice as open, and the collections inbox has an automated reminder that went out Friday evening — after the money had already landed. Nobody did anything wrong. Nobody matched the transaction yet.
This is not a collections bug. It is a sequencing problem between cash, matching, and chase cadence.
Two products, one customer experience
| Tool | Knows | Does not know |
|---|---|---|
| Watchtower / dunning | Sent unpaid invoices; cadence stages | Bank feed unless told |
| Bank reconciliation | Deposits; match candidates | Whether email tone was appropriate |
Run them as separate products with no wire-back and the gap between "cash landed" and "someone matched it" is exactly where an embarrassing email gets sent.
Watchtower correctly ages sent unpaid invoices. It should not chase drafts. It should stop when the invoice is paid — which includes processor webhooks and confirmed bank matches.
The 4pm payment, 6pm email test
Ask your stack:
If a payment lands at 4pm, and a dunning email is scheduled for 6pm, does the match happen before the send?
If the honest answer is "it depends which batch job runs first," you have a Monday-morning problem waiting to happen — and it will happen to your best customer first, because your best customer pays fastest.
The fix is not "chase less aggressively." A clear reminder → firmer reminder → final notice cadence is correct for genuinely unpaid invoices. The fix is making the off switch fast:
- Card payments: webhook marks paid; sequence stops.
- Wires: operator matches deposit; sequence stops on confirm.
- Partials: sequence pauses; do not fire the next stage as if nothing happened.
Operational rhythm that prevents the email
- Daily bank rec during close, not "when someone has time."
- Match before approving auto-dunning on new cohorts.
- Split multi-invoice deposits instead of forcing the largest open invoice.
- Treat processor payout variance as normal — fees are not customer shortfalls.
In shipment mode, match against shipper names and contacts. A wire from a logistics AP desk may not spell the shipper legal name the way your catalog does.
Where Sonic sits
Sonic connects the chain: invoice → send → collections → payment (link or wire) → bank match → journal. Bank rec is prototype-grade in maturity compared to core billing — expect operator queues and manual confirmation on edge cases. Still, the product intent is clear: matched cash should stop chase in the same beat, not after a nightly sync lottery.
Watch out for
- Marking paid without match stops dunning but leaves bank truth messy — know which question you are answering.
- Unsent invoices are not overdue — do not chase what the customer never saw.
- Bounced dunning emails are worse than silence; validate contacts first.
- Partial payments are not full payment — cadence should pause, not exit, until balance zero.
- Freight drafts without terms still get due dates for Watchtower — do not confuse "suggested next step" with "already sent."