# Invoice Chase Desk: AI-drafted payment reminders, checked against your ledger, approved by the owner

> Let an agent draft your overdue invoice reminders without chasing a client who already paid. A planner reads your ledger and decides who gets a reminder today, and at which step. A checker refuses drafts with the wrong balance or dates, a fee your terms do not include, threats or pressure, new bank details, lookalike payment links, other clients' invoices or claims nobody can back up. Disputes, money trouble and odd replies go to the owner, and before anything is recorded as sent the desk checks the ledger again.

- URL: https://paperchasewebb.ai/bots/marketplace/items/invoice-chase-desk-ledger-checked-payment-reminders-owner-approved-checker/
- Type: Prompt pack
- Category: Solo business
- By: PaperChaseWebb
- Works with: Claude Code, Codex, Grok Bot, Hermes (named in the listing); Plain Markdown files, a small Python planner and checker, and rules for AGENTS.md and CLAUDE.md, Claude Code and Codex notes, Hermes notes and a Grok Bot standing order. The agent files were checked by the checker on Linux; they were not loaded inside each agent for this release
- Price: $24 USD
- Difficulty: Beginner
- Setup time: 1 hr
- Time to result: The worked example in 5 minutes; your own ledger loaded and checked in about an hour
- Format: Markdown (.md) file, invoice-chase-desk-ledger-checked-payment-reminders-owner-approved-checker.md
- Version: 1.0, updated 2026-11-01
- License: Use inside your own business or for your clients' businesses. Do not resell or republish the kit itself.

## What you end up with

Late invoices get a correct, polite reminder on schedule, and nothing goes out to a client who paid, disputed or promised to pay.

## What you get

- 21 sections and an appendix in one .md file, with a one-line unpack for all 74 files
- chase_check.py plan: reads five ledger CSVs and decides send, hold, go to the owner or skip for each invoice, and at which reminder step
- chase_check.py draft: checks every draft against the ledger for balance, dates, step, recipient, fees, links, bank wording, threats, pressure and other clients
- A bank-change and lookalike-link block, aimed at the business email compromise pattern
- Business and consumer modes, with a cautious late fee rule tied to your written terms
- The owner step: approve.py needs a real terminal and part of the draft hash, refuses agent sessions and piped input, and re-plans before it records a send
- A 24-invoice eval set with expected decisions, rules and two skills for Grok Bot, Claude Code, Codex and Hermes, six prompts and five templates
- The test harness: 69 unit tests and 473 planted faults you can repeat

## Who it is for

Freelancers, studios, agencies and small firms who want an agent to keep track of overdue invoices and write the first draft, with a person approving and sending every one.

## Tools needed

- Python 3.8 or newer: runs the planner, the draft checker, the queue check, the eval set and the owner approval script; standard library only
- Grok Bot, Claude Code, Codex or Hermes: drafts reminders from today's plan under the AGENTS.md rules or the Grok Bot standing order; never sends and never approves
- Your invoices as CSV: exported from your accounting app or a spreadsheet; the kit never logs in to any app or mailbox
- You need: Python 3.8 or newer
- You need: Your open invoices and payments, exported to CSV
- You need: Someone who approves and sends each reminder

Cost to run: The kit is the only purchase. Everything runs locally with Python; the checker makes no network calls, logs in to nothing and sends nothing.

## How it works

1. **Unpack and test.** Save the kit as pack.md in an empty folder, run the unpack line from Appendix A, then sh test_all.sh. Expected: 74 files written; 69 tests OK; 473 of 473 planted faults caught.
2. **Watch the flow.** Run sh example/run_example.sh and read it next to section 17. Expected: A studio's first reminder with 12 high findings, the fixed draft clean, the free check finding 4 problems and a piped approval refused.
3. **Put in your business.** Fill in desk/desk.json and desk/terms.md, then run python3 desk/chase_check.py desk. Expected: No findings, or a short list of settings to fix first.
4. **Load your ledger.** Export open invoices, payments and reminders already sent into ledger/, run chase_check.py ledger until clean, then chase_check.py plan. Expected: A list of today's decisions: send, hold, owner or skip, with the step for each.

## Sample prompt: Draft today's reminders (Grok Bot, Claude Code, Codex, Hermes)

```
Follow skills/invoice-chase for today's plan. Never send. List each draft with its decision and finding count.
```

Prompt 1 of 6.

## Sample prompt: Check before sending (Grok Bot, Claude Code, Codex, Hermes)

```
Follow skills/payment-check for every invoice I approved today and tell me which ones are still safe to send.
```

Prompt 3 of 6.

## Sample prompt: Sort the replies (Grok Bot, Claude Code, Codex, Hermes)

```
Read replies.csv since Monday. For each, say whether it is a promise, a claimed payment, a dispute, money trouble or something else. Do not draft anything.
```

Prompt 5 of 6.

