{"templateId":"openapi_docs","sharedDataIds":{"openAPIDocsStore":"oas-apis/openapi-v1.yaml","sidebar":"sidebar-sidebars.yaml"},"props":{"definitionId":"apis/openapi-v1.yaml","dynamicMarkdocComponents":[],"baseSlug":"/apis/openapi-v1","seo":{"title":"Webhooks","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]},"description":"Manage webhook endpoints and view delivery history.\n\n**Event delivery**\nWhen a subscribed event occurs, Propetware POSTs a `WebhookEventEnvelope` JSON body to your URL. Every request includes three headers:\n- `X-Propetware-Event` — the event type string (e.g. `customer.created`)\n- `X-Propetware-Timestamp` — Unix timestamp of the delivery attempt (seconds)\n- `X-Propetware-Signature` — `sha256=<hex>` HMAC-SHA256 signature\n\n**Signature verification**\nTo verify a delivery, compute `HMAC-SHA256(webhookSecret, \"<timestamp>.<rawBody>\")` and compare the hex digest to the value of `X-Propetware-Signature` after stripping the `sha256=` prefix. Reject requests where the timestamp is more than 5 minutes old to prevent replay attacks.\n\n**Retry policy**\nFailed deliveries (non-2xx or network error) are retried up to 8 times with a 5-minute backoff, for up to 24 hours. 4xx responses are treated as permanent failures and are not retried.\n"},"itemId":"webhooks","disableAutoScroll":true,"metadata":{"subType":"openapi-operation"},"compilationErrors":[],"markdown":{"partials":{},"variables":{"rbac":{"teams":["anonymous"]},"user":{},"remoteAddr":{"hostname":"developers.propetware.com","port":4000,"ipAddress":"216.73.216.47"},"lang":"default_locale","env":{"PUBLIC_REDOCLY_BRANCH_NAME":"main"}}},"pagePropGetterError":{"message":"","name":""}},"slug":"/apis/openapi-v1/webhooks","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}