Stripe is a well-respected international payment gateway with support for a large number of countries and currencies. With Stripe Premium and GiveWP you can accept credit card donations with no fee, as well as Apple Pay, Google Pay, and iDEAL donations directly on your website easily and seamlessly.

Have questions? Go to the FAQ here

Getting Started with Stripe and GiveWP

In order to accept payments with Stripe using GiveWP you need to have 4 things:

  1. An active Stripe account (or more than one)
  2. GiveWP installed and activated
  3. The Stripe GiveWP Add-on 
  4. A valid SSL certificate

Here are instructions on installing and activating GiveWP Add-ons.

Note: You can always access your add-on purchase receipts, downloads, and licenses from your GiveWP Account dashboard.

After your Stripe Add-on is activated, navigate to “Donations > Settings > Payment Gateways”. There you will see the default Payment Gateways (PayPal Standard, Test Payment, and Offline Donations). With the premium Stripe addon active, four additional options become available:

  • Stripe – Apple Pay
  • Stripe – Google Pay
  • Stripe – iDEAL
  • Stripe – Plaid

Connecting to Stripe

With the premium Stripe add-on, you can connect to Stripe in two ways: using Stripe Connect (also known as the “Blue button” method) as well as the API Key method.

Stripe Connect

Before connecting to stripe, every backend page in the WordPress Admin area displays a banner prompting your connect to Stripe:

screenshot showing a yellow-bordered alert in the WordPress dashboard that reads “Stripe Connect: GiveWP has implemented a more secure way to connect with Stripe.” and a blue button with the words “Connect with Stripe”
The Stripe Connect banner displays in wp-admin prompting you to connect to Stripe.

Click the “Connect with Stripe” button. This will redirect you to Stripe and prompt you to either login to your Stripe account, or if you’re already logged in you’ll be able to connect immediately or choose from multiple accounts that you have access to.

screenshot of the page that allows for connecting to Stripe. A large GiveWP logo is featured within the Stripe interface
The GiveWP Stripe Connect Screen showing how you can choose from multiple accounts to authorize and connect to.

You can also find this method of connection at “Donations > Settings > Payment Gateways (tab) > Stripe Settings (section) > Manage Accounts”.

Click the “Connect my Stripe account” button to connect with Stripe. Once clicked, you will be redirected back to your admin dashboard and you should see you now have been connected:

screenshot of the Stripe settings screen in GiveWP overlaid with a popup that reads “You are connected! Now this is important: please configure your Stripe webhook to finalize the setup.”
The GiveWP Stripe settings screen showing that you are now successfully connected to your Stripe account

GiveWP is now connected to your Stripe account and ready to accept both live and test donations, but without the webhook configured correctly, donations won’t be marked as complete. See that section below.

API-key based Stripe Integration

A benefit of GiveWP’s premium Stripe addon is the option to connect using API keys, instead of the Stripe Connect method outlined above. This is an option for advanced users and developers who want to connect without the oAuth method outlined above.

Note: You do not need to use your own API keys if you are already connected to Stripe using the above “blue button” option.

When the premium add-on is activated, there’s an API Keys option which you can select to use to connect. First, you need to get your API keys from your Stripe account.

Obtaining Your Stripe API Keys

Log in to your Stripe dashboard and Navigate to Developers > API Keys

screenshot of the Stripe API keys interface with certain information blurred out for security.
The API Keys interface on Stripe allows you to copy and paste credentials from Stripe to GiveWP.
Note: To fully test Stripe without using real money, you’ll need both live and test keys. Test keys generally start with “sk_test” for the secret key and “pk_test” for the publishable key. To access live keys, the toggle on the bottom left for “View Test Data” should be OFF (to the left). Test keys show when you toggle Test data on.

Integrating Your API Keys in GiveWP

Leave the Stripe Dashboard open in one browser tab, and in a new tab go to your GiveWP-powered WordPress site and navigate to Donations > Settings > Payment Gateways > Stripe. Select the “API Keys” Connection Type to see the fields for adding in the API keys.

screenshot showing the spot to input API keys at Donations > Settings > Payment Gateways > Stripe.
API keys connection type is available only for premium add-on license holders.

That’s all there is to it. Now when your donors come to your site, they’ll be able to use credit cards to donate to you directly in the currency of your country and not have to be redirected to another site.

