Ubble Identity verifications API

The Identity verifications API from Ubble — 9 operation(s) for identity verifications.

Operations 10

POST /v2/create-and-start-idv Create and start an identity verification #
POST /v2/identity-verifications Create an identity verification #
GET /v2/identity-verifications/{identity_verification_id} Retrieve an identity verification #
POST /v2/identity-verifications/{identity_verification_id}/anonymize Anonymize an identity verification #
GET /v2/identity-verifications/{identity_verification_id}/attempts List attempts #
POST /v2/identity-verifications/{identity_verification_id}/attempts Create an attempt #
GET /v2/identity-verifications/{identity_verification_id}/attempts/{attempt_id} Retrieve an attempt #
GET /v2/identity-verifications/{identity_verification_id}/attempts/{attempt_id}/assets Retrieve attempt assets #
POST /v2/identity-verifications/{identity_verification_id}/notify Request webhook notification #
GET /v2/identity-verifications/{identity_verification_id}/pdf-report Retrieve PDF report of an identity verification #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/ubble-identity-verifications-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

ubble-identity-verifications-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Checkout.com - Identity Verification Address document verifications (Coming soon) Address document verifications (Coming soon) Identity verifications API
  version: 1.0.0
  x-logo:
    url: https://raw.githubusercontent.com/ubbleai/docs/main/cko_doc_logo.png
  description: ''
