PayPal

Member checkout via PayPal REST. Separate from affiliate PayPal payout details. Needs Client ID, secret, and webhook ID.

Settingpaypal_checkout_enabled

PayPal

Member payments via PayPal REST Checkout. Separate from affiliate/webmaster payout PayPal email under Payout methods.

Where to find it

Admin → Settings → Payment → gateways → PayPal

Setup

1. Create a REST app in the PayPal Developer Dashboard.

2. Copy Client ID and Secret (sandbox vs live apps match the Sandbox toggle).

3. Register the admin webhook URL (/api/webhooks/paypal) and note the Webhook ID. Subscribe to the events listed in admin (capture completed).

4. Optional business email field is display/metadata - not the REST secret.

5. Enable checkout (and reseller enable if needed).

Official: PayPal REST APIs and Webhooks.

Field Key
Enable paypal_checkout_enabled
Enable for reseller paypal_checkout_reseller_enabled
Client ID paypal_client_id
Client secret paypal_client_secret
Webhook ID paypal_webhook_id
Business email paypal_email (optional)
Sandbox paypal_sandbox

Env vars PAYPAL_CLIENT_ID, PAYPAL_CLIENT_SECRET, PAYPAL_WEBHOOK_ID can override DB when set.

Money path

Member pays in PayPal → webhook/capture completes → site grants plan or tops up balance. Return URL success with a failed webhook can leave the member unpaid in the app.

Common problems

Return URL vs webhook

Browser return can succeed while webhook fails - fix webhook first.

Confused with payout PayPal

Checkout credentials ≠ affiliate withdrawal PayPal destination.

Related