Overview

invoiceguard documentation

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

  1. Before work starts: project create generates a contract with a late-fee clause; invoice create --kind deposit makes a Stripe payment link. The client acknowledges the contract by accepting the deposit link.
  2. 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.
  3. When the client pays: Stripe's webhook (POST /webhooks/stripe) marks the invoice paid automatically.

Reference

PageWhat it covers
CLI referenceevery command and option
Dashboardthe localhost web UI and its routes
Dunning engine3-stage escalation, templates, cron
WebhooksStripe webhook setup and secret resolution
Contractscontract generator and the acknowledgment model
DatabaseSQLite schema (the frozen CLI↔dashboard contract)
Dockercompose setup
Troubleshootingcommon problems and fixes
Changelogrelease history
Roadmapwhat'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.