PayPal is one of the most recognized payment brands in the world. Millions of buyers actively look for PayPal at checkout. With this Add On, your members can pay with their PayPal account, a credit or debit card, or guest checkout with no PayPal account required.

  • Accept PayPal account payments, guest credit/debit card payments, and Pay in 4 for eligible one-time purchases
  • Offer one-time purchases or automatically recurring gateway-managed subscriptions
  • Webhook registers automatically: no manual setup in the PayPal dashboard
  • Manage live and sandbox credentials from a single settings screen
  • Issue refunds for one-time and subscription payments directly from PMPro admin
  • Subscription status, next payment date, and billing cycle sync directly from PayPal

Installation

You must have the Paid Memberships Pro plugin installed and activated to use this Add On.

  1. Navigate to Memberships > Add Ons in the WordPress admin.
  2. Locate the Add On and click “Install Now“.
    • Or, to install this plugin manually, download the .zip file above.
    • Upload the compressed directory (.zip) via the Plugins > Add New > Upload Plugin screen in the WordPress admin.
  3.  Activate the plugin through the Plugins screen in the WordPress admin.

How to Set Up the PayPal Gateway

Note: This Add On requires Paid Memberships Pro 3.7.1 or later, a PayPal Business account, and HTTPS on your site.

Step 1: Get Your PayPal API Credentials

You’ll need a Client ID and Client Secret from the PayPal Developer Dashboard. Get sandbox credentials first for testing, then repeat the steps for your live environment when you’re ready to go live.

For Sandbox Testing

  1. Go to developer.paypal.com and log in with your PayPal account.
  2. Open the Developer Dashboard. Toggle the environment to Sandbox in the top left.
  3. Select “Apps & Credentials” from the left sidebar menu.
PayPal Developer Dashboard Apps & Credentials page in Sandbox mode with an empty REST API apps table showing App name, Client ID, Secret, and Date and time columns, and a Create App button in the upper right.
  1. Click Create App or use the Default Application if one already exists. Give it a name like “PMPro” and click Create App.
PayPal Developer Dashboard Create App dialog with an App Name field, Type options (Merchant selected, Platform available), a Sandbox Account dropdown, and a Create App button.
  1. On the app detail page, copy the Client ID (shown in full) and the Client Secret. Click Show to reveal the secret.
PayPal Developer Dashboard sandbox app detail page for the PMPro app, showing the API credentials section with a masked Client ID and a masked Secret key. The page indicates sandbox mode.

For Live (Production)

Toggle to Live at the top of the Apps & Credentials page, then follow the same steps to create an app and copy your live Client ID and Client Secret.

Note: You may need to complete PayPal’s account verification before live credentials are available.

PayPal Developer Dashboard live app detail page for the PMPro app, showing the API credentials section with a masked Client ID and masked Secret key. A notice reminds users that not all features are available until account eligibility is confirmed.

Step 2: Configure the Plugin

  1. Install and activate the PayPal Add On if you haven’t already.
  2. Go to Memberships > Settings > Payments.
  3. Select PayPal from the Payment Gateway dropdown. Set the Payment Gateway Environment to Sandbox or Live.
PMPro Payment Settings page with the Payment Gateway dropdown open, showing Testing Only, Check (Pay by Check), Stripe, and PayPal selected with a checkmark. The Gateway Environment field below is set to Sandbox/Testing.
  1. Click Edit Settings for PayPal.
  2. Enter your Client ID and Client Secret in the corresponding fields for your Sandbox and Live environments.
  3. Click Save Settings.
PMPro Edit Payment Gateway: PayPal settings screen showing Live PayPal Settings (collapsed), Sandbox PayPal Settings (expanded with Client ID and Client Secret fields), and a PayPal Webhook section with the auto-registered Webhook URL and Webhook ID.

Step 3: Webhook (Automatic)

