L
Leaphealth - OSDocs

Bills, bill types and line items

What a bill contains, how bill types and line-item types are set up, how bills are numbered, and every bill status from draft to refunded.

Every charge in LeapHealthOS is recorded on a bill: an appointment fee, a set of lab tests, medicines from the pharmacy, a package or a registration fee. This page explains what a bill is made of, how administrators set up bill types, how bills are numbered and what each status means. Front-desk staff should read the statuses section; administrators should read all of it.

What a bill contains

A bill belongs to one patient at one centre and has one bill type. It holds:

  • Line items: what is being charged, each with a quantity, unit price, discount, GST and line total.
  • Totals: subtotal, line discounts, bill discount, total tax and the total amount.
  • Payments: every amount collected against it, each with its own receipt.
  • Documents: the invoice, one receipt per payment, and a statement once fully paid. See Invoices, receipts and statements.
  • Remarks: internal notes for staff, up to 500 characters. Patients do not see them.

Where bills come from

Source

How the bill is created

Create Payment screen

Staff add items and select Collect Payment. See Creating a payment and collecting money.

Appointment booking

LeapHealthOS creates and issues the appointment bill when the appointment is booked. See Holds, payment at booking and approvals.

Pharmacy

A prescription is billed from the Pharmacy queue, which builds the bill from the store's batches, or from a task's Bill medicines action, which opens the Create Payment screen with the medicines filled in. See Pharmacy queue, billing and dispensing.

Packages

A package is sold on a package bill. See Packages: lifecycle, redemption and refunds.

Registration

A registration fee is billed when a patient owes one. See Registration fees and estimates.

Bill types

A bill type says what kind of bill it is, for example Consultation, Lab, Pharmacy or Package. Bill types are a tenant list managed in Bill Types under Billing & Payments in the Tenant Registry. See Tenant registry and vocabularies.

Each bill type has:

Setting

What it does

Code

The identifier used on bill numbers, for example PHARMACY.

Label

The name staff see on the Create Payment screen.

Active

Inactive bill types cannot be used for new bills.

Sort order

The order of the bill-type pills on the Create Payment screen.

Visible

Only visible bill types are offered as pills on the Create Payment screen. Hide types that only the system uses.

Line items

The item types offered under this bill type, for example "Consultation" and "Procedure". Each becomes a section where staff add items. If none are set, the screen offers Appointments, Tests and Pharmacy.

Once your tenant has any bill types, every new bill must use an active one. Otherwise it is rejected with "Invalid or inactive bill type".

Bill-type codes LeapHealthOS relies on

Some features look for a bill type with a specific code. When you add these in the Tenant Registry, type the code exactly as shown:

Code

Needed for

APPOINTMENT

Appointment bills created at booking.

PACKAGE

Selling packages on the Create Payment screen.

PHARMACY

Billing prescriptions, from the Pharmacy queue or from a task. Without it, staff see "No Pharmacy bill type is configured".

Your implementation team adds any other bill types that background features need. If a bill type should not be offered to staff on the Create Payment screen (for example the appointment bill type), turn off Visible.

Bill numbers

Each bill gets a number in this format:

{CENTRE CODE}-{BILL TYPE CODE}-{YEAR AND MONTH}-{SEQUENCE}

For example MAIN-APPOINTMENT-202611-000042 is the 42nd appointment bill at the MAIN centre in November 2026.

  • The sequence is counted separately for each centre, bill type and month, and restarts at 000001 each month.
  • The month is taken in the centre's time zone.
  • The sequence is always six digits.

Each payment gets its own receipt number: RCPT-{bill number}-{n}, numbered in the order payments are made on that bill. For example, the second payment on the bill above is RCPT-MAIN-APPOINTMENT-202611-000042-2. Refunds do not get receipt numbers.

Line items

Each line has:

Field

Notes

Item type

The section the line was added under, from the bill type's line items.

Description

What is being charged. Required.

Quantity

A whole number of at least 1.

Unit

Defaults to "nos".

Unit price

Required; cannot be negative.

HSN/SAC

Copied from the service or inventory item, and printed on the invoice.

Discount

A percentage or a flat amount for this line.

GST and tax mode

The GST rate and whether the price includes it.

Line total

After discount and tax.

Where GST comes from:

  • Services: the GST rate and tax-inclusive setting on the service. See How a price is resolved.
  • Medicines and inventory items: the item's own tax settings.
  • Items typed by hand on the Create Payment screen: no GST.