servers:
- url: https://api.ubble.ai
tags:
- name: Identity verifications
paths:
  /v2/create-and-start-idv:
    post:
      tags:
      - Identity verifications
      summary: Create and start an identity verification
      description: This endpoint allows you to create and identity verification. You should get a `201` response and the identity verification resource containing the `_links/verification_url`.
      operationId: create_and_start_identity_verification
      requestBody:
        required: true
        content:
          application/json:
            examples:
              Only required data:
                $ref: '#/components/examples/identity_verification_creation_request_body_helper_min'
              All possible data:
                $ref: '#/components/examples/identity_verification_creation_request_body_helper_max'
              Use an existing applicant:
                $ref: '#/components/examples/identity_verification_creation_request_body_min_plus_aplt'
            schema:
              $ref: '#/components/schemas/IdentityVerificationInputHelper'
      responses:
        '201':
          description: Identity verification created
          content:
            application/json:
              examples:
                identity_verification_creation_response_body_helper:
                  $ref: '#/components/examples/identity_verification_creation_response_body_helper'
              schema:
                allOf:
                - $ref: '#/components/schemas/IdentityVerificationOutputHelper'
      callbacks:
        statusChanged:
          '{$request.body#/webhook_url}':
            post:
              summary: Status update notification
              requestBody:
                required: true
                content:
                  application/json:
                    example:
                      specversion: '2.0'
                      type: identity_verification_capture_completed
                      subject: idv_5hxpdwegjcbujpth3wdo55d3vm
                      id: evnt_5hxpdwegjcbujpth3wdo55d3vm
                      time: '2023-03-22T17:31:00Z'
                      datacontenttype: application/json
                      data:
                        applicant_id: aplt_5hxpdwegjcbujpth3wdo55d3vm
                        user_journey_id: usj_5hxpdwegjcbujpth3wdo55d3vm
                        identity_verification_id: idv_5hxpdwegjcbujpth3wdo55d3vm
                        status: declined
                        response_codes:
                        - code: 61310
                          summary: document_front_not_captured
                        - code: 62102
                          summary: document_not_accepted
                    schema:
                      $ref: '#/components/schemas/Event'
              responses:
                '200':
                  description: Your server returns this code if it accepts the callback.
                '201':
                  description: Your server returns this code if it accepts the callback.
  /v2/identity-verifications:
    post:
      tags:
      - Identity verifications
      summary: Create an identity verification
      description: 'Creates an identity verification.


        When this request is successful, you''ll get a 201 response with the identity verification resource.

        '
      operationId: create_identity_verification
      requestBody:
        required: true
        content:
          application/json:
            examples:
              Only required data:
                $ref: '#/components/examples/identity_verification_creation_request_body_min'
              All possible data:
                $ref: '#/components/examples/identity_verification_creation_request_body_max'
            schema:
              $ref: '#/components/schemas/IdentityVerificationInputPost'
      responses:
        '201':
          description: Identity verification created successfully
          content:
            application/json:
              examples:
                identity_verification_creation_response_body:
                  $ref: '#/components/examples/identity_verification_creation_response_body'
              schema:
                allOf:
                - $ref: '#/components/schemas/IdentityVerificationOutputPost'
        '400':
          description: Bad request.
        '401':
          description: Unauthorized
        '422':
          description: Unprocessable entity
        '500':
          description: Internal server error.
        '503':
          description: Service unavailable
  /v2/identity-verifications/{identity_verification_id}:
    get:
      tags:
      - Identity verifications
      summary: Retrieve an identity verification
      description: This endpoint allows you to get the detailed results of an identity verification.
      operationId: retrieve_identity_verification
      parameters:
      - name: identity_verification_id
        required: true
        in: path
        description: ID of the identity verification
        schema:
          $ref: '#/components/schemas/IdentityVerificationId'
      responses:
        '200':
          description: Identity verification retrieved
          content:
            application/json:
              examples:
                identity_verification_response_body:
                  $ref: '#/components/examples/identity_verification_response_body'
              schema:
                allOf:
                - $ref: '#/components/schemas/IdentityVerificationOutputGet'
  /v2/identity-verifications/{identity_verification_id}/anonymize:
    post:
      tags:
      - Identity verifications
      summary: Anonymize an identity verification
      description: Anonymize the personal data of an identity verification with the specified ID.
      operationId: anonymize_identity_verification
      parameters:
      - name: identity_verification_id
        in: path
        description: ID of the identity verification to anonymize
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Identity verification anonymized
          content:
            application/json:
              examples:
                identity_verification_anonymization_response_body:
                  $ref: '#/components/examples/identity_verification_anonymization_response_body'
              schema:
                allOf:
                - $ref: '#/components/schemas/IdentityVerificationOutputAnonymize'
        '404':
          description: Identity verification not found
        '400':
          description: Bad request. The identity verification cannot be anonymized.
        '500':
          description: Internal server error
  /v2/identity-verifications/{identity_verification_id}/attempts:
    get:
      tags:
      - Identity verifications
      summary: List attempts
      description: 'This endpoint allows you to list all attempts of a verification.


        Attempts are returned ordered by creation date, newest first.


        The response is paginated (see [Pagination](#section/API-standards/Pagination) section).

        You can navigate through pages using the `skip` and `limit` query parameters or by following the URLs in the `_links` object.

        '
      operationId: list_attempts
      parameters:
      - name: identity_verification_id
        in: path
        description: ID of the identity verification
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/skipParam'
      - $ref: '#/components/parameters/limitParam'
      responses:
        '200':
          description: List attempt
          content:
            application/json:
              examples:
                identity_verification_list_response_body:
                  $ref: '#/components/examples/identity_verification_attempt_list_response_body'
              schema:
                allOf:
                - $ref: '#/components/schemas/IdentityVerificationAttemptOutputList'
        '404':
          description: The provided verification ID is not valid
        '500':
          description: An error occurred while fetching the attempts
    post:
      tags:
      - Identity verifications
      summary: Create an attempt
      description: This endpoint allows you to create a new Attempt. It is possible when the identity-verification is in one of the following statuses `created`, `pending`, `capture_in_progress`, `retry_required`
      operationId: create_attempt
      parameters:
      - name: identity_verification_id
        in: path
        description: ID of the identity verification
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            examples:
              Minimal body:
                $ref: '#/components/examples/attempt_creation_request_body_min'
              All possible data:
                $ref: '#/components/examples/identity_attempt_creation_request_body_max'
            schema:
              $ref: '#/components/schemas/IdentityVerificationAttemptInputPost'
      responses:
        '201':
          description: Attempt created
          content:
            application/json:
              examples:
                identity_verification_attempt_creation_response_body:
                  $ref: '#/components/examples/identity_verification_attempt_creation_response_body'
              schema:
                allOf:
                - $ref: '#/components/schemas/IdentityVerificationAttemptOutputPost'
        '404':
          description: The provided verification ID is not valid
        '409':
          description: The current verification status does not allow the creation of a new attempt. The verification status must be either `created`, `pending`, `capture_in_progress`, or `retry_required`
        '500':
          description: An error occurred while creating the attempt
  /v2/identity-verifications/{identity_verification_id}/attempts/{attempt_id}:
    get:
      tags:
      - Identity verifications
      summary: Retrieve an attempt
      description: This endpoint allows you to retrieve the details for a given attempt
      operationId: fetch_attempts
      parameters:
      - name: identity_verification_id
        in: path
        description: ID of the identity verification
        required: true
        schema:
          type: string
      - name: attempt_id
        in: path
        description: ID of the attempt
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Attempt fetched
          content:
            application/json:
              examples:
                identity_verification_attempt_get_response_body:
                  $ref: '#/components/examples/identity_verification_attempt_get_response_body'
              schema:
                allOf:
                - $ref: '#/components/schemas/IdentityVerificationAttemptOutputGet'
        '404':
          description: The provided verification ID or attempt ID is not valid
        '500':
          description: An error occurred while fetching the attempt
  /v2/identity-verifications/{identity_verification_id}/attempts/{attempt_id}/assets:
    get:
      tags:
      - Identity verifications
      summary: Retrieve attempt assets
      description: 'Retrieves the assets associated with an identity verification attempt.

        This includes face images, videos, and document images captured during the verification process.

        Please note that videos are not exposed by default, contact your account manager to enable this feature.


        The response is paginated (see [Pagination](#section/API-standards/Pagination) section).

        You can navigate through pages using the `skip` and `limit` query parameters or by following the URLs in the `_links` object.

        '
      operationId: retrieve_identity_verification_attempt_assets
      parameters:
      - name: identity_verification_id
        in: path
        required: true
        schema:
          type: string
        description: The ID of the identity verification
      - name: attempt_id
        in: path
        required: true
        schema:
          type: string
        description: The ID of the attempt
      - $ref: '#/components/parameters/skipParam'
      - $ref: '#/components/parameters/limitParam'
      responses:
        '200':
          description: The assets were retrieved successfully
          content:
            application/json:
              examples:
                identity_verification_attempt_assets_response_body:
                  $ref: '#/components/examples/identity_verification_attempt_assets_response_body'
              schema:
                $ref: '#/components/schemas/IdentityVerificationAttemptAssetsOutput'
  /v2/identity-verifications/{identity_verification_id}/notify:
    post:
      tags:
      - Identity verifications
      summary: Request webhook notification
      operationId: notify_identity_verification
      description: This endpoint can be used to initiate a webhook call containing the latest event of an identity verification.
      parameters:
      - name: identity_verification_id
        in: path
        description: ID of the identity verification to notify
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                webhook_url:
                  type: string
                  format: uri
      responses:
        '204':
          description: Notification successfully requested
  /v2/identity-verifications/{identity_verification_id}/pdf-report:
    get:
      tags:
      - Identity verifications
      summary: Retrieve PDF report of an identity verification
      description: 'This endpoint allows you to retrieve a PDF report containing all the information of the identity verification.


        Please note that this report is only available for verifications in statuses `declined` and `approved` once you receive the `identity_verification_report_created` event.

        '
      operationId: pdf_identity_verification
      parameters:
      - name: identity_verification_id
        in: path
        description: ID of the identity verification
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Operation success
          content:
            application/json:
              examples:
                identity_verification_pdf_response_body:
                  $ref: '#/components/examples/identity_verification_pdf_response_body'
              schema:
                required:
                - pdf_report
                allOf:
                - $ref: '#/components/schemas/IdentityVerificationOutputPdfReport'
        '404':
          description: The PDF is not available
components:
  parameters:
    skipParam:
      name: skip
      in: query
      description: Number of items to skip (offset)
      required: false
      schema:
        type: integer
        minimum: 0
        default: 0
    limitParam:
      name: limit
      in: query
      description: Maximum number of items to return per page
      required: false
      schema:
        type: integer
        minimum: 1
        default: 10
  schemas:
    ActiveLink:
      type: object
      required:
      - verification_url
      properties:
        verification_url:
          $ref: '#/components/schemas/HalLink'
    Address:
      type: object
      properties:
        address_line1:
          type: string
          maxLength: 250
        address_line2:
          type: string
          maxLength: 250
        city:
          type: string
          maxLength: 50
        state:
          type: string
          maxLength: 50
        zip:
          type: string
          maxLength: 50
        country:
          $ref: '#/components/schemas/CountryCodeIso2'
    IdentityVerificationInputBase:
      type: object
      allOf:
      - $ref: '#/components/schemas/IdentityVerificationBase'
    AttemptLinks:
      type: object
      allOf:
      - $ref: '#/components/schemas/ActiveLink'
      - $ref: '#/components/schemas/SelfLink'
    IdentityDeclaredData:
      type: object
      required:
      - name
      properties:
        phone_number:
          $ref: '#/components/schemas/PhoneNumber'
        email:
          type:
          - string
          - 'null'
          format: email
        address:
          $ref: '#/components/schemas/Address'
      allOf:
      - $ref: '#/components/schemas/DeclaredData'
    Document:
      type: object
      properties:
        personal_number:
          type: string
          maxLength: 255
        tax_identification_number:
          type: string
          maxLength: 255
        document_type:
          $ref: '#/components/schemas/DocumentTypes'
        document_issuing_country:
          $ref: '#/components/schemas/CountryCodeIso2'
        permit_obtaining_date:
          type: string
          format: date
        permit_expiry_date:
          type: string
          format: date
        permit_type_detailed:
          type: string
          maxLength: 255
        permit_type_remarks:
          type: string
          maxLength: 255
        document_number:
          type: string
          maxLength: 255
        document_expiry_date:
          type: string
          format: date
        document_issue_date:
          type: string
          format: date
        document_issue_place:
          type: string
          maxLength: 255
        document_mrz:
          type: string
          pattern: ^([A-Z0-9<]{2}[A-Z0-9<]{1,38}[\n\r])+([A-Z0-9<]{2}[A-Z0-9<]{1,44}[\n\r])?([A-Z0-9<]{2}[A-Z0-9<]{1,44}[\n\r])?$
        front_image_signed_url:
          $ref: '#/components/schemas/PreSignedUrl'
        back_image_signed_url:
          $ref: '#/components/schemas/PreSignedUrl'
        signature_image_signed_url:
          $ref: '#/components/schemas/PreSignedUrl'
        full_name:
          type: string
          minLength: 2
          maxLength: 510
        first_names:
          type: string
          minLength: 1
          maxLength: 255
        last_name:
          type: string
          minLength: 1
          maxLength: 255
        last_name_at_birth:
          type: string
          minLength: 1
          maxLength: 255
        birth_date:
          type: string
          format: date
        birth_place:
          type: string
          minLength: 1
          maxLength: 255
        nationality:
          $ref: '#/components/schemas/CountryCodeIso2'
        gender:
          $ref: '#/components/schemas/Gender'
        address:
          type: string
          maxLength: 1000
    HalLink:
      type: object
      required:
      - href
      properties:
        href:
          type: string
          format: uri
    BaseApplicantSessionInformation:
      type: object
      properties:
        ip_address:
          type: string
          description: Ip address of the applicant during the session
          example: 123:456:789:00
        number_of_sessions:
          type: integer
          description: Number of sessions opened by user
          example: 3
        user_agent:
          type: string
          description: User session user agent
          example: Mozilla/5.0 (Linux; Android 8.0.0; SM-G960F Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36
        initial_device:
          $ref: '#/components/schemas/InitialDevices'
    GenderA47Enum:
      enum:
      - M
      - F
      - NA
      type: string
      description: '* `M` - M

        * `F` - F

        * `NA` - NA'
    AttemptStates:
      type: string
      description: States of an attempt.
      enum:
      - pending_redirection
      - capture_in_progress
      - checks_in_progress
      - completed
      - expired
      - capture_aborted
      - capture_refused
      - checks_inconclusive
      - terminated
    RiskLabels:
      type: array
      items:
        $ref: '#/components/schemas/RiskLabel'
      description: Risk assessment labels
    ResponseCode:
      type: integer
      description: The numeric code of the response code.
      minimum: 10000
      maximum: 69999
    IdentityVerificationApplicantSessionInformation:
      type: object
      properties:
        selected_documents:
          description: Documents selected by the applicant in selection order
          type: array
          minItems: 0
          items:
            $ref: '#/components/schemas/SelectedDocument'
      allOf:
      - $ref: '#/components/schemas/BaseApplicantSessionInformation'
    DocumentTypes:
      type: string
      description: Type of document.
      enum:
      - Driving licence
      - ID
      - Other
      - Passport
      - Residence Permit
      - Travel Document
      - Visa
    IdentityVerificationAttemptOutputPost:
      type: object
      required:
      - id
      - status
      - redirect_url
      - response_codes
      - _links
      allOf:
      - $ref: '#/components/schemas/IdentityVerificationAttemptOutputBase'
    ResponseCodes:
      type: object
      description: The code giving more details about the result.
      properties:
        code:
          $ref: '#/components/schemas/ResponseCode'
        summary:
          $ref: '#/components/schemas/ResponseSummary'
      required:
      - code
      - summary
    BlankEnum:
      enum:
      - ''
    Gender:
      type: string
      description: Person gender.
      example: M
      enum:
      - M
      - F
    IdentityVerificationAttemptOutputGet:
      type: object
      required:
      - id
      - status
      - redirect_url
      - response_codes
      - _links
      allOf:
      - $ref: '#/components/schemas/IdentityVerificationAttemptOutputBase'
    DeclaredData:
      type: object
      required:
      - name
      properties:
        name:
          type: string
          minLength: 2
          maxLength: 255
        birth_date:
          type: string
          format: date
    DomesticPhoneNumber:
      type: string
      format: domestic phone number
      pattern: ^\d{1,14}$
      example: '2068133616'
    PhoneNumber:
      type: object
      required:
      - country_code
      - number
      properties:
        country_code:
          $ref: '#/components/schemas/PhonePrefix'
        number:
          $ref: '#/components/schemas/DomesticPhoneNumber'
    SelfLink:
      type: object
      required:
      - self
      properties:
        self:
          $ref: '#/components/schemas/HalLink'
    PhonePrefix:
      type: string
      format: international phone prefix
      pattern: ^\+(\d+)$
      example: '+33'
    IdentityVerificationLinks:
      type: object
      allOf:
      - $ref: '#/components/schemas/SelfLink'
      - $ref: '#/components/schemas/ApplicantLink'
    IdentityVerificationAttemptOutputList:
      type: object
      required:
      - total_count
      - skip
      - limit
      - _links
      - data
      properties:
        data:
          type: array
          description: Array of identity verification attempts for the current page
          minItems: 0
          items:
            $ref: '#/components/schemas/IdentityVerificationAttemptOutputGet'
      allOf:
      - $ref: '#/components/schemas/BaseOutputList'
    IdentityVerificationOutputAnonymize:
      type: object
      required:
      - id
      - status
      - webhook_url
      - _links
      - applicant_id
      - redirect_url
      - response_codes
      - risk_labels
      - user_journey_id
      properties:
        id:
          $ref: '#/components/schemas/IdentityVerificationId'
        phone_number:
          $ref: '#/components/schemas/PhoneNumber'
        redirect_url:
          type: string
          format: uri
        _links:
          $ref: '#/components/schemas/IdentityVerificationLinks'
      allOf:
      - $ref: '#/components/schemas/DatedObject'
      - $ref: '#/components/schemas/IdentityVerificationOutputBase'
    LanguageCode:
      type: string
      format: IETF BCP 47 language tag
      description: Language tag following IETF BCP 47 standard
      example: en-US
    UserJourneyId:
      type: string
      description: User journey unique identifier.
      pattern: ^usj_\w+$
      example: usj_tkoi5db4hryu5cei5vwoabr7we
    VerificationIdentity:
      type: object
      description: IdentitySerializer for our main Identity model
      properties:
        first_names:
          type:
          - string
          - 'null'
        full_name:
          type:
          - string
          - 'null'
        last_name:
          type:
          - string
          - 'null'
        last_name_at_birth:
          type:
          - string
          - 'null'
        birth_date:
          type:
          - string
          - 'null'
          format: date
        birth_place:
          type:
          - string
          - 'null'
          maxLength: 255
        nationality:
          type: string
        gender:
          type:
          - string
          - 'null'
          oneOf:
          - $ref: '#/components/schemas/GenderA47Enum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
    IdentityVerificationOutputHelper:
      type: object
      required:
      - id
      - declared_data
      - status
      - webhook_url
      - _links
      - response_codes
      - risk_labels
      - redirect_url
      - applicant_id
      - user_journey_id
      properties:
        id:
          $ref: '#/components/schemas/IdentityVerificationId'
        declared_data:
          $ref: '#/components/schemas/IdentityDeclaredData'
        redirect_url:
          type: string
          format: uri
        phone_number:
          $ref: '#/components/schemas/PhoneNumber'
        _links:
          $ref: '#/components/schemas/IdentityVerificationHelperLinks'
      allOf:
      - $ref: '#/components/schemas/DatedObject'
      - $ref: '#/components/schemas/IdentityVerificationOutputBase'
    VerificationFace:
      type: object
      properties:
        image_signed_url:
          type:
          - string
          - 'null'
    NullEnum:
      enum:
      - null
    IdentityVerificationAttemptAssetOutput:
      type: object
      required:
      - type
      - _links
      properties:
        type:
          type: string
          enum:
          - face_image
          - face_video
          - document_front_image
          - document_back_image
          - document_back_image
          - document_front_video
          - document_signature_image
          - document_back_video
          - secondary_document_front_video
          - secondary_document_front_image
          - secondary_document_back_image
          - secondary_document_signature_image
          - secondary_document_back_video
          - secondary_document_front_video
        _links:
          type: object
          required:
          - asset_url
          properties:
            asset_url:
              $ref: '#/components/schemas/HalLink'
    DatedObject:
      type: object
      required:
      - created_on
      - modified_on
      properties:
        created_on:
          description: UTC Date time when the resource was created
          type: string
          format: date-time
          example: 2017-07-21 17:32:28+00:00
        modified_on:
          description: UTC Date time when the resource was modified
          type: string
          format: date-time
          example: 2017-07-21 17:40:32+00:00
    IdentityClientInformation:
      type: object
      properties:
        pre_selected_residence_country:
          $ref: '#/components/schemas/CountryCodeIso2'
        pre_selected_document_issuing_country:
          $ref: '#/components/schemas/CountryCodeIso2'
        pre_selected_document_type:
          $ref: '#/components/schemas/DocumentTypes'
        pre_selected_language:
          $ref: '#/components/schemas/LanguageCode'
    IdentityVerificationOutputPost:
      type: object
      required:
      - id
      - declared_data
      - status
      - webhook_url
      - _links
      - response_codes
      - risk_labels
      - applicant_id
      - user_journey_id
      properties:
        id:
          $ref: '#/components/schemas/IdentityVerificationId'
        declared_data:
          $ref: '#/components/schemas/IdentityDeclaredData'
        _links:
          $ref: '#/components/schemas/IdentityVerificationLinks'
      allOf:
      - $ref: '#/components/schemas/DatedObject'
      - $ref: '#/components/schemas/IdentityVerificationOutputBase'
    ApplicantLink:
      type: object
      required:
      - applicant
      properties:
        applicant:
          $ref: '#/components/schemas/HalLink'
    SelectedDocument:
      type: object
      description: The code giving more details about the result.
      properties:
        country:
          $ref: '#/components/schemas/CountryCodeIso2'
        document_type:
          $ref: '#/components/schemas/DocumentTypes'
      required:
      - country
      - document_type
    IdentityVerificationAttemptAssetsOutput:
      type: object
      required:
      - total_count
      - skip
      - limit
      - _links
      - data
      properties:
        data:
          type: array
          description: Array of identity verification attempt assets for the current page
          minItems: 0
          items:
            $ref: '#/components/schemas/IdentityVerificationAttemptAssetOutput'
      allOf:
      - $ref: '#/components/schemas/BaseOutputList'
    IdentityVerificationAttemptInputBase:
      type: object
      allOf:
      - $ref: '#/components/schemas/IdentityAttemptBase'
    IdentityVerificationHelperLinks:
      type: object
      allOf:
      - $ref: '#/components/schemas/SelfLink'
      - $ref: '#/components/schemas/ApplicantLink'
      - $ref: '#/components/schemas/ActiveLink'
    IdentityVerificationOutputPdfReport:
      type: object
      properties:
        pdf_report:
          type: string
          format: uri
    ApplicantId:
      type: string
      description: Applicant unique identifier.
      pattern: ^aplt_\w+$
      example: aplt_tkoi5db4hryu5cei5vwoabr7we
    IdentityVerificationOutputBase:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/VerificationStatuses'
        response_codes:
          type: array
          items:
            $ref: '#/components/schemas/ResponseCodes'
        verified_identity:
          $ref: '#/components/schemas/VerificationIdentity'
        documents:
          type: array
          items:
            $ref: '#/components/schemas/Document'
        face:
          $ref: '#/components/schemas/VerificationFace'
        verification_policy_version:
          type: string
          description: returned ONLY for certified verifications
        risk_labels:
          $ref: '#/components/schemas/RiskLabels'
      allOf:
      - $ref: '#/components/schemas/IdentityVerificationBase'
    IdentityVerificationInputHelper:
      type: object
      required:
      - declared_data
      - webhook_url
      - redirect_url
      properties:
        declared_data:
          $ref: '#/components/schemas/IdentityDeclaredData'
        phone_number:
          $ref: '#/components/schemas/PhoneNumber'
        redirect_url:
          type: string
          format: uri
      allOf:
      - $ref: '#/components/schemas/IdentityVerificationInputBase'
    VerificationStatuses:
      type: string
      description: Status of the verification.
      enum:
      - created
      - pending
      - capture_in_progress
      - checks_in_progress
      - approved
      - declined
      - retry_required
      - refused
      - inconclusive
    PreSignedUrl:
      type: string
      format: uri
      description: Pre-signed URL
      example: https://storage-b.ubble.ai/ubble-ai/NDYOOVHGZPAQ/a54b3393-f02a-47c9-a9c5-2f6ee73560e1/bb603e2f-5de9-40f2-9631-8285a33c24c0/live_face/bb603e2f-5de9-40f2-9631-8285a33c24c0-1679921946714.png?response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=V9jgOdpOdeVSFTkA4ZsG%2F20230327%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230327T163223Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=h

# --- truncated at 32 KB (50 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ubble/refs/heads/main/openapi/ubble-identity-verifications-api-openapi.yml