Stripe is a well-respected international payment gateway with support for a large number of countries and currencies. With Stripe Premium and Give 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

In order to accept payments with Stripe using Give you will need to have an active Stripe account, the Stripe Give Add-on, and the Give Core plugin installed and activated. If you plan on accepting Credit Cards on site we also highly recommend you have an SSL certificate.

Click here for instructions on installing and activating Give Add-ons.

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

After your Stripe Add-on is activated, go to “Donations > Settings” and click on the Payment Gateways tab. There you will see the default Payment Gateways (PayPal Standard, Test Payment, and Offline Donations). With the Stripe addon active, there’s a Stripe option/section as well. Check the checkbox to enable Stripe as your credit card Gateway for your website, and change the front-end label that donors see, if you’d like.

If you would like to accept credit cards directly on your website with Stripe you will need an SSL certificate.

Connecting to Stripe

Once you have activated the Add-on it’s time to get connected to Stripe. There are two methods for connecting to Stripe, the Stripe Connect Method and 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 Stripe Connect banner that displays in wp-admin prompting your 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.

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)”.

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:

The GiveWP Stripe settings screen showing that you are now successfully connected to your Stripe account.

Give is now connected to your Stripe account and ready to accept both live and test donations.

Disconnecting Stripe Connect

If for some reason you need to disconnect Give from Stripe you can do so by clicking the “Disconnect” button found under the gateway’s settings. 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 Give using the same Stripe account. Proceed with caution when disconnecting if you have multiple sites connected.

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
https://dashboard.stripe.com/account/webhooks

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

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 simply selecting “All events.”

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.

A screenshot of the WordPress dashboard, which shows the GiveWP Donations page. All the donations show a yellow dot and the word "Pending" under 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 Give 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.

API-key based Stripe Integration

If you want to use your own Stripe account’s API keys to connect to Stripe you can do so. Note: you do not need to use your own API keys if you are already connected to Stripe.

To use your API keys first navigate to WP-Admin > Donations > Settings > Advanced. On that page enable the “Stripe API Keys” option:

Enable the Stripe API keys to connect via the API instead of Connect.

Once enabled you can now obtain your API Keys and configure your Give Settings to integrate with Stripe.

Obtaining Your Stripe API Keys

Login to your Stripe account and you’ll be presented with the Stripe Dashboard like the image below.

 

Click on Developers in the left navigation, then select the API Keys link. You will be presented with a screen like the one below (you may have to re-authenticate to see this screen):

Find your Stripe API Keys in your Stripe Dashboard under “Developers > API keys.”

There you’ll find all the API Keys you need to integrate Give with your Stripe account.

Test Keys are great for testing your donation forms before pushing your site live. When you are ready to go live, make sure to update your Stripe Add-on settings with the Live Secret and Publishable Keys.

Important: for live keys, follow the same steps above AFTER toggling the stripe dashboard into live mode. Test keys generally start with “sk_test” for the secret key and “pk_test” for the publishable key. Enter those keys in the appropriate spot in the Stripe settings for test donation. When your site is in Give test mode (more on that below) it uses these keys.

Integrating Your API Keys in Give

Copy each key and go to your WordPress site. Go to “Donations > Settings” and click on the Payment Gateways tab. There you’ll see a section called Stripe Settings. Paste each key into its respective field, then save settings.

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.

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.

Stripe Premium Settings Explained – General Tab:

Pre-approve Only

Settings Type: checkbox
Options: checked | unchecked
Default: unchecked

This allows you to pre-approve payments but not charge until up to seven days after the donation has been made. If selected, you need to manually go in and mark donations as approved before the money will come into your Stripe account. After 7 days, the money is not recoverable.

Note: Pre-approval does not work for Recurring donations or Plaid (bank account) donations. If enabled, those payments will process immediately, regardless of this setting.

Stripe Settings Explained – Plaid (ACH) Tab:

API Mode

Settings Type: Radio Button
Options: Test | Development | Live
Default: Test

If you want to use GiveWP’s test mode and test your donation forms with real money, enable the Test option. If you want to test with real money outside of test mode, use Development. This is free for up to 100 donors. If you want to use the Live option, you’ll need to configure and pay for this account directly through your Plaid account. 

Learn more about configuring Plaid here. 

Plaid Client ID

Settings Type: Text field
Default: Empty

Insert the client ID from your Plaid account here.

Plaid Public Key

Settings Type: Text field
Default: Empty

Insert the public key from your Plaid account here.

Plaid Secret Key

Settings Type: Text field
Default: Empty

Insert the secret key from your Plaid account that matches the type you’ve chosen (test, development, or live) here.

 

Stripe Settings Explained – Google/Apple Pay Tab:

Configure Apple Pay

Settings Type: Button

When clicked, the button allows you finalize the setup of Stripe’s Apple Pay Integration. Give creates a file and saves it to a specific spot on your server so that Stripe and Apple can verify the domain.

Button Appearance

Settings Type: Radio Button
Options: Light | Light Outline | Dark
Default: Dark

Determine the style you’d like for your Apple Pay button. 

Learn more about Apple/Google Pay here.

Some settings for Stripe are located in the Advanced tab at Donations > Settings > Advanced > Stripe. This section covers those settings and options.

Advanced Settings Options overview

Stripe API Keys

Settings Type: Radio buttons
Options: Enabled | Disabled
Default: Disabled

This setting is intended for when you’d like to use your own API keys taken directly from Stripe, instead of the blue Stripe Connect button from the Payment Gateways tab.

Stripe SDK Compatibility

Settings Type: Radio Buttons
Options: Composer Autoloading | Manual Initialization
Default: Composer Autoloading

This setting is recommended for when you’re experiencing conflicts or fatal errors on your website, due to other plugins on your site that are using the the Stripe Software Development Kit. WordPress does not have a dependency management system to prevent these kinds of conflicts. As a result, you can switch to Manual Initialization if experiencing these conflicts.

 

Stripe Styles

Settings Type: Text Areas

Options: Base Styles, Empty Styles, Invalid Styles, Complete Styles

Default for Base Styles:

{
    'color': '#32325D',
    'fontWeight': 500,
    'fontSize': '16px',
    'fontSmoothing': 'antialiased',

    '::placeholder': {
        'color': '#222222'
    },

    ':-webkit-autofill': {
        'color': '#e39f48'
    }
}

Default for Other Styles: {}

Use these areas to add custom JSON for various Stripe elements on your websites, such as color, font and more, in order to match the look and feel of your WordPress theme.

Read this doc more details on styling these Stripe fields.

Stripe Fonts

Settings Type: Radio buttons
Options: Google Fonts | Custom Fonts
Default: Google Fonts

These selections will apply to the Stripe Credit Card fields – including card number, CVC and expiration date.

Refer this doc more details on styling these Stripe elements.

With Google Fonts selected, there will be a text field where you can enter the Google Fonts URL that you want to apply to your Stripe Credit Card fields.

If you select Custom Fonts instead, a text area will open to allow you to add the custom CSS and declare the fonts you’d like to use.

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.