Per-minute billing in INR: how UPI-first pricing changes cloud margins
Why CloudNx bills by the minute, in rupees, with GST. The economics, the ops trade-offs, and what it means for your dev sandbox cost.
Most "Indian cloud" pitches are a marketing veneer over a USD bill. The control panel says ₹699 but the invoice arrives in dollars, the GST is ad-hoc, and a 3% FX swing eats into your margin every quarter. We started CloudNx because that gap between "branded for India" and "actually billed for India" was the most fixable thing in the stack.
Per-minute is the easy part
Hourly billing is a holdover from when virtualisation was new and operators feared boot storms. Modern hypervisors don't care. We bill in 60-second increments because 99% of dev sandboxes are idle for 16 hours a day, and the difference between "billed for 8 hours" and "billed for 9 hours" is meaningful when your monthly cloud spend is ₹3,000, not $3,000.
The accounting is straightforward. Every state change (instance start, stop, resize, snapshot) emits an event into Postgres. A worker rolls the events into per-minute usage rows. A nightly job aggregates yesterday's usage into the customer ledger. End of month, the ledger gets multiplied by the published rate and turned into a Razorpay invoice.
INR-native is the hard part
Pricing in INR sounds trivial. It is not. You have to:
- Settle GST at 18% on every invoice with our GSTIN and the customer's (if provided), so they can claim ITC.
- Generate compliant invoices — sequential numbering, tax breakdown, place of supply rules for inter-state vs intra-state.
- Handle refunds with reversed credit notes that the GST portal accepts.
- Reconcile every Razorpay settlement against the invoice ledger, end of day, automated. Manual reconciliation breaks at 50 customers.
- File GSTR-1 monthly with the right summary; we generate a CSV.
None of this is hard individually. Doing all of it correctly, from day one, with a small team — that's the moat. By the time a US-headquartered cloud bothers to ship localised invoicing for India, you've built a relationship with customers who won't switch back.
What it costs us
Margin. Razorpay's transaction fee on INR is higher than Stripe's on USD. UPI is sub-2% but credit card is closer to 2.5%. Multiply by per-minute granularity and you have lots of small transactions with the same overhead.
We absorb this. The customer sees a clean per-minute price. The Razorpay fee is a cost of doing business in India in 2026, same as electricity for the data centre.
What it gives us
Customers who don't have to translate. A 28-year-old founder in Bangalore can read our pricing page, sign up, get an invoice that her CA recognises. That's worth more than the margin we lose on payment processing.