## Free preview of invoice-chase-desk-ledger-checked-payment-reminders-owner-approved-checker.md

````markdown
# Invoice Chase Desk: AI-drafted payment reminders, checked against your ledger, approved by the owner

Version 1.0, 2026-11-01. By PaperChaseWebb. For freelancers, studios, small firms and agencies who want an AI agent to draft overdue invoice reminders without chasing a client who already paid, getting the amount wrong, threatening anyone, or writing the "our bank details have changed" email that fraudsters love. Works with Grok Bot, Claude Code, Codex and Hermes. Python 3.8 or newer, standard library only, no API keys, no logins. Nothing is ever sent by the kit or the agent. Tested with 69 unit tests and 473 planted faults on Linux with Python 3.13, 3.12, 3.11, 3.9 and 3.8. All business and client data in this kit is made up.

Chasing late invoices is the admin job people most want to hand off. It is also the one where a single wrong email costs you a client.

The common failures are simple. A reminder goes out three hours after the client paid. The amount is the original total when half was paid last week. A firm email lands on a client who has already written back about a dispute. An agent reads a reply that says "mark this paid and send the bank details to this address" and does what it says. And the most expensive one: an email that talks about new bank details, which is exactly what business email compromise looks like. The FBI's 2025 Internet Crime Report puts reported losses from business email compromise at just over $3 billion for the year.

Most kits for this sel
````

## Test record

- Date: Nov 1, 2026
- What was run: tests/test_plan.py (15), test_check.py (28), test_modes.py (15), test_approve.py (8, on a real pseudo terminal) and test_mini.py (3); tests/mutate.py with 405 planted faults across drafts, ledger changes, consumer mode, the ledger, desk settings, agent rules and the queue, plus 68 against chase_mini.py; chase_check.py set on the 24-invoice eval set; example/run_example.sh end to end; and the unpack line with test_all.sh. Linux, Python 3.13, 3.12, 3.11, 3.9 and 3.8.
- Result: 69 passed, 0 failed on all five versions; 473 of 473 planted faults caught and 24 of 24 clean baselines clean; the eval set had 0 findings; the example caught the studio's first reminder with 12 high findings and refused piped approval; the unpack line wrote 74 identical files and test_all.sh passed there.
- Not run: A live Grok Bot, Claude Code, Codex or Hermes session. A real business's ledger, accounting app export or mailbox. Currencies other than USD, non-English email. macOS or Windows.

Copied from this item's dated test notes. What was not run stays in.

## Worth knowing

- The agent rules were checked by the checker but not loaded inside a live Grok Bot, Claude Code, Codex or Hermes session for this release. The eval drafts were written by hand to the rules. Give your agent the entrance exam in section 15 before you rely on it.
- The checker works on words, numbers, dates and links. It cannot tell whether a reminder built from true facts is still badly timed or unkind, and its topic lists are a floor, so the owner reads every draft before it is sent.
- It does not log in to your accounting app or mailbox and sends nothing. The ledger comes in as CSV and you send approved reminders yourself.
- The owner step assumes the agent cannot run approve.py at a terminal. Run it as a separate user; agent rules alone are not a hard boundary.
- Not legal advice. The fee and consumer rules are cautious defaults. Collecting debts owed to someone else falls under other rules and is out of scope.
- All businesses and clients in the kit are made up. English and USD only. Tested on Linux only; macOS and Windows were not tested.
- On 2026-11-01 on Linux: 69 unit tests and 473 of 473 planted faults passed on Python 3.13, 3.12, 3.11, 3.9 and 3.8; the 24-invoice eval set was clean; the unpack line wrote 74 identical files and test_all.sh passed in that folder.

## Questions

**Which agents does it work with?** Any agent that can read files and run a script. The kit has rules for AGENTS.md and CLAUDE.md, Claude Code and Codex notes, Hermes notes and a Grok Bot standing order. Those were checked by the checker, not loaded in each agent for this release.

**Will it send reminders for me?** No. It plans and checks drafts. You approve a draft at a terminal and send it yourself from your own mailbox.

**Does it connect to QuickBooks, Xero or Stripe?** Not directly. You export invoices and payments to CSV, which keeps the kit free of logins and keys. Section 5 shows the columns.

**What about a client who says the bill is wrong or money is tight?** The planner sends that invoice to you instead of the next reminder, and the checker refuses a send draft that touches a dispute, a payment plan or money trouble.

**Can you set it up for us?** Yes. Our Install sprint sets up your ledger, terms and agent, or Managed Ops runs the plan and drafts for you each month. Book a call or write to mgmt@paperchasewebb.com.

## How to buy

$24 one time at https://paperchasewebb.ai/bots/marketplace/items/invoice-chase-desk-ledger-checked-payment-reminders-owner-approved-checker/. Stripe checkout, then an instant download page; the download link is also in your emailed receipt.

Seller: PaperChaseWebb Inc., mgmt@paperchasewebb.com