Connecting Stripe and Your Webhook (required)

In order for donations to be marked as complete on your GiveWP site, you must configure the webhook at Stripe. On the settings page at Donations > Settings > Payment Gateways > Stripe the webhook URL is pre-populated on the page. Copy that to your clipboard for later use.

Click the link in the paragraph just above the webhook URL or navigate to:

On that page, click the “Add endpoint” button and paste in your webhook URL.

screenshot of the stripe dashboard webhooks interface.
Add a Webhook Endpoint in your Stripe Dashboard.

A modal will appear. In that modal choose “Latest API Version” in the version dropdown. Then, choose which endpoints are triggered by selecting “All events.” It’s not in the dropdown, but a text link in the white box.

screenshot of the modal that pops up on the Stripe interface for adding a webhook. An example endpoint is added
The “Add Webhooks” modal, showing where you can click “receive all events”.

If your webhooks are not fully configured, you may see donations pending on your admin Donations screen and you may not see certain donations reflected in GiveWP, such as renewals for subscriptions.

Donor and confirmation emails will not be sent if donations are marked with the “Pending” status. Emails are only sent when a donation is marked Complete.

Note: If your donation status is set to “Pending” and the webhook is configured properly after the fact, that “Pending” status will NOT be set to “Complete”.  The reason is that that trigger for that was NOT received from Stripe at the time of the initial donation processing.

In these cases each “Pending” donation will need to be cross-checked with successful processed donations that show in your actual Stripe Account Dashboard. On the GiveWP side, you’ll just need to navigate to each successful donation and set the Status to “Complete” manually. The successful donations henceforth will have their status triggered to “Complete” automatically

screenshot of donations marked as pending with a yellow dot in the “status” column
Here is an example of what you might see if your webhook had not been fully configured prior to taking donations. Updating your webhook will not automatically change these donations to Complete. You can do so manually per Donation or via the Bulk Actions tool.

Note: It is recommended to send all events over the webhook so that if GiveWP is updated in the future to use any events that it currently does not, those will send as well. Unless your site is processing thousands of donations per day or more, you should have no issue with sending all events, and you can ignore the warnings from Stripe. Here are the events currently processed by GiveWP for both one-time and recurring:

  • checkout.session.completed
  • payment_intent.succeeded
  • payment_intent.payment_failed
  • charge.refunded
  • customer.subscription.deleted
  • invoice.payment_failed
  • invoice.payment_succeeded

In order to process test mode donations, you’ll need to repeat the same steps with Stripe’s dashboard toggled into test mode.

Disconnecting Stripe Connect

If for some reason you need to disconnect GiveWP from Stripe you can do so by clicking the “Disconnect” button found on the Manage Accounts tab. Disconnecting from Stripe will remove the ability to accept online donations until reconnected.

Disconnecting from Stripe will remove the connection between the website you are disconnecting as well as any other sites that you have connected to GiveWP using the same Stripe account and connect method. Proceed with caution when disconnecting if you have multiple sites connected.

When you activate the Stripe premium add-on, additional settings show up in the Stripe settings. The following section outlines settings that are added when you activate Stripe Premium. The free Stripe fields are discussed here in detail.

Frequently Asked Questions

Stripe itself always has it’s own credit card processing fees. If you are a 501(c)3 (or similar outside the U.S.) then Stripe can reduce your fees. Reach out to their support about that.

In addition to the Stripe credit card processing fees, our Stripe integration in the free GiveWP plugin includes a 2% commission charge. The paid Stripe add-on however does not include that charge.

If you are a GiveWP free user and using Stripe and seeing charges: purchase, install, and activate the Stripe Premium add-on and those additional charges will no longer be added to your future donations.

Yes. Previously, Stripe only required the webhook for recurring donations. Since the release of their “payment intents” system, the webhook is now required for both one-time and recurring donations so that GiveWP knows that the donation is complete.

Yes. They are two different gateways and both can be enabled and used side-by-side.

If you are seeing that you have many donations that are pending, but you have received funds through Stripe, your webhook has not been configured correctly. Seeing the webhook reflected in the Stripe Settings on WordPress is only the first step.

As of version 2.2.9 of the Stripe add-on, preapproval is no longer supported.