

| Webhook Type | Description | Step |
|---|---|---|
FLOW_COMPLETED | Triggered when a flow and all related services are fully completed. | Flow completion |
FLOW_REJECTED | Triggered when a flow is rejected (e.g., final decision of no approval). | Flow completion |
VERIFICATION_IDENTITY_REJECTED | Triggered when an identity verification is rejected. | Identity Verification |
VERIFICATION_IDENTITY_COMPLETED | Triggered when an identity verification is approved. | Identity Verification |
VERIFICATION_IDENTITY_UPDATED | Triggered when an identity verification is manually updated. | Identity Verification |
ONBOARDING_FORM_INDIVIDUAL_COMPLETED | Triggered when an individual form is completed (pending review). | Onboarding Individual |
ONBOARDING_FORM_INDIVIDUAL_REJECTED | Triggered when an individual onboarding form is rejected. | Onboarding Individual |
ONBOARDING_FORM_COMPANY_COMPLETED | Triggered when a company form is completed (pending or approved). | Onboarding Company |
ONBOARDING_FORM_COMPANY_REJECTED | Triggered when a company onboarding form is rejected. | Onboarding Company |
POST request to your configured webhook URL containing the event data in JSON format. The payload typically includes:FLOW_COMPLETED).Your webhook endpoint must respond with a 200 HTTP status code to confirm receipt. If Rillis does not receive this response, it will automatically retry the notification several times.
x-signature: The HMAC-SHA256 signature of the payload.x-timestamp: The Unix timestamp (in seconds) when the signature was generated.x-signature and x-timestamp from the request headers, and capture the raw JSON body.webhook_key: Ensure it is never visible in client-side code, server logs, or error responses.webhook_key securely on your server using environment variables (e.g., .env files).x-timestamp header against your server's current time to prevent replay attacks (a 5-minute window is recommended).timingSafeEqual (or your programming language's equivalent) when comparing signatures to prevent timing attacks.