[{"data":1,"prerenderedAt":108},["ShallowReactive",2],{"doc:\u002Freference\u002Fwebhooks\u002Fidentification-completed":3},{"page":4,"toc":105,"updated":107},{"path":5,"title":6,"seoTitle":7,"description":8,"blocks":9,"examples":93},"\u002Freference\u002Fwebhooks\u002Fidentification-completed","identification.completed","Webhook: identification.completed","Sent for every identification that finishes, with the visitor, the confidence, the score and your tag.",[10,15,18,22,27,91],{"type":11,"method":12,"path":13,"auth":14},"endpoint","POST","https:\u002F\u002Fyour-server.example.com\u002Fwebhooks\u002Ffingerly","signature",{"type":16,"text":17},"p","Sent once for every identification your SDKs complete, whatever its score. Use it to keep your own copy of results, or to act on visitors without polling.",{"type":19,"tone":20,"text":21},"callout","note","Verify the signature before you parse the body, and answer `2xx` within 10 seconds. See [webhooks](\u002Fdocs\u002Fwebhooks#verify-the-signature).",{"type":23,"level":24,"text":25,"id":26},"heading",2,"Body","body",{"type":28,"fields":29},"fields",[30,34,37,41,44,47,50],{"name":31,"type":32,"text":33},"id","string","The event's ID, a UUIDv7. The same on every retry: deduplicate on it. Also sent as `X-Fingerly-Event-ID`.",{"name":35,"type":32,"text":36},"type","Always `identification.completed`.",{"name":38,"type":39,"text":40},"version","integer","The envelope version, `1`.",{"name":42,"type":32,"text":43},"organization_id","Your organization.",{"name":45,"type":32,"text":46},"environment","`live` for production traffic, `test` for staging and development.",{"name":48,"type":32,"text":49},"created_at","When the underlying fact happened, RFC 3339 in UTC. Not when it was delivered.",{"name":51,"type":52,"text":53,"children":54},"data","object","The identification.",[55,58,61,64,68,71,74,77,80,84,88],{"name":56,"type":32,"text":57},"request_id","The identification's request ID.",{"name":59,"type":32,"text":60},"sdk_key_id","The public key that submitted it.",{"name":62,"type":32,"text":63},"visitor_id","The visitor.",{"name":65,"type":66,"text":67},"visitor_is_new","boolean","Whether the visitor is new to your organization.",{"name":69,"type":66,"text":70},"identifiable","Whether the device could be identified.",{"name":72,"type":39,"text":73},"confidence","The visitor confidence, 0 to 100.",{"name":75,"type":32,"text":76},"state","`enriched` or `unavailable`.",{"name":78,"type":32,"text":79},"reason","Why the state is `unavailable`. Empty otherwise.",{"name":81,"type":82,"text":83},"score","integer | null","The suspect score. `null` when not scored.",{"name":85,"type":86,"text":87},"level","string | null","`low`, `medium` or `high`. `null` when not scored.",{"name":89,"type":32,"text":90},"tag","Your tag. Empty when none was sent.",{"type":16,"text":92},"The signals behind the score are not repeated here. Read them with [Get an event](\u002Freference\u002Fget-event), or subscribe to [`visitor.suspect`](\u002Freference\u002Fwebhooks\u002Fvisitor-suspect), which includes them.",{"titles":94,"request":97,"response":101},{"request":95,"response":96},"Headers","Payload",[98],{"label":95,"lang":99,"code":100},"http","POST \u002Fwebhooks\u002Ffingerly HTTP\u002F1.1\nContent-Type: application\u002Fjson\nUser-Agent: Fingerly-Webhooks\u002F1.0\nX-Fingerly-Event-ID: 01a0a851-0c4e-7f23-b8d1-6e2f94c0a7b5\nX-Fingerly-Event-Type: identification.completed\nX-Fingerly-Timestamp: 1789551672\nX-Fingerly-Signature: sha256=6f1c0a3e9b…",[102],{"label":25,"lang":103,"code":104},"json","{\n  \"id\": \"01a0a851-0c4e-7f23-b8d1-6e2f94c0a7b5\",\n  \"type\": \"identification.completed\",\n  \"version\": 1,\n  \"organization_id\": \"01a0a7f2-3c18-7b40-8d2e-5f6a9b1c0d37\",\n  \"environment\": \"live\",\n  \"created_at\": \"2026-09-16T09:41:12Z\",\n  \"data\": {\n    \"request_id\": \"01a0a84b-e6a2-7c09-9f51-0b3d7a26c8e4\",\n    \"sdk_key_id\": \"01a0a7f3-9e05-7a61-b4c7-2d8e0f3a6b19\",\n    \"visitor_id\": \"X9pL2mRc7KvT4bQw8NdF\",\n    \"visitor_is_new\": false,\n    \"identifiable\": true,\n    \"confidence\": 100,\n    \"state\": \"enriched\",\n    \"reason\": \"\",\n    \"score\": 37,\n    \"level\": \"high\",\n    \"tag\": \"checkout:8412\"\n  }\n}",[106],{"id":26,"text":25,"level":24},"2026-09-17T08:28:36.000Z",1789667797875]