Skip to main content

PayPal Live Mode Setup

This tutorial walks you through setting up PayPal in live mode to accept real payments from customers.

Estimated time: 15-20 minutes

Before You Begin
  1. Complete PayPal Sandbox Setup first
  2. Test your entire checkout flow thoroughly in sandbox
  3. Verify webhooks are working (HTTP 200 in event log)
  4. Only proceed when everything works correctly in sandbox

Prerequisites

  • PaywallWP Pro installed and activated
  • SSL certificate (HTTPS) — required for live payments
  • PayPal Business account (verified)
  • Sandbox setup working correctly

Step 1: Ensure You Have a PayPal Business Account

1.1 Check Your Account Type

  1. Log in to https://www.paypal.com/ (live PayPal, not sandbox)
  2. Click the gear icon (Settings) in top right
  3. Click Account Settings
  4. Look for Account type — should say "Business"

1.2 Upgrade to Business Account (if needed)

If you have a Personal account:

  1. Go to Settings → Account Settings
  2. Click Upgrade to Business Account
  3. Follow the prompts to convert
  4. Provide business information

1.3 Complete Business Verification

PayPal may require verification before accepting payments:

RequirementDetails
Business nameLegal business name
Business addressPhysical business address
Tax IDEIN (US), VAT (EU), or equivalent
Bank accountFor receiving withdrawals
Identity verificationMay require ID documents
Verification Timeline

Verification typically takes 1-3 business days. Plan ahead!


Step 2: Get Live API Credentials

2.1 Switch to Live Mode

  1. Go to https://developer.paypal.com/dashboard/
  2. Log in with your PayPal Business account
  3. Find the Sandbox / Live toggle at the top
  4. Click to select Live

2.2 Create Live App (if needed)

If you don't have a live app yet:

  1. Go to Apps & Credentials

    Direct URL: https://developer.paypal.com/dashboard/applications/live

  2. Click Create App

  3. Fill in:

    FieldValue
    App NamePaywallWP Live
    App TypeMerchant
  4. Click Create App

2.3 Copy Live Credentials

On your live app page:

CredentialWhereNotes
Client IDDisplayed openlyCopy this
SecretClick Show to revealCopy this
Security Warning - Live Credentials

These credentials process real money. Handle with extreme care:

  • Never share live secret publicly
  • Never commit to version control
  • Never expose in frontend code
  • Store securely (password manager, env variables)

Step 3: Create Live Subscription Plan

Important

Sandbox plans do NOT work in live mode. You must create new plans in live PayPal.

3.1 Log In to Live PayPal Business

  1. Go to https://www.paypal.com/ (NOT sandbox.paypal.com)
  2. Log in with your real PayPal Business account

3.2 Navigate to Subscriptions

  1. Click Pay & Get Paid in the top menu

  2. Click Subscriptions

    Or go directly to: https://www.paypal.com/billing/subscriptions

3.3 Create a Product

  1. Click Create Plan

  2. Click Create a Product

  3. Fill in:

    FieldValue
    Product NameYour product name (e.g., "Premium Membership")
    Product TypeService (or appropriate type)
    DescriptionClear description of what's included
  4. Click Create Product

3.4 Create Subscription Plan

  1. After creating the product, you'll create the plan

  2. Fill in plan details:

    FieldYour ValueExample
    Plan NameYour plan namePremium Monthly
    DescriptionPlan descriptionFull access, billed monthly
    PriceYour actual price9.99
    CurrencyYour currencyUSD
    Billing IntervalMonth or YearMonth
    Interval Count11
    Total Cycles0 (infinite)0
  3. Configure Payment Preferences:

    • Setup Fee: 0 (unless you charge one)
    • Auto-billing for failed payments: Recommended Yes
  4. Click Save Plan

3.5 Activate and Copy Plan ID

  1. Find your plan in the plans list

  2. Click Turn Plan On to activate

  3. Click the plan to view details

  4. Copy the Plan ID (starts with P-)

    Example: P-1AB23456CD789012EF345GHI

3.6 Create Additional Plans (if needed)

If you offer multiple pricing tiers (monthly, yearly, etc.):

  1. Repeat steps 3.4-3.5 for each plan
  2. Use the same product, different plan
  3. Copy each Plan ID

Step 4: Create Live Webhooks

Separate Webhooks Required

You need separate webhooks for sandbox and live modes. Do NOT reuse your sandbox webhook.

4.1 Navigate to Webhooks in Live Mode

  1. In Developer Dashboard, ensure Live mode is selected (top toggle)
  2. Go to Apps & Credentials
  3. Click on your live app
  4. Scroll to Webhooks section

4.2 Add Live Webhook

  1. Click Add Webhook

  2. Enter your webhook URL:

    https://yoursite.com/wp-json/paywallwp/v1/paypal-webhook
  3. Select these events:

    EventPurpose
    BILLING.SUBSCRIPTION.ACTIVATEDNew subscription
    BILLING.SUBSCRIPTION.CANCELLEDCancellation
    BILLING.SUBSCRIPTION.EXPIREDExpiration
    BILLING.SUBSCRIPTION.SUSPENDEDPayment failure
    PAYMENT.SALE.COMPLETEDSuccessful payment
    PAYMENT.SALE.REFUNDEDRefund processed
  4. Click Save

