Get in touch
WooCommerce

India Payments for WooCommerce — Razorpay, PhonePe and Paytm: UPI, cards and netbanking

Razorpay, PhonePe and Paytm in one WooCommerce plugin: UPI, cards and netbanking on the gateway page, and an order is paid only after the gateway API confirms it. Pro: refunds, a journal and a background check.

Download Free
Pro · one-year licence Staging copies are included. The more sites, the cheaper each one
Compatibility
WordPress 6.2+ · WooCommerce 7.0+ · PHP 7.4+ · HPOS · classic and block checkout · INR currency · plugin languages: English, Hindi (buyer texts)
Licence
a site + a staging copy, annual
Trial
7 days, no card, one per site
Updated
November 2026
Or all 394 Pro modules with All Access — 4 990 ₴ / year ≈ €98

What Free has,
and what Pro adds

The free version works with no time limit. Pro adds the rest of the features in the table.

Feature Free Pro
Razorpay, PhonePe and Paytm in one plugin: switch on one or all three ✔ ✔
UPI, cards, netbanking and wallets on the gateway page ✔ ✔
Test and live mode for every gateway ✔ ✔
An order is paid only after the gateway API answers, never on a return link alone ✔ ✔
Signed Razorpay, PhonePe and Paytm webhooks ✔ ✔
Amount and currency checked before "Paid" ✔ ✔
One payment is never processed twice ✔ ✔
A waiting screen for UPI while the gateway confirms ✔ ✔
WooCommerce does not cancel an order the gateway has already paid ✔ ✔
Classic and block checkout, HPOS ✔ ✔
"Check connection" button for every gateway ✔ ✔
Keys are stored encrypted ✔ ✔
Full and partial refunds from the order — ✔
Refund status follow-up — ✔
Payment journal of the three gateways — ✔
Background check of stuck payments every 15 minutes — ✔
Minimum and maximum order total per gateway — ✔

What it looks like

Choosing a gateway at the block checkout
Block checkout: the buyer picks Razorpay, PhonePe or Paytm.
Waiting for PhonePe to confirm
A UPI payment is still processing: the thank-you page waits and refreshes by itself.
Payment failed (part 1)
A decline: the buyer is on the payment page with a plain message and can try again.

Key points

What the buyer sees

At checkout the buyer sees the gateways you switched on, each with a short line: “Razorpay — UPI, cards, netbanking”, “PhonePe — UPI, cards, netbanking”, “Paytm — UPI, wallet, cards, netbanking”.

What the admin gets

WooCommerce → India Payments shows all three gateways: on or off, the mode, the webhook address for the gateway dashboard and a “Check connection” button.

How much it costs

The base version is free. Pro costs 990 UAH for a one-year licence. A year of updates, technical support and all Pro features.

The trial starts when you ask

A fresh install is the free version, nothing switches on by itself. The “Try Pro for 7 days” button → e-mail → the key right in the window and by e-mail.

One key — a site and a staging copy

Moving the site? Unlink the licence on the old domain and activate it on the new one yourself. A staging copy (staging., dev.) works with the same key and does not take a site slot. For studios — keys for 5 or 25 sites, or unlimited.

Technical requirements

  • WordPress 6.2+, WooCommerce 7.0+, PHP 7.4+.
  • Shop currency INR.
  • A merchant account at Razorpay, PhonePe or Paytm with API keys.
  • The site on HTTPS and reachable from the internet: the gateways send webhooks there.

Version history

v1.0.0 Current November 2026

Razorpay, PhonePe and Paytm, every payment checked with the gateway API, webhooks, a UPI waiting screen; Pro adds refunds, a journal, a background check and amount limits.

Frequently bought with India Payments

All Access Need more? All modules (394) under one licence, new ones are added automatically. 4 990 ₴≈ €98 Learn more →

Full module description

India Payments is a WooCommerce plugin for shops in India that connects three payment gateways: Razorpay, PhonePe and Paytm. The buyer pays on the gateway page by UPI, card, netbanking or wallet, and the money goes to your own gateway account. Switch on one gateway or all three, and the buyer picks one at checkout.

The plugin’s main rule: an order becomes paid only when the gateway API has confirmed the payment. The return link and the webhook only start that check, so a forged return or a lost webhook never turns into a “paid” order without money.

What the buyer sees

At checkout the buyer sees the gateways you switched on, each with a short line: “Razorpay — UPI, cards, netbanking”, “PhonePe — UPI, cards, netbanking”, “Paytm — UPI, wallet, cards, netbanking”. After “Place order” Razorpay opens its payment window, while PhonePe and Paytm take the buyer to their page.

If a UPI payment is still processing, the thank-you page says the shop is waiting for confirmation and refreshes by itself. If the payment fails, the buyer is back on the order payment page with a plain message, the cart is intact and they can try again or pick another method. If the gateway does not answer, the buyer stays at checkout with a message free of technical codes.

What the admin gets

WooCommerce → India Payments shows all three gateways: on or off, the mode, the webhook address for the gateway dashboard and a “Check connection” button. In each gateway’s settings you enter the test and live keys, the webhook secret and the shop name shown in the payment window.

Every payment attempt leaves one order note with the gateway payment ID. If the amount or currency does not match, the order goes on hold with an explanation. In Pro a refund is one button on the order, and the plugin follows its status at the gateway and leaves a loud note if the refund fails.

How it works, step by step

  1. Take the test-mode keys in your Razorpay, PhonePe or Paytm dashboard.
  2. Enter them in the gateway settings and copy the webhook address to the gateway dashboard.
  3. Press “Check connection” and make a test payment.
  4. The buyer picks a gateway and pays on its page.
  5. The plugin asks the gateway API about the payment and checks the amount and currency.
  6. Only then the order becomes paid, with the payment ID in the notes.

Under the hood

  • Razorpay: Orders API and Standard Checkout, HMAC signature on the return and the webhook, an authorised payment is captured by the plugin.
  • PhonePe: PG Standard Checkout v2, the OAuth token renews itself, the webhook is checked by the SHA256 of the username and password.
  • Paytm: initiateTransaction, an auto-submitted form to the Paytm page, checksum and status checked through the API.
  • Every payment attempt has its own reference, so a retry after a decline is never mixed up with the earlier one.
  • A database lock keeps two processes from marking one payment twice.
  • Keys and secrets are stored encrypted and never written to the log.

How to install

  1. Plugins → Add New → Upload Plugin: pick the zip and activate.
  2. WooCommerce → India Payments: switch on the gateways you need and keep test mode.
  3. Paste the keys and the webhook secret, copy the webhook address to the gateway dashboard.
  4. Press “Check connection”, make a test payment, then switch to live mode.
  5. For Pro: paste the key or start the 7-day trial.

The module is not on wordpress.org yet: the free version and Pro are one archive from this page. Without a key it works as the free version.

Questions
about the module

Didn't find the answer? Message us on Telegram and we'll reply within a business day.

@catcode_support Setup, compatibility, activation
Can I switch on Razorpay only?

Yes. Every gateway is switched on separately, and the buyer sees only those that are on.

What if the buyer closes the tab after paying?

The gateway webhook marks the order paid. In Pro the background check every 15 minutes also finds such payments.

Are refunds in the free version?

No, refunds from the order screen come with Pro. In the free version make them in the gateway dashboard.

Does it work in another currency?

No, all three gateways take rupees only, so the shop must be in INR.

What happens after the trial?

Pro features switch off and payments keep working.

Not quite what you are looking for?

We build custom modules for WordPress, WooCommerce, OpenCart and Shopify. Tell us about the task and we'll prepare an estimate.

Order a custom module