UI: Billing & payments
Reference for the billing page, change-plan dialog, usage details, invoice detail, the top-up dialog, and post-checkout pages.
Billing page
Route: /billing. Sections on one page:
- Low-balance banner and scheduled plan-change banner when applicable. The scheduled-change banner carries Cancel and Replace actions while the switch is still pending.
- Summary cards — balance, plan, quota. The plan card shows a badge with the target plan and date when a switch is queued.
- Change plan tiles opening the change-subscription dialog.
- Usage period summary linking to usage details.
- Balance history (paginated). Entries are typed — top-ups, usage, renewals, adjustments, Invoice paid, and Invoice correction when a recorded bank payment is later corrected. The ledger is append-only, so a correction is its own signed entry next to the original rather than a change to it.
- Invoices table; each row links to the invoice detail. A Top up action opens the top-up dialog.
Change-plan dialog
Opened from a plan tile. Alongside the target plan it asks when the switch applies — immediately, at the end of the current period, or on a date (bounded by the period end). Applying before the period ends shows how many included checks would be forfeited and requires enough balance for the new plan's full price; a queued switch has neither constraint.
Usage details
Route: /billing/usage/details. A per-scan usage table for the period.
Invoice detail
Route: /billing/invoices/:invoiceId. Invoice fields plus Download
PDF.
Top-up dialog
Methods: bank transfer (issues a proforma; credits on confirmation) and crypto (settles directly). Card is marked coming soon.
Post-checkout
Routes: /billing/topup/success and /billing/topup/cancel. Landing
pages after a payment-provider redirect; they poll the session status.
Billing-blocked modal
Surfaced from Campaigns, Groups, and Rules when balance/quota blocks an action, explaining whether to top up or upgrade.
See the concept guide: Billing.