List and get
GET /api/v1/bills/list filters by bill date range (startDate / endDate).
GET /api/v1/bills/{billingId} includes ledger fields when Xero is connected: externalId, externalNumber, externalUrl.
GET /api/v1/bills/{billingId}/pdf downloads the OnboardMe invoice PDF.
Create an adhoc bill
POST /api/v1/bills creates a bill for an Active client only. Write access required. It does not itself push to Xero.
When Xero is connected, look up GET /api/v1/bills/ledger/status|accounts|tax-rates|branding-themes first. Proposal-linked invoices belong on POST /api/v1/proposals, not this route.
Recurring billing
GET /api/v1/recurring-billing/list, GET /api/v1/recurring-billing/{recurringBillingId}, and GET .../runs.
Ledger invoice numbers appear on generated bills, not on the schedule row itself.