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
- Complete PayPal Sandbox Setup first
- Test your entire checkout flow thoroughly in sandbox
- Verify webhooks are working (HTTP 200 in event log)
- 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
- Log in to https://www.paypal.com/ (live PayPal, not sandbox)
- Click the gear icon (Settings) in top right
- Click Account Settings
- Look for Account type — should say "Business"
1.2 Upgrade to Business Account (if needed)
If you have a Personal account:
- Go to Settings → Account Settings
- Click Upgrade to Business Account
- Follow the prompts to convert
- Provide business information
1.3 Complete Business Verification
PayPal may require verification before accepting payments:
| Requirement | Details |
|---|---|
| Business name | Legal business name |
| Business address | Physical business address |
| Tax ID | EIN (US), VAT (EU), or equivalent |
| Bank account | For receiving withdrawals |
| Identity verification | May require ID documents |
Verification typically takes 1-3 business days. Plan ahead!
Step 2: Get Live API Credentials
2.1 Switch to Live Mode
- Go to https://developer.paypal.com/dashboard/
- Log in with your PayPal Business account
- Find the Sandbox / Live toggle at the top
- Click to select Live
2.2 Create Live App (if needed)
If you don't have a live app yet:
-
Go to Apps & Credentials
Direct URL: https://developer.paypal.com/dashboard/applications/live
-
Click Create App
-
Fill in:
Field Value App Name PaywallWP Live App Type Merchant -
Click Create App
2.3 Copy Live Credentials
On your live app page:
| Credential | Where | Notes |
|---|---|---|
| Client ID | Displayed openly | Copy this |
| Secret | Click Show to reveal | Copy this |
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
Sandbox plans do NOT work in live mode. You must create new plans in live PayPal.
3.1 Log In to Live PayPal Business
- Go to https://www.paypal.com/ (NOT sandbox.paypal.com)
- Log in with your real PayPal Business account
3.2 Navigate to Subscriptions
-
Click Pay & Get Paid in the top menu
-
Click Subscriptions
Or go directly to: https://www.paypal.com/billing/subscriptions
3.3 Create a Product
-
Click Create Plan
-
Click Create a Product
-
Fill in:
Field Value Product Name Your product name (e.g., "Premium Membership") Product Type Service (or appropriate type) Description Clear description of what's included -
Click Create Product
3.4 Create Subscription Plan
-
After creating the product, you'll create the plan
-
Fill in plan details:
Field Your Value Example Plan Name Your plan name Premium Monthly Description Plan description Full access, billed monthly Price Your actual price 9.99 Currency Your currency USD Billing Interval Month or Year Month Interval Count 1 1 Total Cycles 0 (infinite) 0 -
Configure Payment Preferences:
- Setup Fee: 0 (unless you charge one)
- Auto-billing for failed payments: Recommended Yes
-
Click Save Plan
3.5 Activate and Copy Plan ID
-
Find your plan in the plans list
-
Click Turn Plan On to activate
-
Click the plan to view details
-
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.):
- Repeat steps 3.4-3.5 for each plan
- Use the same product, different plan
- Copy each Plan ID
Step 4: Create Live Webhooks
You need separate webhooks for sandbox and live modes. Do NOT reuse your sandbox webhook.
4.1 Navigate to Webhooks in Live Mode
- In Developer Dashboard, ensure Live mode is selected (top toggle)
- Go to Apps & Credentials
- Click on your live app
- Scroll to Webhooks section
4.2 Add Live Webhook
-
Click Add Webhook
-
Enter your webhook URL:
https://yoursite.com/wp-json/paywallwp/v1/paypal-webhook -
Select these events:
Event Purpose BILLING.SUBSCRIPTION.ACTIVATEDNew subscription BILLING.SUBSCRIPTION.CANCELLEDCancellation BILLING.SUBSCRIPTION.EXPIREDExpiration BILLING.SUBSCRIPTION.SUSPENDEDPayment failure PAYMENT.SALE.COMPLETEDSuccessful payment PAYMENT.SALE.REFUNDEDRefund processed -
Click Save
4.3 Copy Live Webhook ID
- Find your new webhook in the list
- Copy the Webhook ID
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
-
In WordPress, go to PaywallWP → Settings → Payments
-
In the PayPal section:
- Click Live Mode button
-
Enter your live credentials:
Field Value Live Client ID From Step 2.3 Live Client Secret From Step 2.3 Live Webhook ID From Step 4.3 -
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
- Go to PaywallWP → Plans
- Verify your plans are published
- Confirm prices exactly match your live PayPal plans
PaywallWP syncs with PayPal automatically. If prices match, no changes needed.
Step 7: Test Live Setup (Recommended)
Before promoting to customers, do a small live test:
7.1 Create Test Transaction
-
Create a temporary $1.00 plan in both:
- PayPal (new $1 subscription plan)
- PaywallWP (new $1 plan)
-
Subscribe using your own real PayPal account (or real card)
-
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
-
Cancel the subscription:
- PaywallWP: Members → Edit → Cancel
- Or PayPal: Business → Subscriptions → Cancel
-
Refund the payment:
- PayPal: Activity → Transaction → Refund
-
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
Legal Pages
- 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:
| What | Where | Frequency |
|---|---|---|
| Transactions | PayPal → Activity | Daily |
| Subscriptions | PayPal → Subscriptions | Weekly |
| Webhook health | Developer Dashboard → Webhooks | Weekly |
| Members | PaywallWP → Members | Weekly |
| Disputes | PayPal → Resolution Center | As notified |
Set Up PayPal Notifications
- Log in to PayPal Business
- Go to Settings → Notifications
- Enable notifications for:
- Payment received
- Subscription cancelled
- Payment failed
- Disputes/chargebacks
Live Mode URLs Reference
| Purpose | URL |
|---|---|
| Developer Dashboard (Live) | https://developer.paypal.com/dashboard/applications/live |
| PayPal Business Login | https://www.paypal.com/ |
| PayPal Subscriptions | https://www.paypal.com/billing/subscriptions |
| Resolution Center | https://www.paypal.com/disputes/ |
Next Steps
You're now accepting real PayPal payments!
- Offer Stripe too? → Stripe Live Mode Setup
- Handle disputes → PayPal Resolution Center
- Customize checkout → Configure PaywallWP checkout settings
- Monitor performance → Track conversion rates and revenue