Payment Integration
Accept payments through your forms with Stripe and PayPal
Payment Integration
This is a Pro feature. Upgrade to Pro to accept payments.
Collect payments directly through your forms using Stripe or PayPal. Perfect for orders, donations, registrations, and service bookings.
Supported gateways
| Gateway | Cards | Digital Wallets | Setup |
|---|---|---|---|
| Stripe | Visa, MC, Amex, Discover | Apple Pay, Google Pay | API keys |
| PayPal | Via PayPal | PayPal balance | Client ID |
Setting up payments
1. Configure gateway
Go to Fodo Forms → Settings → Payments
Stripe setup
- Log in to Stripe Dashboard
- Get your API keys (Settings → API Keys)
- Enter in Fodo Forms:
- Test Publishable Key:
pk_test_... - Test Secret Key:
sk_test_... - Live Publishable Key:
pk_live_... - Live Secret Key:
sk_live_...
- Test Publishable Key:
PayPal setup
- Log in to PayPal Developer
- Create an app to get credentials
- Enter in Fodo Forms:
- Client ID
- Secret
2. Enable on form
- Edit your form
- Go to Settings → Payments
- Enable payments
- Select gateway
- Configure amount
3. Configure amount
Fixed amount
Set a specific price:
Amount Type: Fixed
Amount: $50.00Field-based amount
Calculate from a form field:
Amount Type: From Field
Field: total_amountUseful when users select options that affect price.
Calculated amount
Build pricing from multiple fields (Pro):
Base: $100
+ size_option: Small (+$0), Medium (+$25), Large (+$50)
+ rush_delivery: (+$30 if checked)
= Dynamic totalPayment fields
When payments are enabled, the form automatically adds:
Payment summary
Shows the amount to be charged:
┌─────────────────────────┐
│ Order Summary │
│ │
│ Service Fee $50.00 │
│ ─────────────────────── │
│ Total $50.00 │
└─────────────────────────┘Card input (Stripe)
Secure card entry powered by Stripe Elements:
Card Number: [4242 4242 4242 4242]
Expiry: [12/25] CVC: [123]Card data never touches your server, sent directly to Stripe.
PayPal button
PayPal checkout button that opens PayPal flow.
Payment flow
Stripe flow
- User fills out form
- User enters card details
- User clicks Submit
- Card is validated and charged
- Form submission is saved with payment info
- Confirmation shown to user
- Email notifications sent
PayPal flow
- User fills out form
- User clicks PayPal button
- PayPal popup opens
- User completes payment in PayPal
- Popup closes, form submits
- Confirmation shown
Order management
Viewing payments
Form entries include payment information:
Entry #123
──────────────
Name: John Smith
Email: john@example.com
...
──────────────
Payment
Gateway: Stripe
Transaction ID: pi_abc123
Amount: $50.00
Status: CompletedPayment statuses
| Status | Description |
|---|---|
| Completed | Payment successful |
| Pending | Awaiting payment (PayPal) |
| Failed | Payment declined |
| Refunded | Payment was refunded |
Refunds
Refunds must be processed through your payment gateway dashboard:
- Stripe: Dashboard → Payments → Select → Refund
- PayPal: Activity → Transaction → Refund
Testing
Stripe test mode
Use test mode before going live:
- Toggle to Test Mode in settings
- Use test card numbers:
| Card | Result |
|---|---|
4242 4242 4242 4242 | Successful payment |
4000 0000 0000 0002 | Card declined |
4000 0000 0000 9995 | Insufficient funds |
Any future expiry and any 3-digit CVC work in test mode.
PayPal sandbox
Use sandbox accounts for testing:
- Create sandbox accounts in PayPal Developer
- Toggle to Sandbox in settings
- Use sandbox buyer account to test
Receipts & notifications
Customer receipt
Automatic email to customer:
Subject: Payment Receipt - Order #123
Thank you for your payment!
Amount: $50.00
Date: January 15, 2024
Transaction ID: pi_abc123
[Link to receipt]Admin notification
Your notification email includes payment details:
New order received
Customer: John Smith
Email: john@example.com
Amount: $50.00
Status: Completed
Transaction: pi_abc123Security
PCI compliance
Fodo Forms uses Stripe Elements and PayPal's hosted fields. Card data is:
- Entered in iframes hosted by payment provider
- Never sent to your server
- Never stored in your database
This keeps you out of PCI scope.
SSL required
Payment forms require HTTPS. Ensure your site has an SSL certificate.
Troubleshooting
Payment failed
- Check card details are correct
- Verify sufficient funds
- Try a different card
- Check Stripe/PayPal dashboard for details
"Invalid API key"
- Verify keys are entered correctly
- Check test vs. live mode matches
- Regenerate keys if needed
PayPal button not showing
- Verify Client ID is correct
- Check browser console for errors
- Ensure HTTPS is enabled