1 · Connect your Razorpay account
Formpey never holds your money. Payments move directly from your respondent into your own Razorpay account, which means you have to give Formpey permission to create orders on it.
In Razorpay, open Settings → API Keys and generate a key pair. Paste both halves into your Formpey settings. We check them against Razorpay before saving, so a mistyped key shows up there rather than when somebody is trying to pay you.
Razorpay shows the Key Secret once, at creation. Formpey encrypts it and will never display it back to you — if you lose it, generate a new pair rather than looking for a second copy.
2 · Add the webhook to your Razorpay account
This is the step that gets skipped, and skipping it is the most common reason a payment looks stuck.
Connecting keys lets Formpey charge. A webhook is how Razorpay tells Formpey the charge succeeded — without one, nothing knows to mark the response paid or send the receipt at the moment it happens.
Your webhook URL and signing secret are on your settings page, with a copy button beside each. They are unique to your account: the secret is what proves a payment notification really came from your Razorpay account and not from somebody else’s.
In Razorpay, open Account & Settings → Webhooks → Add New Webhook and fill in:
- Webhook URL — copy it from your settings page.
- Secret — copy it from your settings page.
- Active Events — tick
payment.capturedandpayment.failed. Nothing else.
Leave order.paid unticked in particular. It arrives alongside payment.captured for the same payment and carries less information, so it is redundant rather than useful. Any other event you tick is acknowledged and ignored — harmless, just noise in your Razorpay logs.
If you skip this entirely, payments are still recorded — Formpey checks Razorpay directly for anything that has been pending too long, roughly every fifteen minutes. The cost is that receipts arrive that late, and responses read “pending” in your table until the check catches up. On a workshop where people pay at the door and expect a confirmation, that is the difference between working and appearing broken.
3 · Test mode and live mode
Razorpay issues two independent key pairs. Test keys start rzp_test_, live keys start rzp_live_, and Formpey shows a Test mode badge in settings when the connected pair is a test one.
What test keys do: the entire flow, honestly. A respondent opens your form, the amount is calculated, Razorpay Checkout opens, a test card or test UPI ID completes it, the webhook fires, the response is marked paid, and the receipt sends. Everything you would want to rehearse, you can rehearse.
What they do not do: move money. No real UPI app will pay a test order, nothing settles to your bank, and nothing appears in your live Razorpay dashboard. A test payment is not a sale, and a form left on test keys quietly takes no money from anyone.
Razorpay keeps webhooks separate per mode. A webhook added while your dashboard is in test mode does not exist in live mode. When you switch to live keys, add the webhook again on the live side — same URL, same secret.
Switching is just replacing the keys in your settings. Forms you have already published keep working; the next payment simply goes through the new pair.
4 · Free and Pro
Both plans take payments, and both take 0% commission. The only fee on a transaction is Razorpay’s own, charged to you directly at whatever rate you have agreed with them. Pro does not buy a better rate, because there is no rate for us to improve.
What actually differs:
- The badge. Free forms carry a small “Made with Formpey” note at the bottom of the form and in the receipt email. Pro removes it. This is the main thing you are paying for.
- Redirect after submit. Pro can send respondents to your own page — an order confirmation, a WhatsApp group, a calendar link — instead of Formpey’s thank-you screen.
- File uploads. 10 MB per file on Free, 50 MB on Pro.
The report link stays on both plans. It shares a line with the badge, so removing the badge does not remove it: a paid plan that quietly bought immunity from abuse reports would be a bad thing for us to have built.
Pro is ₹499 a month, or ₹3,499 a year, billed by UPI — details on the pricing page. Unlimited forms, unlimited responses and every question type are on both plans, and always were.
If a payment does not settle
A response sitting at pending with an amount against it means Formpey created the order and has not been told what happened to it. Work down this list:
- Give it fifteen minutes. If the webhook is missing or a delivery was lost, the periodic check asks Razorpay directly and settles it. Most stuck rows clear themselves.
- Check the payment in your Razorpay dashboard. If it is not there, the respondent never completed it — abandoning at the UPI PIN screen is common and often produces no failure notification at all.
- Check your webhook. Razorpay logs every delivery attempt and its response. A 404 means the URL is wrong; a 400 means the secret does not match what is on your settings page.
- Still wrong? Mail us the order ID from your Razorpay dashboard — never a screenshot of your keys — and we will look at it from our side.
Formpey is not the seller and cannot issue a refund on your behalf; the money is in your Razorpay account, so refunds go out from there. That is set out on the refunds page.
Still stuck
Get in touch. A real person reads it.