1. Create a session
Send access_code to the person however you like (email, SMS) - they enter it in the IdCheck mobile app to start. reference_id is opaque to IdCheck; encode whatever you need to route the result back to your own record.
POST /api/v1/sessions
Authorization: Bearer <prefix>.<secret>
Content-Type: application/json
{
"reference_id": "your-own-id-for-this-check"
}
→ 201
{
"id": "…",
"magic_link_token": "…",
"access_code": "K7XH9F2A",
"expires_at": "2026-08-24T00:00:00Z"
}2. Receive the result
Verify X-IdCheck-Callback-Secret matches your stored callback secret before trusting the payload.
POST <your callback_url>
X-IdCheck-Client: <client id>
X-IdCheck-Callback-Secret: <your callback secret>
{
"reference_id": "your-own-id-for-this-check",
"results": [
{ "check_type": "id_check", "passed": true, "confidence": 0.71 }
]
}3. Pull full detail (optional)
extracted_data and retained documents (GET /api/v1/sessions/{id}/documents/{check_type}) depend on your template's own retention settings.
GET /api/v1/sessions/{id}/data
Authorization: Bearer <prefix>.<secret>
→ 200
{
"reference_id": "…",
"status": "completed",
"results": [
{
"check_type": "id_check",
"passed": true,
"confidence": 0.71,
"extracted_data": { "full_name": "…", "date_of_birth": "…" },
"document_retained": false
}
]
}