{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-mcp/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown"},"seo":{"title":"Identity Verification","description":"Checkr developer documentation for background check APIs, embeds, and partner integrations."},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"identity-verification","__idx":0},"children":["Identity Verification"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"identify-the-candidate","__idx":1},"children":["Identify the Candidate"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Before retrieving report data, your agent must establish ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["which candidate"]}," it's acting on behalf of. The candidate proves their identity through an ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["email OTP flow"]},":"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Agent calls ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["request_candidate_verification(email)"]}," → Checkr emails a 6-digit code to the candidate."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Candidate provides the code to your agent through chat."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Agent calls ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["verify_candidate_otp(email, code)"]}," → session is locked to that candidate."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Once a candidate is identified, the session is locked to them for its entire lifetime."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"retrieve-report-data","__idx":2},"children":["Retrieve Report Data"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Once a candidate is identified, call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["get_report()"]}," (no parameters needed). Returns the candidate's latest background check report including:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Overall status and result"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Per-screening breakdown (status, result, type)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Dispute/exception info if applicable"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Candidate portal link"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"session-rules--lifecycle","__idx":3},"children":["Session Rules & Lifecycle"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A session begins when your agent connects with a valid bearer token. The server returns an ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Mcp-Session-Id"]}," that identifies the session."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"rules--limits","__idx":4},"children":["Rules & limits"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Rule"},"children":["Rule"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Detail"},"children":["Detail"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Session lifetime"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["1 hour"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Identity binding"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Immutable — once account, email, or candidate is set, it cannot change within the session"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["One candidate per session"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A session is locked to a single candidate for its entire lifetime"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["OTP send limit"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["3 attempts per session"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["OTP verify limit"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["3 attempts per session"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Ownership enforcement"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Your agent can only access candidates and reports belonging to your Checkr account"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"ending-a-session","__idx":5},"children":["Ending a session"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Send an HTTP ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DELETE"]}," to the MCP endpoint with the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Mcp-Session-Id"]}," header. The server closes the connection and rejects any further requests on that session ID with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["404 Not Found"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If no ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DELETE"]}," is sent, sessions expire automatically after 1 hour."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"when-to-start-a-new-session","__idx":6},"children":["When to start a new session"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The previous session expired or was terminated"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["An unrecoverable error occurs (e.g., repeated OTP failures)"]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Important:"]}," Do not reuse sessions across different end users. Each user interaction should start a fresh session to prevent data leakage between candidates."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"agent-behavior-expectations","__idx":7},"children":["Agent Behavior Expectations"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When interacting with Checkr's MCP tools, your agent should:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Present all returned data."]}," Don't omit or over-summarize screening results. Candidates need the full picture."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Never fabricate report data."]}," Only relay what the MCP returns."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Handle errors clearly."]}," Relay error messages to the user (e.g., \"candidate does not belong to your account\") without retrying in a loop."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["One candidate per conversation."]}," If the user asks about a different candidate, explain that the current session is locked and a new conversation is needed."]}]}]},"headings":[{"value":"Identity Verification","id":"identity-verification","depth":1},{"value":"Identify the Candidate","id":"identify-the-candidate","depth":2},{"value":"Retrieve Report Data","id":"retrieve-report-data","depth":2},{"value":"Session Rules & Lifecycle","id":"session-rules--lifecycle","depth":2},{"value":"Rules & limits","id":"rules--limits","depth":3},{"value":"Ending a session","id":"ending-a-session","depth":3},{"value":"When to start a new session","id":"when-to-start-a-new-session","depth":3},{"value":"Agent Behavior Expectations","id":"agent-behavior-expectations","depth":2}],"frontmatter":{"title":"Identity Verification","description":"Identify the candidate over email OTP, retrieve their report, and operate within the per-session rules.","seo":{"title":"Identity Verification"}},"lastModified":"2026-09-18T05:44:09.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/mcp/candidate/identity-verification","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}