← All documentation · Getting paid
Invoices and payments
Web app2 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
- Book another visit — open times to pick from, at the price of their last one
A booking made there is a request. It lands on your schedule unconfirmed, with nobody assigned to it, and rings the bell, sends the office an email and files itself in the customer's own conversation — so it is seen rather than discovered. You confirm it and put a crew on it; nothing is dispatched by a link. The times offered are the ones your branch is actually free, from the same engine that suggests slots on your own booking form, and the price is copied from the customer's last visit so the page cannot quote one figure and bill another.
A customer with no visit behind them is offered the message form instead: there is nothing to copy, and the page will not invent a length or quote a price nobody agreed.
Chasing what is owed
The Money owed 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.