Receive and verify Paddle webhooks in a Next.js Route Handler — signature verification, idempotency, retry semantics, and local testing.
86
80%
Does it follow best practices?
Impact
98%
1.28xAverage score across 3 eval scenarios
Advisory
Suggest reviewing before use
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/webhooks/SKILL.mdSecure webhook handler creation
Correct SDK package
100%
100%
Raw body for verification
100%
100%
Single catch returns 500
0%
100%
No split catch paths
37%
100%
Pre-validation 400
62%
100%
Singleton Paddle instance
100%
100%
EventName enum used
100%
100%
Separate processEvent file
100%
100%
UPSERT pattern for handlers
30%
100%
Default no-op case
100%
100%
Required env vars listed
30%
100%
Webhook handler bug audit and fix
500 not 401 on failure
80%
100%
request.text() used
100%
100%
Secret from env var
70%
100%
Singleton Paddle client
100%
100%
EventName enum
0%
100%
Idempotent subscription writes
100%
100%
Default no-op not throw
100%
100%
Audit report present
100%
100%
Receipt email with safe queueing
Email not called inline
75%
100%
Dedup on event.eventId
25%
100%
DB transaction for dedup
100%
66%
Route returns 200 fast
100%
100%
Design notes explain approach
100%
100%
No external queue added
100%
100%
62438cd
Table of Contents
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.