Issue an invoice + credit note
Issue an invoice + credit note
Invoices are normally issued automatically — by the monthly pass and by cycle renewal — but you can also issue them from the lifecycle flows and inspect them via the API and console.
How invoices get issued
-
Monthly pass:
billing:invoice(1st of month, 02:00). Add--org=<id>to limit it to one organization for a manual run:php artisan billing:invoice --org=org_123 -
Cycle renewal:
billing:renewissues the renewal invoice as it advances a period. -
Immediate charges: plan changes, quantity changes, and add-ons issue their prorated invoice through the lifecycle services (
GeneratesInvoices/InvoiceService).
Each invoice is issued by a seller entity of record, which sets its tax outcome and its per-entity legal number. See Invoicing & tax.
List and view invoices
curl -s http://localhost:8000/api/v1/invoices/org_123 \
-H "Authorization: Bearer <token>"
In the console: Invoices (All / Open / Paid / Drafts), a detail page, and a PDF at
/invoices/{invoice}/pdf (rendered with FPDF — pure PHP, no headless browser). The
customer portal serves the same PDF at
/billing/portal/{token}/invoices/{invoice}/pdf.
Issue a credit note
Refunds and credit notes are ledger reversals in the engine, surfaced under the
invoices:refund permission (see the RBAC manifest).
An operator with that permission issues a credit note against an invoice from the
console; the reversal posts to the ledger and the credit note carries the seller
entity's numbering. The reversal mechanics are the engine's — see the engine's
refunds documentation.