Improvado Webhooks API
Manage webhook endpoints that receive event notifications from Improvado. Webhooks let your application react to platform events (extraction completion, load completion, etc.) in near real time, without polling. Each endpoint is workspace-scoped and subscribes to one or more event types. Lifecycle: 1. **Register** an endpoint with the URL of your receiver and the event types you care about. Improvado returns an `id` and a `secret`, and the endpoint is created in `unverified` status. 2. **Verify** ownership by calling the verify action. Improvado sends a GET request to your URL with `X-Improvado-Verify-Token` and `X-Improvado-Challenge` headers. Your receiver must respond with HTTP 200 and the challenge value as the response body. After successful verification the endpoint moves to `active`. 3. **Receive events.** Improvado POSTs JSON payloads `{id, type, timestamp, data}` to your URL. Each request is signed with HMAC-SHA256 in the `X-Improvado-Signature` header (using the endpoint's secret) and includes `X-Improvado-Idempotency-Key` for safe retry handling. 4. **Rotate the secret** at any time. Rotation invalidates the previous secret immediately and resets the endpoint to `unverified` until you re-verify. Failed deliveries are retried up to four times with backoff `[0s, 2s, 5s, 10s]`. Receivers should aim to respond within a few seconds and return 2xx for successful processing.