Skip to main content
Webhook delivery is at-least-once: Nomos guarantees every event reaches your endpoint, but the same event can arrive more than once and not always in order. Build your handler around three rules:
  • Slow responses fail. Nomos waits 30 seconds for a 2xx. Hand long work to a background queue and acknowledge immediately.
  • Duplicates can happen. The same event id can arrive more than once, so make your handler idempotent: store processed IDs and skip them on repeat deliveries.
  • Order is not guaranteed. subscription.confirmed may land before subscription.created. Process events independently and fetch the resource when you need current state.

Retry schedule

Any response other than 2xx counts as a failure, including 4xx, and so does a timeout or a connection error. A failed delivery is retried with exponential backoff: 12 attempts in total over roughly 34 hours, after which the delivery is dropped. Nomos never disables an endpoint because of failures; deliveries stop only when you deactivate it.
Return a 2xx for events you receive but don’t act on, such as a subscription your CRM has no record of. Any other status is retried.

Looking up past events

Every event Nomos sends is stored. To inspect a delivery after the fact, retrieve it by id with Retrieve an event. The response uses the same envelope as the webhook payload.