Are you collecting PayPal payments? Read my case study about making the switch from PayPal to Stripe.
This is part two of a two-part series. Read about why you might want to make the switch from PayPal to Stripe for collecting payments in non profit forms.
? Looking to add more payment gateways with Stripe?: How to Add Payment Gateways to WordPress [with Stripe!]
How to convert from PayPal to Stripe
The Stripe forms documentation covers how to set up your Stripe forms. I'll walk through the simple setup of the conversion from PayPal to Stripe in five basic steps.
- Create a Stripe account.
- Set up the Stripe Forms Plugin for Formidable.
- Add Stripe to your form action
- Test your Formidable Stripe settings
- Flip the switch and go live with Stripe.
Step One: Create a Stripe account
Our finance department set up a Stripe.com account in a few minutes. However, nonprofits need to contact Stripe with your nonprofit status. Then they can set your account as a nonprofit and charge reduced fees. It is not publicized on their website, but in addition to the nonprofit discount, Stripe may waive fees on the first $15,000 worth of transactions in the first year.
Stripe Account Settings
The Stripe “Account Settings” are very user friendly.
Stripe Email Receipts
Set up Stripe email receipts or have Formidable send them for you. There aren’t a lot of options in Stripe, but you can choose colors set and a logo. Send a test email to check the look and feel. However, keep in mind that the test email receipt only works in “Live” mode.
? Want to create a Stripe donate button?: How To Add a Stripe Donate Button in WordPress for Your Fundraiser
Step Two: Setup the Stripe Forms Plugin for Formidable
Download Formidable Pro for WordPress forms and our Stripe Forms plugin and install them on your WordPress site.
Once activated, setup the WebHook. The WebHook notifies your site when a payment event happens. The WebHook URL (AKA “endpoint”) is included in the Global Settings -> Stripe tab in your Formidable Forms plugin. Copy and paste it into the “WebHooks” tab of your Stripe Account settings.
See the WebHook endpoint I added into my Stripe account settings below. The orange “test” link will allow you to test the WebHook to make sure your website is receiving payment events (“HTTP callbacks”). This communication updates your Formidable entries to show payment or refund status.
Build your Credit Card Payment Form
It’s super simple to add the payment option in the drag and drop form builder with a Credit Card field. There also is a radio button that remains hidden from the live form that defaults in the form builder. It says “payment method” with the only option of “credit card” defaulted. This will not show in the live form.
Read more: How to Create a Stripe Donation Form in WordPress
Set the Credit Card Field to Not Store or POST Card Values
Small businesses in particular need to know about how PCI Compliance is handled with Stripe. Many small businesses use PayPal Standard for the sheer benefit of not worrying about PCI Compliance. This is because PayPal payments are handled on a site that is not yours.
The beauty of of the Formidable Stripe WordPress plugin is the fact that with an SSL encrypted site, the rest of PCI compliance is handled by Stripe. But unlike PayPal, you keep visitors on your site for checkout.
The key to PCI compliance is to set the Stripe credit card field to not post to your site. This is the most secure option of those included in the field options for credit card fields.
Step Three: Add Stripe to Your Form Action
Go to the settings page for your payment form and go to the Form Actions. Click the Stripe icon to add a new form action.
How to set your charge amount
To set up the amount that you want the credit card charged, use the field ID from the customization tab of your form actions. In the screenshot below, you can see I used field ID  from my form, which in my case was a radio option field of two different price points. Formidable allows text in this field and whatever the numeral amount is after the dollar sign is what Formidable will take as the dollar amount to charge.
Step Four: Test Stripe in “Test” Environment
In the Account Settings area of your Stripe.com dashboard, you will find your API keys in the “API Keys” tab.
Copy and paste your live and test keys into the "Global Settings" -> "Stripe" tab on your Formidable plugin dashboard.
Step Five: Flip the Switch and Go Live with Stripe
Once testing with test cards is successful, uncheck the "Stripe Test Mode" box in the Formidable Global Settings.
I flipped the switch last week and The Independence Center had over $3,000 in successful Stripe charges over the weekend. Yay! for keeping customers on our site for check out. Our detached payment problem was solved. Another positive is that our Stripe deployment did not require hiring a developer, thanks to the awesome team at Formidable Forms who made this add-on possible.
Read more: How to add optional online payment processing to WordPress forms
Get started today with the WordPress Stripe forms plugin for your payment forms.
Thank you for this informative post. One point is not clear to me: does a site need to be SSL encrypted in order to securely use Stripe?
As Ralf mentioned, you do need SSL, though you can run in 'Test Mode' previous to switching to HTTPS. One advantage the default PayPal setup had for some time was the fact that since payment was handled on their infrastructure, HTTPS was not technically required (though still best practice). The cost was customers leaving a site to purchase, which can result in a higher abandonment rate. With Stripe, customers never leave the site. Additionally, SSL certificates can now be obtained at no cost through Let's Encrypt
You need a dedicated SSL certificate to charge people for whatever you want. We are using PaidmembershipPro and Stripe for our non-for-profit organization since more than three years now and we are very, very satisfied with this solution.
Can Stripe be used on Church sites for online giving, where a set amount isn't defined?
Jeremy Lind says
Yes. When setting up the Stripe form action, you provide the id of the field in your form that represents the amount to be charged. This can be a radio button field as mentioned in the post, or another field where the user inputs their own value.
i've read all over the web people writing about terrible experiences with Stripe. So even though it looks great, I'm afraid of risking with it. I know this is not really a question for Formidable team, because it's an issue with Stripe. But did anybody use Stripe for longer time? Any experiences?
Steph Wells says
We've used Stripe on our site for over a year and love it. We haven't had a single bad experience, or talked to anyone who has.
Justin Ware says
how clearly branded is the stripe payments section? One advantage of PayPal is that it is now a trusted gateway (in spite of the bugs it presents). People are less likely to make a payment if they have any concerns about the security of their transaction and branding of payment gateways is a significant link to trust.
Jessica TenBrink says
Hi Justin. Thanks for mentioning. The point of Stripe is that the transaction takes place on your website, so the customer does not feel a difference. In the case of PayPal, the customer knows they are going to PayPal and PayPal "hijacks" the payment experience, holding the customer hostage to PayPal's branding, look, and feel. You do have options for customization of the PayPal page, but the point is that it takes place on a site that is not your own. Stripe transactions take place within your Formidable Form itself, so there is no leaving the website. The customer isn't even aware that Stripe is in the background.
Digital Crash Course says
You should also email Stripe to get lower rates as a charity.
Kevin max says
A short tutorial on How to Install a Recurring Donation Form in a WordPress Site (Stripe, PayPal, ACH, Donate button).