PayPal
Member checkout via PayPal REST. Separate from affiliate PayPal payout details. Needs Client ID, secret, and webhook ID.
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.