Plenty of forms end with money changing hands. A workshop registration, a deposit for a photo shoot, a paid consultation, an order for a small batch of products. Yet many businesses still handle this in two steps: someone fills out a form, then receives an invoice or a payment link by email a day later. Some pay right away. Others forget, and someone on your team spends Friday afternoon matching bank transfers to names in a spreadsheet.
An online payment form puts both steps into one flow. The respondent answers your questions, pays, and you get the details and the money together. In this guide we explain when an online payment form makes sense, how the setup with Stripe works in practice, and which details are worth checking before you share the link. We use Deftform as the example, because payments through your own Stripe account are part of every Deftform plan.
An online payment form is a regular form with a checkout attached. It collects the information you need, such as name, email, preferred date or shipping address, and then asks for payment before the submission is complete. The payment itself is processed by a payment provider. In our case that is Stripe, and the card details are entered on Stripe's own checkout page, not stored by the form builder.
It is not a full online shop. There is no product catalog page, no shopping cart that follows people around your website and no stock management. That is exactly why it works well for many small businesses and agencies. If you sell a handful of things and need some information along with the payment, a shop system is often more than you need, and an invoice is often slower than you would like.
Payment forms are a good fit whenever the information and the money belong together. Some typical examples:
Event and workshop registrations, where you need the attendee's name, dietary needs or t-shirt size along with the ticket price.
Deposits and booking fees, for example for photographers, therapists, coaches or venues that want a commitment before reserving a date.
Paid consultations or audits, where the client describes the project and pays for the first session in one go.
Small product orders, such as merchandise, printed materials or a limited run, where a full shop would be overkill.
Membership or course fees, collected once per person with the registration details attached.
For agencies, there is one more case. Clients regularly ask for "a simple form where people can pay". Building a custom checkout for each of them takes time, while a form connected to the client's own Stripe account can be ready the same day, on the client's domain and in the client's branding.
The exact screens differ between form builders, but the principle is the same everywhere: you connect your Stripe account, tell the form which prices to charge, and test the flow before going live. Here is how it works in Deftform.
Get your API keys from Stripe. In the Stripe dashboard, open the Developers section and go to API keys. You need the publishable key and a secret key. Instead of the full secret key, you can create a restricted key for this purpose, which gives the form builder less access to your account.
Connect Stripe to Deftform. Open the Notifications / Connections settings, scroll down to the Payments section and paste your keys. We suggest adding both the test and the live keys, so you can try everything without real money first.
Create your products and prices in Stripe. In the Stripe product catalog, create a product and give it a price. Each price has its own ID that starts with price_. Copy the price ID, not the product ID.
Enable checkout on your form. In the form settings, open the Payment section, enable form checkout, choose the payment mode and add one or more price IDs.
Test with a test card. In test mode, Stripe accepts the card number 4242 4242 4242 4242 with any future expiry date and any three digit CVC. Submit the form a few times, check the response in Deftform and the payment in your Stripe dashboard.
Switch to live mode. Once everything behaves as expected, switch the form to live mode in its settings. The form shows you which payment mode is currently active, so it is easy to confirm before you share the link.
Our help center has a step-by-step guide to creating a payment form with screenshots of each step.
How the checkout behaves depends on how many prices you attach. With a single price ID, respondents fill out the form and are taken to the checkout right after they submit. There is nothing to choose, which is ideal for a fixed registration fee or a deposit.
With several price IDs, respondents can pick the products they want before they pay. That works well for ticket tiers, workshop dates with different prices or a small product range. Selling multiple products in one form is part of our Business and Extended add-ons and is included in the Complete plan.
Two more options are worth knowing:
Quantities. By default, each product is bought once. If you allow quantities for a product, respondents can choose how many they want, and you can set a maximum, for example to cap the number of seats one person can book.
Discount codes. You can show a field for discount codes during checkout. The codes themselves are created in your Stripe dashboard, so you manage all pricing in one place.
Most problems with payment forms are not technical. They come from small gaps in what the respondent sees or what happens after they pay. Run through this list once for every new form.
Say what people pay for. Put the price and what it includes near the top of the form, so nobody reaches the checkout surprised. If there are cancellation or refund terms, link them.
Keep the form short. Every question before the checkout is a chance to drop off. Ask for what you need to deliver, nothing more. For longer registrations, splitting the form into pages helps. We wrote about this in our guide on how to create an effective multi step form.
Use a dedicated link. In Deftform, payment forms currently work through the form's own link, not inside an embedded form. Link to the form from a button on your website instead of embedding it.
Put the form on your own domain. A checkout that starts on forms.yourcompany.com feels more trustworthy than one that starts on an unfamiliar address. Our article on hosting forms on your own domain explains the setup.
Match the checkout to your brand. Stripe lets you adjust colors and fonts of its checkout page in the Stripe dashboard, so the step after your form does not look out of place.
Plan what happens next. Set up an email notification for new responses, or send them to a webhook or an integration such as Google Sheets or Slack, so the person who delivers the service knows about the booking right away.
With some tools, every payment through a form carries an extra percentage for the form builder on top of what the payment provider charges. Over a year of registrations or orders, that adds up. Before you choose a tool, look for this in the pricing page and the terms, not only in the feature list.
In Deftform, payments go through your own Stripe account and we do not charge any fees on top. Stripe's regular processing fees apply as agreed in your Stripe account, and payouts arrive the way you have set them up there. Refunds, receipts and disputes are handled in Stripe as well, which keeps all payment records in the system your accountant probably already knows.
For agencies, this setup has a practical advantage. You can connect each client's own Stripe account in their own workspace. The money goes straight to the client, and you never sit between them and their customers' payments.
A payment form collects personal data in two places: the answers in your form and the payment details at checkout. Card data is entered on Stripe's checkout page and processed by Stripe, so it does not end up in your form responses. The rest of the form should follow the same rules as any other form. Ask only for what you need, explain why you need it, and link your privacy policy.
If you collect data from people in the EU, where that data is stored is part of the picture. In Deftform, most data is stored on servers in Falkenstein, Germany, and uploaded files are hosted within the EU. Stripe is a separate processor with its own terms, which you should mention in your privacy policy. We cover consent, data minimization and retention in more detail in our separate guide to GDPR compliant forms.
We at Deftform build a deliberately simple form builder, made and hosted in Germany. Payments via Stripe are included in every plan, together with unlimited responses, unlimited team members and a custom domain with SSL. Every account comes with three workspaces, each with its own domain, custom styles, API access and webhooks, which makes it easy to keep client payment forms apart.
You can buy forms pre-paid at €4 per form in packs of five, choose the Complete plan at €25 per month, or pay once for the Lifetime package at €189, which is also available as 12 monthly payments of €16.
If you already have a Stripe account, setting up your first online payment form takes a few minutes. Create a Deftform account, connect your test keys and run a payment with the test card before you go live.