Supported events
Event headers
Every webhook request includes these headers.string
required
Unique identifier for this event delivery. Use it to deduplicate deliveries.
string
required
Unix timestamp in seconds when the event was sent.
string
required
Hex-encoded HMAC SHA-256 signature of the payload, computed with your signing secret.
Payload structure
All events share the same envelope.string
required
The event ID, matching
X-MasterID-Event-ID.string
required
The event type, for example
verification.completed.object
required
Event-specific data. Do not invent fields for event types beyond what is documented.
verification.completed
object
required
The
collection.completed data shape is not documented beyond the envelope. Parse data safely; do not assume specific keys.Signature verification
Verify every webhook before trusting its payload. Compute the HMAC SHA-256 signature using your signing secret over the stringtimestamp + "." + rawBody. Compare the result in constant time with the X-MasterID-Signature header.
Verification steps
1
Extract headers
Read
X-MasterID-Timestamp, X-MasterID-Signature, and the raw request body as a string.2
Check timestamp age
Reject the request if the timestamp is more than 5 minutes old.
3
Compute HMAC
Compute
HMAC-SHA256(signingSecret, timestamp + "." + rawBody) and hex-encode the digest.4
Compare signatures
Compare the computed signature with
X-MasterID-Signature in constant time. If they do not match, reject the request.5
Deduplicate
Track processed
X-MasterID-Event-ID values. Ignore repeats.6
Accept
Return any HTTP 2xx after the event is accepted durably.

