PayPal Setup
PayPal gives your customers an alternative to credit cards. Some buyers prefer it because they can pay from their PayPal balance or a linked bank account without entering card details at checkout. When a customer selects PayPal, they’re redirected to PayPal’s hosted checkout page to complete the payment.
Step 1: Create a PayPal app
- Create a PayPal Business account at paypal.com/business if you don’t have one
- Go to the PayPal Developer Dashboard and navigate to Apps & Credentials
- Make sure you’re on the Live tab (or Sandbox if you’re testing first)
- Click Create App, give it a name (e.g. “FluxStore”), and save
- Copy your Client ID and Client Secret from the app detail page
Step 2: Set up your webhook
FluxStore needs to receive events from PayPal to know when payments succeed, subscriptions renew, and disputes are filed. Without a webhook, your orders will stay pending forever.
- In the PayPal Developer Dashboard, open your app and scroll to the Webhooks section
- Click Add Webhook
- Set the webhook URL to:
https://api.fluxstore.net/api/webhooks/paypal - Subscribe to the following events:
| Event | What it’s for |
|---|---|
PAYMENT.CAPTURE.COMPLETED | One-time payment successfully captured |
PAYMENT.CAPTURE.DENIED | Payment capture was denied |
CHECKOUT.ORDER.APPROVED | Customer approved the payment on PayPal |
PAYMENT.CAPTURE.REVERSED | Payment reversed (chargeback/refund) |
PAYMENT.CAPTURE.REFUNDED | Payment refunded |
BILLING.SUBSCRIPTION.ACTIVATED | Subscription activated and first payment collected |
PAYMENT.SALE.COMPLETED | Subscription renewal payment collected |
- Save the webhook
- Copy the Webhook ID from the webhook detail page. You’ll need this in the next step.
Step 3: Connect in FluxStore
- In FluxStore, go to Dashboard > Payment Gateways and click Configure next to PayPal
- Enter your Client ID and Client Secret
- Enter your Webhook ID for webhook signature verification
- Toggle Sandbox Mode on if you’re using sandbox credentials, or leave it off for live
- Save
The webhook and Webhook ID are required. Without them, FluxStore can’t verify incoming events from PayPal and your gateway will not process payments.
Step 4: Verify it works
Place a test order using your sandbox credentials and a sandbox buyer account. PayPal provides default sandbox buyer accounts in the Developer Dashboard under Sandbox > Accounts. Check that the order appears in your FluxStore dashboard as paid after completing the PayPal checkout.
If the order stays pending, check the webhook logs in your PayPal Developer Dashboard for failed delivery attempts. The most common issues are an incorrect webhook URL or missing event subscriptions.
Sandbox testing
Always test with sandbox credentials before going live. In the PayPal Developer Dashboard, switch to Sandbox under Apps & Credentials and use those credentials in FluxStore with Sandbox Mode enabled.
Once testing is successful, create a new Live app (or switch to Live credentials on the same app), set up a new webhook with the same URL and events, update your FluxStore gateway settings with the live credentials and webhook ID, and turn off Sandbox Mode.
Supported currencies
PayPal supports fewer currencies than Stripe. If you have multi currency checkout enabled, customers will only see PayPal as a payment option for currencies PayPal supports. See Currencies for the full list showing which currencies work with each provider.
Next steps
- Stripe Setup to set up Stripe as your primary payment processor
- Gateway Management to manage your active payment gateways