entityCreatedentityUpdatedentityDeleted
Event Payloads
Each webhook payload includes:- eventId: A unique identifier for the event.
- eventCreated: Timestamp for when the event occurred.
- event: The event name (e.g., peopleCreated).
- resourceIds: List of IDs for affected records.
- uri: A direct URL to fetch the relevant records.
Delivery Semantics and Retries
- Delivery guarantee: at-least-once (not exactly-once).
- Retry behavior: Rollout retries with backoff until your endpoint returns a
2xxstatus. - Duplicates can happen: for example, if your endpoint processed the event but the response timed out before we received the
2xx. - Best practice: treat webhooks as idempotent and deduplicate by
eventId.
Credential Sync Completion Callback
If you configure callback URLs in Dashboard Settings, Rollout sends a callback when a credential’s initial sync is completed and Sync to DB is ready.- Method:
POST - When sent: after initial sync completes for the credential
- Security: same signature verification method as all webhooks (see Security & Authenticity)

Security & Authenticity
To ensure webhook requests are genuinely from us, we include anX-Rollout-Signature header. This contains an HMAC SHA256 signature generated using your Rollout Client Secret as the key.
Rollout signs the base64 encoding of the exact JSON request body string we send. There is no additional prefix, timestamp, or canonicalization step.
To verify a webhook:
- Read the raw request body bytes before parsing JSON.
- Base64-encode those bytes.
- Compute an HMAC SHA256 hash of that base64 string using your client secret.
- Compare your hash to the value in the
X-Rollout-Signatureheader using a constant-time comparison.