PayPal

A
André
Written By AndréLast updated about 6 hours ago

PayPal works differently from providers like Polar or Lemon Squeezy. It is a payment processor, not a product catalog. This means a private paypal account does not create products for you instead, you create subscription plans directly in your PayPal Business account, and PayGlue listens for the payment events those plans generate.

What PayPal supports in PayGlue

PayGlue supports subscription plans only. One-time PayPal Checkout payments are not supported.

When a subscriber activates, cancels, or expires a PayPal subscription, PayGlue receives a webhook event and updates the Ghost membership accordingly.

Important requirements

Warning: A PayPal Business account is required. Personal PayPal accounts cannot access Live API credentials or create subscription plans for merchant use.

  • PayPal Business account (not personal)
  • Live API credentials sandbox credentials do not work with PayGlue
  • At least one active subscription plan created in your PayPal account

Step 1: Create a subscription plan in PayPal

Subscription plans are managed in your PayPal Business dashboard — not in the developer portal.

  1. Log in to paypal.com with your business account
  2. In the left sidebar, click Get Paid (or "Accept Payments")
  3. Click Subscriptions
  4. Open the Subscription Plans
  5. Click +Create plan
Paypalcreat Esubscription
  1. Fill in the plan details: name, billing cycle (monthly or yearly), and price
  2. Activate the plan it must have status ACTIVE to appear in PayGlue
Paypal Subscription Plan

After saving, each plan gets a Plan ID starting with P-. You will need this to build the checkout link (see Step 5).


Step 2: Create a REST API app in the PayPal Developer portal

  1. Go to developer.paypal.com
  2. Click Apps & Credentials in the left sidebar
  3. Make sure you are in Live mode — click the toggle at the top left to switch from Sandbox to Live
Paypal Create App

Warning: If you see a banner saying "Viewing sandbox API credentials. Upgrade your account to PayPal for Business to view live credentials" your account is not yet a Business account or you are in Sandbox mode. Switch to Live at the top of the page.

Paypalbusiness Account
  1. Click Create App
  2. Give it a name (e.g. PayGlue) and select Merchant as the app type
  3. After creation, copy the Client ID and Client Secret you will need both in Step 4
Paypal App Details

Step 3: Add a webhook to your app

  1. Open your newly created app in the developer portal
  2. Scroll down to the Webhooks section
  3. Click Add Webhook
  4. Paste this URL as the Webhook URL:
https://api.payglue.io/webhooks/paypal?tenant=YOUR-SLUG

Replace YOUR-SLUG with your PayGlue tenant slug (visible in the PayGlue dashboard URL or on the PayPal connection page).

  1. Enable the following events:

Event

Trigger

BILLING.SUBSCRIPTION.ACTIVATED

New subscription started

BILLING.SUBSCRIPTION.CANCELLED

Subscription cancelled

BILLING.SUBSCRIPTION.EXPIRED

Subscription expired

BILLING.SUBSCRIPTION.SUSPENDED

Subscription paused

BILLING.SUBSCRIPTION.UPDATED

Subscription changed

PAYMENT.CAPTURE.COMPLETED

One-time payment completed

  1. Save the webhook — PayPal will show a Webhook ID after saving. Copy it.
Paypal Webhook

Step 4: Enter your credentials in PayGlue

  1. Open your PayGlue dashboard and go to Providers
  2. Click Connect PayPal
  3. Fill in the three fields:
  • Client ID — from your Live app in the developer portal
  • Client Secret — from your Live app in the developer portal
  • Webhook ID — shown after you save the webhook in Step 3
  1. Click Save credentials
  2. Click Run health check to verify the connection

The PayPal connection page also shows your full Webhook URL at the top. Use this when setting up the webhook in Step 3.

Payglue Paypal

After saving credentials, PayGlue loads your active PayPal subscription plans. You can use them in the Buy Button, Paywall, and Pricing Table editors.

How the checkout link works:

PayPal subscription plans use a direct checkout URL. When a buyer clicks it, they are taken to a PayPal login page — they must have a PayPal account to subscribe. This is expected behavior: PayPal requires buyers to log in.

The checkout URL format is:

https://www.paypal.com/webapps/billing/plans/subscribe?plan_id=P-XXXX

Replace P-XXXX with your plan's ID (visible in the plan list in your PayPal business account).

In the editor, select your PayPal plan from the product picker. PayGlue fills in this link for you, for a sandbox or a live connection alike. If you paste a link by hand, make sure its plan_id is the plan you selected: PayGlue grants access for the selected plan, so a link to a different plan sells a subscription that unlocks nothing.

Payglue Paypal Mapping

Step 6: Map plans to Ghost tiers

Open the Buy Button, Paywall, or Pricing Table editor in your PayGlue dashboard and select your PayPal subscription plan from the product picker. Choose the Ghost newsletter (tier) the member should receive and the welcome email type, then save.

The mapping is created automatically. When a subscriber activates the plan, PayGlue grants the matching Ghost tier.

See also: Buy Button · Paywall · Pricing Table


Supported events

PayPal event

PayGlue action

BILLING.SUBSCRIPTION.ACTIVATED

Grant Ghost tier

BILLING.SUBSCRIPTION.UPDATED

Keep tier active

BILLING.SUBSCRIPTION.RE-ACTIVATED

Restore Ghost tier

BILLING.SUBSCRIPTION.CANCELLED

Revoke Ghost tier

BILLING.SUBSCRIPTION.SUSPENDED

Revoke Ghost tier

BILLING.SUBSCRIPTION.EXPIRED

Revoke Ghost tier

PAYMENT.CAPTURE.COMPLETED

Grant tier (one-time)


Buyer experience

When a buyer clicks a PayPal subscription checkout link, they see a PayPal login page. This is by design — PayPal requires buyers to have a PayPal account to manage a subscription. After logging in, they confirm the plan and are charged automatically on the billing cycle.

PayGlue receives the confirmation webhook and creates or updates the Ghost member automatically.

Was this helpful?

Your feedback shapes what we write next.