October 08, 2026

Blog

9 min read

Payment gateways for an Indian online store: Razorpay, PayU, Cashfree and PhonePe compared

Blog
Payment gateways for an Indian online store: Razorpay, PayU, Cashfree and PhonePe compared

For a new Indian store any of the four works, and the differences are smaller than the comparison pages make them look. All four take UPI, cards, net banking and wallets. All charge in the region of 2 percent on domestic payments. All settle in two to three working days. Razorpay has the clearest documentation and the widest plugin support, which is why "razorpay integration" is searched about 880 times a month in India and the others far less. PayU and Cashfree are worth a call when you have volume to negotiate with or a specific need such as EMI, international cards or payouts. PhonePe's gateway is the newest of the four and leans on its UPI base.

Where you will actually spend time is the part none of the pricing pages cover: verifying a payment on your server, handling the webhook when the customer closes the tab, refunds, and the GST on the gateway's fees. That is most of this piece, from the integrations we have done into Shopify stores and custom PHP stores.

What does a payment gateway charge in India?

The published standard rates are close to each other. Razorpay charges about 2 percent on domestic cards and UPI on its standard plan, and more for international cards. PayU, Cashfree and PhonePe sit around 1.9 to 2 percent. Confirm the current figures on each gateway's pricing page before you sign, because they change and because the standard plan is a starting point, not a ceiling.

What the pricing page shows less clearly:

GST is charged on the fee. At 18 percent, a 2 percent fee becomes about 2.36 percent of the sale. The gateway issues a monthly tax invoice for its fees, and your accountant will want it for input credit.

Method matters. Some plans price UPI, RuPay debit, credit cards and net banking differently, and EMI and international cards cost more. Ask for the full rate card, not the headline.

Volume moves the rate. Once you process a few lakh rupees a month you can ask for a lower rate, and PayU and Cashfree in particular are used to that conversation. Setup fees are usually nil on standard plans; some plans carry an annual charge.

Instant settlement, if you want money the same day, costs extra on every gateway that offers it.

When does the money reach your bank?

Standard settlement is T+2 to T+3 working days, where T is the day the payment was captured, not the day the order was placed. Saturdays, Sundays and bank holidays do not count, so a Friday evening sale often lands on Wednesday. New accounts are sometimes held to a longer cycle for the first weeks, and higher risk categories can carry a rolling reserve.

Two practical points. Refunds are deducted from your next settlement, not from your bank account, so a heavy refund day can produce a very small settlement two days later. And each settlement arrives as one lump for many orders, so you need the gateway's settlement report, matched to order numbers, to reconcile it. A custom store can pull that report through the API and mark orders settled; on Shopify it is a download and a spreadsheet.

Which payment methods does each gateway cover?

Domestic coverage is the same everywhere: UPI (both collect requests and app intent on mobile), Visa, Mastercard and RuPay cards, net banking for the main banks, and wallets.

International cards need separate activation and extra KYC on each gateway, take longer to approve, and are priced higher. If most of your overseas buyers are in the US or Europe, Stripe or PayPal is often the simpler route for that part of the business, alongside an Indian gateway for domestic sales.

EMI on credit cards and cardless EMI are available on Razorpay and PayU, and are worth having for anything priced above a few thousand rupees.

Subscriptions and recurring payments are where the four differ most. Razorpay Subscriptions supports card mandates and UPI Autopay; Cashfree has an equivalent; check PayU and PhonePe for the exact mandate types before you build a plan on them.

Payment links and QR codes are offered by all four and are what most small businesses use for WhatsApp orders before they have a store. Article 24 covers that route.

Payouts (paying vendors, refunding to bank accounts, paying delivery partners) are a separate product: Cashfree Payouts and RazorpayX are the two we have connected.

How does Shopify Razorpay integration work?

In the Shopify admin, open Settings, then Payments, then the third party providers list, and choose Razorpay (India). Paste the Key ID and Key Secret from your Razorpay dashboard, activate, and place a test order. At checkout the customer is sent to Razorpay's hosted page, pays, and is returned to your order confirmation. Refunds issued from the Shopify order screen are passed to Razorpay.

Three things to check. First, use test keys until your first real order, then swap to live keys; forgetting this is the most common reason a "working" store takes no money on launch day. Second, confirm on Shopify's current plan page whether it charges its own transaction fee on top of Razorpay's when a third party gateway is used, and whether Shopify Payments is offered to Indian stores of your type. Third, Razorpay also publishes a Shopify app with its own one page checkout; it is a different product from the payment provider setting, and you should decide which one you want rather than run both.

