Trulioo Identity Document Verification API

Capture, classify, and verify government-issued identity documents (driver's license, passport, national ID) paired with optional liveness selfie checks. Used to authenticate documents, extract MRZ / barcode data, match the document photo to a captured selfie, and manage Known Faces biometric watchlists.

Trulioo Identity Document Verification API is one of 7 APIs that Trulioo publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 2 machine-runnable capabilities that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko.

Tagged areas include Document Verification, DocV, Biometrics, Liveness, and Known Faces. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, and 2 Naftiko capability specs.

OpenAPI Specification

trulioo-document-verification-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Trulioo Identity Document Verification API
  description: >
    Capture, classify, and verify government-issued identity documents
    (driver's license, passport, national ID) paired with optional liveness
    selfie checks. Used to authenticate documents, extract MRZ/barcode data,
    and match the document photo to a captured selfie. Returns extracted
    fields, classification confidence, fraud signals, and document images.
  version: "3.0"
  contact:
    name: Trulioo Support
    url: https://developer.trulioo.com
    email: [email protected]
externalDocs:
  description: Identity Document Verification
  url: https://developer.trulioo.com/reference/identity-document-verification
servers:
  - url: https://api.trulioo.com
    description: Production
security:
  - BasicAuth: []
  - OAuth2: []
tags:
  - name: Document Verification
    description: Submit and retrieve document verifications.
  - name: Document Configuration
    description: Discover document types per country.
  - name: Known Faces
    description: Manage Known Faces lists for biometric watchlists.
paths:
  /v3/verifications/documentverification/verify:
    post:
      summary: Document Verification Verify
      description: Submit captured ID document images and an optional selfie for verification.
      operationId: documentVerificationVerify
      tags:
        - Document Verification
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DocumentVerifyRequest'
      responses:
        "200":
          description: Document verification result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocumentVerifyResult'
  /v3/verifications/documenttypes/{countryCode}:
    get:
      summary: Get Document Types
      description: Document types supported for a given country.
      operationId: getDocumentTypes
      tags:
        - Document Configuration
      parameters:
        - name: countryCode
          in: path
          required: true
          schema:
            type: string
            minLength: 2
            maxLength: 2
      responses:
        "200":
          description: List of document type identifiers.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
  /v3/knownfaces/lists:
    get:
      summary: Get Known Faces Lists
      description: List configured Known Faces watchlists.
      operationId: getKnownFacesLists
      tags:
        - Known Faces
      responses:
        "200":
          description: Lists.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/KnownFacesList'
    post:
      summary: Post Known Faces List
      description: Create a new Known Faces list.
      operationId: postKnownFacesList
      tags:
        - Known Faces
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KnownFacesList'
      responses:
        "201":
          description: List created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KnownFacesList'
  /v3/knownfaces/lists/{listId}:
    delete:
      summary: Delete Known Faces List
      description: Delete a Known Faces list.
      operationId: deleteKnownFacesList
      tags:
        - Known Faces
      parameters:
        - name: listId
          in: path
          required: true
          schema:
            type: string
      responses:
        "204":
          description: Deleted.
  /v3/knownfaces/lists/{listId}/transactions:
    get:
      summary: Get Known Faces List Transactions
      description: Retrieve transactions associated with a Known Faces list.
      operationId: getKnownFacesListTransactions
      tags:
        - Known Faces
      parameters:
        - name: listId
          in: path
          required: true
          schema:
            type: string
      responses:
        "200":
          description: Transactions.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: true
    post:
      summary: Add Known Faces List Transaction
      description: Enroll a transaction into a Known Faces list.
      operationId: addKnownFacesListTransaction
      tags:
        - Known Faces
      parameters:
        - name: listId
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                TransactionRecordId:
                  type: string
      responses:
        "201":
          description: Enrolled.
components:
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic
    OAuth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://auth-api.trulioo.com/connect/token
          scopes: {}
  schemas:
    DocumentVerifyRequest:
      type: object
      required:
        - AcceptTruliooTermsAndConditions
        - ConfigurationName
        - CountryCode
        - DataFields
      properties:
        AcceptTruliooTermsAndConditions:
          type: boolean
        ConfigurationName:
          type: string
        CountryCode:
          type: string
        CustomerReferenceID:
          type: string
        CallBackUrl:
          type: string
          format: uri
        DataFields:
          type: object
          properties:
            Document:
              type: object
              properties:
                DocumentFrontImage:
                  type: string
                  format: byte
                DocumentBackImage:
                  type: string
                  format: byte
                LivePhoto:
                  type: string
                  format: byte
                DocumentType:
                  type: string
    DocumentVerifyResult:
      type: object
      properties:
        TransactionID:
          type: string
        TransactionRecordID:
          type: string
        DocumentClassification:
          type: string
        DocumentFields:
          type: object
          additionalProperties: true
        FaceMatchScore:
          type: number
        LivenessScore:
          type: number
        Errors:
          type: array
          items:
            type: object
            additionalProperties: true
    KnownFacesList:
      type: object
      properties:
        Id:
          type: string
        Name:
          type: string
        Description:
          type: string