We send events to your webhook endpoints as POST requests with a JSON body.
link The body
id is the delivery's id, type the event, and data.session the session object as it was when the attempt was made, without document.
link session.completed
A session ended with a decision you can act on straight away: clear or rejected, by the checks or by a reviewer.
link session.review_required
A session ended with consider: something needs a person to look at it. Review it in the dashboard under Verifications; when your team decides, you get session.completed with the decision.
link session.error
The checks couldn't run for a technical reason, after retrying for about 50 minutes. The session's status is error and it has no outcome: it says nothing about your customer. We look into these and run the checks again; you get session.completed or session.review_required when they finish.
link webhook.test
Sent from Developers → Webhooks to check an endpoint. data holds a message and no session.
link What to do with an event
Each event names the session it's about. Fetch that session from the API and act on its current state: that way a repeated or late event can never undo a newer decision. See Webhooks for answering, retries and checking signatures.