There’s nothing to configure here. The webhook registers itself. When you save valid credentials, the Add On calls the PayPal API and registers your webhook automatically. You don’t need to enter a webhook URL in the PayPal dashboard.

After saving, your settings page will display a Webhook ID confirming successful registration. The webhook URL is your site’s REST API endpoint:

https://yoursite.com/wp-json/pmpro-paypal/v1/webhook

How Checkout Works

This Add On handles checkout offsite, redirecting members to a PayPal-hosted payment page to complete their purchase before returning them to your confirmation page. There is no onsite card form.

  1. Member fills out the PMPro checkout form and clicks Check Out with PayPal.
PMPro membership checkout page showing Membership Information for "Premium with Trial" priced at $0.00 now then $27.00 per month, Account Information for the logged-in user, and a yellow Check Out with PayPal button.
  1. PMPro creates the user account and order. Discount codes, tax calculations, and custom profile start dates all apply normally.
  2. PayPal redirects the member to complete payment. They can pay with their PayPal account, a credit or debit card, or guest checkout: no PayPal account required.
PayPal-hosted guest checkout page titled "Pay with debit or credit card" with fields for country, email, phone type and number, and card number, expiration date, and CVV. A security shield on the right reads "PayPal is the safer, easier way to pay."
  1. After approval, the member is redirected back to your site. PayPal confirms the payment via webhook and completes checkout.

Note: Webhook confirmation can take a few seconds to a couple of minutes. Membership access is granted once PayPal confirms the payment, not immediately after the member is redirected back to your site.

Payment Methods Available to Members

  • PayPal account: balance, linked cards, linked bank accounts
  • Guest checkout: credit or debit card with no PayPal account required
  • Pay in 4: available for eligible one-time payments for logged-in PayPal users (not available for subscriptions)

Testing in Sandbox

Before going live, test your integration using PayPal’s sandbox environment. Set the Payment Gateway Environment to Sandbox in PMPro settings and use your sandbox Client ID and Client Secret.

  • Generate test credit card numbers at PayPal’s Card Testing tool.
  • Create sandbox buyer accounts at developer.paypal.com > Sandbox > Accounts.
  • Webhooks require HTTPS and a publicly accessible URL. Sandbox webhooks will not fire on localhost.

Note: If sandbox webhooks are not arriving, PayPal uses urlfiltering.paloaltonetworks.com to verify webhook delivery domains. Visit that site to confirm your domain isn’t flagged as high risk.

Debug Logging

Add one of the following constants to your wp-config.php to enable webhook debug logging. Keep this off in production unless you are actively troubleshooting.

Log to Email

// Send to a specific email address:
define( 'PMPRO_PAYPAL_WEBHOOK_DEBUG', 'you@example.com' );

// Send to the site admin email:
define( 'PMPRO_PAYPAL_WEBHOOK_DEBUG', true );

Log to File

To log webhook activity to a file instead of sending an email for each event, use:

define( 'PMPRO_PAYPAL_WEBHOOK_DEBUG', 'log' );

This writes to a log file in your site’s access-protected Restricted Files location, inside a logs/ subdirectory under your WordPress uploads folder:

/wp-content/uploads/pmpro-xxxxxxxxxx/logs/paypal-webhook.txt

How to Download the Log File

There are two ways to access the log file:

  1. Via SSH, SFTP, or FTP: navigate to the restricted files folder on your server, open the logs/ subdirectory, and download paypal-webhook.txt.
  2. From the browser: if you are logged in as a WordPress administrator, you can download the file directly at:
    yourdomain.com/?pmpro_restricted_file_dir=logs&pmpro_restricted_file=paypal-webhook.txt

Migrating from PayPal Express

PayPal Express was deprecated in PMPro 3.7.1. If your site has active PayPal Express subscriptions, those will continue to bill through PayPal until they are cancelled or expire naturally. They cannot be migrated.

Once you activate and configure this new PayPal Gateway Add On, all new checkouts will use the new PayPal integration.

