One outstanding-invoices export becomes reminder drafts (.eml) per customer, reminders.csv for mail merge, an ageing report and a short report.
Who it is for: Owner, accountant or accounts assistant of an Indian small business (B2B traders, manufacturers, agencies) with 10-300 open invoices in Tally, Zoho Books or a sheet who chases payments by hand.
Format: Claude skill pack · Version: 1.0.0 · Tested on: Python 3.13.5 (standard library only)
What it does
It reads the export (Tally title lines and the Grand Total are skipped) and works out days overdue. Paid, disputed, on-hold and credit-balance invoices are left out. Invoices are grouped per customer, and the oldest overdue one sets the stage: due soon (3 days before), friendly (1+ days), firm (15+) or final (45+). Each draft lists the invoices with the total and, if you give them, your bank details. Nothing is sent.
What you need
- Claude.ai with code execution switched on (or Claude Code, or just Python 3.10+)
- Your outstanding invoices export
5-minute setup
- Claude.ai: open Settings → Capabilities → Skills, click Upload skill and pick
claude-ai-upload/payment-reminder.zip. - Claude Code: copy the folder
skills/payment-reminderinto~/.claude/skills/. - Start a new chat. Attach your file and say: "Use payment-reminder. Draft payment reminders from this Tally bills receivable export".
- Claude runs the script and gives you the files listed under Outputs. Check them before you act on them.
Try it with the sample
Run the sample (fictional Tally export, as of 1 Nov 2026):
python3 skills/payment-reminder/scripts/core.py samples/tally-bills-receivable.csv --contacts samples/contacts.csv --as-of 2026-11-01 --sender "Meera Joshi, Accounts" --out out
You should see Rs 3,90,100 outstanding, Rs 3,45,260 of it overdue, and 6 drafts (1 friendly, 1 firm, 3 final, 1 due soon). One draft has no email because that customer is not in the contacts file.
Settings you can change
| Option | Default | What it is |
|---|---|---|
receivables |
(required) |
Outstanding invoices CSV (Tally, Zoho Books or your sheet) |
--contacts |
(optional) |
customer, email |
--as-of |
today |
Date to count overdue days from |
--terms-days |
30 |
Credit days when there is no due date |
--hold / --bank-details / --sender / --company / --from-email / --reply-days |
`` | Customers not to chase, payment text and signature |
--out |
out |
Output folder |
What goes in and what comes out
Inputs: Outstanding invoices export: Tally Bills Receivable, Zoho Books invoices or your own sheet; Optional: contacts CSV with customer emails
Outputs: drafts/
What Pro adds
- Bank statement matching so customers who already paid are not chased
- A reminder log so nobody is chased twice within a week
- Your own wording (any language) and stage days
- UPI payment links for the exact amount, and late interest at your rate
- Statements of account per customer, and copying the salesperson on firm and final reminders
Pro: https://oarsmanai.com/agents/payment-reminder-pro/
AI disclosure and limits
This product does not call an AI model at run time. It was built by Oarsman AI's AI agents and checked by the automated tests shipped with it.
Limits: - Drafts only: it never sends anything. - Built-in English wording only; no bank matching, reminder log, UPI links or statements (Pro).
Not tested by us: - every Tally report layout (Bills Receivable and Ledger outstanding tested) - opening .eml drafts in every mail app (Thunderbird and Apple Mail open them; Outlook may need the CSV route) - currencies other than INR in one file
Files
- oarsman-payment-reminder-v1.0.0.zip
- CHANGELOG.md
- QA-REPORT.json
- README.md
- SPEC.md
- SUPPORT.md
- TROUBLESHOOTING.md
- VERSION
- VIDEO-SCRIPT.md
- claude-ai-upload
- diagram.mmd
- diagram.png
- preview.png
- samples
- skills
- tests
Help
Self-serve: see TROUBLESHOOTING.md (fixes and FAQ). There is no call, chat or email support. Fixes ship as new versions at your download link. Refund: 14 days, works as described, through the checkout platform.