Skip to main content
Every webhook has the same JSON envelope. Only type and the contents of data.customer differ between events.

Envelope

customer.kyc_completed

Fires when a record reaches a terminal verification verdict. data.customer is the individual DTO (kyc_status is VERIFIED or FAILED) or the entity DTO (kyb_status is VERIFIED or FAILED) depending on the record type.

aml.review_completed

Fires when the compliance team finishes reviewing a customer’s AML matches and the AML status settles to RESOLVED. Read data.customer.aml for the resolved status and category flags.

customer.updated

Fires when a customer/entity your integration owns is updated. data.customer is the current DTO. Because this can fire often, dedupe on IC-Event-Id and diff against your own copy if you only care about specific fields.

Handling unknown fields and events

Treat the payload as forward-compatible: we may add fields to a DTO or new values to type. Parse defensively — don’t fail on an unrecognised event type or an unexpected extra field.