Home / Checker reference / paddle-billing
Rule · engine · active v1
Paddle billing integration check
active
engine
Paid plans only change through signed webhooks. If an entitlement flips any other way, billing and product have already diverged.
What it checks
The Paddle webhook endpoint is verified against its HMAC signature over the raw body, recent entitlement transitions are timed from event to flip, the customer portal is fetched live, and gated routes are probed below and above plan.
Pass conditions
- Paddle webhook verified, entitlements flip in ~10s, portal live, plan gates enforced
- Only signed webhooks mutate entitlements — unsigned or replayed deliveries change nothing.
- Portal sessions are created per customer and resolve without error.
Typical fails
Unsigned webhook deliveries accepted; entitlement flips lagging past the ~10s budget or never landing; portal misconfiguration returning errors; plan gates checked client-side only.
Fix checklist
- Verify the Paddle signature over the raw body before parsing any event.
- Replay subscription.created/updated and transaction.completed in staging; assert the flip lands in ~10s.
- Enforce plan gates server-side on every gated route, not just in the UI.
Official source: Paddle billing documentation (demo placeholder link) · Status: engine, active v1, sole audit basis for billing integration