Setup
Register an endpoint by calling Create a webhook endpoint with aname and an HTTPS url. The response includes a signingSecret returned exactly once. Store it securely. Reap does not retain a copy, and there is no way to read it back later.
2xx status code to acknowledge each delivery. Non-2xx responses or timeouts trigger automatic retries with exponential backoff over approximately 48 hours.
Source IP addresses
Webhook deliveries originate from a fixed set of egress IP addresses per environment. If your endpoint sits behind a firewall or allowlist, permit inbound traffic from all of the addresses for the environment you integrate with.Allowlist every address listed for your environment. These addresses are stable, but we will notify you in advance if they ever change.
Event envelope
Every delivery wraps event data in a standard envelope:HTTP headers
Event types
Payloads match the shape of the corresponding API resource. For example,
CRYPTO_DEPOSIT_CREATED data matches GET /crypto-deposits/:id.Delivery guarantees
Every event is delivered at least once, and in no particular order. A delivery that times out or returns a non-2xx status is retried with exponential backoff over approximately 48 hours. A response we never see looks the same to us as a failure, so an event you already processed can arrive again. Deduplicate on the envelope id, which is stable across every redelivery.
Ordering is not guaranteed for any pair of events, including two events about the same resource. Treat each delivery as a statement about one resource at a point in time rather than a step in a sequence: upsert on the resource id in data, and ignore a payload whose updatedAt is older than what you have already stored.
Best practices
- Return quickly. Respond with
2xxwithin a few seconds. Process heavy work in the background. - Be idempotent. Events may be delivered more than once. Use the
idfield to skip duplicates. - Do not rely on ordering. Reconcile from the payload rather than the arrival sequence.
- Verify signatures. Always verify the signature before processing.