Skip to main content
Change webhooks are provisioned privately during the pilot. They deliver batches from the same retained event stream as GET /v1/changes; creating a subscription does not trigger Utah DABS retrieval. Every request includes:
  • X-Nektir-Delivery: unique delivery UUID
  • X-Nektir-Timestamp: Unix seconds used in the signature
  • X-Nektir-Signature: v1= plus a lowercase HMAC-SHA256 hex digest
Compute the digest over the exact UTF-8 bytes of timestamp + "." + raw_request_body using the signing secret shown once when the subscription is created. Compare signatures in constant time and reject timestamps outside your replay window. Return any 2xx response only after durably accepting the batch. Nektir retries failures with bounded exponential backoff and reuses the delivery UUID for the same event range. Delivery is at least once, so deduplicate the top-level delivery ID and each event id. Process events in their supplied order, but do not interpret inventory decreases as purchases or first observations as restocks. If a subscription falls behind the retained event window, Nektir disables it instead of silently skipping the gap. An operator must reconcile with the change feed or a bulk export before re-enabling it. Secrets are encrypted at rest by the service. Destination URLs must be credential-free HTTPS public hostnames; redirects are rejected.