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

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.

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.

Stripe Settings Explained – General Settings Tab:

Stripe Connection

Settings Type: Button
Options: Connected/Disconnected

When you click the “Connect With Stripe” button, you’ll be redirected to Stripe and prompted to log in or choose between your accounts. Once you do so, you’ll be redirected back to your site and the blue button will indicate that you’ve been Connected.

Stripe Webhooks

Settings Type: Text Input
Options: Your Site URL followed by /?give-listener=stripe

The webhook should be copied and pasted from your Stripe account dashboard. Learn how to set it up here. 

Statement Descriptor

Settings Type: Text input
 any 22 alphanumeric characters.
Default: Site Title

This is the text that appears on your donor’s bank statements. Statement descriptors are limited to 22 characters, cannot use the special characters <>', or ", and must not consist solely of numbers. This is typically the name of your website or organization.

The GiveWP “Statement Descriptor” setting affects how your donors see their donations to you in their bank statements.

This allows you to customize the info that displays on bank statements.

Note: There must be a value in this field for Stripe to function properly. A default value of your site name is typically set, but in rare circumstances, this field appears blank by default. In that case, save a value here to restore functionality.

Collect Billing Details

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

This setting allows you to collect Address data along with donations, so that donation records include addresses at Give. The address is not necessary to process the donation at Stripe, but you may have a need to collect it.

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 ACH (bank account) payments. If enabled, those payments will process immediately.

Stripe Receipt Emails

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

In addition or instead of sending GiveWP’s generated receipt emails each time someone donates through your website, you have the option to send emails to your donors directly from Stripe instead.

You can enable this and disable GiveWP generated receipt emails in the Emails > Donor Emails tab.

Stripe Settings Explained – Credit Card on Site Tab:

Credit Card Fields Format

Settings Type: radio buttons
Options: Single Field | Multi Field
Default: Multi Field

This setting allows you to choose how the credit card fields are displayed on the form. The default is Multi Field which displays separate inputs for Card Number, CVC, Cardholder Name, and Expiration date.

The other option is Single Field which houses all of those various pieces of data in a much smaller single input.

Your Stripe donation page can be formatted with multiple fields to input credit card information or you can use a single input field to create a shorter form.

Stripe Settings Explained – Stripe Checkout Tab:

Checkout Type

Settings Type: Radio buttons
Options: Modal (Legacy Checkout) | Redirect (Checkout 2.0)
Default: Modal (Legacy Checkout)

Note: Stripe has deprecated this form of checkout and may no longer support it. As well, 3D secure card payments, Google and Apple Pay, are not available when using the Stripe Modal Window. If accepting 3D secure card payments is necessary, using the standard Stripe credit card fields is required.

If you want to use the Stripe Modal Checkout, essentially a Stripe-styled modal popup that offers a different interface to pay than the default Give credit card fields, check the Enable Stripe Checkout option. This Modal option is not SCA compatible.

As an alternative, the “Redirect” option allows your donor to use the checkout interface and pay with either a credit card, Apple Pay, or Google Pay. This method is SCA compatible and fully supported by Stripe and GiveWP.

When Redirect (Checkout 2.0) is selected, the only other option on this page is to edit the Processing Text. When Modal (Legacy Checkout) is selected, all the following options will appear.

Enable the new Stripe Checkout 2.0 via your GiveWP Stripe settings.

Checkout Heading

Settings Type: Text Field
Default: Your Site Title from the General Settings page

This is the main heading within the modal checkout.

Stripe Checkout Image

Settings Type: File Upload

This image appears in when the Stripe checkout modal window. The recommended size is a 128px x 128px square .gif, .jpeg or .png.

Once you have configured and saved the above settings, you would now see a Stripe Modal checkout like below while donation using Stripe.

Processing Text

Settings Type: Text Field
Default: Donation Processing…

This text appears briefly after the donor has made a successful donation while Give is confirming the payment with the Stripe API

Verify Zip Code

Settings Type: Checkbox
Options: Checked | Unchecked
Default: Checked

If enabled, Checkout should validate the billing ZIP code of the donor for added fraud protection.

Remember Me

Settings Type: Checkbox
Options: Checked | Unchecked
Default: Checked

If enabled, Checkout would remember the card details for future donations.

The Stripe Modal versus the Stripe Checkout 2.0.


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 the paid Stripe 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.