🎉 Celebrate with 10% OFF on All Products! Use Code: GFEX10 Or Buy Any 2+ Items for 30% OFF with Code: GFEX30!
Guides & Tutorials November 8, 2026

How to Take Paytm Payments with Gravity Forms (UPI, Cards, Net Banking, Wallet)

GravityExtra
How to Take Paytm Payments with Gravity Forms (UPI, Cards, Net Banking, Wallet)

Paytm is one of the best-known names in Indian payments, and the Paytm Payment Gateway lets businesses take UPI, card, net banking and Paytm wallet payments on a page hosted by Paytm. If your class bookings, orders, registrations, fees or donations already run on Gravity Forms, you do not need a full shop to take those payments: the Gravity Forms Paytm Premium Add-on connects your forms to your own Paytm merchant account. The customer fills in the form, pays on the Paytm page and comes back to your confirmation, and the entry is marked as paid only after the result has been verified with your merchant key and read back from Paytm. This guide shows how to set it up step by step, how to test it in the Paytm staging environment, and what happens behind the scenes.

Why take Paytm payments through Gravity Forms?

A form is often the most natural way to sell something that is not a product on a shelf: a seat in a class, a consultation fee, an event pass, a school or coaching fee, a deposit for a custom order. Gravity Forms already handles the fields, the conditional logic and the total. What it needs is a safe way to collect the money in rupees. With the Paytm Payment Gateway your customers pay the way many of them already pay every day, by UPI from their phone, with their Paytm wallet, or by card or net banking, on a page hosted by Paytm. With the add-on you keep everything else in Gravity Forms: the entry, the notes, the notifications and the refunds.

  • Customers pay on the Paytm page, so UPI PINs, card numbers and bank logins are never typed into your website.
  • The amount is the total Gravity Forms calculated on your server, in rupees, to the paisa.
  • Entries show the real payment status, read from Paytm, not what the browser says.
  • Refunds are one click away on the entry screen.

Forms that work well with Paytm

  • Classes and workshops: seats, materials and options with quantities.
  • Consultations and services: a fixed fee or a calculated amount for a booking.
  • Coaching, schools and training: admissions, course fees, exam and event registrations.
  • Clubs, trusts and associations: memberships, event passes and donations (choose Donations in the feed).
  • Made-to-order products: options that change the price, paid before work starts.

What you need

  • Gravity Forms 2.9 or newer, with the currency set to Indian Rupee (the add-on adds it to the Gravity Forms list).
  • A Paytm Payment Gateway merchant account: the staging MID and merchant key from the Paytm dashboard (Developer Settings → API Keys), and later the production ones once Paytm has activated your account.
  • The Gravity Forms Paytm Premium Add-on and a license: one site $49 a year, five sites $69 a year, unlimited sites $199 a year.
  • A site that Paytm can reach over https for webhooks (any public website).

Step 1: Install the add-on and connect your account

Upload and activate the add-on, then open Forms → Settings → Paytm and activate your license. Leave the mode on Test. In the Paytm dashboard open Developer Settings → API Keys and copy the staging MID and merchant key into the Test fields; the website name is usually WEBSTAGING. When you save, the add-on sends Paytm a harmless signed status request with them; the connection line turns green, and the key is stored encrypted and shown masked from then on. Then choose Indian Rupee as the currency in Forms → Settings.

Paytm settings: Test or Live mode, the MID, masked merchant key and website name of each mode, the rupee currency line, the connection line and the webhook address
Settings: choose Test or Live and paste the MID and merchant key of each mode. Keys are checked with Paytm and stored encrypted.

Next, set up the webhooks. Copy the webhook address from the settings page and enter it in the Paytm dashboard as the Payment Status URL and as the refund notification URL. There is no password to set: Paytm signs every webhook with your merchant key, and the add-on refuses any webhook whose signature does not match.

Step 2: Build the form

Build the form as you would for any payment: product fields with prices and quantities, options, a total, and the customer’s name, email and mobile number. The mobile number and email are optional, but when you map them they are sent with the transaction for the Paytm page. Change the submit button text to something like Continue to payment so customers know what comes next.

A pottery class booking form with quantities, the customer name, email and mobile number, and the total in rupees, with the Continue to payment button
The form: Gravity Forms works out the total in rupees; the customer pays it on the Paytm page.

Step 3: Add a Paytm feed

In the form settings open Paytm and add a feed. Pick Products and Services (or Donations), the form total as the amount, and map the mobile number and email. The payment comment is sent with the transaction and shown in your Paytm dashboard; merge tags such as the form title and the entry number work. Tick the option to send form notifications only after the customer has paid, so your team does not start work on unpaid bookings.

The Paytm feed: products and services with the form total, the mobile number and email mapping, the payment comment with merge tags and notifications after payment
The feed: map the mobile number and email and write the payment comment.

Step 4: Test in the staging environment

Open the form on your site, fill it in and continue to payment. On the Paytm page, pay with one of the test methods from the Paytm test credentials documentation. You come back to your confirmation, and the entry shows Paid with a Test badge. Try the other paths too: a failed test payment should give Failed, and leaving the page without paying should end as Cancelled. Then refund part of the paid test payment from the entry screen and watch it move from in progress to completed.

