Search for keywords, like "PayPal", "Recurring Donations", and more.

Documentation / Add-ons / Stripe Gateway Settings

Stripe Gateway Settings

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.

GiveWP
Get the Stripe Gateway Add-on View Add-on

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:

The banner shown at the top of all admin pages to connect to 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 page after successful connection, with an overlaid modal instructing how to add the webhook to the Stripe account
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

Stripe API keys

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.

after clicking API Keys to connecta s Stripe account, a modal pops up asking for those keys.
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 > General Settings 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:

https://dashboard.stripe.com/account/webhooks

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

The webhook is a one-way message from Stripe to your GiveWP site to alert the site of events on the Stripe side. Select the following Events:

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

Stripe has a method for sending ALL events, which you can also use, as long as you understand the tradeoff you are making there. Every event that is sent over the webhook, regardless of whether GiveWP does anything with it, creates a log in the GiveWP logs at Donations > Tools > Logs. For the events above, in addition to logging the event, GiveWP also does something else (marks the donation as complete, adds a renewal for recurring subscriptions, marks a transaction as refunded, etc).

If you select all events, you’ll end up with lots of events GiveWP doesn’t really do anything with, which can clutter up your logs, or in the case of Stripe accounts with a ton of volume, potentially slow down your server.

But by selecting all events you’ll be ready if GiveWP ever changes/adds a feature that uses a new event.

The most common problem that points toward webhooks not being configured correctly is donations not being marked as complete on the GiveWP side, even though they are complete at Stripe.

A side effect of donations in “pending” status is that email notifications (Donation Confirmation, Donor Receipt, etc) are not sent.

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

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.

Frequently Asked Questions

Last updated today

Start Fundraising Better Today!

Get GiveWP Today
GiveWP Plans

Give Fundraising Newsletter

The Give Fundraising Newsletter will help you navigate the world of online fundraising like a pro. Each week we send out fundraising advice, Give LIVE announcements, and exclusive offers to our newsletter subscribers.