Medicine lines also carry a batch and expiry, are priced at the batch MRP by default and cannot be priced above it. See Pharmacy queue, billing and dispensing.

Discounts

A bill can have a discount on individual lines, a discount on the whole bill, or both. Each is either a percentage or a flat amount, never both at once. A bill-wide discount is shared across the lines in proportion to their value, so GST is always worked out on the discounted amount. The invoice shows line discounts, the bill discount and the total discount separately.

On the Create Payment screen, staff set one discount for everything being billed. If several bill types are billed together, it is shared between them in proportion to each bill's subtotal.

Discounts are locked once the bill is issued.

Bill statuses

A bill's status is worked out from its payments. Staff never set it directly: it changes when the bill is issued, paid, refunded or cancelled.

Bill statuses

From → ToTriggerActorConditionSide effects
DraftPendingCollect Payment or Generate BillFront deskAt least one line and a total that is not negativeInvoice PDF generated and issued notification sent
PendingPaidPayment covers the total, or the total is ₹0Front desk or patientReceipt and statement generated; stock dispensed, package or registration activated
PendingPartially PaidPart paymentFront desk or patientAmount is less than the amount dueReceipt generated
Partially PaidPaidBalance collectedFront desk or patientStatement generated
Partially PaidRefundedRefundAuthorised staff (no screen yet)
PaidRefundedRefundAuthorised staff (no screen yet)Net paid falls below the totalDispensed stock returned on a full refund
DraftCancelledCancel billStaff (no screen yet) or systemA reason is given
PendingCancelledCancel bill, or the appointment is cancelledStaff (no screen yet) or systemNothing has been paidA pending package is cancelled
RefundedCancelledCancel billStaff (no screen yet)Everything paid has been refunded
Draftinitial
Being prepared. Lines and discounts can still change. The Create Payment screen issues bills straight away, so staff rarely see this.
Pending
Issued and waiting for payment. Shown as Pending in Payment tracking.
Partially Paid
Some money collected; a balance is still due.
Paid
The total has been collected.
Refunded
A refund has brought the net amount paid below the total.
Cancelledterminal
Cancelled with a reason. Cannot be paid.

Things to know:

  • Zero bills: a bill whose total is ₹0 is marked Paid as soon as it is issued, because there is nothing to collect.
  • Paid and partly paid bills cannot be cancelled. They must be refunded first.

No screen to cancel or edit an issued bill

There is no button in LeapHealthOS to cancel a bill, change its lines after it is issued, add an adjustment or issue a refund. Unpaid appointment bills are cancelled automatically when the appointment is cancelled. For anything else, see Adjustments, refunds and deposits.

Split invoicing

When Split Invoicing is on in SettingsPlatform ConfigurationSystem Settings on the Billing tab, a bill with lines of several item types is split into one bill per item type. The bills share a bill group:

  • Issuing one bill in the group issues them all.
  • Payment cannot be collected until every bill in the group is issued ("All split bills in this group must be issued before collecting payment").
  • A payment covers the whole group: it pays the bill you started from first, then the older bills in the group.
  • A bill discount is shared across the bills in the group.

See Billing and package settings reference for this and other billing settings.

What happens when a bill is paid

When a bill is fully paid, LeapHealthOS also:

  • dispenses any medicines or inventory items on it from stock. If stock is short, the payment still succeeds, no stock is deducted for that bill and an activity entry "Stock Dispense Pending" is written. There is no screen to complete the dispense later; see Pharmacy queue, billing and dispensing;
  • marks a billed prescription as dispensed;
  • activates a patient whose registration fee was pending;
  • generates the statement and sends the bill-paid notification.

A package bill is different: the package becomes active on the first payment, even a part payment.

Who can do what

Task

Permission

View bills

Read permission on Billing

Create bills

Create permission on Billing

Issue bills

Publish permission on Billing

Record payments, cancel bills, resend notifications

Update permission on Billing

Refunds and approving adjustments

Override permission on Billing

The Payment menu is shown to admins, receptionists and other non-clinical staff, not to doctors, nurses, counsellors, pharmacists or lab staff who are not admins. See Roles, navigation and switchers.

billsinvoicesbill typesline itemsstatusesGST

Was this page helpful?

Last updated on

On this page