CtrlK
BlogDocsLog inGet started
Tessl Logo

paddle-webhooks

Receive and verify Paddle webhooks in a Next.js Route Handler — signature verification, idempotency, retry semantics, and local testing.

87

1.13x
Quality

80%

Does it follow best practices?

Impact

99%

1.13x

Average score across 3 eval scenarios

SecuritybySnyk

Medium

Suggest reviewing before use

Fix and improve this skill with Tessl

tessl review fix ./skills/webhooks/SKILL.md
SKILL.md
Quality
Evals
Security

Security

1 medium severity finding. This skill can be installed but you should review these findings before use.

Medium

W009: Direct money access capability detected (payment gateways, crypto, banking).

What this means

The skill is specifically designed for direct financial operations, giving the agent the ability to move money or execute financial transactions — such as payment processing, cryptocurrency operations, banking integrations, or market order execution.

Why it was flagged

The skill is explicitly built around the Paddle payment gateway: it requires PADDLE_API_KEY, installs @paddle/paddle-node-sdk, creates a Paddle SDK instance, and references Paddle MCP methods (e.g., client.notificationSettings.create, client.notifications.replay, client.notifications.logs.list) and Paddle-specific operations like paddle.transactions.list(). It subscribes to and processes payment-related events (transaction.completed, subscription.*) and describes upserting transaction/subscription records and granting credits. Because it uses a specific payment provider's SDK and APIs (Paddle) rather than generic tooling, it meets the criteria for Direct Financial Execution authority.

Report incorrect finding

Low

Low-risk findings.

1 low severity finding. Worth noting, but not necessarily harmful.

Low

W011: Third-party content exposure detected (indirect prompt injection risk).

What this means

The skill exposes the agent to untrusted, user-generated content from public third-party sources, creating a risk of indirect prompt injection. This includes browsing arbitrary URLs, reading social media posts or forum comments, and analyzing content from unknown websites.

Why it was flagged

The required runtime path is the Next.js webhook `POST` route, which ingests Paddle’s webhook request body (`await request.text()`) and passes it to `paddle.webhooks.unmarshal(rawBody, secret, signature)`; this body is outsider-authored free text (sent by Paddle, not the operating user), creating indirect prompt-injection risk if any fields are later included in LLM context.

Repository
PaddleHQ/paddle-agent-skills
Audited
Security analysis
Snyk

Is this your skill?

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.