aios-billing

Reports MRR and invoice ledger and drives invoices through manual lifecycle transitions.

1|Updated Jul 8, 2026
One-click install
npx skills add https://github.com/codesofadan/danyals-aios --skill aios-billing-codesofadan
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: aios-billing
Source: https://github.com/codesofadan/danyals-aios/tree/main/.claude/skills/aios-billing
Command: npx skills add https://github.com/codesofadan/danyals-aios --skill aios-billing-codesofadan

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Agency operators need accurate answers about recurring revenue, outstanding invoices, and collected cash without conflating three different financial questions, and they need to move invoices through a manual lifecycle (draft, finalize, mark paid, void, refund) without a payment gateway. ## Core Features & Use Cases - Revenue Reporting: Reads MRR from active client subscriptions, open and past-due invoice counts, and paid-only collected revenue bucketed by month, keeping each metric distinct. - Invoice Lifecycle Management: Creates draft invoices with line items, finalizes them, marks them paid, voids them, or refunds them, enforcing the legal state machine and frozen-amount rules for issued invoices. - Use Case: An owner asks "what is our MRR and what has Client X been billed?" The Skill reads /billing/stats for MRR, lists the client's invoices, and reports both as separate facts, then finalizes a new retainer invoice on request. ## Quick Start Ask the assistant to report the agency's MRR and outstanding invoices, or to create and finalize an invoice for a named client.

Frequently Asked Questions about aios-billing

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I check MRR and outstanding invoices for my agency?▼

Query the billing stats endpoint, which returns MRR computed from active client subscriptions plus open and past-due invoice counts. MRR is never derived from the invoice ledger, so the two numbers answer different questions and may not agree.

How do I create and finalize an invoice for a client?▼

Resolve the client name to a client_id, then POST a draft invoice with line items. Edit amounts only while it is a draft, then call the finalize endpoint to move it from draft to open, which freezes all amounts permanently.

Can I edit an invoice after it has been issued?▼

No. Once finalized, an invoice's amounts, dates, and payer are frozen by both the application and a database trigger. A wrong issued invoice must be voided and re-raised, never edited.

Does the billing system integrate with Stripe or a payment gateway?▼

No. There is no payment gateway, charge, dunning, or webhook. Marking an invoice paid is a manual operator record that money arrived; it does not move money or generate payment links or receipts.

Why did I get a 409 error when updating an invoice?▼

A 409 means either the invoice is not a draft and cannot be edited, the requested status transition is not on the legal state machine, or the invoice changed concurrently. Re-read the invoice status and only attempt a legal next move.

Who is allowed to create or modify invoices?▼

All billing mutations are restricted to owner/admin roles; even managers are excluded. Reading reports requires the view_reports permission plus the billing feature grant, which is not included in standard role templates.