4.3 Copy Live Webhook ID

  1. Find your new webhook in the list
  2. Copy the Webhook ID
Keep Sandbox Webhook

Keep your sandbox webhook active for future development. You now have:

  • Sandbox webhook → for testing
  • Live webhook → for production

Step 5: Update PaywallWP Settings

5.1 Configure Live Mode

  1. In WordPress, go to PaywallWP → Settings → Payments

  2. In the PayPal section:

    • Click Live Mode button
  3. Enter your live credentials:

    FieldValue
    Live Client IDFrom Step 2.3
    Live Client SecretFrom Step 2.3
    Live Webhook IDFrom Step 4.3
  4. Click Save Settings

5.2 Verify Settings

After saving, confirm:

  • Mode shows Live (not Sandbox)
  • All three fields populated with live values
  • No error messages
  • Settings saved successfully

Step 6: Verify Plans Match

  1. Go to PaywallWP → Plans
  2. Verify your plans are published
  3. Confirm prices exactly match your live PayPal plans
Automatic Sync

PaywallWP syncs with PayPal automatically. If prices match, no changes needed.


Before promoting to customers, do a small live test:

7.1 Create Test Transaction

  1. Create a temporary $1.00 plan in both:

    • PayPal (new $1 subscription plan)
    • PaywallWP (new $1 plan)
  2. Subscribe using your own real PayPal account (or real card)

  3. Verify everything:

    • Payment appears in PayPal Business → Activity
    • Subscription shows Active in PaywallWP → Members
    • Webhook shows HTTP 200 in Developer Dashboard
    • You can access protected content

7.2 Clean Up Test

  1. Cancel the subscription:

    • PaywallWP: Members → Edit → Cancel
    • Or PayPal: Business → Subscriptions → Cancel
  2. Refund the payment:

    • PayPal: Activity → Transaction → Refund
  3. Delete the test plan from PaywallWP


Go-Live Checklist

Before launching to customers:

Technical Setup

  • Live API credentials configured
  • Live webhook created and working
  • SSL certificate valid (HTTPS)
  • Webhook receiving events (HTTP 200)

PayPal Account

  • Business account verified
  • Bank account linked for withdrawals
  • Business profile complete
  • Email notifications configured

PaywallWP Setup

  • Plans published and priced correctly
  • Content properly protected
  • Pricing page displays correctly
  • Account page works for members
  • Terms of Service
  • Privacy Policy
  • Refund/Cancellation Policy

Final Test

  • Test payment with real PayPal/card
  • Subscription activates immediately
  • Member accesses protected content
  • Cancellation flow works

Troubleshooting

"Invalid client credentials"

Cause: Using sandbox credentials in live mode (or vice versa)

Solutions:

  • Verify you're using Live credentials
  • Check credentials are from your Live app
  • Make sure PaywallWP is set to Live Mode
  • Re-copy credentials without extra spaces

Plans Not Working

Cause: Sandbox plans don't work in live mode

Solutions:

  • Create new plans in live PayPal (Step 3)
  • Verify live plans are activated (turned on)
  • Check plan prices match PaywallWP exactly

Webhook Not Receiving Events

Solutions:

  • Ensure using Live webhook ID (not Sandbox)
  • Verify HTTPS certificate is valid
  • Check PayPal app is in Live mode
  • Test with PayPal's Webhook Simulator (in Live mode)

"Account Not Verified" Errors

Solutions:

  • Complete PayPal business verification
  • Add and verify bank account
  • Provide any requested documentation
  • Contact PayPal support if stuck

Payments Work But No Withdrawals

Solutions:

  • Link bank account in PayPal → Wallet → Link bank
  • Complete any pending verification
  • Check withdrawal limits
  • First withdrawals may take 3-5 days

Monitoring Live Payments

After going live, regularly monitor:

WhatWhereFrequency
TransactionsPayPal → ActivityDaily
SubscriptionsPayPal → SubscriptionsWeekly
Webhook healthDeveloper Dashboard → WebhooksWeekly
MembersPaywallWP → MembersWeekly
DisputesPayPal → Resolution CenterAs notified

Set Up PayPal Notifications

  1. Log in to PayPal Business
  2. Go to Settings → Notifications
  3. Enable notifications for:
    • Payment received
    • Subscription cancelled
    • Payment failed
    • Disputes/chargebacks

Live Mode URLs Reference

PurposeURL
Developer Dashboard (Live)https://developer.paypal.com/dashboard/applications/live
PayPal Business Loginhttps://www.paypal.com/
PayPal Subscriptionshttps://www.paypal.com/billing/subscriptions
Resolution Centerhttps://www.paypal.com/disputes/

Next Steps

You're now accepting real PayPal payments!