Skip to main content

Webhook HTTP and error reference

Request and response basics

Use HTTPS, explicit Content-Type, bounded bodies, correlation headers, and the contract version required by the selected webhook surface. Verify authenticity before parsing. A receiver should return a clear HTTP class:

ResponseMeaningSender behavior
2xxVerified envelope durably acceptedMark transport accepted; do not infer business conversion
400/422Permanent body/schema/mapping rejectionDo not retry unchanged input
401/403Authentication, signature, or scope rejectionFail closed; rotate/fix configuration before retry
404Destination/resource no longer availableApply surface policy; may become terminal/disabled
409Idempotency conflict or stale stateInspect prior result and do not duplicate side effects
429Rate limitedHonor bounded Retry-After and sender policy
5xx/timeoutTemporary transport failureRetry under bounded backoff, then terminal/dead-letter
POST /receiver HTTP/1.1
Content-Type: application/json
X-Correlation-Id: <YOUR_CORRELATION_ID>
X-Qanivo-Webhook-Version: 1.0
X-Qanivo-Webhook-Signature: sha256=<YOUR_SIGNATURE>

{"eventType":"lead.created","data":{"reference":"<YOUR_RESOURCE_REFERENCE>"}}

Safe errors

Error responses may expose a stable code, retryability, terminal state, retry delay, and correlation ID. They must not expose stack traces, raw provider responses, URL resolution details, credentials, signing secrets, or unredacted payloads.