kyc:eid.
In this version the engine accepts Canadian clients only for eID. The samples on this page therefore use country CA, unlike the rest of the guides, which use MA.
Before you start
Start a check
The answer:
key is the id you poll with. The PIN is sent to the client only and is never returned to you.
The request is filed as pending on the case for (workspace, environment, reference). A new request for the same reference and environment replaces the record, because you started the client’s verification over. The provider stores the request under a client id made of your workspace and your reference, which is what keeps another workspace from reading it.
States
There is no callback from the provider. You pollGET /v1/kyc/eid/{key}. Sahl derives the state from the poll.
pending, passed, failed and archived are also the status Sahl records on the case. Only passed meets a policy’s eID requirement.
Poll
GET /v1/kyc/eid/{key} has one optional query parameter, environment (default sandbox). It only places a request that was started before Sahl kept the eID record. A request made through POST /v1/kyc/eid keeps its own environment.
Sahl sets no polling interval. The only cap is the 100 requests a minute per IP. A reasonable schedule is every 30 seconds for the first 10 minutes, then every 5 minutes. The client has to open the email, so minutes to hours are normal.
A finished check (complete, or archived) is the moment Sahl records the outcome on the case, and the first poll that sees it sends the kyc.eid_completed webhook. Later polls stay quiet.
Answer when complete
The checks
Provider messages and their severity:
Report
GET /v1/kyc/eid/{key}/report returns the provider’s report as application/pdf with Content-Disposition: attachment; filename="eid-<key>.pdf". It is for the client’s file.
Keep the result
Fetch the result and the PDF within about seven days of the check. After that the provider deletes the personal details. Sahl records the outcome (status, completion time) on your case when a poll first sees the end state, but theidentity block and the PDF come from the provider, so store what you need.
Meeting a policy eID requirement
A workspace policy can require a remote eID check for a person not met face to face (eid_required_non_face_to_face). /verify and /assess then add a critical check policy:eid_non_face_to_face:
Only Sahl’s own record meets the requirement. A check you send in
extra_checks with an id starting eid: is renamed partner:eid:... and never counts. Use the same reference and environment for the eID request and for the /verify call. Poll the check to completion before you call /verify, because the outcome is recorded by the poll.