An entry paid through Paytm: the Paytm box with the status, amount, order ID, MID, payment mode, Paytm transaction and bank reference, the Refresh status button and the refund form, and the entry notes
The entry: status, order ID, payment mode, Paytm transaction and bank reference, read back from Paytm, with refunds one click away.

What happens behind the scenes

When the form is submitted, the add-on starts the Paytm transaction from your server with the total as a rupee amount with two decimals, a unique order ID, your website name and a signed callback link. Every request carries the Paytm checksum: a SHA-256 hash of the request with a random salt, encrypted with your merchant key, so Paytm can tell it really comes from you and was not changed on the way. Paytm answers with a short-lived transaction token, and a small page of your site posts the order and the token to the Paytm payment page.

After the payment, four things can update the entry: Paytm’s post back to the callback link, the Payment Status webhook, a status check that runs every five minutes, and Refresh status on the entry. None of them decides on its own. The callback and the webhook must carry a checksum that matches your merchant key, the order ID and your MID, or they are refused. Then the add-on always asks Paytm for the transaction status, and the entry is marked Paid only when Paytm says the transaction succeeded for the right amount, with the entry’s order ID and your MID. A repeated webhook is dropped, so a payment can never be completed twice.

A worked example

A pottery studio in Bengaluru sells three-hour wheel-throwing classes at 1,250.00 rupees and glaze-and-firing add-ons at 499.00 rupees through a Gravity Forms booking form. Ananya books two seats and one add-on. Gravity Forms shows a total of ₹2,999.00; the add-on starts a Paytm transaction for “2999.00” INR with the comment “Pottery class booking #412” and her mobile number. She pays by UPI on the Paytm page and lands back on the studio’s confirmation: “Thank you! Your class is booked and paid.” Behind the scenes, Paytm’s result was checked with the studio’s merchant key and the entry was marked Paid only after the Transaction Status API confirmed 2999.00 rupees for that order. The held “Booking received” email went to the studio at that moment, not before. A week later Ananya can only come alone, so the studio refunds one seat, 1,250.00 rupees, from the entry screen; the refund shows as in progress, and when Paytm reports it successful the entry records the refund and stays Paid for the rest.

How it differs

  • Nothing is trusted from the browser, the callback or the webhook body: the checksum is verified first, then every result is read back from Paytm and checked against the entry before it changes.
  • Every request is signed with the Paytm checksum, implemented inside the add-on, with no extra library loaded on your site.
  • The MID and merchant key are checked with Paytm when you save, and every entry keeps the mode (staging or production) it was created in.
  • Refunds are checked against Paytm first, protected by a one-time form, reserved while Paytm processes them and followed until they complete.
  • Gravity Forms gets a proper Indian Rupee, so ₹1,250.00 is read as 1,250 rupees everywhere.
  • Per-visitor limits and an hourly cap stop a flood of form posts from starting transactions without end.

Tips for smooth payments

  • Map the customer’s mobile number and email so Paytm can show them on the payment page.
  • Keep the payment comment short and clear (60 characters at most), for example the form title and the entry number.
  • Hold form notifications until payment so your team only sees paid bookings.
  • Use the Payment Completed notification event to send the customer a receipt from your site.
  • Set up the webhooks for both staging and production, so entries update within seconds.

Step 5: Go live

Finish the Paytm onboarding so Paytm activates your account for production. Copy the production MID and merchant key into the Live fields (website name DEFAULT unless Paytm gave you another one), set the production webhooks to the same address, switch the mode to Live and save. Make one small real payment, check the entry, and refund it from the entry screen. Entries created in Test mode keep reading from the staging environment, so nothing mixes.

Questions

Do payment details reach my website?

No. The customer pays on the Paytm page. Your site only receives the order ID, the status, the payment mode, the Paytm transaction id and the bank reference.

Can I take payments in other currencies?

The add-on takes payments in Indian rupees, so the Gravity Forms currency must be INR. Forms in another currency are refused before anything is sent to Paytm.

What if the webhook never arrives?

Paytm’s post back to the callback link, the return page and the status check every five minutes all read the transaction from Paytm. You can also click Refresh status on the entry.

Can I refund part of a payment?

Yes. Type the amount on the entry screen; the add-on checks it fits what is left after earlier and pending refunds. The entry becomes Refunded when the whole amount has been refunded.

Are subscriptions supported?

This add-on handles one-off payments: products, services and donations.

Get started

Read the setup guide for every setting, or get the Gravity Forms Paytm Premium Add-on and take your first Paytm payment through Gravity Forms today. Plans: one site $49 a year, five sites $69 a year, unlimited sites $199 a year.

0
0
Your Cart
Your cart is emptyReturn to Shop
🔥 FREQUENTLY BOUGHT TOGETHER
Complete Combo & Save 40%!
ITEM IN YOUR CART
Gravity Forms Klaviyo Add-on
$39.00/yr
+
🎁 RECOMMENDED ADD-ON SAVE 40% OFF
Original Price: $39.00/yr
Bundle Special Price: $23.40/yr