Webhooks
Receive signed GitHub, Slack, and Clerk events. Proof verifies the sender and handles safe retries.
Webhook endpoints
| Provider | Endpoint | Secret |
|---|---|---|
| GitHub | /api/webhooks/github | GITHUB_WEBHOOK_SECRET |
| Slack | /api/webhooks/slack | SLACK_SIGNING_SECRET |
| Clerk | /api/webhooks/clerk | CLERK_WEBHOOK_SIGNING_SECRET |
GitHub events
POST /api/webhooks/github
Proof checks x-hub-signature-256 against the raw body. It requires x-github-event and x-github-delivery. Subscribe the GitHub App to pull-request events.
Slack events
POST /api/webhooks/slack
Proof checks the Slack request signature and responds quickly. It then continues the task. Subscribe the app to bot mentions and grant access to read and post in installed conversations.
Clerk identity events
POST /api/webhooks/clerk
Subscribe to user, organization, membership, invitation, and enterprise SSO/SAML connection events. Proof checks the Svix signature and uses svix-id as the delivery ID.
Identity webhooks update Proof's access directory. A signed-in user stays on the setup screen until the matching user, organization, and active membership exist. They cannot read organization data before then.
Retries and idempotency
GitHub and Clerk deliveries use a durable receipt with a ten-minute work lease. Proof ignores completed duplicates. It can claim failed or expired work again, so provider retries do not lose an event that arrives out of order.