Skip to content

Finance OPD Bill Cancellation and Refunds

Dr M H B Ariyaratne edited this page May 22, 2026 · 1 revision

OPD Bill Cancellation and Refunds

Introduction

OPD bills can be cancelled (voided) or refunded (cash returned to the patient). These are distinct operations: cancellation voids the entire bill and reverses the payment, while a refund returns specific items or a partial amount. Both operations create an audit trail and, where configured, require supervisor approval.

Navigation

  • Bill Cancellation: Main Menu → OPD → Bill Search → select bill → Cancel
  • OPD Refunds (Cashier): Main Menu → OPD Cashier → Refunds for OPD Bills (privilege: RefundOpdBillsFromCashier)
  • Pharmacy Refunds (Cashier): Main Menu → OPD Cashier → Refunds for Pharmacy Bills (privilege: RefundPharmacyBillsFromCashier)

Bill Cancellation

  1. Locate the bill via OPD Bill Search.
  2. Open the bill and click Cancel.
  3. Navigate to opd/bill_cancel.xhtml.
  4. Enter the cancellation reason.
  5. If a bill cancellation approval workflow is configured, the request is queued for supervisor approval (see Bill Cancellation Approval).
  6. On approval (or immediately if no approval is required): the bill is marked cancelled=true, and the associated payment is reversed.

Important: A cancelled bill is not deleted — it remains in the system with cancelled=true for audit purposes. The bill items and fees remain visible for reporting.

Bill Return / Refund (Cashier)

For returning specific items and refunding the patient:

  1. Navigate to Refunds for OPD Bills → the system opens the refund search page.
  2. Search for the bill by patient or bill number → opd/opd_search_pre_refund_bill_for_return_cash.
  3. Select the bill. The system opens opd/bill_return.xhtml.
  4. Select the items to return (tick each service/item being refunded).
  5. The refund amount is calculated automatically.
  6. Select the refund payment method (how the money is returned to the patient: Cash, card reversal, etc.).
  7. Click Save. A refund bill is created and the return is processed.
  8. Print from opd/bill_return_print.xhtml.

Note: OPD refund payment method selection was fixed in PR #20645 to correctly handle payment method adjustments.

Bill Refund Page

opd/bill_refund.xhtml is an alternative refund entry page for situations where the return amount needs to be entered manually rather than selected by item.

Patient Refund Payment

opd/patient_refund_payment.xhtml — accepts a pending refund payment for a patient, used when the refund was created previously and payment is processed separately.

Pharmacy Refunds

For pharmacy bill refunds:

  1. Navigate to Refunds for Pharmacy Billspharmacy/pharmacy_search_pre_refund_bill_for_return_cash.
  2. Search for the pharmacy bill.
  3. Select items to return, confirm refund amount and method.
  4. Save and print.

Technical Reference

Item Detail
Controller BillController, BillReturnController
Cancel page opd/bill_cancel.xhtml
Return page opd/bill_return.xhtml
Return print opd/bill_return_print.xhtml
Refund page opd/bill_refund.xhtml
Patient refund opd/patient_refund_payment.xhtml
Privileges RefundFromCashier, RefundOpdBillsFromCashier, RefundPharmacyBillsFromCashier
Bill state cancelled=true on Bill entity (not retired)
PR reference #20645 (refund payment method fix)

Clone this wiki locally