Payments & insurance

Once a bill is invoiced, the money still has to arrive — some from the patient at the cash desk or by M-Pesa, and the larger share from insurers and the NHIF/SHA scheme through claims. This page covers the back half of the revenue cycle: collecting the patient payment, clearing high-cost services with prior authorisation before they are delivered, submitting insurance claims, working denials and appeals, ageing the receivables by payer, and writing off what cannot be collected. It is written for cashiers, billing officers and the revenue-cycle manager who owns collections.

Where to find it

  • Billing → Prior Auth → PA Requests — pre-service authorisations; plus Prior Auth → Dashboard and Prior Auth → Appeals.
  • Billing → Prior Auth → Configuration → Auto-Fire Rules and Coverage Requirements (CRD) — automation and payer rules behind prior auth.
  • Billing → RCM → Denials → Denials and Denial Reasons — rejected claims and their reason codes.
  • Billing → RCM → Receivables → A/R Aging and Write-Offs — outstanding balances by payer and approved write-offs.

Patient payments and M-Pesa receipts are taken from the bill or the cash session. Insurance claims and pre-auth are reached from the patient's visit and bill.

Before you start

  • The bill must be Invoiced (see Charges & bills) before a payment posts cleanly.
  • For mobile money, the M-Pesa shortcode and environment must be configured.
  • For tax-compliant receipts, the eTIMS device configuration must be active.
  • The patient's insurance scheme (NHIF/SHA or private) must be linked so the insurer share and claim can be raised.

Collecting a patient payment

A payment (hms.payment) records a collection of the patient share against a bill. It captures the amount, a method, a reference number, who received it and the cash session it belongs to, and moves Draft → Posted (or Cancelled).

  1. Open the patient's invoiced bill and start a payment.
  2. Choose the Method: Cash, M-Pesa, Card, Cheque, Bank Transfer or Insurance Settlement.
  3. Enter the amount and a reference number (bank, card or M-Pesa reference).
  4. Post the payment; the bill's Paid Total rises and the Balance Due falls. When the patient share reaches zero, the bill moves to Paid.

M-Pesa collection

For M-Pesa, an STK prompt is pushed to the payer's phone and the result is tracked as an hms.mpesa.transaction that runs Pending → Initiated → Callback Received → Successful, or ends in Failed, Timeout, Reversed or Cancelled. A successful transaction reconciles back to the payment so the bill balance updates automatically.

Warning — Never key in an M-Pesa payment as Posted before the transaction shows Successful. A Timeout or Failed result means no money arrived even though the prompt was sent.
M-Pesa stateWhat it means
PendingCreated but not yet sent to the gateway
InitiatedThe STK prompt has been pushed to the phone
Callback ReceivedThe gateway returned a result, being processed
SuccessfulMoney confirmed; reconciles to the payment
FailedThe transaction did not complete
TimeoutNo response in time; treat as not paid
ReversedA completed payment was reversed
CancelledWithdrawn before completion

Transaction types seen on these records are STK Push, C2B Online, C2B Offline, B2C, Reversal and Balance Query — surfaced under Invoicing → Billing → M-Pesa → Transactions with ready-made Successful, Pending, Failed / Timeout and Unreconciled C2B filters.

Payment fieldMeaningRequired
AmountSum being collectedYes
MethodCash, M-Pesa, Card, Cheque, Bank Transfer, Insurance SettlementYes
Reference NumberBank, card, M-Pesa or receipt referenceNo
Received ByThe staff member taking the paymentNo
Cash SessionThe shift the cash belongs toNo

Prior authorisation

High-cost services must be cleared with the payer before they are delivered, or the claim will be denied. A PA Request (hms.priorauth.request) carries a service description, a category (High-Cost Imaging, Specialty Rx/Biologic, Surgery/Procedure, Inpatient Admission, DME or Other), the diagnoses and clinical justification. It runs Draft → Submitted → Pending Payer Review → Approved, or Denied (then Appealed) or Cancelled. On approval it stamps an authorisation number and a validity window.

  1. Raise the request — manually, or automatically when an Auto-Fire Rule matches the source document and cost threshold.
  2. Attach the clinical justification and diagnoses, then Submit.
  3. On payer review, Approve records the authorisation number used on the bill; Deny records the denial reason.
  4. If denied, raise an Appeal (Level 1 Reconsideration, Level 2 Peer Review or Level 3 External Review).
Tip — Use Coverage Requirements (CRD) to record what each payer requires for a service, and Auto-Fire Rules to raise the request the moment a qualifying lab, radiology, prescription or dispense order is created — so authorisation is never forgotten at the point of care.
PA request stateWhat it means
DraftRequest created, not yet sent
SubmittedSent to the payer
Pending Payer ReviewAwaiting the payer's decision
ApprovedAuthorisation number and validity window stamped
DeniedRefused, with a denial reason
AppealedA denial is being contested
CancelledWithdrawn before a decision

Insurance and NHIF–SHA claims

The insurer share is recovered as an insurance claim (hms.insurance.claim), which can be submitted electronically to NHIF/SHA. A claim moves through a full lifecycle: Draft → Submitted → In Review → Approved or Partially Approved, then Paid or Partially Paid; it can also go Rejected, Appealed, Closed or Cancelled. Claims may be grouped into a claim batch (Draft → Ready to Submit → Submitted → Reconciled → Closed) for bulk submission and remittance reconciliation.

Denials, appeals and write-offs

When a payer rejects or short-pays, log a denial (hms.rcm.denial) against the claim with a reason code categorised as Eligibility/Coverage, Authorization/Pre-Cert, Coding/Documentation, Medical Necessity, Duplicate, Timely Filing, Bundling or Benefit Maximum. A denial runs Draft → Open → Appealed → Overturned or Upheld/Written-off → Closed.

Balances that cannot be collected are removed through a write-off (hms.rcm.write.off), typed as Contractual Adjustment, Bad Debt, Charity Care, Small Balance or Administrative. Write-offs require approval — they move Draft → Submitted → Approved → Posted, or Rejected — so no balance leaves the books unreviewed.

Write-off typeWhen to use it
Contractual AdjustmentThe difference between list price and the payer's contracted rate
Bad DebtA patient balance judged uncollectable
Charity CareA balance forgiven under the charity policy
Small BalanceA residual too small to pursue
AdministrativeA correction or goodwill adjustment

The approval chain is the same regardless of type: a write-off runs Draft → Submitted → Approved → Posted, or is Rejected. Only an RCM Manager can approve, and the approver and approval date are stamped on the record.

A/R aging

A/R Aging buckets every outstanding balance by payer into 0–30, 31–60, 61–90, 91–120 and 120+ days, with a total outstanding per payer. Work the oldest buckets first; ageing balances are the ones most likely to fall outside timely-filing limits and become write-offs.

Dashboards & roles

The RCM Dashboard reports Days in A/R, Denial Rate, Clean Claim Rate, Collection Rate, total A/R and total denied over 90 days. Access follows the same split as the rest of Billing: cashier (facility) for collecting payments in their own facility, manager (all) for cross-facility collections, and RCM User / RCM Manager for denials, write-off approval and the dashboard.

Tips & troubleshooting

ProblemFix
Bill balance not clearing after M-PesaCheck the M-Pesa transaction state — only Successful reconciles.
Claim denied for Authorization/Pre-CertNo approved PA Request existed at service time — add an Auto-Fire Rule.
Old balances piling up in 120+Work A/R Aging oldest-first; appeal or write off before timely-filing lapses.
Write-off will not postIt needs approval — it must pass Submitted → Approved before Posted.
Was this page helpful?