> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sahlfinancial.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get an eID check

> Required scope: `kyc:eid`.

Where the check stands, what it proved, and its checks for the verdict.

When the check has finished, Sahl records the outcome on the case the
request was filed on (`metadata_json.eid`), before the eID provider's seven-day
retention runs out. `environment` only places a request started before
that record existed; one `POST /eid` filed keeps its own.

Guide: [eID check](/guides/eid).



## OpenAPI

````yaml /openapi.json get /v1/kyc/eid/{key}
openapi: 3.1.0
info:
  title: Sahl Partner API
  version: 0.2.0
  description: >-
    Server-to-server API for lenders and banks: document reading, verification,
    risk assessment and eID checks. Authenticate with `Authorization: Bearer
    <API key>`. Paths are relative to the server URL. New workspaces start in
    sandbox.
servers:
  - url: https://app.sahlfinancial.com/api
    description: Single API host. Send environment=sandbox (the default) for test data.
security:
  - bearerAuth: []
tags:
  - name: KYC
    description: Read documents, verify a profile, assess risk, start an eID check.
  - name: Bank connections (Growth)
    description: >-
      Growth plan, switched on per workspace by Sahl. Sandbox simulation today;
      production answers 409 until a bank data provider is live.
paths:
  /v1/kyc/eid/{key}:
    get:
      tags:
        - KYC
      summary: Get an eID check
      description: >-
        Required scope: `kyc:eid`.


        Where the check stands, what it proved, and its checks for the verdict.


        When the check has finished, Sahl records the outcome on the case the

        request was filed on (`metadata_json.eid`), before the eID provider's
        seven-day

        retention runs out. `environment` only places a request started before

        that record existed; one `POST /eid` filed keeps its own.


        Guide: [eID check](/guides/eid).
      operationId: eid_result
      parameters:
        - name: key
          in: path
          required: true
          schema:
            type: integer
            title: Key
          description: The `key` returned by `POST /v1/kyc/eid`.
          example: 123456
        - name: environment
          in: query
          required: false
          schema:
            enum:
              - sandbox
              - production
            type: string
            default: sandbox
            title: Environment
          description: >-
            Only places a request started before Sahl kept the eID record. A
            request made through `POST /v1/kyc/eid` keeps its own environment.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EidSummary'
              example:
                key: 123456
                complete: true
                passed: true
                identity:
                  documentType: PASSPORT
                  documentNumber: P1234567
                  expiryDate: '2030-05-01'
                  birthDate: '1988-04-12'
                  firstName: Test
                  lastName: Client
                checks:
                  - id: eid:liveness
                    label: Selfie passed the liveness check
                    severity: critical
                    passed: true
                    detail: ''
                  - id: eid:face_match
                    label: Face on the ID matches the selfie (score 3 or more)
                    severity: critical
                    passed: true
                    detail: score 4 of 4, confidence 97%
                  - id: eid:name_match
                    label: Name on the ID matches the name on the request
                    severity: critical
                    passed: true
                    detail: ''
                completed_date: '2026-10-07T12:00:00Z'
        '401':
          description: Missing, invalid, revoked or expired API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                detail: Invalid or revoked API key
        '403':
          description: >-
            Key lacks the scope, or the workspace is not enabled for the partner
            KYC API.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                detail:
                  code: kyc_scope_not_allowed
                  message: This workspace is not enabled for the partner KYC API.
        '404':
          description: >-
            Unknown key, a key of another workspace, or no eID provider account
            (`identity verification is not set up for this tenant`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                detail: Not Found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '429':
          description: >-
            Per-IP rate limit: 100 requests a minute on these routes. Carries
            `Retry-After`, `X-RateLimit-Limit`, `X-RateLimit-Remaining`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorFlat'
              example:
                code: rate_limit_exceeded
                message: Too many requests. Please slow down.
        '500':
          description: Unexpected server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorFlat'
              example:
                code: internal_error
                message: An unexpected error occurred
                details: null
        '502':
          description: The eID provider did not answer.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                detail: the identity verification service did not answer
      security:
        - bearerAuth: []
components:
  schemas:
    EidSummary:
      type: object
      title: EidSummary
      properties:
        key:
          type: integer
        complete:
          type: boolean
          description: True once the client has scanned a document.
        passed:
          type: boolean
          description: True when complete and no critical eID check failed.
        identity:
          type: object
          additionalProperties: true
          description: >-
            What the check proved. Possible keys: documentType, documentNumber,
            expiryDate, birthDate, firstName, lastName, address. Empty until
            complete.
        checks:
          type: array
          items:
            $ref: '#/components/schemas/Check'
        completed_date:
          type:
            - string
            - 'null'
      required:
        - key
        - complete
        - passed
        - identity
        - checks
        - completed_date
    Error:
      type: object
      title: Error
      description: >-
        FastAPI error body. `detail` is a string, or an object with `code` and
        `message` (extra keys possible).
      properties:
        detail:
          oneOf:
            - type: string
            - type: object
              additionalProperties: true
              properties:
                code:
                  type: string
                message:
                  type: string
      required:
        - detail
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ErrorFlat:
      type: object
      title: ErrorFlat
      description: >-
        Body of a rate-limit 429, an unknown route 404 and a 500: `code` and
        `message` at the top level, with no `detail`.
      properties:
        code:
          type: string
        message:
          type: string
        details:
          type:
            - string
            - 'null'
          description: Present on a 500 only; null unless the server runs in debug mode.
      required:
        - code
        - message
    Check:
      type: object
      title: Check
      description: >-
        One verification result. `passed: false` with severity `critical` blocks
        the file; `warning` is a flag for a person; `info` is kept for the audit
        trail.
      properties:
        id:
          type: string
          description: >-
            Stable id, for example `expiry:national_id`. Some ids end in a
            document label or a party name.
        label:
          type: string
          description: Human sentence.
        severity:
          type: string
          enum:
            - critical
            - warning
            - info
        passed:
          type: boolean
        detail:
          type: string
          description: Why it failed. Empty when it passed.
      required:
        - id
        - label
        - severity
        - passed
        - detail
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        API key created in the console. Scopes: kyc:extract, kyc:verify,
        kyc:eid; bank:read, bank:write (Growth plan, enabled per workspace by
        Sahl).

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.