What does chasing an unpaid invoice look like by hand?
Open the accounting system and filter for overdue invoices. Check the bank, because some of them were paid last week and nobody marked them. Find the right contact for each client. Write the email, attach the invoice, soften the wording, send it. Put a note in the calendar to follow up. Repeat for every client, and again when the follow-up comes due.
What changes on Biloh?
The list keeps itself. Biloh knows which invoices are overdue because it sent them and it sees the payments arrive. list_invoices with status: "overdue" answers "who owes me?" in one call — including invoices that were part-paid and still owe money.
The reminders are drafted for you. propose_payment_reminders drafts one reminder per client who owes money: a statement of what is still owing, only the invoices that still owe money attached, and one link to pay them all. Nothing is sent until you approve it with approve_payment_reminders, and each one comes with warnings to read first — for example, a client who has emailed you and is waiting on a reply.
Paying is one tap for the client. The link opens the client's portal, where they pay by card — every outstanding invoice in one payment, or only the overdue ones if you choose.
Paid means paid. A card payment through the portal records itself against the invoice. A bank transfer is matched from the bank feed (match_bank_credit_to_invoice), so the invoice stops appearing as overdue without anyone typing it in — and the next reminder run does not chase money that has already arrived.
What stays the same?
Who to chase, and how firmly, is still your call. Late fees follow the rule you set — none, interest or a flat fee — for the business, with a different rule for any client you choose. Every reminder waits for your approval.
What does it need?
Invoices sent from Biloh, a bank feed or an imported bank statement, and a billing email on each client.