Socure Predictive DocV API

Predictive Document Verification (DocV) verifies government-issued ID documents and matches them to a live selfie with liveness detection. Includes a session-orchestration REST API (create transaction, retrieve decision, manage uploads) and a webhook stream (`APP_OPENED`, `DOCUMENTS_UPLOADED`, `VERIFICATION_COMPLETED`, `SESSION_EXPIRED`) for asynchronous notification of session lifecycle events.

Socure Predictive DocV API is one of 6 APIs that socure publishes on the APIs.io network, described by a machine-readable OpenAPI specification and an AsyncAPI event-driven specification.

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

Tagged areas include Identity Verification, Document Verification, Biometrics, and Liveness. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, an AsyncAPI specification, and 1 Naftiko capability spec.

OpenAPI Specification

socure-docv-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Socure Predictive DocV API
  version: '3.0'
  description: |
    Predictive Document Verification (DocV) verifies government-issued ID documents
    and matches them to a live selfie with liveness detection. The DocV REST API
    creates session-orchestrated transactions, manages document/selfie uploads, and
    retrieves verification outcomes. Session lifecycle events are also pushed via
    webhooks — see the companion DocV AsyncAPI document.
  contact:
    name: Socure Developer Support
    url: https://developer.socure.com
servers:
- url: https://api.socure.com
  description: Production
- url: https://sandbox.socure.com
  description: Sandbox
security:
- SocureToken: []
tags:
- name: Transactions
  description: DocV session orchestration
- name: Uploads
  description: Document and selfie upload management
paths:
  /api/3.0/EmailAuthScore:
    post:
      tags:
      - Transactions
      operationId: createDocvTransaction
      summary: Create A DocV Transaction
      description: Create a DocV transaction by passing `docvTransaction` in the modules array.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateDocvTransactionRequest'
      responses:
        '200':
          description: DocV transaction created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocvTransaction'
  /api/3.0/devices/{deviceId}/documents:
    parameters:
    - name: deviceId
      in: path
      required: true
      schema:
        type: string
    post:
      tags:
      - Uploads
      operationId: uploadDocvDocument
      summary: Upload A DocV Document
      description: Upload a document image (front, back, or selfie) for a DocV transaction.
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                type:
                  type: string
                  enum:
                  - license_front
                  - license_back
                  - passport
                  - selfie
                  - residence_permit
                image:
                  type: string
                  format: binary
      responses:
        '200':
          description: Upload acknowledged.
  /api/3.0/documents/verify:
    post:
      tags:
      - Transactions
      operationId: verifyDocvDocument
      summary: Verify A DocV Document
      description: Finalize a DocV transaction and trigger document/selfie verification.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VerifyDocvRequest'
      responses:
        '200':
          description: Verification result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocvDecision'
  /api/3.0/documents/{docvTransactionId}:
    parameters:
    - name: docvTransactionId
      in: path
      required: true
      schema:
        type: string
    get:
      tags:
      - Transactions
      operationId: getDocvTransaction
      summary: Get A DocV Transaction
      description: Retrieve the current state and result of a DocV transaction.
      responses:
        '200':
          description: DocV transaction.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocvDecision'
components:
  securitySchemes:
    SocureToken:
      type: apiKey
      in: header
      name: Authorization
  schemas:
    CreateDocvTransactionRequest:
      type: object
      required:
      - modules
      properties:
        modules:
          type: array
          items:
            type: string
            enum:
            - docvtransaction
        documentType:
          type: string
          enum:
          - license
          - passport
          - residence_permit
        country:
          type: string
        redirectUrl:
          type: string
          format: uri
        webhookUrl:
          type: string
          format: uri
    DocvTransaction:
      type: object
      properties:
        docvTransactionId:
          type: string
        sessionUrl:
          type: string
          format: uri
        referenceId:
          type: string
    VerifyDocvRequest:
      type: object
      required:
      - docvTransactionId
      properties:
        docvTransactionId:
          type: string
    DocvDecision:
      type: object
      properties:
        docvTransactionId:
          type: string
        decision:
          type: object
          properties:
            value:
              type: string
              enum:
              - accept
              - reject
              - resubmit
            reasonCodes:
              type: array
              items:
                type: string
        documentData:
          type: object
          properties:
            firstName:
              type: string
            surName:
              type: string
            dob:
              type: string
              format: date
            documentNumber:
              type: string
            expirationDate:
              type: string
              format: date
            documentType:
              type: string
            issuingCountry:
              type: string
        selfieMatch:
          type: object
          properties:
            score:
              type: number
            decision:
              type: string
        liveness:
          type: object
          properties:
            decision:
              type: string