Everything invoice follow-up needs. Nothing it doesn't.
Receivables, organised
Idempotent invoice import
CSV import with auto-mapped columns, per-row validation and a downloadable error report. Invoices match by number — re-imports reconcile balances, never duplicate.
Ageing buckets
Upcoming, due, 1–7, 8–21, 22–45 and 45+ days overdue — computed from due dates, filterable in one click.
Customer book
Auto-created from imports, with outstanding totals, invoice history and a do-not-contact switch that stops everything instantly.
Follow-up with guardrails
Editable reminder policy
Four escalating stages with plain-language templates and per-stage timing. Placeholders pull invoice facts only.
Approval-first sending
Drafts wait for a named approval; invoice status, contact preference and email presence are re-checked at send time.
Automatic stops
Payment in full, a dispute, a hold or do-not-contact cancels pending reminders for that invoice immediately.
Idempotent outbox
Retries and duplicates can't double-send; every message and its delivery status is recorded.
Customer-facing
Secure status page
Unguessable per-invoice link showing status and outstanding amount — no login needed for your customer.
Pay, promise, or dispute
Stripe payment when configured (simulated, clearly-labelled test payment in demo installs); promise-to-pay dates; dispute notes that pause reminders.
Neutral tone enforced
Templates never threaten or misstate consequences; the acceptable-use policy makes wording your responsibility with sane defaults.
Visibility & control
Reports
Outstanding, collected, collected-after-follow-up (labelled as attribution), average days-late, ageing table, recently-paid list.
Promises & disputes tracking
Open promises surface when due; disputes are logged with resolution history.
Roles & audit
Owner, admin, staff, viewer roles enforced server-side; every send, payment, dispute and policy change is audit-logged.
Export & deletion
Owners can export the whole workspace as JSON or delete it entirely.