Skip to main content
Prvaha’s billing module links directly to appointments for seamless invoicing. When a consultation is complete, generate a pre-filled invoice in seconds, collect payment online via Razorpay or record an offline payment, and track all outstanding and settled amounts from a single billing dashboard — no separate accounting tool required.

Creating an Invoice

Always generate invoices directly from the appointment to auto-populate patient and consultation details. This prevents data entry errors and ensures every invoice is traceable back to a specific visit.
1

Generate from an appointment (recommended)

Open the appointment detail page for a completed visit and click Generate Invoice. Prvaha pre-fills the patient, doctor, and appointment reference automatically.
2

Or create manually

Go to Dashboard → Invoices → New Invoice to create a standalone invoice not tied to a specific appointment. Select the patient and doctor manually.
3

Add line items

Click Add Line Item for each charge. For each line item, enter:
  • Description — e.g., “Consultation Fee”, “X-Ray”, “Blood Panel”.
  • Quantity — number of units (minimum 1).
  • Amount — unit price in INR (paise-level integer, e.g., 50000 = ₹500.00).
  • Discount — per-line item discount amount.
  • Notes — optional note for this line item (max 500 characters).
4

Apply an overall discount (optional)

Set the Discount TypeNone, Percentage, or Fixed amount — and enter the discount value. This is applied across the entire invoice after line items are totalled.
5

Apply GST (optional)

Enter the GST percentage (0–100). If you’ve configured a default tax rate in your organisation settings, it is pre-filled here. Tax is calculated and displayed as a separate line before the final total.
6

Save or issue the invoice

  • Click Save as Draft to keep the invoice editable.
  • Toggle Mark as Issued to move the invoice to ISSUED status and make it ready for payment collection.

Invoice List

Go to Dashboard → Invoices to see every invoice across your clinic. The table displays each invoice’s reference number, patient name, doctor, total amount, and current status. Use the filters to narrow the list by:
  • Date range — filter by invoice creation or issue date.
  • Doctor — view invoices for a specific provider.
  • Patient — look up all invoices for a single patient.
  • Status — filter by DRAFT, ISSUED, PAID, OVERDUE, PAYMENT_FAILED, or CANCELLED.
Click any invoice row to open the full invoice detail page.

Invoice Statuses

StatusMeaning
DRAFTInvoice created but not yet sent. Fully editable.
ISSUEDInvoice issued to the patient and awaiting payment.
PAIDPayment confirmed — online via Razorpay or recorded offline.
OVERDUEInvoice has passed its due date without payment.
PAYMENT_FAILEDAn online payment attempt was initiated but failed.
CANCELLEDInvoice voided. Remains in the system for audit purposes.

Collecting Payments

Prvaha supports both online and offline payment collection.

Online — Razorpay

1

Issue the invoice

Set the invoice to ISSUED status. Prvaha generates a secure payment link powered by Razorpay.
2

Send to the patient

Share the payment link with the patient via email or copy the link from the invoice detail page. Patients can pay from any device without needing a Prvaha account.
3

Patient completes payment

Patients can pay using UPI, credit or debit cards, or net banking through the Razorpay checkout. Razorpay creates an Order on your behalf and processes the transaction.
4

Payment verified automatically

Razorpay sends a payment verification callback to Prvaha containing the orderId, paymentId, and signature. Prvaha verifies the signature and automatically marks the invoice as PAID.

Offline Payments

For patients who pay in person, record the payment directly from the invoice:
1

Open the invoice

Navigate to Dashboard → Invoices and open the relevant invoice.
2

Select Record Offline Payment

Click Record Offline Payment and choose the payment method:
  • Cash (OFFLINE_CASH)
  • UPI (OFFLINE_UPI)
  • Card (OFFLINE_CARD)
3

Add notes (optional)

Enter any relevant notes (e.g., reference number for UPI transfer) — up to 500 characters.
4

Confirm

Click Confirm. The invoice status updates to PAID immediately.

Billing Dashboard

Go to Dashboard → Billing for a high-level overview of your clinic’s financial activity.

Today's Collections

Total payments received today across all doctors and payment methods.

Pending Payments

Total outstanding amount across all invoices in ISSUED or OVERDUE status.

Monthly Revenue Summary

A month-to-date revenue breakdown showing total billed, total collected, and total outstanding — refreshed in real time as payments come in.

Payment Method Breakdown

Breakdown of collections by payment method: Razorpay (online), cash, UPI, and card — giving you visibility into how patients prefer to pay.

Editing and Voiding Invoices

Editing a Draft Invoice

Open any DRAFT invoice and click Edit to modify line items, discounts, GST, or the issued flag. Once an invoice is moved to ISSUED or beyond, line items are locked to protect payment integrity.

Cancelling an Invoice

Open the invoice and click Cancel. Enter an optional cancellationReason — this is recorded against the invoice for audit purposes. The invoice status changes to CANCELLED.
Paid invoices cannot be deleted — only marked as Cancelled for audit purposes. This ensures your clinic maintains a complete, tamper-evident record of all financial transactions.

Tax and GST

Configure your clinic’s default tax rates under Organisation Settings → Billing. Once set:
  • The default GST percentage is pre-filled on every new invoice.
  • Tax is calculated automatically based on the line item totals and any discounts applied.
  • The GST amount is shown as a separate line item on the invoice before the grand total.
  • You can override the rate on any individual invoice if needed.
All tax settings apply clinic-wide. If different service types attract different tax rates, adjust the GST field per invoice at the time of creation.