Invoice Engine
Generate, manage, and track professional invoices with client onboarding, customizable payment terms, recurring billing, automated overdue reminders, and fin...
ๆ่ฝ่ฏดๆ
name: afrexai-invoice-engine description: Generate, manage, and track professional invoices with payment terms, recurring billing, overdue automation, and financial reporting. Use when creating invoices, tracking payments, managing clients, or reviewing revenue.
Invoice Engine โ Complete Invoicing & Accounts Receivable
A zero-dependency agent skill for end-to-end invoicing โ from quote to payment to reporting.
Quick Start
When the user says "create an invoice" or "bill [client]":
- Check if client exists in memory (see Client Registry below)
- If new client โ run Client Onboarding
- Generate invoice using the Invoice Builder
- Present for review โ finalize
- Track in the Invoice Ledger
1. Client Registry
Maintain a YAML client database in your workspace:
# clients.yaml
clients:
- id: "CLI-001"
name: "Acme Corp"
contact: "Jane Smith"
email: "jane@acme.com"
address:
line1: "123 Business Ave"
line2: "Suite 400"
city: "New York"
state: "NY"
zip: "10001"
country: "US"
tax_id: "US-EIN-12-3456789"
payment_terms: "net-30" # net-15, net-30, net-45, net-60, due-on-receipt, custom
preferred_currency: "USD"
default_tax_rate: 0 # 0 for B2B cross-border, local rate for domestic
notes: "PO required for invoices > $5,000"
created: "2026-01-15"
lifetime_revenue: 12500.00
invoices_sent: 3
invoices_paid: 2
avg_days_to_pay: 22
Client Onboarding Checklist
When adding a new client, collect:
- Legal entity name (exactly as on their records)
- Billing contact name + email
- Billing address (full, with country)
- Tax ID / VAT number (if applicable)
- Preferred payment terms
- Currency preference
- Any PO or approval requirements
- Tax-exempt? (if so, get certificate reference)
2. Invoice Builder
Invoice Number Format
[PREFIX]-[YEAR].[MONTH].[SEQUENCE]
Example: INV-2026.02.001
Configurable prefix per business line:
INV= standard invoicePRO= proforma / quoteREC= recurring invoiceCN= credit note
Invoice Template
When generating an invoice, structure it as:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ [YOUR COMPANY NAME] โ
โ [Address Line 1] โ
โ [City, State ZIP] โ
โ [Country] โ
โ Tax ID: [YOUR TAX ID] โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฃ
โ โ
โ INVOICE [NUMBER] Date: [ISSUE DATE] โ
โ Due: [DUE DATE] โ
โ โ
โ Bill To: Payment Terms: โ
โ [CLIENT NAME] [Net-30 / etc.] โ
โ [Client Address] โ
โ [City, State ZIP] PO Number: โ
โ Tax ID: [CLIENT TAX ID] [If applicable] โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฃ
โ # โ Description โ Qty โ Rate โ Amount โ
โ โโโโโโชโโโโโโโโโโโโโโโโโโโโโโโชโโโโโโชโโโโโโโโโโชโโโโโโโโโโโโโฃ
โ 1 โ [Service/Product] โ 1 โ $X,XXX โ $X,XXX.XX โ
โ 2 โ [Service/Product] โ 3 โ $XXX โ $X,XXX.XX โ
โ 3 โ [Expense passthrough]โ 1 โ $XXX โ $XXX.XX โ
โ โโโโโโงโโโโโโโโโโโโโโโโโโโโโโโงโโโโโโงโโโโโโโโโโงโโโโโโโโโโโโโฃ
โ Subtotal: $XX,XXX.XX โ
โ Discount: -$X,XXX.XX โ
โ Tax (X%): $X,XXX.XX โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ TOTAL DUE: $XX,XXX.XX โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฃ
โ Payment Methods: โ
โ โข Bank Transfer: [Bank] | Acct: [XXXX] | Routing: [XX] โ
โ โข PayPal: [email] โ
โ โข Stripe: [payment link] โ
โ โข Bitcoin: [address] / Lightning: [LNURL] โ
โ โ
โ Notes: [Custom message / thank you / late fee notice] โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Line Item Types
- Time-based: Hours ร hourly rate (log hours, auto-calculate)
- Fixed fee: Project milestones, retainers
- Quantity-based: Units ร unit price
- Expense passthrough: At-cost or with markup %
- Discount line: Negative amount (early payment, volume, loyalty)
- Recurring: Auto-populated from recurring schedule
Tax Handling Decision Tree
Is client in same country as you?
โโโ YES โ Apply local tax rate
โ โโโ Client tax-exempt? โ Add exemption reference, 0% tax
โ โโโ Client NOT exempt โ Apply standard rate
โโโ NO โ Usually 0% (reverse charge / export)
โโโ Both in EU? โ Reverse charge mechanism (0%, note on invoice)
โโโ US interstate? โ Check nexus rules
โโโ International โ 0% with export reference
Discount & Pricing Framework
- Early payment: 2/10 Net 30 (2% discount if paid within 10 days)
- Volume: Tiered pricing (1-10 units = $X, 11-50 = $Y, 51+ = $Z)
- Loyalty: After 6+ invoices, offer 5% ongoing discount
- Bundled: Package multiple services, discount 10-15% vs ร la carte
- Seasonal: Q4 premium (+10%), Q1 discount (-5%) if applicable
3. Invoice Lifecycle & Status Tracking
Status Flow
DRAFT โ SENT โ VIEWED โ PARTIALLY_PAID โ PAID โ CLOSED
โ
OVERDUE โ ESCALATED โ WRITTEN_OFF
โ
DISPUTED โ RESOLVED โ PAID
Invoice Ledger (YAML)
# invoices.yaml
invoices:
- number: "INV-2026.02.001"
client_id: "CLI-001"
status: "sent"
issue_date: "2026-02-13"
due_date: "2026-03-15"
currency: "USD"
subtotal: 5000.00
discount: 0
tax: 0
total: 5000.00
amount_paid: 0
balance_due: 5000.00
payment_terms: "net-30"
line_items:
- description: "AI Integration Consulting โ February"
qty: 20
rate: 250.00
amount: 5000.00
payments: []
notes: ""
sent_date: "2026-02-13"
reminders_sent: 0
created: "2026-02-13T10:30:00Z"
Payment Recording
When a payment comes in:
payments:
- date: "2026-03-10"
amount: 5000.00
method: "bank_transfer" # bank_transfer, stripe, paypal, btc, cash, check
reference: "TXN-ABC123"
notes: "Paid in full"
Update: amount_paid, balance_due, status (โ paid if balance = 0, โ partially_paid if balance > 0)
4. Recurring Invoices
Schedule Configuration
recurring:
- id: "REC-001"
client_id: "CLI-001"
description: "Monthly Retainer โ AI Ops Support"
frequency: "monthly" # weekly, biweekly, monthly, quarterly, annually
day_of_month: 1 # 1-28 (avoid 29-31 for safety)
line_items:
- description: "AI Operations Retainer"
qty: 1
rate: 3500.00
auto_send: true # false = create as draft
start_date: "2026-01-01"
end_date: null # null = indefinite
next_invoice: "2026-03-01"
invoices_generated: 2
active: true
Recurring Invoice Routine (run on schedule)
- Check
recurringentries wherenext_invoice <= todayandactive = true - For each: generate invoice from template, assign next number
- If
auto_send = trueโ mark as sent, notify client - If
auto_send = falseโ save as draft, notify user for review - Update
next_invoiceto next occurrence - Log in daily memory
5. Overdue Management & Collections
Reminder Schedule
| Days After Due | Action | Tone |
|---|---|---|
| +1 day | Friendly reminder email | "Just a gentle reminder..." |
| +7 days | Follow-up with invoice attached | "Following up on..." |
| +14 days | Firm reminder, mention late fee | "This invoice is now 14 days past due..." |
| +30 days | Final notice before escalation | "Final notice โ please remit payment..." |
| +45 days | Escalate to human (Kalin/Christina) | Flag for personal outreach |
| +60 days | Consider write-off or collections | Business decision |
Reminder Templates
Day +1 (Friendly)
Subject: Friendly reminder โ Invoice [NUMBER] due [DATE]
Hi [CONTACT],
Hope all is well! Just a quick reminder that invoice [NUMBER] for [AMOUNT] was due on [DATE].
If you've already sent payment, please disregard this note.
Payment details are on the attached invoice. Let me know if you need anything.
Best,
[YOUR NAME]
Day +14 (Firm)
Subject: Invoice [NUMBER] โ 14 days overdue ([AMOUNT])
Hi [CONTACT],
Invoice [NUMBER] for [AMOUNT] is now 14 days past the due date of [DATE].
Per our agreement, a late fee of [X]% may apply to balances outstanding beyond [Y] days.
Could you confirm when we can expect payment? Happy to discuss if there's an issue.
Thanks,
[YOUR NAME]
Day +30 (Final)
Subject: Final notice โ Invoice [NUMBER] overdue ([AMOUNT])
Hi [CONTACT],
This is a final reminder that invoice [NUMBER] for [AMOUNT] remains unpaid, now 30 days past the due date.
Please arrange payment within the next 7 business days to avoid further action.
If there's a dispute or issue with this invoice, please let me know immediately so we can resolve it.
Regards,
[YOUR NAME]
Late Fee Calculation
Standard: 1.5% per month on overdue balance (18% APR)
Grace period: 5 business days after due date
Compound: Simple interest (not compound)
Cap: 25% of invoice total (or local legal maximum)
Formula: late_fee = balance_due ร (monthly_rate / 30) ร days_overdue
Example: $5,000 ร (0.015 / 30) ร 14 = $35.00
6. Financial Reporting
Revenue Dashboard (generate weekly/monthly)
โโโ REVENUE SUMMARY โ [MONTH YEAR] โโโ
Invoiced This Month: $XX,XXX.XX ([N] invoices)
Collected This Month: $XX,XXX.XX ([N] payments)
Outstanding (not overdue): $XX,XXX.XX ([N] invoices)
Overdue: $XX,XXX.XX ([N] invoices, avg [X] days late)
Written Off (YTD): $XX,XXX.XX
Collection Rate: XX.X% (collected / invoiced, trailing 90 days)
Avg Days to Pay: XX days (trailing 90 days)
Avg Invoice Size: $X,XXX.XX
โโโ TOP CLIENTS (by revenue, YTD) โโโ
1. [Client] โ $XX,XXX ([N] invoices, avg [X] days to pay)
2. [Client] โ $XX,XXX ([N] invoices, avg [X] days to pay)
3. [Client] โ $XX,XXX ([N] invoices, avg [X] days to pay)
โโโ AGING REPORT โโโ
Current (not yet due): $XX,XXX ([N] invoices)
1-15 days overdue: $XX,XXX ([N] invoices)
16-30 days overdue: $XX,XXX ([N] invoices)
31-60 days overdue: $XX,XXX ([N] invoices)
60+ days overdue: $XX,XXX ([N] invoices) โ ๏ธ
โโโ MONTHLY TREND โโโ
Jan: $XX,XXX โโโโโโโโโโโโ
Feb: $XX,XXX โโโโโโโโโโโโโโโโ
Mar: $XX,XXX โโโโโโโโโโ
...
โโโ ACTIONS NEEDED โโโ
โข [N] invoices need reminder emails
โข [N] recurring invoices due for generation
โข [Client] has disputed INV-XXXX โ needs resolution
Key Metrics to Track
- Collection Rate: % of invoiced amount actually collected (target: >95%)
- DSO (Days Sales Outstanding): avg days from invoice to payment (target: <30)
- Overdue Ratio: overdue balance / total outstanding (target: <10%)
- Revenue Concentration: % from top client (flag if >40% โ dependency risk)
- MRR from Recurring: recurring invoice total / month
7. Credit Notes & Adjustments
When a refund or correction is needed:
credit_note:
number: "CN-2026.02.001"
original_invoice: "INV-2026.01.003"
client_id: "CLI-001"
reason: "Partial refund โ service hours overcharged"
line_items:
- description: "Correction: 5 hours overcharged"
qty: -5
rate: 250.00
amount: -1250.00
total: -1250.00
issued: "2026-02-13"
Apply credit notes against:
- The original invoice (reduce balance)
- Future invoices (credit on account)
- Direct refund (record refund method + reference)
8. Multi-Currency Support
currencies:
primary: "USD"
accepted: ["USD", "GBP", "EUR", "BTC"]
exchange_rates: # Update weekly or use live rates
GBP_USD: 1.27
EUR_USD: 1.08
BTC_USD: 97500
conversion_note: "Converted at rate on invoice date. Payment accepted in invoiced currency only."
Rules:
- Always invoice in the client's preferred currency
- Record payments in the currency received
- Convert to primary currency for reporting (use rate on payment date)
- Note exchange rate on invoice if cross-currency
- BTC/Lightning: include both sats and fiat equivalent
9. Quote-to-Invoice Pipeline
Quote (Proforma) Template
Same as invoice template but:
- Prefix:
PRO-instead ofINV- - Header: "QUOTATION" instead of "INVOICE"
- Add: "Valid until: [DATE]" (typically 30 days)
- Add: "This is not a tax invoice"
Pipeline Flow
QUOTE โ ACCEPTED โ INVOICE โ PAID
โ
EXPIRED (auto-expire after validity period)
โ
REVISED (new version with changes)
When a quote is accepted:
- Convert to invoice (change prefix, remove validity notice)
- Assign invoice number
- Set payment terms based on client profile
- Send invoice
- Archive quote as "converted"
10. Edge Cases & Rules
Partial Payments
- Record each payment separately with reference
- Update balance_due after each payment
- On final payment โ mark PAID
- If partial + overdue โ chase remaining balance only
Disputed Invoices
- Mark status as DISPUTED
- Record dispute reason and date
- Pause reminders during dispute
- Track resolution (adjusted, credit note, or confirmed correct)
- Resume billing after resolution
Void vs Credit Note
- Void: Invoice was sent in error, never should have existed โ mark VOIDED, exclude from reports
- Credit Note: Services were delivered but need adjustment โ issue CN, include in reports
Tax Invoice Requirements (by region)
- US: No strict format, but include EIN if registered
- UK/EU: Must include VAT number, VAT amount, "reverse charge" note if applicable
- Australia: Must say "Tax Invoice", include ABN, GST amount
- Canada: Include GST/HST number, province-specific rules
Rounding
- Always round line item amounts to 2 decimal places
- Calculate tax on subtotal (not per-line) to avoid penny discrepancies
- Display currency symbol before amount: $1,234.56
Invoice Numbering
- NEVER reuse or skip numbers (tax audit requirement)
- Sequential within each prefix
- If voided, keep the number, just mark status
11. Automation Opportunities
Set up cron jobs or heartbeat checks for:
- Generate recurring invoices on schedule
- Send overdue reminders per the schedule above
- Weekly revenue dashboard to owner
- Monthly aging report
- Auto-flag clients with >45 days overdue
- Quarterly review: update exchange rates, review pricing
12. Export Formats
When the user needs to export:
- CSV: For spreadsheet / accounting import
invoice_number,client,date,due_date,total,status,amount_paid,balance - JSON: For API integration or backup
- Markdown table: For quick review in chat
- PDF-ready text: Formatted text block ready for PDF generation tool
Commands Reference
| Command | Action |
|---|---|
| "Invoice [client] for [amount/description]" | Create new invoice |
| "Quote [client] for [service]" | Create proforma |
| "Show outstanding invoices" | List unpaid invoices |
| "What's overdue?" | Aging report, overdue only |
| "Revenue this month" | Monthly revenue dashboard |
| "Send reminder for [invoice]" | Generate reminder email |
| "Record payment [invoice] [amount]" | Log payment received |
| "Recurring: [client] [amount] [frequency]" | Set up recurring invoice |
| "Credit note for [invoice]" | Issue credit/adjustment |
| "Client report [name]" | Full client payment history |
| "Export invoices [format]" | CSV/JSON/Markdown export |
| "Void [invoice]" | Void an invoice |
| "Update rates" | Refresh exchange rates |
ๅฆไฝไฝฟ็จใInvoice Engineใ๏ผ
- ๆๅผๅฐ้พ่พAI๏ผWeb ๆ iOS App๏ผ
- ็นๅปไธๆนใ็ซๅณไฝฟ็จใๆ้ฎ๏ผๆๅจๅฏน่ฏๆกไธญ่พๅ ฅไปปๅกๆ่ฟฐ
- ๅฐ้พ่พAI ไผ่ชๅจๅน้ ๅนถ่ฐ็จใInvoice Engineใๆ่ฝๅฎๆไปปๅก
- ็ปๆๅณๆถๅ็ฐ๏ผๆฏๆ็ปง็ปญๅฏน่ฏไผๅ