Overview
invoiceguard documentation
On this page
InvoiceGuard is an open-source Python tool for freelancers who are tired of chasing late payments. Generate a contract with a late-fee clause, collect a deposit through a Stripe payment link, and let an automated 3-stage email escalation (day-1 nudge → day-7 reminder → day-15 formal notice) handle the collections. Local-first (SQLite), Apache-2.0.
Start here
- Installation —
pip install invoiceguard, requirements, install from source - Quickstart — the 5-minute flow: init, Stripe test key, first client, first deposit link
- Configuration — config file, environment variables, secret resolution
How it works
- Before work starts:
project creategenerates a contract with a late-fee clause;invoice create --kind depositmakes a Stripe payment link. The client acknowledges the contract by accepting the deposit link. - After the due date:
check-due(run from cron) sends the next escalation stage using editable markdown templates. Idempotent — a stage is never sent twice for the same invoice. - When the client pays: Stripe's webhook (
POST /webhooks/stripe) marks the invoice paid automatically.
Reference
| Page | What it covers |
|---|---|
| CLI reference | every command and option |
| Dashboard | the localhost web UI and its routes |
| Dunning engine | 3-stage escalation, templates, cron |
| Webhooks | Stripe webhook setup and secret resolution |
| Contracts | contract generator and the acknowledgment model |
| Database | SQLite schema (the frozen CLI↔dashboard contract) |
| Docker | compose setup |
| Troubleshooting | common problems and fixes |
| Changelog | release history |
| Roadmap | what's planned, honestly labeled |
Honest scope
v1's "signature" is a client-acknowledgment checkbox (the deposit link being paid), not a legal e-signature. Stripe live calls were verified with a mocked SDK in this build environment; you add your own test key. Email deliverability is your SMTP. See Troubleshooting and Limits for the full picture.