> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ndumed.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Charges, price lists and invoices

> How NduMed captures charges automatically, how to maintain the price list, generate an invoice with discounts and HMO cover, and get large discounts approved.

NduMed adds charges to a patient's bill automatically as care is delivered. A cashier then turns the bill for an encounter into an invoice, applying any discount and HMO cover, and takes payment.

## How charges are captured

There is no manual charge entry. Charges are posted by these events:

| Event | Charge | Price comes from |
| - | - | - |
| OPD or ER encounter opened | Consultation | Price list item `CONSULT-GP` |
| Lab test ordered | The test | Lab test catalogue price |
| Drug dispensed | Unit price x quantity | Formulary unit price |
| Each completed inpatient day | Bed day | Bed's daily rate |

If there is no price for a charge, it is marked **Needs pricing**. An invoice cannot be generated while any charge on the bill needs pricing. Add the missing price, then try again.

## The price list (administrators)

Open **Billing** in the Billing section of the menu.

* **Add a chargeable item**: **Code**, **Name**, **Category** (Registration, Consultation, Procedure, Laboratory, Pharmacy, Imaging, Ward or Other), **Amount** and **Effective from**.
* **Edit / change price**: prices are effective-dated; **Price history** shows every change.
* **Deactivate** an item you no longer charge.
* **Import CSV** with columns `code,name,category,amount`. The whole file is applied or nothing is; imported prices take effect today.

> [!WARNING]
>
> New hospitals start with items such as `REGISTRATION`, `CONSULT-GP`, `CONSULT-SPEC`, `DRESSING` and `INJECTION` but no prices. Set at least the `CONSULT-GP` price before the first consultation, or every outpatient bill will need pricing.

## View the bill

The bill for an encounter lists its **Captured charges** and has a **Generate invoice** button. You reach it from the encounter's invoice pages, or at `/encounters/<encounter number>/bill` on your hospital's address.

## Generate an invoice

**1. Select Generate invoice**

The form shows the hospital's **Tax rate** and the discount level above which approval is needed.

**2. Apply a discount (optional)**

Enter **Discount %** (0 to 100) and a **Discount reason**. The reason is required whenever there is a discount.

**3. Choose the payer**

Leave **Payer (HMO)** as self-pay, or choose the patient's HMO and **Package**. See [HMOs and claims](https://docs.ndumed.co/billing/hmo.md).

**4. Generate**

The invoice is **Issued** with the next invoice number (for example `INV-000123`), or waits for approval if the discount is above the threshold.

## Discount approval

A discount above the approval threshold (10% by default) puts the invoice in **Pending approval**. Someone else with approval rights (Administrators by default) opens **Discount approvals**, and either:

* **Approves** it: the invoice is issued and gets its number; or
* **Rejects** it: the invoice is voided. Generate a new one with an acceptable discount.

You cannot approve your own discount.

## Invoice statuses

| Status | Meaning |
| - | - |
| Pending approval | Discount waiting for a second person |
| Issued | Final; can take payments |
| Void | Rejected; cannot take payments |

Invoice numbers have no gaps and are assigned at the moment of issue. Open an invoice to view it or **Print** it; reprints are marked **DUPLICATE**.

> [!NOTE]
>
> The tax rate (0% by default) and the discount approval threshold (10% by default) are set when your hospital is set up. To change them, contact NduMed support.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.