openapi: 3.0.0
info:
  title: Customer API
  version: '2.4'
  description: >-
    The Trulioo Customer API is organized around REST. Our API has predictable
    resource-oriented URLs and uses standard HTTP response codes,
    authentication, and verbs. The API provides authorization endpoints and
    endpoints to perform document verification and review transaction results.

    <br />

    > Some US states impose obligations on businesses that collect and use
    “biometric identifiers” and/or “biometric information”, which may include
    facial scan data extracted from photos during a document verification
    transaction. One such law is the Illinois Biometric Information Privacy Act
    (“BIPA”). A business required to comply with BIPA is under obligations to,
    among other things, ensure that it informs the individual of the purpose of
    the collection and obtain consent. Accordingly, we require a notice and
    consent mechanism be implemented for all document verification transactions,
    and our customers using our API must provide us with confirmation via API
    whether an individual is located in the United States and has consented to
    the transaction in the prescribed manner. We also strongly encourage all of
    our customers to consult with legal counsel to ensure their own compliance
    with such laws. <br />  <br /> For more information about the required
    notice and consent mechanism, please refer to our [Service Specific
    Terms](https://www.trulioo.com/legal/SST) for Document Verification. <br /> 
    <br /> You can read more about the configuration requirements for our API
    related to the notice and consent mechanism
    [here](#tag/Audit/operation/post-customer-audit-record-consent).
servers:
  - url: https://verification.trulioo.com
    description: production
tags:
  - name: Authorization
  - name: Transaction
security:
  - AccessToken: []
paths:
  /authorize/customer:
    post:
      tags:
        - Authorization
      summary: Authorize and generate access tokens
      operationId: post-auth-customer
      description: >-
        Required initial endpoint before starting the document verification
        process. It generates the access tokens to be used in subsequent
        endpoints. Access token expire in 60 minutes.
      security:
        - LicenseKey: []
      parameters:
        - schema:
            type: string
          in: header
          name: Accept-Version
          description: API Version
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                consent:
                  type: boolean
                  description: >-
                    Provided consent will create a historical record with
                    timestamp
                webhook:
                  type: string
                  description: >-
                    Callback URL for transaction status updates.  See
                    [Webhooks](https://docs.verification.trulioo.com/sdk/webhook/index.html)
                  format: uri
                  example: https://trulioo.com/webhook
              required:
                - consent
        description: >-
          Identify the consent and if is in the US with the biometric policy
          agreement
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthorizationResponse'
          headers:
            Accept-Version:
              schema:
                type: string
              description: API Version
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '500':
          $ref: '#/components/responses/InternalError'
    parameters: []
  /customer/handoff:
    post:
      tags:
        - Transaction
      summary: Create a shortcode for handoff to a SDK
      operationId: post-handoff
      description: >-
        Short code provides an option to pass the rest of the verification
        workflow to an SDK. The short code is a unique, single use code and it
        is valid for only 5 minutes. The verification will continue on SDK side
        starting with authorization using the short code. The short code locks
        the workflow to the same transaction identifier as the one generated
        earlier during authorization.
      parameters:
        - schema:
            type: string
          in: header
          name: Accept-Version
          description: API Version
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HandoffResponse'
          headers:
            Accept-Version:
              schema:
                type: string
              description: API Version
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '500':
          $ref: '#/components/responses/InternalError'
  /customer/transactions:
    post:
      tags:
        - Transaction
      summary: Create and Configure Transactions
      operationId: post-transactions
      description: >-
        Creates a transaction with configuration options for document and/or
        selfie liveness verification.
      parameters:
        - schema:
            type: string
          in: header
          name: Accept-Version
          description: API Version
          required: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransactionConfiguration'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionResponse'
          headers:
            Accept-Version:
              schema:
                type: string
              description: API Version
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '500':
          $ref: '#/components/responses/InternalError'
  /customer/transactions/documents:
    post:
      tags:
        - Transaction
      summary: Upload a document
      operationId: upload_document
      description: >-
        Uploads an image for a verification process. It accepts images in PNG
        and JPG format. Maximum file size is 10 megabytes, and the minimum is 20
        kilobytes.
      parameters:
        - schema:
            type: string
          in: header
          name: Accept-Version
          description: API Version
          required: true
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
                - context
                - body
              properties:
                context:
                  type: string
                  description: The `front` or `back` of the document, or `live` for selfie
                  enum:
                    - front
                    - back
                    - live
                  default: front
                body:
                  type: string
                  format: binary
                  description: The image file to be uploaded
      responses:
        '200':
          description: Upload result
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadResponse'
          headers:
            Accept-Version:
              schema:
                type: string
              description: API Version
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '500':
          $ref: '#/components/responses/InternalError'
  /customer/transactions/verify:
    post:
      tags:
        - Transaction
      summary: Start to verify a transaction
      operationId: verify_transaction
      description: Starts the verification process and returns the status.
      parameters:
        - schema:
            type: string
          in: header
          name: Accept-Version
          description: API Version
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DecisionResponse'
          headers:
            Accept-Version:
              schema:
                type: string
              description: API Version
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                      - PENDING_RESULT
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnProcessableEntity'
        '500':
          $ref: '#/components/responses/InternalError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
  /customer/transactions/{transactionId}:
    get:
      tags:
        - Transaction
      summary: Get the data of a transaction
      operationId: get_transaction_data
      description: >-
        Retrieves the detailed information of a verification process specified
        by a transaction identifier.
      parameters:
        - schema:
            type: string
          name: transactionId
          in: path
          required: true
        - in: header
          name: Accept-Version
          description: API Version
          schema:
            type: string
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionResultResponse'
          headers:
            Accept-Version:
              schema:
                type: string
              description: API Version of the response
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
  /customer/transactions/{transactionId}/images/{imageId}:
    get:
      tags:
        - Transaction
      summary: Get an image
      operationId: get_presigned_url
      description: >-
        Retrieves an image of the transaction by providing the transaction
        identifier, the image identifier and the access token obtained from the
        GET /transactions/{transactionId} endpoint.
      security:
        - ImageAccessToken: []
      parameters:
        - schema:
            type: string
          name: transactionId
          in: path
          required: true
        - schema:
            type: string
          name: imageId
          in: path
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DownloadResultResponse'
          headers:
            Accept-Version:
              schema:
                type: string
              description: API Version of the response
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
components:
  securitySchemes:
    LicenseKey:
      type: http
      scheme: bearer
    AccessToken:
      type: http
      scheme: bearer
      description: JWT token of type access
    RefreshToken:
      type: http
      scheme: bearer
      description: JWT token of type refresh
    ImageAccessToken:
      type: apiKey
      in: query
      name: authorization
      description: JWT token of type access with image IDs
  responses:
    BadRequest:
      description: Bad Request
      headers:
        Accept-Version:
          schema:
            type: string
          description: API Version of the response
      content:
        application/json:
          schema:
            type: object
            properties:
              messsage:
                type: string
                default: Make sure your request is formatted correctly.
    UnauthorizedError:
      description: |-
        Unauthorized 
         
         `default`: Jwt is expired
      content:
        text/plain:
          schema:
            type: string
            default: Jwt is expired
    ForbiddenError:
      description: |-
        Forbidden 
         
         `default`: Access Denied
      headers:
        Accept-Version:
          schema:
            type: string
          description: API Version of the response
      content:
        text/plain:
          schema:
            type: string
            default: Access Denied
    NotFound:
      description: Not Found
      headers:
        Accept-Version:
          schema:
            type: string
            description: API Version of the response
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                default: Check if the transactionId is correct.
    UnProcessableEntity:
      description: UnProcessableEntity
      headers:
        Accept-Version:
          schema:
            type: string
            description: API Version of the response
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                enum:
                  - Front image missing. Make sure the front image is available.
                  - Back image missing. Make sure the back image is available.
                  - Face image missing. Make sure the selfie image is available.
                  - Document not fully in frame.
                  - Face not fully in frame.
    InternalError:
      description: Internal Server Error
      headers:
        Accept-Version:
          schema:
            type: string
            description: API Version of the response
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                default: >-
                  The server encountered an error. Please email us at
                  support@trulioo.com.
    ServiceUnavailable:
      description: Service Unavailable Error
      headers:
        Accept-Version:
          schema:
            type: string
            description: API Version of the response
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                default: Service is currently not available. Please try again.
  requestBodies: {}
  schemas:
    TransactionResponse:
      title: TransactionResponse
      type: object
      properties:
        transactionId:
          type: string
          format: uuid
          description: Unique transaction identifier.
    DecisionResponse:
      title: DecisionResponse
      type: object
      format: int32
      properties:
        status:
          type: string
          enum:
            - ACCEPTED
            - REVIEW
            - DECLINED
            - ERROR
            - NO_RESULT
            - PENDING_RESULT
    UploadResponse:
      title: UploadResponse
      type: object
      properties:
        imageId:
          type: string
          description: The identifier (UUID) of the uploaded image
    TransactionResultResponse:
      title: TransactionResultResponse
      type: object
      properties:
        transactionId:
          type: string
          description: >-
            The unique identifier of a Trulioo document verification
            transaction.
          example: 28087e85-9c6c-4ce9-83e2-1fb3d66b8cde
        dataVendorSessionId:
          type: string
          description: >-
            The unique identifier referencing a specific vendor verification
            session.
          example: 8005efed-e683-40ab-a803-56eba164b767
        timeOfTransaction:
          type: string
          description: Date and time (ISO 8601) when the transaction took place.
          example: '2023-01-01T16:00:00.000Z'
        status:
          type: string
          description: The decision of the verification.
          enum:
            - ACCEPTED
            - REVIEW
            - DECLINED
            - ERROR
            - NO_RESULT
          example: REVIEW
        errors:
          type: array
          description: >-
            List of errors related to image processing, network with vendor, or
            vendor errors during verification.
          items:
            type: string
        indicators:
          type: array
          description: Reasons of verification failure.
          items:
            $ref: '#/components/schemas/Indicator'
        person:
          $ref: '#/components/schemas/Person'
        document:
          $ref: '#/components/schemas/Document'
        images:
          $ref: '#/components/schemas/ImageIds'
    DownloadResultResponse:
      title: DownloadResultResponse
      type: object
      properties:
        image:
          type: string
          description: >-
            The image associated with image id and transaction id in Base64
            format.
          example: iVBORw0KGgo=
    Address:
      title: Address
      type: object
      properties:
        fullAddress:
          type: string
          example: 221b Baker St, London, England, NW16XE
        addressLine1:
          type: string
          example: 221b Baker St
        addressLine2:
          type: string
          example: London, State, NW16XE
        city:
          type: string
          example: London
        stateProvince:
          type: string
          example: State
        country:
          type: string
          example: England
        zipCode:
          type: string
          example: NW16XE
    Person:
      title: Person
      type: object
      properties:
        fullName:
          type: string
          description: >-
            Full name of the subject/applicant. Used in case of
            indistinguishable first and last name
          example: Sherlock Holmes
        firstName:
          type: string
          example: Sherlock
        middleName:
          type: string
          example: Scott
        lastName:
          type: string
          example: Holmes
        dateOfBirth:
          type: string
          description: Date of birth of the subject/applicant (ISO 8601)
          example: '1859-05-22'
        placeOfBirth:
          type: string
          description: Place of birth of the subject/applicant
          example: London
        nationality:
          type: string
          description: A person's nationality.
          example: England
        gender:
          type: string
          description: >-
            Person's gender as denoted by the letters M for male or F for
            female.
          example: F
        location:
          $ref: '#/components/schemas/Address'
        alternateFirstName:
          type: string
          description: First name that is non-iso latin
          example: 小明
        alternateMiddleName:
          type: string
          description: Middle name that is non-iso latin
          example: 大
        alternateLastName:
          type: string
          description: Middle name that is non-iso latin
          example: 王
        alternateFullName:
          type: string
          description: Full name that is non-iso latin
          example: 王大小明
        alternateDateOfBirth:
          type: string
          example: πρώτος Ιανουαρίου
        alternateLocation:
          type: object
          properties:
            fullAddress:
              type: string
              example: 1234バンクーバー通り, バンクーバー, ブリティッシュコロンビア,  カナダ, NW16XE
            addressLine1:
              type: string
              description: Address line 1 that is non-iso latin
              example: 1234バンクーバー通り
            addressLine2:
              type: string
              description: Address line 2 that is non-iso latin
              example: バンクーバー
            city:
              type: string
              example: バンクーバー
            stateProvince:
              type: string
              example: ブリティッシュコロンビア
            country:
              type: string
              example: カナダ
            zipCode:
              type: string
              example: מיקוד
        standardizedLocation:
          $ref: '#/components/schemas/Address'
        firstLastName:
          type: string
          example: Silva
        secondLastname:
          type: string
          example: Pereira
        alternateFirstLastname:
          type: string
          example: 司
        alternateSecondLastname:
          type: string
          example: 徒
        birthLastName:
          type: string
          description: Last name by birth
          example: Holmes
        spouseLastName:
          type: string
          description: Last name of spouse
          example: Smith
    Document:
      title: Document
      type: object
      properties:
        documentType:
          type: string
          description: Type of the identification document provided.
          enum:
            - PASSPORT
            - DRIVERS_LICENSE
            - ID_CARD
            - RESIDENCE_PERMIT
            - MILITARY_ID
            - VISA
            - HEALTH_CARD
            - TRAVEL_DOCUMENT
            - VOTER_ID
            - OTHER
            - UNKNOWN
            - UNSUPPORTED
            - NOT_STARTED
            - ERROR
            - ''
        documentName:
          type: string
          example: Australia - ePassport (2009) Travel Document
        dlCategory:
          type: string
          description: >-
            The driving license category if the submitted document is of type
            DRIVERS_LICENSE
          example: Class 5
        documentNumber:
          type: string
          description: The primary document identifier apparent in all documents.
          example: EX504966
        documentNumber2:
          type: string
          description: The second document identifier that is apparent in some documents.
          example: A09354726
        documentNumber3:
          type: string
          description: The third document identifier that is apparent in some documents.
          example: C07321129
        documentNumber4:
          type: string
          description: The fourth document identifier that is apparent in some documents.
          example: D06364026
        documentCountry:
          type: string
          description: The ISO alpha-2 code of issuing country of the document.
          example: GB
        jurisdictionCode:
          type: string
          description: The code of issuing jurisdiction of the document.
          example: ENG
        issueDate:
          type: string
          description: Date at which document is issued by a governing body.
          example: 2020-11-17T00:00:000Z
        expirationDate:
          type: string
          description: Date at which document will or has expired.
          example: 2030-11-17T00:00:000Z
        alternateDocumentNumber:
          type: string
          description: Document number that is non-iso latin
          example: 一百二十三萬四千五百六十七
        alternateDocumentNumber2:
          type: string
          description: Document number that is non-iso latin
          example: 一百二十三萬四千五百六十七
        alternateDocumentNumber3:
          type: string
          description: Document number that is non-iso latin
          example: 一百二十三萬四千五百六十七
        alternateDocumentNumber4:
          type: string
          description: Document number that is non-iso latin
          example: 一百二十三萬四千五百六十七
        alternateExpiryDate:
          type: string
          description: Expiry date that is non-iso latin
          example: 2050 年 1 月 1 日
        alternateIssueDate:
          type: string
          description: Issue date that is non-iso latin
          example: 2000 年 1 月 1 日
    Indicator:
      title: Indicator
      type: object
      properties:
        type:
          type: string
          enum:
            - DOCUMENT
            - FACE_MATCH
            - LIVENESS
          example: DOCUMENT
        result:
          type: string
          enum:
            - ACCEPTED
            - DECLINED
            - REVIEW
            - ERROR
            - NO_RESULT
          example: REVIEW
        description:
          type: string
          example: Document requires a review.
        score:
          type: string
          example: '90'
        subindicators:
          type: array
          items:
            $ref: '#/components/schemas/Subindicator'
    Subindicator:
      title: Subindicator
      type: object
      properties:
        type:
          type: string
          example: OCR
        result:
          type: string
          enum:
            - ACCEPTED
            - DECLINED
            - REVIEW
            - ERROR
            - NO_RESULT
          example: REVIEW
        description:
          type: string
          example: Poor image quality.
    ImageIds:
      title: Images
      type: object
      description: The object contain all submitted images.
      properties:
        frontDocumentId:
          type: string
          example: 0116879a-ff2d-4c58-96da-fb4f088452e7
        backDocumentId:
          type: string
          example: 78b65b2a-72ee-4b81-a14b-e795cedbc818
        selfieId:
          type: string
          example: f12885ea-699f-4572-8630-cddc01e8a929
        accessToken:
          type: string
          description: >-
            The short lived access token in the format of JWT which contains ID
            of images. This access token is used as authorization token to
            retrieve images.
        documentFrontUrl:
          type: string
          description: URL to download document front image.
        documentBackUrl:
          type: string
          description: URL to download document back image.
        selfieUrl:
          type: string
          description: URL to download selfie image.
    HandoffResponse:
      title: HandoffResponse
      type: object
      properties:
        shortCode:
          type: string
          description: >-
            The single use unique identifier used for handoff the transaction to
            an SDK.
          example: qWinHpfejeezSqek
    AuthorizationResponse:
      title: AuthorizationResponse
      type: object
      properties:
        accessToken:
          type: string
          description: >-
            Short lived token in the JWT format with 60 minutes expiration
            period.
        refreshToken:
          type: string
        tokenType:
          type: string
          description: The type of the token based on refresh token.
          default: refresh_token
        expiresIn:
          type: number
          description: TTL in milliseconds based on the refresh token
    RefreshResponse:
      title: RefreshResponse
      type: object
      properties:
        accessToken:
          type: string
          description: >-
            Short lived token in the JWT format with 60 minutes expiration
            period.
        tokenType:
          type: string
          description: The type of the token.
          default: ''
        expiresIn:
          type: number
          description: TTL in milliseconds based on the access token
    TransactionConfiguration:
      title: Transaction Configuration
      type: object
      properties:
        documentVerification:
          type: object
          description: Document verification configuration
          properties:
            enabled:
              type: boolean
              description: Enables/disables document verification
            documentsAccepted:
              type: array
              description: >-
                List of permissible document issuing countries combined with
                document type. An empty array will result in accepting all
                countries and all document types for the verification.
              default: []
              example:
                - documentCountry: CA
                  documentTypes:
                    - type: DRIVERS_LICENSE
                      years: []
              items:
                type: object
                properties:
                  documentCountry:
                    type: string
                    description: Country Code (ISO 3166-1 alpha-2 format)
                    example: CA
                    enum:
                      - AD
                      - AE
                      - AF
                      - AG
                      - AI
                      - AL
                      - AM
                      - AO
                      - AR
                      - AS
                      - AT
                      - AU
                      - AW
                      - AX
                      - AZ
                      - BA
                      - BB
                      - BD
                      - BE
                      - BF
                      - BG
                      - BH
                      - BI
                      - BJ
                      - BL
                      - BM
                      - BN
                      - BO
                      - BQ
                      - BR
                      - BS
                      - BT
                      - BV
                      - BW
                      - BY
                      - BZ
                      - CA
                      - CC
                      - CD
                      - CF
                      - CG
                      - CH
                      - CI
                      - CK
                      - CL
                      - CM
                      - CN
                      - CO
                      - CR
                      - CU
                      - CV
                      - CW
                      - CX
                      - CY
                      - CZ
                      - DE
                      - DJ
                      - DK
                      - DM
                      - DO
                      - DZ
                      - EC
                      - EE
                      - EG
                      - EH
                      - ER
                      - ES
                      - ET
                      - FI
                      - FJ
                      - FK
                      - FM
                      - FO
                      - FR
                      - GA
                      - GB
                      - GD
                      - GE
                      - GF
                      - GG
                      - GH
                      - GI
                      - GL
                      - GM
                      - GN
                      - GP
                      - GQ
                      - GR
                      - GS
                      - GT
                      - GU
                      - GW
                      - GY
                      - HK
                      - HM
                      - HN
                      - HR
                      - HT
                      - HU
                      - ID
                      - IE
                      - IL
                      - IM
                      - IN
                      - IO
                      - IQ
                      - IR
                      - IS
                      - IT
                      - JE
                      - JM
                      - JO
                      - JP
                      - KE
                      - KG
                      - KH
                      - KI
                      - KM
                      - KN
                      - KP
                      - KR
                      - KW
                      - KY
                      - KZ
                      - LA
                      - LB
                      - LC
                      - LI
                      - LK
                      - LR
                      - LS
                      - LT
                      - LU
                      - LV
                      - LY
                      - MA
                      - MC
                      - MD
                      - ME
                      - MF
                      - MG
                      - MH
                      - MK
                      - ML
                      - MM
                      - MN
                      - MO
                      - MP
                      - MQ
                      - MR
                      - MS
                      - MT
                      - MU
                      - MV
                      - MW
                      - MX
                      - MY
                      - MZ
                      - NA
                      - NC
                      - NE
                      - NF
                      - NG
                      - NI
                      - NL
                      - 'NO'
                      - NP
                      - NR
                      - NU
                      - NZ
                      - OM
                      - PA
                      - PE
                      - PF
                      - PG
                      - PH
                      - PK
                      - PL
                      - PM
                      - PN
                      - PR
                      - PS
                      - PT
                      - PW
                      - PY
                      - QA
                      - RE
                      - RO
                      - RS
                      - RU
                      - RW
                      - SA
                      - SB
                      - SC
                      - SD
                      - SE
                      - SG
                      - SH
                      - SI
                      - SJ
                      - SK
                      - SL
                      - SM
                      - SN
                      - SO
                      - SR
                      - SS
                      - ST
                      - SV
                      - SX
                      - SY
                      - SZ
                      - TC
                      - TD
                      - TF
                      - TG
                      - TH
                      - TJ
                      - TK
                      - TL
                      - TM
                      - TN
                      - TO
                      - TR
                      - TT
                      - TV
                      - TW
                      - TZ
                      - UA
                      - UG
                      - UM
                      - US
                      - UY
                      - UZ
                      - VA
                      - VC
                      - VE
                      - VG
                      - VI
                      - VN
                      - VU
                      - WF
                      - WS
                      - XK
                      - YE
                      - YT
                      - ZA
                      - ZM
                      - ZW
                  documentTypes:
                    type: array
                    description: >-
                      List of document types which are allowed. An empty array
                      will result in accepting all document types for this
                      country.
                    default: []
                    example:
                      - documentType: DRIVERS_LICENSE
                        years: []
                    items:
                      type: object
                      properties:
                        type:
                          type: string
                          description: Document type
                          enum:
                            - DRIVERS_LICENSE
                            - PASSPORT
                            - ID_CARD
                            - RESIDENCE_PERMIT
                            - MILITARY_ID
                            - VISA
                            - HEALTH_CARD
                            - TRAVEL_DOCUMENT
                            - VOTER_ID
                          example: DRIVERS_LICENSE
                        years:
                          type: array
                          description: >-
                            This configuration is currently unsupported, any
                            values will be ignored.
                          default: []
                          items:
                            type: string
                            example: '2018'
        selfieVerification:
          type: object
          description: Selfie liveness verification configuration
          properties:
            enabled:
              type: boolean
              description: Enables/disables selfie liveness verification
