How to Collect Payments on a Form: Stripe, PayPal, and More (2026 Guide)
Accept credit cards, subscriptions, and one-time payments on your forms. Compare Stripe vs PayPal vs Square with step-by-step setup.
Every extra step between "I want to buy this" and "payment confirmed" is a chance for your customer to leave. Redirect them to a separate checkout page, and you lose 20-30% of them. Ask them to create an account first, and that number climbs higher. The most effective way to collect payments online is to embed the payment directly into the form -- one seamless experience where the customer fills out their information and pays in the same flow.
This guide covers everything you need to collect payments on a form in 2026: which payment gateway to choose, how to set it up step by step, how to handle recurring payments, and the mistakes that trip up most people.
Why Collect Payments Directly on Forms
The traditional approach to online payments involves building a form, then redirecting users to a separate checkout page hosted by Stripe, PayPal, or another processor. This works, but it introduces friction at the worst possible moment -- right when the customer has committed to paying.
Embedding payment collection directly into your form eliminates that redirect. The customer enters their name, email, selects what they want, enters their card details, and submits -- all in one place. The benefits are concrete:
- Higher conversion rates: Removing the redirect step typically increases payment completion by 15-25%, depending on the industry and form complexity.
- Better data collection: You capture the customer's information and payment in a single submission. No need to reconcile form data with a separate payment record.
- Simpler tech stack: One tool handles both data collection and payment processing, instead of a form builder plus a checkout tool plus custom glue code.
- Consistent branding: The payment step looks like the rest of your form, not like a generic Stripe or PayPal checkout page.
This approach works for event registrations, product orders, service bookings, donations, membership signups, and any other scenario where you need to collect both information and money.
Payment Gateway Comparison: Stripe vs. PayPal vs. Square
Before you build anything, you need to choose a payment gateway. The three major options in 2026 are Stripe, PayPal, and Square. Each has different strengths, and the right choice depends on your business model.
| Feature | Stripe | PayPal | Square |
|---|---|---|---|
| Transaction fee (US) | 2.9% + $0.30 | 3.49% + $0.49 | 2.6% + $0.10 |
| International cards | 3.9% + $0.30 | 4.49% + $0.49 | 3.5% + $0.15 |
| Currencies supported | 135+ | 25 | 7 |
| Payout speed | 2 business days (Instant available) | Instant to PayPal balance | 1-2 business days |
| Recurring/subscriptions | Native (Stripe Billing) | PayPal Subscriptions | Square Subscriptions |
| Setup complexity | Moderate (API keys) | Easy (email-based) | Moderate (API keys) |
| PCI compliance | Handled (embedded elements) | Handled (hosted fields) | Handled (Web Payments SDK) |
| Dispute/chargeback fee | $15 | $20 | None (but holds funds) |
| Developer documentation | Excellent | Good | Good |
| Form builder support | Widely supported | Widely supported | Limited |
When to Choose Stripe
Stripe is the default choice for most businesses collecting payments on forms, and for good reason. It has the widest currency support, the most form builder integrations, and the best developer documentation. If you sell to international customers, Stripe's support for 135+ currencies is unmatched.
Stripe also excels at recurring payments. Stripe Billing handles subscriptions, invoicing, proration, and upgrades/downgrades natively. If you are selling a membership, a subscription box, or a SaaS product, Stripe makes the billing logic straightforward.
The main downside is that Stripe has no consumer-facing brand recognition. Your customers will not see a "Pay with Stripe" button -- they will see a credit card form. This is actually an advantage for branding (the payment feels native to your site), but it means you miss out on the trust signal that a PayPal button carries.
When to Choose PayPal
PayPal's strength is buyer trust. Over 400 million people have PayPal accounts, and many of them prefer paying with PayPal because they do not have to enter their card details on an unfamiliar site. For consumer-facing businesses, especially in markets where credit card trust is lower, a PayPal button can meaningfully increase conversion.
The tradeoff is cost. PayPal's transaction fees are the highest of the three, and its subscription tooling is less flexible than Stripe's. PayPal also has a reputation for aggressive buyer protection policies that can result in chargebacks and frozen funds for sellers. If you sell digital goods or services, this is a real risk to factor in.
When to Choose Square
Square offers the lowest per-transaction fees in the US, which matters at volume. If you process thousands of transactions per month and most of your customers are domestic, Square's 2.6% + $0.10 saves real money compared to Stripe's 2.9% + $0.30.
Square's weakness is international support. With only 7 supported currencies, it is a poor choice for businesses with global customers. Square also has fewer form builder integrations than Stripe or PayPal, which can limit your options.
Types of Payments You Can Collect
Not all payments work the same way. The type of payment determines how you configure your form and which gateway features you need.
One-Time Payments
The simplest case: the customer pays a fixed amount once. Event tickets, product purchases, service deposits, and consultation fees all fall into this category. Every gateway supports one-time payments, and the setup is straightforward -- define a price, attach it to a form, and collect payment on submission.
Recurring Payments and Subscriptions
Memberships, subscription boxes, SaaS products, and retainer agreements all require recurring billing. The customer enters their payment details once, and you charge them on a schedule -- weekly, monthly, quarterly, or annually.
Stripe Billing is the gold standard here. You define a Product and a Price in your Stripe dashboard (or via API), set the billing interval, and attach it to your form. Stripe handles the recurring charges, failed payment retries, and subscription lifecycle automatically.
PayPal Subscriptions and Square Subscriptions offer similar functionality but with less flexibility around proration, trial periods, and mid-cycle changes.
Calculated Payments (Order Forms)
Order forms let the customer select products, quantities, and options, with the total calculated dynamically. A catering order form might let the customer choose entrees, sides, and drinks, with the price updating as they make selections.
This requires your form builder to support calculated fields or product selection fields that compute a total. Not all form builders handle this well -- many require you to set a fixed price per form rather than calculating it dynamically. If you need order forms, make sure your form builder supports product fields with quantity selectors and price calculations. For a broader look at which builders support this, see our pricing comparison.
Donations (Pay-What-You-Want)
Nonprofits and open-source projects often need to accept donations where the donor chooses the amount. This requires a payment field that accepts a custom amount input rather than a fixed price.
Most form builders that support payments also support custom amount fields. The key is making sure the minimum amount covers the transaction fee -- a $1 donation costs you $0.33 in Stripe fees, leaving you with $0.67. Setting a minimum of $5 or offering suggested amounts ($10, $25, $50, $100) helps ensure donations are meaningful after fees.
Step-by-Step: Collect Payments with Stripe in Buildorado
Here is the complete process for setting up payment collection on a form using Buildorado and Stripe. The same general approach applies to other form builders, but the specific steps will differ.
Step 1: Create Your Form
Log into Buildorado and create a new workflow. Add the fields you need for your use case -- for a product order, that might include name, email, shipping address, and product selection. For an event registration, it might be name, email, dietary preferences, and ticket type.
Build your form as a multi-step form if you are collecting a lot of information. Splitting the form across multiple steps reduces visual overwhelm and improves completion rates. Put the payment step last, after the customer has already invested time filling out the earlier steps.
Step 2: Add a Payment Field
Add a Payment field to your form. This is a special field type that renders a secure credit card input -- card number, expiration date, and CVC -- directly in your form. The card input is an embedded Stripe Element, which means card details are sent directly to Stripe's servers and never touch your server. More on this in the PCI compliance section below.
Configure the payment field with the amount (or connect it to a calculated total if you are building an order form), currency, and a description that will appear on the customer's bank statement.
Step 3: Connect Your Stripe Account
Navigate to the integrations section and connect your Stripe account. Buildorado uses Stripe Connect, so the authorization flow is a standard OAuth redirect -- you log into Stripe, authorize Buildorado to process payments on your behalf, and you are done.
You will need to choose between test mode and live mode. Always start in test mode. Stripe provides test card numbers (4242 4242 4242 4242 is the classic) that let you simulate successful and failed payments without moving real money.
Step 4: Configure Products and Prices
If you are collecting a fixed amount, set the price directly on the payment field. If you are selling multiple products or subscription tiers, create Products and Prices in your Stripe dashboard first, then map them to your form's product selection field.
For subscriptions, set the billing interval (monthly, yearly, etc.) and any trial period. Stripe will handle the recurring charges automatically after the initial form submission.
Step 5: Test the Payment Flow
Switch your form to test mode and submit it yourself using Stripe's test card numbers. Verify that:
- The payment processes successfully and appears in your Stripe dashboard
- The form submission data is stored correctly alongside the payment record
- Confirmation emails are sent (if you configured them in the workflow)
- Failed payments show an appropriate error message to the customer
- The calculated total is correct (if using an order form)
Test edge cases too: expired cards (4000 0000 0000 0069), insufficient funds (4000 0000 0000 9995), and 3D Secure authentication (4000 0027 6000 3184). These test card numbers are provided by Stripe and simulate real-world failure scenarios.
Step 6: Go Live
Once testing is complete, switch from test mode to live mode in both Buildorado and Stripe. Publish your form and share the link. Payments will now be processed for real, and funds will appear in your Stripe account according to your payout schedule (typically 2 business days).
After going live, set up a post-submission workflow to handle order fulfillment. In Buildorado, you can add workflow nodes after the form submission trigger to send confirmation emails, update a Google Sheet with order data, notify your team on Slack, or call any external API. See our guide on sending form data to Google Sheets for a detailed walkthrough of that specific integration.
PCI Compliance: What You Need to Know
PCI DSS (Payment Card Industry Data Security Standard) is a set of security requirements for any business that handles credit card data. Non-compliance can result in fines of $5,000 to $100,000 per month, and a data breach involving card numbers can be catastrophic.
The good news: if you use embedded payment fields from Stripe, PayPal, or Square, card data never touches your server. The payment field in your form is an iframe hosted by the payment processor. When the customer enters their card number, it goes directly from their browser to Stripe's servers. Your server receives a payment token -- a one-time reference to the card -- which it uses to charge the card. You never see, store, or transmit the actual card number.
This means you qualify for SAQ A, the simplest level of PCI compliance. You do not need to hire a security auditor, implement encryption at rest for card data, or undergo penetration testing (at least not for PCI purposes). The payment processor handles all of that.
The key requirement on your end: make sure your form is served over HTTPS. If your form is on HTTP, the card data iframe is still secure (it is a separate HTTPS connection to Stripe), but the surrounding page is not encrypted, which means an attacker could potentially modify the page to redirect the iframe or overlay a fake card input. Every modern form builder, including Buildorado, serves forms over HTTPS by default.
Google Forms Cannot Collect Payments -- Here Is What to Do
Google Forms is the most widely used form builder in the world, and it has zero built-in payment support. You cannot add a credit card field, connect a payment gateway, or charge respondents in any way. This is by design -- Google Forms is a data collection tool, not a commerce tool.
If you are currently using Google Forms and need to add payments, you have three options:
Option 1: Redirect to a separate checkout page. Add a link in the form confirmation message that sends respondents to a Stripe Payment Link, PayPal.me page, or a custom checkout page. This works but adds friction and breaks the flow. You will also need to manually reconcile form submissions with payments.
Option 2: Use a Google Forms add-on. A handful of third-party add-ons (like Payable Forms) add payment functionality to Google Forms. These work by injecting a payment step after the form submission. Quality and reliability vary, and most charge their own monthly fee on top of payment processing fees.
Option 3: Switch to a form builder with native payment support. This is the cleanest solution. Tools like Buildorado, Tally, and Fillout all support embedded payment collection out of the box. You can rebuild a Google Form in any of these tools in under 10 minutes and have payment collection working immediately. For more on extending Google Forms capabilities, see our guide on conditional logic in Google Forms. You can also read our dedicated guide on accepting payments in Google Forms.
If your primary need is payment collection and you are currently on Google Forms, option 3 saves the most time and provides the best customer experience. For a comparison of which form builder to switch to, see our Buildorado vs. Tally vs. Fillout breakdown.
Common Mistakes to Avoid
Not Testing in Sandbox Mode
Every payment gateway offers a test/sandbox mode with test card numbers. Use it. Processing a real payment to test your form is unnecessary, and if something goes wrong -- like charging the wrong amount or not triggering a confirmation email -- you are dealing with real money and a real customer experience issue.
Stripe's test mode is completely separate from live mode. Test transactions do not appear in your live dashboard, test webhooks fire to separate endpoints, and test API keys are different from live keys. There is no risk of accidentally processing real payments while testing.
Missing Receipt and Confirmation Emails
When a customer pays, they expect two things immediately: a receipt showing what they paid, and a confirmation showing what they signed up for or ordered. Missing either one generates support tickets and erodes trust.
Stripe can send automatic receipts for every successful payment -- enable this in your Stripe dashboard under Settings > Emails. For the confirmation email (with form-specific details like event dates, order items, or registration details), configure this in your form builder's post-submission workflow. In Buildorado, this is an Email node connected to the form submission trigger.
Forgetting Mobile Optimization
Over 60% of form submissions in 2026 happen on mobile devices. If your payment form is not mobile-optimized, you are losing the majority of your potential customers. Specific things to check:
- Card number input fields should trigger the numeric keyboard on mobile
- The form should be scrollable without horizontal overflow
- Tap targets (buttons, checkboxes, dropdowns) should be at least 44x44 pixels
- The payment button should be visible without scrolling when the card fields are filled
- Auto-zoom on input focus should not break the layout
Test your form on an actual phone, not just a browser resize. Embedded payment fields from Stripe render differently on mobile and can sometimes cause layout issues that are not visible in desktop browser dev tools.
Not Handling Failed Payments Gracefully
A declined card is not an error -- it is a normal part of payment processing. About 5-10% of legitimate transactions fail on the first attempt due to insufficient funds, expired cards, or bank security holds. Your form needs to handle this gracefully.
Show a clear, specific error message: "Your card was declined. Please try a different card or contact your bank." Do not show a generic "Something went wrong" message, and definitely do not redirect to a blank error page. The customer should be able to correct the issue and resubmit without re-entering all of their form data.
Ignoring Currency and Tax Considerations
If you sell to customers in multiple countries, you need to handle currency display and tax calculation. Showing prices in USD to a customer in Germany is a conversion friction point. Stripe supports dynamic currency conversion, but you need to configure it.
Tax is even more complex. In the US, sales tax varies by state and product type. In the EU, VAT applies and must be displayed separately. Stripe Tax can automate tax calculation and collection, but it adds 0.5% per transaction on top of Stripe's standard processing fee. If you are doing significant volume, the automation is worth the cost. If not, consult a tax professional for your specific situation.
Wrapping Up
Collecting payments on forms is no longer a custom development project. With the right form builder and payment gateway, you can go from zero to accepting credit cards in under 30 minutes. Stripe is the best default choice for most businesses. Embed it directly in your form to maximize conversion. Test in sandbox mode. Send receipts and confirmations. Optimize for mobile.
The biggest decision is not which payment gateway to use -- it is whether your form builder can handle payments natively or whether you need to bolt on a separate checkout flow. If your current tool cannot embed payments, it is worth switching to one that can. The reduction in friction pays for itself quickly.