Record Payment / Expenditure
💡 Quick Tips
For itemized bills, use the 📄 Invoices tab instead. The invoice's "Mark as paid" button creates the payment record automatically — no need to enter it twice.
M-Pesa Auto: Payments are captured automatically when the webhook is active. Use M-Pesa (manual) only if a payment was missed — the M-Pesa code is required.
Cash In: Cash received from a patient outside of an invoice.
Cash Out: Petty cash expenditure. Record the cashier/staff name handling the spend.
Bank Transfer (out): End-of-day cash sweep to the bank via M-Pesa paybill. Record the cashier/staff name doing the sweep.
Bank Transfer (in): Patient/client paid for services via a direct bank transfer (not the M-Pesa paybill). Capture the patient name and file no.
➕ Add a user
📜 Recent activity
🏥 Hospital Info
Updates apply immediately to the topbar, receipts, and printed invoices. These override the values in .env.
💼 Services / Price list
Common services with default prices. They auto-suggest when typing the description on an invoice line and auto-fill the unit price. Cashier can still type any free-form text for items not on the list.
X-ray ↔ xray ↔ x ray already match automatically (punctuation and spaces are ignored). Use Aliases for things normalisation can't catch — abbreviations like MP ↔ Malaria parasite.📡 Register M-Pesa Webhook
After deploying, register your public URL with Safaricom so M-Pesa payments are automatically captured. Do this once.