body urlstringrequiredbody eventTypesstring[]sandbox.stopped) or prefix (sandbox.*). Default: all event types. Types outside the sandbox taxonomy are rejected with 400.body sandboxIdstringbody secretstringwhsec_…). The secret is returned in the create response and is re-fetchable any time via GET /api/webhooks/{id}/secret.body namestringbody enabledbooleantrue. false pauses delivery.header Idempotency-Keystring200) instead of a duplicate. Reusing the key with a different body is a 409 conflict.Idempotency-Key, each call creates a new destination and returns 201 — there is no get-or-create by name. With one, a retried call returns the same destination with 200.400): url must be HTTPS; each eventTypes entry must be a known sandbox event type or a prefix.* wildcard.123456789101112{ "id": "whk_3f9a2c", "name": "prod", "url": "https://app.example.com/oc-webhook", "eventTypes": ["sandbox.stopped"], "sandboxId": null, "enabled": true, "hasSecret": true, "secret": "whsec_Hk9…", "createdAt": "2026-06-24T12:00:00Z", "updatedAt": "2026-06-24T12:00:00Z" }