Stripe is a payment service that operates as both a Payment Gateway and Merchant Account. In practice, this means that setting up an account with Stripe is fast and easy.

The sections below cover basic Stripe information and settings. We also have a guide on troubleshooting a few common issues that can crop up at checkout when using Paid Memberships Pro with Stripe

Payment Options

Merchants can use Stripe to accept most credit and debit cards, including Visa, MasterCard, American Express, Discover, Diner’s Club, EnRoute, and JCB.

Members can also make payment using their Apple Pay, Google Pay, and Microsoft Pay accounts. Read this companion guide on setting up these payment request buttons in PMPro.


Currencies Supported

Merchants can accept payments in over 130 currencies. View the full list of currencies supported by Stripe

You have the option of letting Stripe automatically handle all conversions from USD and deposit the funds in your local currency-denominated bank account. Please note that Stripe charges a conversion fee for this service.


Stripe in Your Country

While you can accept payment in over 130 currencies, Stripe is only available for businesses in the 36 countries listed below. Visit https://stripe.com/global to view the list and sign up to be notified when Stripe is available in your country.

  • Australia
  • Austria
  • Belgium
  • Brazil
  • Canada
  • Czechia
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece

  • Hong Kong
  • India
  • Ireland
  • Italy
  • Japan
  • Latvia
  • Lithuania
  • Luxembourg
  • Malaysia
  • Mexico
  • Netherlands
  • New Zealand

  • Norway
  • Poland
  • Portugal
  • Romania
  • Singapore
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • Switzerland
  • United Kingdom
  • United States

Gateway Fees

There are no fixed monthly or annual fees when using the Stripe gateway.

Stripe charges 2.9% + $0.30 fee per transaction. Recurring payments, which use the Stripe Billing API incur an additional 0.5% fee per transaction. See https://stripe.com/us/pricing for details.

Users who are connected through the Paid Memberships Pro Stripe Connect interface are charged an additional 1% per transaction. This fee goes to Stranger Studios, the developers of Paid Memberships Pro, and is used to support the Connect server, Stripe gateway development, and the Paid Memberships Pro platform in general. Members of our PMPro Plus and Unlimited levels with an active License Key validated on their site will avoid that 1% fee on all new orders and subscriptions.

Additional Benefits of Stripe Connect

Not only does Stripe Connect offer a much easier setup process, it also makes your payment gateway more secure. When you connect Stripe through Paid Memberships Pro, we’ll be able to see the status of your account. Insight into account status will help us (and Stripe) resolve support requests faster.

Stripe Connect sites do not have to manually copy and paste their API keys into any settings fields. While the API keys are stored in the WordPress database, they are not readily accessible by users with the admin role. Additionally, connected sites do not need to manually maintain the API version linked to their API keys. This means that your membership site will always be using the latest, most secure, most fraud-proof method to connect to Stripe and accept payments.

Continue reading: Stripe Gateway Setup »

Connect Your Site to Stripe

Configuring Stripe for your membership site is done with the click of a single button that connects your Stripe gateway account.

  1. Navigate to Memberships > Settings > Payment Gateway & SSL in the WordPress admin.
  2. Click the “Connect with Stripe” button.

    Screenshot of the Payment Settings page before using Stripe Connect
  3. The next screen will redirect you to Stripe and, optionally, prompt you to log in to your Stripe account.
    • If you already have a Stripe account:
      1. Enter your existing Stripe account email address.
      2. Enter your existing Stripe account password.
    • If you do not already have a Stripe account:
      1. Create a new Stripe account through these steps.
  4. Once you are logged in, select your Stripe Account and click “Connect “.

    Log in to your existing Stripe account and select the account to connect at Stripe
  5. Once redirected back to your WordPress admin, confirm that the Stripe gateway account is connected.

    Screenshot of the Payment Settings page using Stripe Connect
  6. Save settings.

The Stripe integration for Paid Memberships Pro allows you to operate in two modes: “Live/Production” or “Sandbox/Testing”. You can connect to Stripe in either of these modes, using the same gateway account for both modes or a different Stripe account for each mode.

Click here for more information on using Stripe in Testing mode »

