> ## Documentation Index
> Fetch the complete documentation index at: https://docs.framelane.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhook Setup

> Register a webhook endpoint, verify the signing secret, and handle events idempotently.

<Note>
  This skill is available as a machine-readable YAML playbook — append `.md` to any docs page for raw markdown, or install the [Framelane skill](https://framelane.io/skill.md). Drive the calls through the authenticated action MCP at `https://mcp.framelane.io/mcp`.
  Load it into any MCP-capable agent to get the complete workflow without writing integration code.
</Note>

## What this skill does

Registers a webhook via `POST /v1/webhooks`, fires a test event to verify the endpoint, and provides a ready-to-use signature verification snippet. The signing secret is returned once — store it securely.

## Load via MCP

```
@framelane-skill:webhook-setup
```

## Inputs

| Name           | Required     | Description                                                                                                          |
| -------------- | ------------ | -------------------------------------------------------------------------------------------------------------------- |
| `endpoint_url` | **required** | Your HTTPS endpoint URL                                                                                              |
| `events`       | optional     | Array of event types to subscribe to. Default: `render.completed`, `render.failed`, `task.completed`, `task.failed`. |

## Output

Returns `webhook_id` and `signing_secret`. The secret is only returned at creation time.

## Signature verification

The skill YAML includes a Python snippet for verifying the HMAC-SHA256 signature on incoming webhook payloads. See [Webhooks → Signature Verification](/webhooks/signature-verification) for full details.
