Billing
What it does
Billing tracks invoices, payments, insurance claims, and subscriptions for patients and services at your facility. Patient-specific billing is also linked from the patient record.
Where to find it
- Billing home —
/billing - Invoices —
/billing/invoices - Payments —
/billing/payments - Insurance claims —
/billing/insurance-claims - Subscriptions —
/billing/subscriptions - On a patient —
/patients/[patientId]/billing - Charge services performed —
/patients/[patientId]/billing/charge
📸 Screenshot: invoices list (
billing-invoices).

Common tasks
Find an invoice
- Open Billing → Invoices.
- Search or page through invoices for the active facility/tenant context.
- Open an invoice to see lines, status, and linked payments.
Record a payment
- Open Billing → Payments (or open an invoice and record payment from there when offered).
- Enter amount, method, and reference fields your site requires.
- Save. Successful payments move the invoice toward partially paid / paid according to totals. Failed gateway attempts are stored as failed payments rather than silent errors.
Work an insurance claim
- Open Billing → Insurance claims.
- Create or open a claim linked to the encounter/invoice context your process uses.
- Track status through submission / response fields exposed in the UI.
Manage subscriptions
- Open Billing → Subscriptions.
- Create or update a patient/service subscription (period, amount, status).
- Cancelled or terminal subscriptions cannot be edited further.
Charge a consultation or a procedure
Use this for anything done at the encounter itself: a consultation, a dressing, a review, a minor procedure. Things you order (a lab test, a scan, a prescription) are charged when the order is placed, so they do not belong here.
- Open Patients → [patient] → Billing → Charge services.
- Pick the visit the work belongs to.
- Pick what was done, from the charge master, and set a quantity.
- Save. The screen reports what it added, and what was already charged.
The price is always read from the charge master at the moment you save, so a rate change is picked up without anyone re-editing a form. You never type a price here.
Services that are priced as orders are hidden from this list by default, because charging one here as well would put the same service on the invoice twice. A facility that genuinely prices a service both ways can turn them back on per form.
Open billing from a patient
From Patients → [patient] → Billing, review invoices and related rows for that person only.
Tips & limitations
- Billing screens require billing permissions and an active facility session.
- Some list views historically used demo mocks; against a live backend, empty lists mean no data yet, not a broken menu. If create/save fails with network/API errors, confirm OpenAPI alignment (FE-103) with your administrator.
- Provider payouts / commissions APIs exist on the platform; dedicated cashier UI may be limited until those screens are fully wired.
- Card data is never stored in the app — payment flows use references / gateway responses only.
When something looks wrong
| What you see | What it usually is |
|---|---|
| A charge did not reach the invoice | Charges attach to a visit: check the visit is the one you think |
| "Already charged" when you expected a new line | The same service, visit and quantity was charged before. This is the duplicate guard doing its job |
| A service you expected is missing from the charge list | It is probably priced as an order, so it is charged at ordering instead. Look at the order, not the encounter |
| A scan or lab test never reached the invoice | Those bill when the order is placed, not when the result comes back |
| An invoice total looks wrong | Invoices show billed amounts; payments are recorded separately |
| A currency differs between records | Each record keeps the currency it was created with |
For the causes common to every screen — a missing menu item, an empty list, a refusal — see Why a screen will not work.