Refunds and credits
Reverse a payment, issue store credit, or void an unpaid invoice.
Overview
Three related actions: refund (reversing a payment), credit (creating store-credit on the patient's account for later use), and void (cancelling an unpaid invoice). Each leaves an audit trail.
Prerequisites
- Owner, Admin, or Billing Staff role
- A clear reason for the action (always logged)
Steps
Refund a payment. Open the invoice → Payments subsection → click the payment row → Refund. Choose full or partial amount.
Pick refund method. Same as original (default), or different (cash if original was card). Reason required.
Confirm. A negative Payment record (status REFUNDED) is created. Patient balance increases by the refunded amount; cash-up reflects the negative.
Issue store credit instead. From the patient profile Billing tab → Credits → + Issue credit. Amount + reason. Status ACTIVE.
Apply credit to a future invoice. When recording the next payment, the Apply credit option shows available credits. Pick one; balance reduces by the credit.
Void an unpaid invoice. Open the invoice → Void. Reason required. Status flips to VOIDED. Patient is notified. The invoice no longer counts toward outstanding balance.
Cancel a partial payment without refunding. Edit the payment record → Cancel. The amount returns to outstanding; the cancellation is logged. Useful when you collected cash but it turned out to be counterfeit.
Track refunded items in reports. Reports → Financial → Refund report shows volumes by method and reason. Spot patterns (e.g., a procedure repeatedly refunded indicates pricing or quality issues).
Expected outcome
- Refund: negative payment record, balance restored, cash-up reflects
- Credit: positive
Creditrecord on patient, applicable to future - Void: invoice cancelled, removed from outstanding
- All actions audited
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| Can't refund online payment | Paystack handles it | Refund must be initiated through Paystack dashboard or the platform's refund-online flow |
| Credit doesn't appear at next payment | Credit on different patient | Verify the credit's patient ID |
| Voiding a partially-paid invoice rejected | Some payments require full refund first | Refund the payment, then void |
| Reason is mandatory | By design — audit trail | Type something meaningful |
| Refund history missing | Cache | Refresh; the row should appear |