← All documentation · Getting paid
Invoices and payments
Web app1 min readUpdated
Every scheduled visit mints an invoice in your company’s own numbering whose status follows its payments, and every charge, refund and recorded cash payment lands in one append-only ledger.
An invoice per visit
Each scheduled visit mints an invoice in your company's own numbering, and its status keeps itself in step with what has been paid against it. Browse, search and filter them all in one place.
One exception, chosen per customer: a customer on consolidated monthly billing — commercial clients, typically — receives one invoice covering the month's completed visits instead. The per-visit invoices still exist underneath, as the ledger's backbone; the monthly invoice is what the customer sees and pays. See Commercial cleaning mode.
The ledger
One-off charges, partial refunds, and payments you recorded by hand all land in a single append-only ledger. Nothing is edited in place; a correction is a new row. That ledger is what drives each visit's payment status, which is why the status and the money can never quietly disagree.
Getting paid without a card on file
- A payment link for any visit or any amount, sent by email — or by text to customers who have opted in.
- Cash, checks, bank transfers, or any method your company defines: the list is yours to edit. This needs no Stripe account at all.
- Refunds, including of payments that were recorded by hand.

The customer portal
Mint a private portal link from a customer's page and they get:
- Upcoming visits, with confirm buttons
- Their payment history and receipts
- The card on file, which they can update without calling the office

Chasing what is owed
The Receivables report lists every open invoice by customer with its status and how long it has been waiting, so nothing outstanding hides at the bottom of an inbox. It is included on every paid plan. See The dashboard and reports.
Failed payments appear in the dashboard's needs-attention list rather than waiting to be noticed.