When you sign up for Stripe, Razorpay, or 2C2P, you see one number: 2.9% + 30¢. It feels inevitable, almost transparent. But that single line item hides five separate cost leaks that compound into a loss you never see itemized—and never optimize. Over a year, across recurring payments, international transfers, and refund reversals, that 120 basis point annual drag isn't a fee. It's a tax on your working capital. And unlike a credit card processor, you don't negotiate it; you bleed it silently. Here's what actually costs you, how much each leak compounds, and why the processor you choose matters less than the settlement structure you enforce. The five-leak model: where 2.9% becomes 120 bps A single Stripe transaction at 2.9% + 30¢ is fine. The math breaks when you layer in what happens next: Marked-up base rate. Stripe's published 2.9% + 30¢ is their retail floor. Razorpay undercuts it regionally (2.4% in India for domestic cards). 2C2P sits in the middle. But these are loss-leader rates; add cross-border, alternative payment methods, or failure reversals, and your blended rate balloons to 3.2–3.8%. FX spread on settlement. If you invoice in SGD or MYR but settle to INR, each processor adds 1.2–2.1% on top of the mid-market rate. That's not the bank's markup—that's the processor's spread. Razorpay's domestic API is cheaper partly because it sidesteps FX entirely. Settlement lag drag. Stripe settles in 2–3 days; Razorpay in 1–2. That gap costs you. If you're invoicing ₹10L in recurring revenue monthly and settlement is 3 days slower, you're financing ₹10L/30 × 3 = ₹1L daily—at 12–18% annual cost to borrow. Over a year, that's ₹12–18K in invisible financing cost. Refund friction and partial reversals. A refund doesn't instantly return the fee. Stripe refunds the transaction fee only if the refund posts within 90 days; after that, you eat the 2.9% + 30¢ but return the customer's money. Razorpay and 2C2P have similar windows. A single ₹24K refund outside the window costs you ₹720 in unrecovered fees. Multiply by 10–15 refunds a year in a growing business, and you're looking at ₹7.2–10.8K in sunk fees. Volume-tier cliff misalignment. Stripe's pricing doesn't improve until ₹50L+ monthly processed volume; below that, you pay retail rates. Razorpay's volume tiers kick in at ₹10L. If you're between ₹15–50L monthly, you're overpaying Stripe by 30–50 bps compared to Razorpay. That's ₹4.5–7.5K annually on ₹15–20L monthly throughput. Real TCO: three deal sizes, three processors, one year Let's calculate the actual cost of payment processing for three common business patterns. I'm modeling cash outlay + financing cost + unrecovered fees. Pattern 1: ₹3,000 monthly recurring (₹36K annually) Typical: freelancer, small SaaS, subscription box. Stripe (2.9% + 30¢): Processing: ₹36K × 0.029 = ₹1,044 + (12 × 0.30) = ₹1,044 + ₹3.60 = ₹1,047.60. Settlement lag (3 days, 15% annual borrowing): ₹3K/30 × 3 × 0.15 / 12 = ₹56.25. Refund exposure (assume 5% refund rate, 20% outside 90-day window): ₹36K × 0.05 × 0.20 × 0.029 = ₹10.44. Total: ₹1,114.29 / ₹36K = 3.09% . Razorpay (2.4% + 30¢ for INR/domestic): Processing: ₹36K × 0.024 = ₹864 + ₹3.60 = ₹867.60. Settlement lag (1.5 days): ₹3K/30 × 1.5 × 0.15 / 12 = ₹28.12. Refund exposure: ₹9.07. Total: ₹904.79 / ₹36K = 2.51% . 2C2P (2.65% + 25¢, regional): Processing: ₹36K × 0.0265 = ₹954 + ₹3 = ₹957. Settlement lag (2 days): ₹3K/30 × 2 × 0.15 / 12 = ₹37.50. Refund exposure: ₹9.75. Total: ₹1,004.25 / ₹36K = 2.79% . Gap: Razorpay saves 0.58 percentage points = ₹209 annually. At this scale, it's noise. But workflow matters more than rate: which one integrates with your CRM to avoid manual reconciliation? Pattern 2: ₹12,000 monthly recurring (₹144K annually) Typical: small agency, mid-market SaaS, course platform. Stripe: Processing: ₹144K × 0.029 = ₹4,176 + ₹3.60 = ₹4,179.60. Settlement lag: ₹12K/30 × 3 × 0.15 / 12 = ₹225. Refund: ₹41.76. Total: ₹4,446.36 / ₹144K = 3.09% . Razorpay: Processing: ₹144K × 0.024 = ₹3,456 + ₹3.60 = ₹3,459.60. Settlement lag: ₹12K/30 × 1.5 × 0.15 / 12 = ₹112.50. Refund: ₹36.32. Total: ₹3,608.42 / ₹144K = 2.51% . 2C2P: Processing: ₹144K × 0.0265 = ₹3,816 + ₹3 = ₹3,819. Settlement lag: ₹12K/30 × 2 × 0.15 / 12 = ₹150. Refund: ₹39. Total: ₹4,008 / ₹144K = 2.79% . Gap: Razorpay saves 0.58 pp = ₹835 annually. Stripe costs you ₹637 more than 2C2P. Now it starts to matter. Pattern 3: ₹24,000 monthly recurring (₹288K annually), one ₹8K monthly international payment Typical: regional agency with US + Malaysia client mix, or SaaS with blended currency exposure. Stripe (domestic 2.9% + 30¢, international 3.9% + 30¢): Domestic: ₹288K × 0.029 = ₹8,352 + ₹3.60 = ₹8,355.60. International: ₹96K × 0.039 + (12 × 0.30) = ₹3,744 + ₹3.60 = ₹3,747.60. FX spread (1.8% on settlement): ₹96K × 0.018 = ₹1,728. Settlement lag (3 days): ₹24K/30 × 3 × 0.15 / 12 = ₹450. Refund: ₹288 (1.5% of processed). Total: ₹14,589.80 / ₹384K = 3.80% . Razorpay (domestic 2.4%, international 3.5% + regional FX 1.5