---
title: "Paddle Webhook"
method: POST
path: "/webhooks/paddle"
tags: ["Webhooks"]
---

# Paddle Webhook

`POST /webhooks/paddle`

Receives Paddle billing events (subscription created/updated/canceled, payment completed/failed). Validates the `Paddle-Signature` header using HMAC-SHA256. This endpoint is for Paddle servers only — not for direct API consumers.

## Headers

- `Paddle-Signature` string, required

## Request body

- object
  - `event_id` string
  - `event_type` 'subscription.created' | 'subscription.activated' | 'subscription.updated' | 'subscription.canceled' | 'subscription.paused' | 'subscription.resumed' | 'subscription.past_due' | 'transaction.completed' | 'transaction.payment_failed'
  - `occurred_at` string, date-time
  - `notification_id` string
  - `data` object

## Response `200`

Webhook received

## Other responses

- `401` — Invalid signature

---

[API](https://skmtc.net/snapapi/apis/snapapi-screenshot-web-data-api.md) · [All operations](https://skmtc.net/snapapi/apis/snapapi-screenshot-web-data-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/snapapi/snapapi-screenshot-web-data-api/versions/b12ff2791613/schema)
