Guides
Take payments with your own payment link
Take payments with your own payment provider. Paste a checkout link into your form, and Enform sends people there. No Stripe connection and no Enform fee, on Free and Pro.
Payment links
A payment link question sends people to a checkout you already have: a Stripe Payment Link, a Razorpay page, PayPal.me, Lemon Squeezy, Gumroad, Paddle, Cashfree, or any https link. The payment happens on your provider's site, so the money goes straight to you.
Enform records that the link was opened and shows Payment link opened next to the response. You can also confirm payments, see Confirm payments.
Set one up
Copy your checkout link
Make a payment link in your provider. It has to start with
https://. Links to Enform itself aren't accepted.Add the question
Ask the builder, for example: take payment with this link, before they submit, and paste the link. The question shows up in your flow. Open it and choose its Payment link tab to change any setting later.
Publish and try it
Open your form, press the button and check your provider's page opens with the right price.
Choices you can make
Where they payscreen, ending or both- On a screen before they submit, on the ending page after they submit, or both so people can pay now or later.
Requiredon or off- When on, people have to open the link before they can submit.
Button texttext- For example Pay now. Up to 60 characters.
Price showntext- For example $25. Display only. Your provider sets the real price.
Open innew tab or same tab- Inside an embed it always opens a new tab, because checkouts can't load inside another page.
Data sent to your provider
Enform adds the response ID and, if you choose, the person's email and name from their answers. Each provider has its own parameter names, and Enform uses the right ones.
Stripe Payment Linksbuy.stripe.comclient_reference_idfor the response ID,prefilled_emailfor the email, andutm_tags.Lemon Squeezylemonsqueezy.comcheckout[email],checkout[name]andcheckout[custom][reference].Razorpay, Gumroad, Paddle, Cashfree, other linksany- The response ID as
ref, plusemailandnamewhere they make sense. Providers ignore what they don't use. PayPal.me, Stripe Checkout sessionsno data- These links can't take extra data, so Enform opens them as they are.
Under Advanced: custom parameters you can add your own. A value can use {reference}, {email}, {name}, {answer:questionId}, {hidden:name} and {utm:utm_source}.
https://buy.stripe.com/abc123?client_reference_id=<response id>&prefilled_email=ada%40example.comConfirm payments
You have two optional ways to see who actually paid. Neither needs an Enform account with your provider.
Send people back to Enform
In the question's Payment link tab, copy After payment, send people back to and set it as the redirect after payment in your provider, for example in a Stripe Payment Link under After payment. People who land there are marked Back from checkout (not verified). This isn't verified: it means they came back, not that your provider took the money.
Verify with Stripe
Open Settings then Payments. Copy the webhook address. In Stripe, add a webhook endpoint with that address for
checkout.session.completedandcheckout.session.async_payment_succeeded, then paste its signing secret back into Enform. Payments Stripe confirms show as Paid (verified by Stripe), with the amount. To make sure a response only counts when it paid for this link, fill in the question's Check Stripe payments against with its Stripe link ID (it starts withplink_) or its price.
The status shows in your responses, in CSV downloads and in webhooks and the REST API, under paymentLinks.
Ask Claude to add one
With the MCP server, tell Claude what you want in plain words, and it passes the instruction to the builder through edit_form. No separate tool is needed.
Add a payment link to my workshop form. Use https://buy.stripe.com/abc123, show it on the ending page, button text "Pay $25", prefill the email from the Email question.