Existing subscribers may eventually need to re-subscribe through the new checkout flow. This will happen naturally when their current subscription ends or if they need to update payment details. PayPal does not provide a way to move active subscriptions between API integrations.

Frequently Asked Questions

Do my members need a PayPal account to check out?

No. Members can complete checkout with a credit or debit card without logging in to or creating a PayPal account (somtimes called guest checkout).

Does this Add On support recurring subscriptions?

Yes. The Add On supports both one-time payments and subscriptions. Subscription status, next payment date, and billing cycle data sync directly from PayPal.

Do I need to set up the webhook manually in the PayPal dashboard?

No. The Add On automatically registers your webhook via the PayPal API when you save valid credentials. The Webhook ID will appear in your PMPro settings confirming registration. You do not need to enter a webhook URL anywhere in PayPal.

My member was redirected back to the site but their membership hasn’t activated. What’s happening?

Membership access activates once PayPal confirms the payment, not immediately after the member is redirected back to your site. This typically takes a few seconds but can take up to a couple of minutes depending on PayPal’s webhook delivery. If the membership doesn’t activate after several minutes, check your debug log for webhook events.

Are advanced trials supported (e.g., $50 for the first 3 months, then $100/month)?

Not in this version. A standard initial payment followed by a recurring amount is supported, but advanced multi-period trials are not. A simple initial payment amount that differs from the recurring amount (e.g., a discounted first payment) is supported through PMPro’s standard checkout options.

Can I offer PayPal alongside another gateway?

This Add On sets PayPal as the primary gateway for your site and cannot be used alongside another gateway.

Do you support Venmo?

No. This Add On does not currently support Venmo.

My sandbox webhooks are not arriving. What should I check?

Webhooks require HTTPS and a publicly accessible URL. They will not fire on localhost. Reach out to our support team for further assistance.

Why does the next payment date look off by a day?

PayPal charges subscriptions at the same UTC time each cycle. Depending on your site’s timezone, the displayed next payment date may appear to differ from PayPal’s date by one day. This is a display difference only. PayPal determines the actual charge date.

Screenshots

PMPro membership checkout page showing Membership Information for "Premium with Trial" priced at $0.00 now then $27.00 per month, Account Information for the logged-in user, and a yellow Check Out with PayPal button.
PayPal-hosted guest checkout page titled "Pay with debit or credit card" with fields for country, email, phone type and number, and card number, expiration date, and CVV. A security shield on the right reads "PayPal is the safer, easier way to pay."
PayPal Developer Dashboard Apps & Credentials page in Sandbox mode with an empty REST API apps table showing App name, Client ID, Secret, and Date and time columns, and a Create App button in the upper right.
PayPal Developer Dashboard Create App dialog with an App Name field, Type options (Merchant selected, Platform available), a Sandbox Account dropdown, and a Create App button.
PayPal Developer Dashboard sandbox app detail page for the PMPro app, showing the API credentials section with a masked Client ID and a masked Secret key. The page indicates sandbox mode.
PayPal Developer Dashboard live app detail page for the PMPro app, showing the API credentials section with a masked Client ID and masked Secret key. A notice reminds users that not all features are available until account eligibility is confirmed.
PMPro Payment Settings page with the Payment Gateway dropdown open, showing Testing Only, Check (Pay by Check), Stripe, and PayPal selected with a checkmark. The Gateway Environment field below is set to Sandbox/Testing.
PMPro Payment Gateway Settings page listing installed gateways — Testing Only, Check (Pay by Check), Stripe, and PayPal. PayPal is shown as the enabled primary gateway with an Edit Settings button.
PMPro Edit Payment Gateway: PayPal settings screen showing Live PayPal Settings (collapsed), Sandbox PayPal Settings (expanded with Client ID and Client Secret fields), and a PayPal Webhook section with the auto-registered Webhook URL and Webhook ID.

This is a Free Add On.

Create a free account or log in to gain access to downloads and documentation.