.env, and registering a webhook destination in the Paddle Dashboard. Site Store Pro supports both Paddle catalog Price IDs and dynamic non-catalog pricing for discounted or custom amounts.
Setup
Step 1 — Install the SDK
Step 2 — Add Credentials to .env
Step 3 — Activate in Admin
Navigate to Admin → Checkout → Processors, set Paddle as the Primary processor, and toggle Production ON or OFF depending on your environment.Paddle Dynamic & Subscription Pricing
Paddle pricing is configured per variant in Admin → Product Editor → Prices & Variants.Catalog Match vs. Non-Catalog Fallback
Site Store Pro automatically decides whether to use a pre-configured Paddle Price ID or create a dynamic price at checkout time.- Catalog Price Match
- Dynamic Non-Catalog Fallback
When it applies: The final checkout price exactly matches the
paddle_price field on the variant.What happens: The pre-configured paddle_sandbox_price_id or paddle_live_price_id is passed directly to Paddle. This is the fastest path — no additional API calls are made.Non-catalog prices are ephemeral — they are created for the specific transaction and are not reused.
Multiple Items & Constraints
- Multiple items are fully supported in a single Paddle transaction.
- Interval Uniformity: When a cart contains mixed dynamic subscription items, all items must share the same billing interval and frequency. Mixed intervals (e.g. one monthly + one yearly subscription) are not permitted in a single transaction.
Webhook Registration
1
Register the endpoint in Paddle Dashboard
Go to Paddle Dashboard → Developer Tools → Notifications → New Destination and enter:
How to get the Webhook Secret Key:
- In the Paddle Dashboard, go to Developer Tools → Notifications (Webhooks).
- Click on … Edit Destination
- Look for the section labeled Secret key\
- Click the eye icon / Copy secret button.
- The key will start with
pdl_ntf_set_orpdl_ntf_. Paste that into your.env.
2
Set the webhook secret in .env
3
Confirm signature verification is working
Paddle sends test notifications from the dashboard. Check
storage/logs/laravel.log for any signature errors.Signature Verification
Site Store Pro verifies every incoming Paddle webhook using the following method:- Parses the
Paddle-Signatureheader ints=<timestamp>;h1=<hex>format - Computes
HMAC-SHA256(key=PADDLE_WEBHOOK_SECRET, data="<ts>:<raw_payload>") - Compares the computed hash against the
h1value - Rejects events older than 5 minutes (replay attack protection)
webhooks/* wildcard in bootstrap/app.php.
Handled Events
Subscription lifecycle events (
subscription.*) are currently logged. To act on these events — for example, granting or revoking subscription access — use the Extension Override pattern to add your business logic.Extension Override
To customize Paddle behavior without editing the built-in class, create an extension file at:config/payment_processors.php are needed.
Related
Subscriptions
Configure Paddle Price IDs and subscription billing intervals for variants.
Webhooks Reference
Full webhook endpoint reference and custom gateway setup instructions.
