---
title: "List billing charges"
method: GET
path: "/billingCharges"
tags: ["billingCharges"]
---

# List billing charges

`GET /billingCharges`

## Query parameters

- `status` 'planned' | 'billable' | 'billed' | 'aborted'
- `type` 'copay' | 'balance' | 'custom-appointment-charge' | 'convenience-fee'
- `source` 'manual' | 'integrator' | 'insurance-verification' | 'fixedAmount'
- `paymentStatus` 'pending' | 'not-paid' | 'paid' | 'partially-paid' | 'refunded'
- `patient` string
- `appointment` string
- `user` string
- `deleted` 0 | 1
- `createdBy` string
- `updatedBy` string
- `createdAt` string, date-time
- `updatedAt` string, date-time
- `page` integer
- `limit` integer
- `_populate` string
- `_select` string

## Response `200`

List of billing charges. When the caller is authenticated as a patient, the `reason` field (staff-only) is omitted from each charge.

- object
  - `response` BillingChargeResponse[], required
    - `_id` string — Luma's internal ID of an object.
    - `user` string — The ID of the root account user.
    - `deleted` 0 | 1 — Flag for logical deletion where 1 means deleted.
    - `createdBy` string — The ID of the user who created this object.
    - `updatedBy` string — The ID of the user who updated this object.
    - `createdAt` string, date-time — The date/time when this object was created.
    - `updatedAt` string, date-time — The date/time when this object was updated.
    - `amount` number — The charge amount.
    - `currency` string — Currency code for the charge.
    - `status` 'planned' | 'billable' | 'billed' | 'aborted' — Lifecycle status of the charge. `planned` = planned but not yet billed, `billable` = confirmed by staff and ready to bill, `billed` = sent to the patient for collection, `aborted` = wrongfully added or aborted.
    - `lastStatusUpdatedAt` string, date-time — When `status` was last changed.
    - `lastStatusUpdatedBy` string — ID of the user who last changed `status`.
    - `type` 'copay' | 'balance' | 'custom-appointment-charge' | 'convenience-fee' — The kind of charge. `copay` = copay amount for the appointment, `balance` = patient balance tied to the appointment, `custom-appointment-charge` = custom value added by staff, `convenience-fee` = a convenience fee charge.
    - `source` 'manual' | 'integrator' | 'insurance-verification' | 'fixedAmount' — Where the charge originated from. `manual` = added by staff, `integrator` = from the EHR, `insurance-verification` = from the insurance verification process, `fixedAmount` = created from a fixed copay rule.
    - `description` string — Public description of the charge, visible to the patient.
    - `reason` string — Internal, staff-only note about the charge. Omitted from patient-facing responses.
    - `appointment` string — ID of the appointment associated with this charge.
    - `patient` string — ID of the patient associated with this charge.
    - `insuranceVerification` string — ID of the insurance verification this charge's copay was derived from, if any.
    - `insurance` string — ID of the patient's insurance saved alongside the insurance verification.
    - `paymentStatus` 'pending' | 'not-paid' | 'paid' | 'partially-paid' | 'refunded' — How much of the charge has been collected.
    - `amountPaid` number — The amount paid toward this charge so far.
    - `billingTransactions` string[] — IDs of the billing transactions associated with this charge.
    - `isCreatedByAI` boolean — Indicates whether this charge was created or suggested by AI.
  - `page` integer, required
  - `size` integer, required

## Other responses

- `401` — Not authenticated
- `403` — Access token does not have the required scope

---

[API](https://skmtc.net/lumahealth/apis/rest-service.md) · [All operations](https://skmtc.net/lumahealth/apis/rest-service/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lumahealth/rest-service/revisions/d3c75c2a2f1d/schema)
