GST + Mixed Payments: How DRP-OS Handles Cash, UPI, Card & Partial Payments
Real clinic billing is messy: consultation is GST-exempt, medicines aren't. Patients pay part in cash, part on UPI, sometimes finish next visit. Here's how a proper system handles it.
Generating a clean bill for an Indian clinic visit is harder than it looks. Why?
- Doctor consultation is GST-exempt (SAC 9993)
- Medicines dispensed are GST-taxable (5%, 12%, or 18% depending on category)
- Courier charges may be separately billed
- The patient might pay ₹500 in cash + ₹500 via UPI
- Or they pay ₹500 today, promise to pay the rest next visit
Most clinic software handles one or two of these. None handle all of them naturally. DRP-OS does. Here's how.
The visit-based billing model
In DRP-OS, every interaction with a patient is a visit. A visit has multiple components, billed and tracked separately:
counter_service— quick walk-in service (medicine pickup, dressing, injection) without full consultationcounter_price— flat fee for that counter serviceclinic_visit_items— itemized medicines and services with quantities and costssubtotal— sum of medicine costsextra_medication_charges— additional medication costs added manuallycourier_charges— delivery charges if medicine is being courieredgrand_total— final amount dueamount_paid— amount actually paid so farpayment_status— unpaid / partial / paid / refunded
Each visit can have multiple clinic_visit_payments entries — meaning multiple payment events tracked separately.
GST handling — the right way
India's GST law for medical services is specific:
- Doctor consultation (SAC 9993) — GST-exempt
- Medicines dispensed — 5%, 12%, or 18% depending on the specific medicine
- Cosmetic procedures, hair transplant — 18% GST
- Hospital rooms above ₹5,000/day — 5% GST
DRP-OS handles this:
- Consultation/counter service charges flow through as exempt
- Each medicine in
clinic_productshas its own GST percentage - The bill auto-splits CGST + SGST (if same-state) or IGST (if interstate)
- The PDF invoice shows the breakup with HSN codes
- Your GSTIN is configured once in
clinic_settingsand appears on every invoice
You don't calculate GST math by hand. The system does it correctly the first time.
Mixed payment methods
The payment method enum supports:
cash— physical cashupi— PhonePe, GPay, BHIM, Paytm UPIcard— debit or credit cardbank_transfer— NEFT/IMPS/RTGScheque— for older patients who still write chequesother— vouchers, insurance reimbursement, anything else
A single visit can have multiple payment entries. For example:
- Patient owes ₹1,200 grand total
- Payment #1: ₹500 cash (recorded at visit)
- Payment #2: ₹700 UPI (recorded same day, on PhonePe transfer confirmation)
- System sees
amount_paid = 1200, setspayment_status = paid
Or, the patient pays partially:
- Patient owes ₹1,200
- Payment #1: ₹500 cash today (recorded)
amount_paid = 500,payment_status = partial- 2 weeks later, patient returns for follow-up
- Payment #2: ₹700 UPI (cleared)
amount_paid = 1200,payment_status = paid
The system tracks who recorded each payment (recorded_by) and when (paid_at). For dispute resolution, you have a clean audit trail.
Why partial payments matter in India
In tier-2 and tier-3 cities, payment flexibility is essential:
- Daily-wage earners may not have full payment on day of visit
- Elderly patients on pensions pay around the 1st of the month
- Family members handle payment separately
- Insurance reimbursements clear days/weeks later
A rigid "pay full or no service" model loses these patients. A proper partial-payment model keeps them — with clear tracking so you don't forget who owes what.
Counter service for walk-ins
Sometimes a patient walks in without an appointment:
- Dressing change after surgery
- Injection (B12, vitamin D, etc.)
- Quick medicine pickup
- BP / sugar check
You don't need a full visit form for these. DRP-OS supports counter service:
- Patient walks in, you mark
counter_service = 1 - Charge a flat counter price (configured per clinic in settings)
- Skip diagnosis / prescription fields if not needed
- Track payment in the same payment system
This means your "quick services" don't get lost in the books. Every rupee is tracked, every patient interaction has a record.
What the invoice PDF shows
The final invoice PDF includes:
- Clinic name, address, GSTIN, contact
- Invoice number (sequential, no gaps)
- Patient name and basic details
- Date of service
- Itemized list of medicines/services with HSN codes
- Subtotal
- CGST + SGST split (same-state) or IGST (interstate)
- Courier charges (if applicable)
- Grand total
- Amount in words
- Payment history with methods and dates
- Balance due (if any)
- Your digital signature
This format meets all 14 mandatory GST invoice requirements. You can print it directly or share via WhatsApp. The patient gets a tax-compliant bill they can use for insurance reimbursement or company medical claims.
Courier delivery built in
If your clinic delivers medicine to patients (common in metro cities), DRP-OS handles courier billing:
- Default courier charges configured in
clinic_settings.courier_default_charges - Add courier charge as a line item per visit
- Track delivery status separately from payment status
Try it
Full visit-based billing with GST, mixed payments, partial payments, counter service, and courier — all included in DRP-OS Clinic from the starter plan.
Start your 24-hour free trial. WhatsApp +91 9560793054 for questions.
Try DRP-OS Clinic free for 24 hours
Built for Indian solo doctors. GST invoices, Hindi prescriptions, patient records. ₹1,499/month. No credit card.
Start free trial →