Cash on delivery stays a manual payment method in Shopify regardless of the gateway.

How does Razorpay integration in PHP work on a custom store?

On a custom store we integrate the API directly, using the official razorpay/razorpay package through Composer. The sequence is the same for every gateway; only the field names change.

1. When the customer confirms the cart, your server creates an order through the Orders API, with the amount in paise as an integer, currency INR, and your own order number as the receipt. Save the gateway's order id against your order.

2. The browser opens the gateway's checkout script with your Key ID, that order id, and the customer's name, email and phone prefilled.

3. On success the checkout hands back a payment id, the order id and a signature. The browser posts these to your server.

4. Your server recomputes the signature: an HMAC SHA256 of the order id, a pipe character and the payment id, keyed with your Key Secret. If it matches, the payment is genuine. Never mark an order paid on the browser's word alone.

5. Separately, the gateway sends a webhook (payment.captured, payment.failed) to a URL on your server. Verify its signature with the webhook secret, then mark the order paid if it is not already.

6. Whichever of steps 4 and 5 arrives first wins; the second must do nothing. That idempotency check, keyed on the payment id, is the part most tutorials skip.

Keep amounts as integers in paise, never floats. Log every request and response with your order number. Turn on automatic capture in the gateway dashboard, because an authorised payment that is never captured is refunded to the customer after a set time and you will not know why the money went back.

What does the Razorpay integration documentation not tell you?

The documentation is good on the happy path. These are the parts we have learned on live stores.

Webhooks are not optional. A customer pays, their network drops before the redirect, and your store never hears step 4. Without the webhook the order sits unpaid while the money sits in your gateway account, and the customer phones you. Set the webhook up before launch, respond with a 200 quickly, and do the work after responding.

The gateway reviews your website before activating live keys. It looks for a visible contact page, a refund and cancellation policy, terms, a privacy policy and real product prices. Missing pages delay activation by days, and it happens on the week you planned to launch.

Refunds take time to reach the customer. A normal refund is typically 5 to 7 working days to the customer's bank; instant refunds cost extra. Partial refunds are supported. Whether the original fee is returned on a refund depends on the plan, so check, because it changes what a return actually costs you.

Failed UPI collect requests time out silently. Build a clear retry path on your payment page and reuse the same order rather than creating a new one on every attempt, or your reports fill with orphan orders.

Keep proof of delivery. Chargebacks on cards are decided on evidence, and a signed delivery record or a courier scan is what wins them.

Which gateway should you pick?

If you want the fewest surprises and the most plugins, start with Razorpay. If you have volume to negotiate with, or need EMI, international cards or vendor payouts, get quotes from PayU and Cashfree as well and compare the full rate cards. If your customers pay almost entirely by UPI, PhonePe is worth a look, with the newer product's shorter track record in mind.

Many stores we build run two gateways: one primary and one as a fallback for the day the primary has an outage. On a custom store that is a configuration switch; on Shopify it is a second provider the customer can choose.

We integrate all four into Shopify stores and custom stores. If you tell us what you sell and who buys it, we can say which gateway and which setup fits, and it will be part of the written brief before any quote.

Questions

Which payment gateway has the lowest fees in India?

On standard plans they are within a fraction of a percent of each other, around 2 percent domestic plus GST on the fee. The lowest real rate comes from negotiating on volume, not from picking a brand.

Can I use Razorpay on Shopify in India?

Yes. Razorpay is listed as a third party payment provider for Indian Shopify stores. Enter your live keys under Settings, Payments, and confirm whether your Shopify plan adds a transaction fee for third party gateways.

How long does Razorpay integration take on a custom PHP site?

The code is a few days of work inside a larger build, including order creation, signature verification, webhooks and refunds. The gateway's own website review and KYC usually take longer than the code, so start that early.

Do I pay GST on payment gateway fees?

Yes, 18 percent on the fee, not on the sale. The gateway issues a tax invoice for it each month, and a registered business can claim it as input credit.

What happens if a customer pays but the order shows unpaid?

Usually the redirect failed after payment. The webhook from the gateway should mark the order paid within minutes; if there is no webhook set up, check the gateway dashboard for the payment id and mark the order by hand, then set the webhook up.

Comments

No comments yet. Sign in above to write the first one.