Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Generate, manage, and track professional invoices with client onboarding, customizable payment terms, recurring billing, automated overdue reminders, and fin...
Generate, manage, and track professional invoices with client onboarding, customizable payment terms, recurring billing, automated overdue reminders, and fin...
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
A zero-dependency agent skill for end-to-end invoicing โ from quote to payment to reporting.
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
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
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)
[PREFIX]-[YEAR].[MONTH].[SEQUENCE] Example: INV-2026.02.001 Configurable prefix per business line: INV = standard invoice PRO = proforma / quote REC = recurring invoice CN = credit note
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] โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
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
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
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
DRAFT โ SENT โ VIEWED โ PARTIALLY_PAID โ PAID โ CLOSED โ OVERDUE โ ESCALATED โ WRITTEN_OFF โ DISPUTED โ RESOLVED โ PAID
# 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"
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)
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
Check recurring entries where next_invoice <= today and active = 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_invoice to next occurrence Log in daily memory
Days After DueActionTone+1 dayFriendly reminder email"Just a gentle reminder..."+7 daysFollow-up with invoice attached"Following up on..."+14 daysFirm reminder, mention late fee"This invoice is now 14 days past due..."+30 daysFinal notice before escalation"Final notice โ please remit payment..."+45 daysEscalate to human (Kalin/Christina)Flag for personal outreach+60 daysConsider write-off or collectionsBusiness decision
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]
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
โโโ 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
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
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)
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
Same as invoice template but: Prefix: PRO- instead of INV- Header: "QUOTATION" instead of "INVOICE" Add: "Valid until: [DATE]" (typically 30 days) Add: "This is not a tax invoice"
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"
Record each payment separately with reference Update balance_due after each payment On final payment โ mark PAID If partial + overdue โ chase remaining balance only
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: 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
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
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
NEVER reuse or skip numbers (tax audit requirement) Sequential within each prefix If voided, keep the number, just mark status
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
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
CommandAction"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
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.