generate_invoiceAccess:
owner or admin + secure session (passkey re-auth)
Input:
{ "billingPeriod": "2026-03" }
Process:
- Check for existing invoice for this period (409 if duplicate —
invoices_instance_periodindex) - Aggregate
fee_ledgercollected fees for the period byfee_type - Reject 422 if no collected fees
- Increment
invoice_seq, generate number - Insert
invoices+invoice_line_items(one per fee type)