Screenshot of the Payment Settings page using Stripe Connect
Screenshot of a connected site in live mode.
Screenshot of the Payment Settings page using Stripe Connect in Test Mode
Screenshot of a connected site in test mode.
If your site is using the Legacy API Key method for Stripe, follow these steps to switch to Stripe Connect. The legacy method will be deprecated in future versions of Paid Memberships Pro.

Setting Your Webhook URL

To fully integrate with Stripe, you must configure a Webhook URL in your Stripe account. This will ensure that your membership site can stay in communication with the gateway for recurring payment notifications, payment failures, and subscription cancellations.

  1. Navigate to Memberships > Settings > Payment Gateway & SSL in the WordPress admin.
  2. Locate the “Webhook” settings field.
  3. Copy the Webhook URL from this field. The webhook URL will be in the sample format below:
    • http://www.YOURDOMAIN.com/wp-admin/admin-ajax.php?action=stripe_webhook
  4. In your Stripe account, click “Developers” in the upper right.
  5. Then, click “Webhooks” in the left column menu to navigate to the Webhooks settings page.
  6. Click “+ Add endpoint”.
  7. Enter the webhook URL that you copied in step 3 into the “Endpoint URL” field.
  8. From the “Events to send” dropdown, select the following events:
    • charge.failed
    • customer.subscription.deleted
    • invoice.payment_action_required
    • invoice.payment_succeeded
  9. Click “Add endpoint” to save this webhook to your Stripe account.

Enable the Payment Request Button

The Stripe gateway settings include an option to “Enable Payment Request Button”. This will allow members to pay using Apple Pay, Google Pay, or Microsoft Pay as an alternative to manually entering their credit card information. Read more about these browser payment options in our companion article here.


Using Stripe in Live or Test Mode

Testing a Stripe checkout requires you to change some settings in your membership site’s WordPress admin and to use specific testing card numbers provided by Stripe.

  1. Navigate to Memberships > Settings > Payment Gateway & SSL in the WordPress admin.
  2. Set your “Payment Gateway” to “Stripe” and set the “Gateway Environment” to “Sandbox/Testing”.
  3. Then, follow the steps in the “Connect Your Site to Stripe” section above to complete the setup. You can use the same Stripe Account for both modes, or connect a different Stripe Account for Sandbox/Testing mode. There are no gateway or platform fees charged when using your site in Sandbox/Test mode.
  4. Save settings.

To test a membership checkout, log out or visit your membership levels page in incognito mode. Stripe’s testing documentation page has test card numbers you can use for checkout. Use any valid future expiration date, any 3 digit CVV (or 4 digits for Amex) and the test card number below:

NumberCard type
Visa4242424242424242
MasterCard5555555555554444
American Express378282246310005
Discover6011111111111117

Update a Member’s Existing Subscription

Our Stripe Gateway integration is unique in that changes to a user’s existing subscription can be queued up through our “Subscription Updates” feature.

To update a user’s subscription, edit the user through the WordPress dashboard. Find the Membership Level section and Subscription Updates section below that. If you do not see a “Subscription Update” section for a user, that means the user does not have an active subscription with Stripe or the subscription is not synched with PMPro.

Subscription Updates for Stripe

To add an update, click the “+ New Update” link. To remove an update, click the “Remove” link next to that update. Be sure to click on the Update Profile button at the bottom of the screen to save any changes.

General Information

Each Update will have a trigger, an amount, and payment period.

After an update executes, it is removed from the queue and the following update will execute next based on the trigger.

If a user cancels their subscription, a subscription is cancelled due to payment failure, or a user changes their membership level, then all updates are cleared.

If a membership level has a custom trial setup from the edit membership level page, PMPro may automatically set up an update after checkout to change the price of the subscription after the trial.

Update Triggers

The trigger determines when PMPro will update the subscription.

Now: This will trigger as soon as the user changes are saved. A $0 order is created, and a new subscription replaces the existing subscription with the amount and billing period chosen. The next recurring payment will occur 1 period from the date of the change.

After Next Payment: This will trigger after the next recurring payment is processed. At that time, the amount and billing period are updated to the new values.

On Date: This will trigger on a specific date. On that date, a “WP CRON” event will fire early in the morning to create a $0 order and add a new subscription to replace the existing subscription with the amount and billing period chosen.

Update Amount

After the update is executed, all recurring payments for the subscription will charge the new amount.

Payment Period

After the update is executed, the new subscription will recur based on the cycle number and period chosen for the new billing period.