openapi: 3.0.3
info:
  title: Retrieval-API V3
  version: v0
servers:
  - url: https://retrieval.amer-1.jumio.ai
    description: Root URL for the US datacenter
  - url: https://retrieval.emea-1.jumio.ai
    description: Root URL for the EU datacenter
  - url: https://retrieval.apac-1.jumio.ai
    description: Root URL for the SGP datacenter
tags:
  - name: Retrieval
    description: Endpoints for the account retrieval
paths:
  /api/v1/accounts/{accountId}/credentials/{credentialId}/parts/{classifier}:
    get:
      summary: >-
        Returns the binary of the credential part specified in the classifier.
        JPEG or PNG image (max. size 5 MB and max resolution of 8000 x 8000)
      operationId: getAccountCredential
      tags:
        - Retrieval
      parameters:
        - name: accountId
          description: Account UUID.
          in: path
          required: true
          schema:
            type: string
            format: uuid
        - name: credentialId
          description: Credential UUID.
          in: path
          required: true
          schema:
            type: string
            format: uuid
        - name: classifier
          in: path
          required: true
          description: The credential part to return.
          example: FRONT, BACK, FACE
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            schema:
              type: string
              format: binary
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /api/v1/accounts/{accountId}/workflow-executions/{workflowExecutionId}:
    parameters:
      - name: accountId
        description: Account UUID.
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: workflowExecutionId
        in: path
        description: >-
          Workflow UUID. Returns the detailed results of workflow execution as a
          transaction record. Includes drop-off details such as the last
          credential captured by the user before abandoning the journey. In
          addition, this section includes details on the ID and Selfie capture
          such as auto_capture or manual_capture. Use the captureClient field to
          inspect these details.
        required: true
        schema:
          type: string
          format: uuid
    get:
      summary: >-
        Returns the detailed results of workflow execution as a transaction
        record.
      operationId: getWorkflowExecutionDetails
      tags:
        - Retrieval
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowExecutionResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      summary: Deletes all the PII data for the executed workflow.
      operationId: deletePIIDataForWorkflowExecution
      tags:
        - Retrieval
      responses:
        '202':
          description: The request was accepted and all the data will be removed
        '204':
          description: The Workflow-execution has already been wiped out
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /api/v1/accounts/{accountId}/workflow-executions/{workflowExecutionId}/status:
    parameters:
      - name: accountId
        description: Account UUID.
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: workflowExecutionId
        in: path
        description: >-
          Workflow UUID. Returns the detailed results of workflow execution as a
          transaction record. Includes drop-off details such as the last
          credential captured by the user before abandoning the journey. In
          addition, this section includes details on the ID and Selfie capture
          such as auto_capture or manual_capture. Use the captureClient field to
          inspect these details.
        required: true
        schema:
          type: string
          format: uuid
    get:
      summary: >-
        Returns the status of the executed workflow. The response is the same as
        the one being sent by the callback.
      operationId: getWorkflowExecutionStatus
      tags:
        - Retrieval
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowStatusResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /api/v1/accounts/{accountId}/workflow-executions/{workflowExecutionId}/generate:
    parameters:
      - name: accountId
        description: Account UUID.
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: workflowExecutionId
        in: path
        description: >-
          Workflow UUID. Returns the detailed results of workflow execution as a
          transaction record. Includes drop-off details such as the last
          credential captured by the user before abandoning the journey. In
          addition, this section includes details on the ID and Selfie capture
          such as auto_capture or manual_capture. Use the captureClient field to
          inspect these details.
        required: true
        schema:
          type: string
          format: uuid
    get:
      summary: >-
        Returns the presigned s3 URL of the executed workflow. S3 url can be
        used to download the transaction PDF
      operationId: generateTransactionPdf
      tags:
        - Retrieval
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PdfGeneratedResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /api/v1/accounts/{accountId}/workflow-executions/{workflowExecutionId}/steps:
    parameters:
      - name: accountId
        description: Account UUID.
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: workflowExecutionId
        in: path
        description: >-
          Workflow UUID. Returns the detailed results of workflow execution as a
          transaction record. Includes drop-off details such as the last
          credential captured by the user before abandoning the journey. In
          addition, this section includes details on the ID and Selfie capture
          such as auto_capture or manual_capture. Use the captureClient field to
          inspect these details.
        required: true
        schema:
          type: string
          format: uuid
    get:
      summary: >-
        Returns the steps in the executed workflow. Each step is a single
        service that executes one or more capabilities.
      operationId: getWorkflowExecutionSteps
      tags:
        - Retrieval
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowStepsResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /api/v1/accounts/{accountId}/workflow-executions/{workflowExecutionId}/rules:
    parameters:
      - name: accountId
        description: Account UUID.
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: workflowExecutionId
        in: path
        description: >-
          Workflow UUID. Returns the detailed results of workflow execution as a
          transaction record. Includes drop-off details such as the last
          credential captured by the user before abandoning the journey. In
          addition, this section includes details on the ID and Selfie capture
          such as auto_capture or manual_capture. Use the captureClient field to
          inspect these details.
        required: true
        schema:
          type: string
          format: uuid
    get:
      summary: Returns the rules in the executed workflow.
      operationId: getWorkflowExecutionRules
      tags:
        - Retrieval
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowExecutionRulesResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /api/v1/accounts/{accountId}:
    delete:
      summary: Deletes all the PII data for every workflow-execution.
      operationId: deleteAllPIIData
      tags:
        - Retrieval
      parameters:
        - name: accountId
          description: Account UUID.
          in: path
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '202':
          description: The request was accepted and all the data will be removed
        '204':
          description: All workflow-execution of the account have already been wiped out
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /api/v1/accounts/{accountId}/workflow-executions/{workflowExecutionId}/feedback:
    parameters:
      - name: accountId
        description: Account UUID.
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: workflowExecutionId
        in: path
        description: >-
          Workflow UUID. Returns the detailed results of workflow execution as a
          transaction record. Includes drop-off details such as the last
          credential captured by the user before abandoning the journey. In
          addition, this section includes details on the ID and Selfie capture
          such as auto_capture or manual_capture. Use the captureClient field to
          inspect these details.
        required: true
        schema:
          type: string
          format: uuid
    put:
      summary: Provides feedback on whether or not the transaction was fraudulent.
      tags:
        - Retrieval
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransactionFeedbackRequestBody'
      responses:
        '200':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /api/v1/workflow-executions:
    parameters:
      - name: size
        description: number of workflow executions to return
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 50
      - name: page
        description: page number to return
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          default: 1
    get:
      summary: Returns a list of the last processed workflow executions
      operationId: getWorkflowexecutions
      tags:
        - Retrieval
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowExecutionListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    WorkflowExecutionResponse:
      type: object
      required:
        - workflow
        - account
        - createdAt
        - credentials
        - capabilities
      properties:
        workflow:
          $ref: '#/components/schemas/WorkflowDetails'
        account:
          $ref: '#/components/schemas/AccountDetails'
        createdAt:
          type: string
          format: date-time
          example: '2022-09-08T18:22:23.782Z'
          description: Date-time workflow was created.
        startedAt:
          type: string
          format: date-time
          example: '2022-09-08T18:26:50.550Z'
          description: Date-time the workflow started running.
        completedAt:
          type: string
          format: date-time
          example: '2022-09-08T18:28:44.684Z'
          description: Date-time workflow completed execution.
        wipedOutAt:
          type: string
          format: date-time
          example: '2022-09-08T18:30:29.326Z'
          description: Date-time workflow was deleted.
        credentials:
          type: array
          items:
            $ref: '#/components/schemas/CredentialDetails'
        decision:
          $ref: '#/components/schemas/DecisionWithRisk'
        steps:
          $ref: '#/components/schemas/WorkflowStepsWithHref'
        feedback:
          $ref: '#/components/schemas/TransactionFeedback'
        capabilities:
          type: object
          properties:
            extraction:
              type: array
              items:
                $ref: '#/components/schemas/ExtractionCapabilityResponse'
            classification:
              type: array
              items:
                $ref: '#/components/schemas/ClassificationCapabilityResponse'
            similarity:
              type: array
              items:
                $ref: '#/components/schemas/SimilarityCapabilityResponse'
            liveness:
              type: array
              items:
                $ref: '#/components/schemas/LivenessCapabilityResponse'
            dataChecks:
              type: array
              items:
                $ref: '#/components/schemas/DataChecksCapabilityResponse'
            imageChecks:
              type: array
              items:
                $ref: '#/components/schemas/ImageChecksCapabilityResponse'
            usability:
              type: array
              items:
                $ref: '#/components/schemas/UsabilityCapabilityResponse'
            authentication:
              type: array
              items:
                $ref: '#/components/schemas/AuthenticationCapabilityResponse'
            watchlistScreening:
              type: array
              items:
                $ref: '#/components/schemas/WatchlistScreeningCapabilityResponse'
            addressValidation:
              type: array
              items:
                $ref: '#/components/schemas/AddressValidationCapabilityResponse'
            proofOfResidency:
              type: array
              items:
                $ref: '#/components/schemas/ProofOfResidencyCapabilityResponse'
            drivingLicenseVerification:
              type: array
              items:
                $ref: '#/components/schemas/DLVerificationCapabilityResponse'
            ekycVerification:
              type: array
              items:
                $ref: '#/components/schemas/EkycVerificationCapabilityResponse'
            globalIdentityCheck:
              type: array
              items:
                $ref: '#/components/schemas/EkycVerificationCapabilityResponse'
            deviceRiskVerification:
              type: array
              items:
                $ref: '#/components/schemas/DeviceRiskVerificationCapabilityResponse'
            braCpfValidation:
              type: array
              items:
                $ref: '#/components/schemas/BraCpfValidationCapabilityResponse'
            biometricVerification:
              type: array
              items:
                $ref: '#/components/schemas/BiometricVerificationCapabilityResponse'
            govtIdVerification:
              type: array
              items:
                $ref: '#/components/schemas/GovtIdVerificationCapabilityResponse'
            kycCheck:
              type: array
              items:
                $ref: '#/components/schemas/KycCheckCapabilityResponse'
            bankCheck:
              type: array
              items:
                $ref: '#/components/schemas/BankCheckCapabilityResponse'
            binCheck:
              type: array
              items:
                $ref: '#/components/schemas/BankCheckCapabilityResponse'
            searchBusiness:
              type: array
              items:
                $ref: '#/components/schemas/SearchBusinessCapabilityResponse'
            emailVerification:
              type: array
              items:
                $ref: '#/components/schemas/EmailVerificationCapabilityResponse'
            phoneVerification:
              type: array
              items:
                $ref: '#/components/schemas/PhoneVerificationCapabilityResponse'
            geoIpVerification:
              type: array
              items:
                $ref: '#/components/schemas/GeoIpVerificationCapabilityResponse'
            businessInfo:
              type: array
              items:
                $ref: '#/components/schemas/BusinessInfoCapabilityResponse'
            ekycSsnVerification:
              type: array
              items:
                $ref: '#/components/schemas/EkycSsnVerificationCapabilityResponse'
            ekycAdvancedVerification:
              type: array
              items:
                $ref: >-
                  #/components/schemas/EkycAdvancedVerificationCapabilityResponse
            ekycGlobalVerification:
              type: array
              items:
                $ref: >-
                  #/components/schemas/EkycAdvancedVerificationCapabilityResponse
            lookups:
              type: array
              items:
                $ref: '#/components/schemas/LookupsCapabilityResponse'
            riskAnalytics:
              type: array
              items:
                $ref: '#/components/schemas/RiskAnalyticsCapabilityResponse'
            ekycCheck:
              type: array
              items:
                $ref: '#/components/schemas/EkycCheckCapabilityResponse'
            masking:
              type: array
              items:
                $ref: '#/components/schemas/MaskingCapabilityResponse'
        rules:
          $ref: '#/components/schemas/WorkflowExecutionRulesResponseWithHref'
        consent:
          $ref: '#/components/schemas/WorkflowExecutionConsentResponse'
        captureClient:
          $ref: '#/components/schemas/WorkflowExecutionCaptureClientResponse'
    WorkflowDetails:
      type: object
      required:
        - id
        - status
        - definitionKey
      properties:
        id:
          type: string
          format: uuid
          description: Workflow execution ID.
          example: 8050182f-69a4-43c6-b60f-e267ab756d18
        status:
          type: string
          description: Status of workflow.
          enum:
            - INITIATED
            - ACQUIRED
            - PROCESSED
            - SESSION_EXPIRED
            - TOKEN_EXPIRED
          example: PROCESSED
        definitionKey:
          type: string
          description: >-
            Definition of workflow. Note that this refers to the static
            definition of the workflow rather than an instance of execution.
        originalDefinitionKey:
          type: string
        userReference:
          type: string
          example: 61535bdd-6cbf-41ad-9d3e-74db3bf38e18
          description: Unique Identifier of user.
        customerInternalReference:
          type: string
          example: 61535bdd-6cbf-41ad-9d3e-74db3bf38e18
          description: Identifier used internally by customer.
        reportingCriteria:
          type: string
          description: >-
            Additional information provided by a customer for searching and
            aggregation purposes. The customer define any string they want for
            each workflow.
        childIds:
          type: array
          items:
            type: string
            format: uuid
        parentId:
          type: string
          format: uuid
    AccountDetails:
      type: object
      required:
        - id
      properties:
        id:
          type: string
          format: uuid
          description: Account UUID.
    CredentialDetails:
      type: object
      required:
        - id
        - category
        - parts
      properties:
        id:
          type: string
          format: uuid
          example: 61535bdd-6cbf-41ad-9d3e-74db3bf38e18
          description: Unique Identifier for CredentialDetails.
        category:
          type: string
          example: ID
          description: Type of credential.
          enum:
            - ID
            - SELFIE
            - FACEMAP
            - DATA
            - DOCUMENT
        label:
          type: string
        clientIp:
          type: string
          description: IP Address from where the credential was uploaded.
          example: nnn.nnn.nnn.nnn
        parts:
          type: array
          description: Array of part detail records.
          items:
            $ref: '#/components/schemas/PartDetails'
        reusableIdentity:
          type: object
          description: >-
            Returned only for ID documents. Contains the status and source of
            the reusable identity when applicable.
          required:
            - status
            - source
          properties:
            status:
              type: string
              description: Status of reusable identity.
              enum:
                - ID_NOT_FOUND
                - ID_NOT_ACCEPTED
                - ID_ACCEPTED
                - ERROR
            source:
              type: string
              description: Source of reusable identity.
              enum:
                - JUMIO
                - LOCAL_PROVIDER
        consent:
          $ref: '#/components/schemas/CredentialConsentResponse'
    SimpleCredential:
      type: object
      required:
        - id
        - category
      properties:
        id:
          type: string
          format: uuid
          example: f203a9d4-31d7-4241-811e-35c68dc7a513
          description: Unique Identifier of the credential.
        category:
          type: string
          description: Type of credential.
          example: ID
          enum:
            - ID
            - SELFIE
            - FACEMAP
            - DATA
            - DOCUMENT
        label:
          type: string
    PartDetails:
      type: object
      required:
        - classifier
      properties:
        classifier:
          type: string
          description: The credential part to return.
        href:
          type: string
          format: uri
          description: URL to access binary of the part.
          example: >-
            https://api.amer-1.jumio.ai/api/v1/accounts/bbf3a261-9bf9-400c-b218-cd275596d8d9/workflow-executions/be493071-3ffe-4c7f-9bb9-8733a614b627/credentials/ff0a45e1-9f85-470e-8cfb-e478ef1a3ff2/parts/FRONT
        captureType:
          type: string
          description: How the image was captured from the end-user device.
    CredentialConsentResponse:
      type: object
      properties:
        decisionAccepted:
          type: boolean
        collectedBy:
          type: string
    SimpleCapability:
      type: object
      required:
        - id
        - category
      properties:
        id:
          type: string
          format: uuid
          description: Unique ID of the capability used in the step.
        category:
          type: string
          description: Type of capability used in the step.
          example: ImageCheck
          enum:
            - Usability
            - ImageCheck
            - Extraction
            - DataChecks
            - Liveness
            - Similarity
            - Authentication
            - WatchlistScreening
            - RiskSignals
    WorkflowExecutionListResponse:
      type: object
      properties:
        workflowExecutions:
          type: array
          items:
            $ref: '#/components/schemas/WorkflowExecutionResponse'
    ClassificationCapabilityResponse:
      type: object
      required:
        - credentials
        - decision
      properties:
        id:
          type: string
          format: uuid
        credentials:
          type: array
          items:
            $ref: '#/components/schemas/SimpleCredential'
        decision:
          $ref: '#/components/schemas/Decision'
        data:
          type: object
          properties:
            country:
              type: string
              example: USA, AUT, DEU, FRA
              description: >
                The country this document was issued. Can be any ISO 3166-1
                alpha-3 country code, and XKX for Kosovo
            state:
              type: string
              description: |
                Possible values:
                - Last two characters of ISO 3166-2:US state code
                - Last 2-3 characters of ISO 3166-2:AU state code
                - Last two characters of ISO 3166-2:CA state code
                - ISO 3166-1 country name
                - XKX (Kosovo)
                - Free text if it can't be mapped to a state/country code
            type:
              type: string
              example: PASSPORT, DRIVING_LICENSE, ID_CARD, VISA, UNSUPPORTED
            subType:
              type: string
            printedDocumentName:
              type: string
            firstIssueDate:
              type: string
              format: date
            lastIssueDate:
              type: string
              format: date
            notValidAfter:
              type: string
              format: date
            hasCryptoChip:
              type: boolean
            isFoldable:
              type: boolean
            isHandwritten:
              type: boolean
            layout:
              type: string
              description: |
                Possible values:
                - PORTRAIT
                - HORIZONTAL
                - empty if information not available
            material:
              type: string
            usaRealIDCompliant:
              type: boolean
              description: Only specified in case of USA issued document types.
    ExtractionCapabilityResponse:
      type: object
      required:
        - credentials
        - decision
      properties:
        id:
          type: string
          format: uuid
          description: Unique Identifier of the ExtractionCapabilityResponse.
          example: 8050182f-69a4-43c6-b60f-e267ab756d18
        credentials:
          description: Array of credentials used in workflow.
          type: array
          items:
            $ref: '#/components/schemas/SimpleCredential'
        nfcValidationResult:
          description: >
            Indicates the detailed validation result of NFC data received from
            the Mobile SDK. Possible values include:<ul>
            <li><b>READ_VALIDATED</b> – NFC data was successfully read and
            validated.</li> <li><b>READ_ONLY</b> – NFC data was read, but
            validation was not possible.</li> <li><b>VALIDATION_FAILED</b> – NFC
            data was read, but validation failed.</li> <li><b>SKIPPED</b> – The
            user intentionally skipped the NFC process.</li>
            <li><b>SKIPPED_MAX_RETRIES</b> – The NFC process was skipped after
            reaching the maximum retry limit.</li> <li><b>TECHNICAL_ERROR</b> –
            An unrecoverable error occurred, such as an authentication
            failure.</li> <li><b>READER_UNAVAILABLE</b> – The device does not
            support NFC scanning.</li> <li><b>COUNTRY_UNAVAILABLE</b> - NFC data
            could not be validated because no certificates are available for the
            document’s issuing country (applies only if READ_ONLY is
            disabled)</li> </ul>
          type: string
          enum:
            - READ_VALIDATED
            - READ_ONLY
            - VALIDATION_FAILED
            - SKIPPED
            - SKIPPED_MAX_RETRIES
            - TECHNICAL_ERROR
            - READER_UNAVAILABLE
            - COUNTRY_UNAVAILABLE
        decision:
          $ref: '#/components/schemas/Decision'
        data:
          type: object
          properties:
            type:
              type: string
              example: PASSPORT, DRIVING_LICENSE, ID_CARD, VISA, UNSUPPORTED
            subType:
              type: string
            issuingCountry:
              type: string
              example: USA, AUT, DEU, FRA
              description: >
                The country this document was issued. Can be any ISO 3166-1
                alpha-3 country code, and XKX for Kosovo
            firstName:
              type: string
            lastName:
              type: string
            dateOfBirth:
              type: string
              format: date
            dateOfBirthParts:
              $ref: '#/components/schemas/DateParts'
            expiryDate:
              type: string
              format: date
            expiryDateParts:
              $ref: '#/components/schemas/DateParts'
            issuingDate:
              type: string
              format: date
            issuingDateParts:
              $ref: '#/components/schemas/DateParts'
            dueDate:
              type: string
              format: date
            dueDateParts:
              $ref: '#/components/schemas/DateParts'
            accountNumber:
              type: string
            iban:
              type: string
            swiftCode:
              type: string
            documentType:
              type: string
            documentNumber:
              type: string
            socialSecurityNumber:
              type: string
              description: |
                represents the SSN for USA
            signatureAvailable:
              type: boolean
              description: >-
                whether signature is available on SSN or not (only applies to
                SSN in USA)
            state:
              type: string
              description: |
                Possible values:
                - Last two characters of ISO 3166-2:US state code
                - Last 2-3 characters of ISO 3166-2:AU state code
                - Last two characters of ISO 3166-2:CA state code
                - ISO 3166-1 country name
                - XKX (Kosovo)
                - Free text if it can't be mapped to a state/country code
            personalNumber:
              type: string
            optionalMrzField1:
              type: string
              description: Optional field of MRZ line 1
            optionalMrzField2:
              type: string
              description: Optional field of MRZ line 2
            address:
              $ref: '#/components/schemas/AddressResponse'
            issuingAuthority:
              type: string
              description: Issuing authority of the document
            issuingPlace:
              type: string
              description: Issuing place of the document
            curp:
              type: string
              description: The CURP for mexican documents
            gender:
              type: string
              description: |
                - M
                - F
                - X
            nationality:
              type: string
              description: >-
                Nationality of the document holder in ISO 3166-1 alpha-3 country
                code or country specific non ISO nationalities (3 letters)
              example: USA, AUT, DEU, FRA, BNO, XCT
            placeOfBirth:
              type: string
            taxNumber:
              type: string
              description: >
                Tax number of the document in case the country is ITA and type
                is HEALTH_ID or TAX_ID
            cpf:
              type: string
            registrationNumber:
              type: string
            mothersName:
              type: string
            fathersName:
              type: string
            spousesName:
              type: string
            personalIdentificationNumber:
              type: string
            rgNumber:
              type: string
            dlCategories:
              type: array
              items:
                $ref: '#/components/schemas/DrivingLicenseCategory'
            voterIdNumber:
              type: string
              description: >-
                \"Clave de elector\" number for idCountry = MEX (if extraction
                is enabled)
            issuingNumber:
              type: string
              description: >-
                \"Numero de emission\" number for idCountry = MEX (if extraction
                is enabled)
            passportNumber:
              type: string
              description: >-
                Passport number either for documents with VISA idType or
                passport number on non-VISA documents (if passport number
                extraction of non-VISA documents is enabled)
            durationOfStay:
              type: string
              description: >-
                Duration of stay if idType = VISA and additional extraction for
                Visa enabled
            numberOfEntries:
              type: string
              description: >-
                Number of entries if idType = VISA and additional extraction for
                Visa enabled
            visaCategory:
              type: string
              description: >-
                Visa category if idType = VISA and additional extraction for
                Visa enabled
            dni:
              type: string
              description: >-
                DNI as available on the ID if idCountry = ESP and idSubtype =
                NATIONAL_ID
            pesel:
              type: string
            residentPermitType:
              type: string
              description: Permit type related to "Golden Visas" (if extraction is enabled)
            residentPermitRemarks:
              type: string
              description: >-
                Permit remarks related to "Golden Visas" (if extraction is
                enabled)
            profession:
              type: string
              description: Profession (if extraction is enabled)
            citizenship:
              type: string
              description: Citizenship (if extraction is enabled)
            maritalStatus:
              type: string
              description: Marital status (if extraction is enabled)
            religion:
              type: string
              description: Religion (if extraction is enabled)
            documentIdentificationNumber:
              type: string
              description: Document identification number (if extraction is enabled)
            workPermitNumber:
              type: string
              description: Work permit number (if extraction is enabled)
            laborIdentificationNumber:
              type: string
              description: Labor identification number (if extraction is enabled)
            documentCopy:
              type: string
              description: Document copy (if extraction is enabled)
            lastNameAtBirth:
              type: string
              description: Last name at birth (if extraction is enabled)
            remarks:
              type: string
              description: Remarks (if extraction is enabled)
            disabilities:
              type: string
              description: Disabilities (if extraction is enabled)
            employer:
              type: string
              description: Employer (if extraction is enabled)
            militaryNumber:
              type: string
              description: Military number (if extraction is enabled)
            militaryStatus:
              type: string
              description: Military status (if extraction is enabled)
            middleName:
              type: string
              description: Middle name (if extraction is enabled)
            salutation:
              type: string
              description: Salutation (if extraction is enabled)
            academicDegree:
              type: string
              description: Academic degree (if extraction is enabled)
            eyeColor:
              type: string
              description: Eye color (if extraction is enabled)
            hairColor:
              type: string
              description: Hair color (if extraction is enabled)
            bodyHeight:
              type: string
              description: Body height (if extraction is enabled)
            bodyWeight:
              type: string
              description: Body weight (if extraction is enabled)
            ethnicity:
              type: string
              description: Ethnicity (if extraction is enabled)
            bloodGroup:
              type: string
              description: Blood group (if extraction is enabled)
            rhesusFactor:
              type: string
              description: Rhesus factor (if extraction is enabled)
            dlRestrictions:
              type: array
              items:
                $ref: '#/components/schemas/DlRestriction'
            dlEndorsements:
              type: string
              description: Driving license endorsements (if extraction is enabled)
            residentPermitNumber:
              type: string
              description: Resident permit number (if extraction is enabled)
            controlNumber:
              type: string
              description: Control number (if extraction is enabled)
            petitioner:
              type: string
              description: Petitioner (if extraction is enabled)
            serialNumber:
              type: string
              description: Serial number (if extraction is enabled)
            documentFirstIssuingDate:
              type: string
              format: date
              description: Document First Issuing Date (if extraction is enabled)
            panNumber:
              type: string
              example: '********1234'
              description: PAN number in case of CC document type (Can be masked as well)
            monthYearExpiry:
              type: string
              example: 03/20
              description: contains credit card's expiry date in format MM/YY
            cardNumberLastFourDigits:
              type: string
              minLength: 4
              maxLength: 4
              example: 1234
              description: >-
                contains last 4 digits of credit card number for CCS document
                type
            customExtractionPoints:
              type: object
              additionalProperties: true
            currentAge:
              type: string
              description: >-
                Current age, calculated based on the date of birth or the date
                of birth parts field (if currentAge calculation is enabled)
            additionalInfo:
              type: string
              description: Look for 1 of ["A", "C", "N"] in HKG IDs and return it
            ageRestriction:
              type: string
              description: '*** if count of * in symbolsHKG is > 1 otherwise * if there is 1'
            additionalLanguage:
              type: object
              description: >-
                extraction in document's original language if available and if
                enabled
              properties:
                documentNumber:
                  type: string
                firstName:
                  type: string
                lastName:
                  type: string
                dateOfBirth:
                  type: string
                expiryDate:
                  type: string
                issuingDate:
                  type: string
                gender:
                  type: string
                  description: |
                    - M
                    - F
                    - X
                address:
                  $ref: '#/components/schemas/AddressResponse'
                language:
                  type: string
            mrz:
              type: object
              description: raw value of MRZ lines if available in the document.
              properties:
                line1:
                  type: string
                line2:
                  type: string
                line3:
                  type: string
    AddressResponse:
      type: object
      properties:
        line1:
          type: string
        line2:
          type: string
        line3:
          type: string
        line4:
          type: string
        line5:
          type: string
        country:
          type: string
        postalCode:
          type: string
        subdivision:
          type: string
        city:
          type: string
        formattedAddress:
          type: string
    DrivingLicenseCategory:
      type: object
      properties:
        category:
          type: string
        issueDate:
          type: string
          format: date
        expiryDate:
          type: string
          format: date
        isReadable:
          type: string
        availability:
          type: string
    SimilarityCapabilityResponse:
      type: object
      required:
        - credentials
        - decision
      properties:
        id:
          type: string
          format: uuid
        credentials:
          type: array
          items:
            $ref: '#/components/schemas/SimpleCredential'
        decision:
          $ref: '#/components/schemas/Decision'
        data:
          type: object
          properties:
            similarity:
              type: string
              example: MATCH, NO_MATCH, NOT_POSSIBLE
            score:
              type: number
              format: double
    LivenessCapabilityResponse:
      type: object
      required:
        - credentials
        - decision
      properties:
        id:
          type: string
          format: uuid
        validFaceMapForAuthentication:
          type: string
          format: href
        credentials:
          type: array
          items:
            $ref: '#/components/schemas/SimpleCredential'
        decision:
          $ref: '#/components/schemas/Decision'
        data:
          type: object
          properties:
            type:
              type: string
              example: JUMIO_STANDARD, JUMIO_PREMIUM
            predictedAge:
              type: integer
            ageConfidenceRange:
              type: string
    UsabilityCapabilityResponse:
      type: object
      required:
        - credentials
        - decision
      properties:
        id:
          type: string
          format: uuid
        credentials:
          type: array
          items:
            $ref: '#/components/schemas/SimpleCredential'
        decision:
          $ref: '#/components/schemas/Decision'
    AuthenticationCapabilityResponse:
      type: object
      required:
        - credentials
        - decision
      properties:
        id:
          type: string
          format: uuid
        validFaceMapForAuthentication:
          type: string
          format: href
        credentials:
          type: array
          items:
            $ref: '#/components/schemas/SimpleCredential'
        decision:
          $ref: '#/components/schemas/Decision'
        data:
          type: object
          properties:
            type:
              type: string
              example: JUMIO_STANDARD, JUMIO_PREMIUM
    ImageChecksCapabilityResponse:
      type: object
      required:
        - credentials
        - decision
      properties:
        id:
          type: string
          format: uuid
        credentials:
          type: array
          items:
            $ref: '#/components/schemas/SimpleCredential'
        decision:
          $ref: '#/components/schemas/Decision'
        data:
          type: object
          properties:
            faceSearchFindings:
              type: object
              properties:
                status:
                  type: string
                  example: DONE, PENDING, ERROR
                findings:
                  description: >-
                    A face (on the ID or Selfie) is matching with another face
                    (on the ID or Selfie) from a previous transaction
                  type: array
                  items:
                    type: string
                    format: uuid
            raiDecisionDetails:
              type: string
              description: Resistant AI decision details (if enabled)
            raiDecisionDetailsDescription:
              type: string
              description: Resistant AI decision details description (if enabled)
    DataChecksCapabilityResponse:
      type: object
      required:
        - credentials
        - decision
      properties:
        id:
          type: string
          format: uuid
        credentials:
          type: array
          items:
            $ref: '#/components/schemas/SimpleCredential'
        decision:
          $ref: '#/components/schemas/Decision'
    WatchlistScreeningCapabilityResponse:
      type: object
      required:
        - credentials
        - decision
      properties:
        id:
          type: string
          format: uuid
        credentials:
          type: array
          items:
            $ref: '#/components/schemas/SimpleCredential'
        decision:
          $ref: '#/components/schemas/Decision'
        data:
          type: object
          properties:
            searchDate:
              type: string
              format: date-time
            searchId:
              type: string
            searchReference:
              type: string
            searchResultUrl:
              type: string
              format: uri
            searchResults:
              type: integer
            searchStatus:
              type: string
            searchResultsFromInternalList:
              type: integer
        additionalInformation:
          $ref: '#/components/schemas/AdditionalInformation'
    AddressValidationCapabilityResponse:
      type: object
      required:
        - credentials
        - decision
      properties:
        id:
          type: string
          format: uuid
        credentials:
          type: array
          items:
            $ref: '#/components/schemas/SimpleCredential'
        decision:
          $ref: '#/components/schemas/Decision'
        data:
          $ref: '#/components/schemas/AddressAdditionalInfo'
        additionalInformation:
          $ref: '#/components/schemas/AdditionalInformation'
    ProofOfResidencyCapabilityResponse:
      type: object
      required:
        - credentials
        - decision
      properties:
        id:
          type: string
          format: uuid
          description: Unique Identifier of the ProofOfResidencyCapabilityResponse.
        credentials:
          type: array
          items:
            $ref: '#/components/schemas/SimpleCredential'
        decision:
          $ref: '#/components/schemas/Decision'
        data:
          $ref: '#/components/schemas/AddressAdditionalInfo'
        additionalInformation:
          $ref: '#/components/schemas/AdditionalInformation'
    AddressAdditionalInfo:
      type: object
      properties:
        reasonMessage:
          type: string
    BraCpfValidationCapabilityResponse:
      type: object
      required:
        - credentials
        - decision
      properties:
        id:
          type: string
          format: uuid
        credentials:
          type: array
          items:
            $ref: '#/components/schemas/SimpleCredential'
        decision:
          $ref: '#/components/schemas/Decision'
        data:
          type: object
          properties:
            nameMatch:
              type: string
              example: MATCH, NOT_MATCH
              description: |
                If name was matched or not matched
            cpfMatch:
              type: string
              example: MATCH, NOT_MATCH
              description: |
                If cpf was matched or not matched
            dateOfBirthMatch:
              type: string
              example: MATCH, NOT_MATCH
              description: |
                If date of birth was matched or not matched
            suspended:
              type: boolean
              description: Suspended
            deceased:
              type: boolean
              description: Deceased Holder
            cancelled:
              type: boolean
              description: is CPF Cancelled
            cancellationReason:
              type: string
              description: Cancelled Reason
            regularizationPending:
              type: boolean
              description: Regularization Pending
        additionalInformation:
          $ref: '#/components/schemas/AdditionalInformation'
    DLVerificationCapabilityResponse:
      type: object
      required:
        - credentials
        - decision
      description: Drivers license capability response.
      properties:
        id:
          type: string
          format: uuid
          example: f203a9d4-31d7-4241-811e-35c68dc7a513
          description: Unique Identifier of the credential.
        credentials:
          type: array
          items:
            $ref: '#/components/schemas/SimpleCredential'
        decision:
          $ref: '#/components/schemas/Decision'
        data:
          type: object
          properties:
            completeNameMatch:
              type: string
              example: MATCH, NOT_MATCH
              description: |
                If name was matched or not matched
            nameMatch:
              type: string
              example: MATCH, NOT_MATCH
              description: |
                If name was matched or not matched
            firstNameMatch:
              type: string
              example: MATCH, NOT_MATCH
              description: |
                If first name was matched or not matched
            middleNameMatch:
              type: string
              example: MATCH, NOT_MATCH
              description: |
                If middle name was matched or not matched
            lastNameMatch:
              type: string
              example: MATCH, NOT_MATCH
              description: |
                If last name was matched or not matched
            addressMatch:
              type: string
              example: MATCH, NOT_MATCH
              description: |
                If address was matched or not matched
            addressLine1Match:
              type: string
              example: MATCH, NOT_MATCH
              description: |
                If address line 1 was matched or not matched
            addressLine2Match:
              type: string
              example: MATCH, NOT_MATCH
              description: |
                If address line 2 was matched or not matched
            cityMatch:
              type: string
              example: MATCH, NOT_MATCH
              description: |
                If city was matched or not matched
            stateMatch:
              type: string
              example: MATCH, NOT_MATCH
              description: |
                If state was matched or not matched
            postalCodeMatch:
              type: string
              example: MATCH, NOT_MATCH
              description: |
                If zip code or pin code was matched or not matched
            dobMatch:
              type: string
              example: MATCH, NOT_MATCH
              description: |
                If date of birth was matched or not matched
            idNumberMatch:
              type: string
              example: MATCH, NOT_MATCH
              description: |
                If id number was matched or not matched
            expiryDateMatch:
              type: string
              example: MATCH, NOT_MATCH
              description: |
                If expiry date was matched or not matched
            issuingDateMatch:
              type: string
              example: MATCH, NOT_MATCH
              description: |
                If issuing date was matched or not matched
        additionalInformation:
          $ref: '#/components/schemas/AdditionalInformation'
    EkycVerificationCapabilityResponse:
      type: object
      required:
        - credentials
        - decision
      properties:
        id:
          type: string
          format: uuid
          description: Unique Identifier of the EkycVerificationCapabilityResponse.
        credentials:
          type: array
          items:
            $ref: '#/components/schemas/SimpleCredential'
        decision:
          $ref: '#/components/schemas/Decision'
        data:
          type: object
          properties:
            emailValid:
              type: boolean
              description: Email is valid if True, otherwise false.
            phoneValid:
              type: boolean
              description: Phone is valid if True, otherwise false.
            emailMatchToName:
              type: string
            phoneMatchToName:
              type: string
            addressValidityLevel:
              type: string
            addressMatchToName:
              type: string
            emailFirstSeenDays:
              type: integer
            ipRisk:
              type: boolean
            ipLastSeenDays:
              type: integer
            ipToAddressDistance:
              type: integer
            phoneLastSeenDays:
              type: integer
            phoneLineType:
              type: string
            phoneMatchToAddress:
              type: string
            identityNetworkScore:
              type: number
              format: double
            identityRiskScore:
              type: integer
            emailDomainCreationDate:
              type: string
            phoneCountry:
              type: string
            phoneCarrier:
              type: string
            phoneEmailFirstSeenDays:
              type: integer
            ipRiskScore:
              type: number
              format: double
            ipGeoLocationCountry:
              type: string
            ipGeoLocationState:
              type: string
            ipPhoneDistance:
              type: integer
        additionalInformation:
          $ref: '#/components/schemas/AdditionalInformation'
    DeviceRiskVerificationCapabilityResponse:
      type: object
      required:
        - credentials
        - decision
      description: Device risk verification capability response.
      properties:
        id:
          type: string
          format: uuid
          description: Unique Identifier of the DeviceRiskVerificationCapabilityResponse.
        credentials:
          type: array
          items:
            $ref: '#/components/schemas/SimpleCredential'
        decision:
          $ref: '#/components/schemas/Decision'
        data:
          type: object
          properties:
            remoteSoftwareUsed:
              type: boolean
            rootedDeviceUsed:
              type: boolean
            emulatorUsed:
              type: boolean
            suspectedProxyUsedRisk:
              type: string
            suspectedOSAnomalyRisk:
              type: string
            suspectedRemoteSessionRisk:
              type: string
            suspectedVPNUsedRisk:
              type: string
            deviceModel:
              type: string
            deviceOS:
              type: string
            browser:
              type: string
            ipType:
              type: string
            sessionIPCount:
              type: integer
            trueIP:
              type: string
            ipLocationCity:
              type: string
            ipLocationCountry:
              type: string
              description: Alpha-3 country code
            ipLocationLatitude:
              type: string
            ipLocationLongitude:
              type: string
            ipLocationRegion:
              type: string
            metaDataAge:
              type: string
            deviceAlerts:
              type: array
              items:
                type: string
            browserCookiesEnabled:
              type: boolean
            browserLanguage:
              type: string
            browserVersion:
              type: string
            deviceFirstSeen:
              type: string
            deviceScreen:
              type: string
            isp:
              type: string
            flashEnabled:
              type: boolean
            browserTimezone:
              type: string
            deviceIsNew:
              type: boolean
            statedIp:
              type: object
              properties:
                ip:
                  type: string
                isp:
                  type: string
                ipLocation:
                  type: object
                  properties:
                    city:
                      type: string
                    country:
                      type: string
                    latitude:
                      type: string
                    longitude:
                      type: string
                    region:
                      type: string
        additionalInformation:
          $ref: '#/components/schemas/AdditionalInformation'
    BiometricVerificationCapabilityResponse:
      type: object
      description: Brazillian CPF validation.
      required:
        - credentials
        - decision
      properties:
        id:
          type: string
          format: uuid
          example: f203a9d4-31d7-4241-811e-35c68dc7a513
          description: Unique Identifier of the credential.
        credentials:
          type: array
          items:
            $ref: '#/components/schemas/SimpleCredential'
        decision:
          $ref: '#/components/schemas/Decision'
        data:
          $ref: '#/components/schemas/BiometricVerificationCapabilityResponseData'
        additionalInformation:
          $ref: '#/components/schemas/AdditionalInformation'
    BiometricVerificationCapabilityResponseData:
      type: object
      properties:
        nameMatch:
          type: string
          example: MATCH
          enum:
            - MATCH
            - NOT_MATCH
          description: If name was matched or not matched.
        dobMatch:
          type: string
          example: MATCH
          enum:
            - MATCH
            - NOT_MATCH
          description: If date of birth was matched or not matched.
        stateMatch:
          type: string
          example: MATCH
          enum:
            - MATCH
            - NOT_MATCH
        pincodeMatch:
          type: string
          example: MATCH
          enum:
            - MATCH
            - NOT_MATCH
        cityMatch:
          type: string
          example: MATCH
          enum:
            - MATCH
            - NOT_MATCH
        faceMatch:
          type: string
          example: MATCH
          enum:
            - MATCH
            - NOT_MATCH
        ocrMatch:
          type: string
          example: MATCH
          enum:
            - MATCH
            - NOT_MATCH
          description: |
            whether value matched or not
        issuingNumberMatch:
          type: string
          example: MATCH
          enum:
            - MATCH
            - NOT_MATCH
          description: |
            whether value matched or not
        registrationYearMatch:
          type: string
          example: MATCH
          enum:
            - MATCH
            - NOT_MATCH
          description: |
            whether value matched or not
        issuingYearMatch:
          type: string
          example: MATCH
          enum:
            - MATCH
            - NOT_MATCH
          description: |
            whether value matched or not
        electorKeyMatch:
          type: string
          example: MATCH
          enum:
            - MATCH
            - NOT_MATCH
          description: |
            whether value matched or not
        paternalSurnameMatch:
          type: string
          example: MATCH
          enum:
            - MATCH
            - NOT_MATCH
          description: |
            whether value matched or not
        maternalSurnameMatch:
          type: string
          example: MATCH
          enum:
            - MATCH
            - NOT_MATCH
          description: |
            whether value matched or not
        idNumberMatch:
          type: string
          example: MATCH
          enum:
            - MATCH
            - NOT_MATCH
          description: |
            whether value matched or not
        genderMatch:
          type: string
          example: MATCH
          enum:
            - MATCH
            - NOT_MATCH
          description: |
            whether gender matched or not
        code:
          type: string
          example: 00, 410
        description:
          type: string
          description: description of code
    GovtIdVerificationCapabilityResponse:
      type: object
      required:
        - credentials
        - decision
      properties:
        id:
          type: string
          format: uuid
        credentials:
          type: array
          items:
            $ref: '#/components/schemas/SimpleCredential'
        decision:
          $ref: '#/components/schemas/Decision'
        data:
          type: object
          properties:
            country:
              type: string
              description: >
                The country this document was issued. Can be any ISO 3166-1
                alpha-3 country code, and XKX for Kosovo
            type:
              type: string
              enum:
                - PASSPORT
                - DRIVING_LICENSE
                - ID_CARD
                - VISA
                - UNSUPPORTED
              example: PASSPORT
              description: |
                Type of ID document provided
            completeNameMatch:
              type: string
              enum:
                - MATCH
                - NOT_MATCH
                - PARTIAL_MATCH
              example: MATCH
              description: |
                If complete name was matched, not matched or partially matched
            initialNameMatch:
              type: string
              enum:
                - MATCH
                - NOT_MATCH
                - PARTIAL_MATCH
              example: MATCH
              description: >
                If initials of the name was matched, not matched or partially
                matched
            firstNameMatch:
              type: string
              enum:
                - MATCH
                - NOT_MATCH
                - PARTIAL_MATCH
              example: MATCH
              description: |
                If first name was matched, not matched or partially matched
            lastNameMatch:
              type: string
              enum:
                - MATCH
                - NOT_MATCH
                - PARTIAL_MATCH
              example: MATCH
              description: |
                If last name was matched, not matched or partially matched
            nationalIdMatch:
              type: string
              enum:
                - MATCH
                - NOT_MATCH
                - PARTIAL_MATCH
              example: MATCH
              description: |
                If national id was matched, not matched or partially matched
            dobDayMatch:
              type: string
              enum:
                - MATCH
                - NOT_MATCH
                - PARTIAL_MATCH
              example: MATCH
              description: |
                If DOB day was matched, not matched or partially matched
            dobMonthMatch:
              type: string
              enum:
                - MATCH
                - NOT_MATCH
                - PARTIAL_MATCH
              example: MATCH
              description: |
                If DOB month was matched, not matched or partially matched
            dobYearMatch:
              type: string
              enum:
                - MATCH
                - NOT_MATCH
                - PARTIAL_MATCH
              example: MATCH
              description: |
                If DOB year was matched, not matched or partially matched
            dobMatch:
              type: string
              enum:
                - MATCH
                - NOT_MATCH
                - PARTIAL_MATCH
              example: MATCH
              description: |
                If complete DOB was matched, not matched or partially matched
            phoneMatch:
              type: string
              enum:
                - MATCH
                - NOT_MATCH
                - PARTIAL_MATCH
              example: MATCH
              description: |
                If phone number was matched, not matched or partially matched
            addressMatch:
              type: string
              enum:
                - MATCH
                - NOT_MATCH
                - PARTIAL_MATCH
              example: MATCH
              description: |
                If address was matched, not matched or partially matched
            sexMatch:
              type: string
              enum:
                - MATCH
                - NOT_MATCH
              example: MATCH
              description: |
                If gender was matched, not matched or partially matched
            stateMatch:
              type: string
              enum:
                - MATCH
                - NOT_MATCH
              example: MATCH
              description: |
                If state was matched, not matched or partially matched
            cityMatch:
              type: string
              enum:
                - MATCH
                - NOT_MATCH
              example: MATCH
              description: |
                If state was matched, not matched or partially matched
            pincodeMatch:
              type: string
              enum:
                - MATCH
                - NOT_MATCH
              example: MATCH
              description: |
                If pincode or zipcode was matched or not matched
            issuingDateMatch:
              type: string
              enum:
                - MATCH
                - NOT_MATCH
              example: MATCH
              description: |
                If issue date was matched or not matched
            personalIdNumberMatch:
              type: string
              enum:
                - MATCH
                - NOT_MATCH
              example: MATCH
              description: |
                If id number was matched or not matched
            score:
              type: integer
              example: 10, 20
              description: |
                The score from the third party vendor
            reasonMessage:
              type: string
              description: |
                Detailed message description for failure or success cases
            ocrMatch:
              type: string
              enum:
                - MATCH
                - NOT_MATCH
              example: MATCH
              description: |
                whether value matched or not
            cicMatch:
              type: string
              enum:
                - MATCH
                - NOT_MATCH
              example: MATCH
              description: If cic was matched or not match
            issuingNumberMatch:
              type: string
              enum:
                - MATCH
                - NOT_MATCH
              example: MATCH
              description: |
                whether value matched or not
            registrationYearMatch:
              type: string
              description: |
                whether value matched or not
            issuingYearMatch:
              type: string
              enum:
                - MATCH
                - NOT_MATCH
              example: MATCH
              description: |
                whether value matched or not
            electorKeyMatch:
              type: string
              enum:
                - MATCH
                - NOT_MATCH
              example: MATCH
              description: |
                whether value matched or not
            paternalSurnameMatch:
              type: string
              enum:
                - MATCH
                - NOT_MATCH
              example: MATCH
              description: |
                whether value matched or not
            maternalSurnameMatch:
              type: string
              enum:
                - MATCH
                - NOT_MATCH
              example: MATCH
              description: |
                whether value matched or not
            message:
              type: string
              description: |
                detailed reason message for success or failure
            cardType:
              type: string
              example: C, D, E/F, G/H
              description: |
                identifies the type of the card
            laserIdMatch:
              type: boolean
              description: whether laserId matched or not
            idDeactivated:
              type: boolean
              description: whether id card is deactivated
            statusCode:
              type: string
              example: 0, 1
            statusDescription:
              type: string
              example:
                - Valid/Active
                - Valid with Loss or Suspension of Political Right
            photo:
              type: string
              format: uri
            suspended:
              type: boolean
              description: Suspended
            deceased:
              type: boolean
              description: Deceased Holder
            cancelled:
              type: boolean
              description: is CPF Cancelled
            cancellationReason:
              type: string
              description: Cancelled Reason
            regularizationPending:
              type: boolean
              description: Regularization Pending
        additionalInformation:
          $ref: '#/components/schemas/AdditionalInformation'
    BankCheckCapabilityResponse:
      type: object
      required:
        - credentials
        - decision
      properties:
        id:
          type: string
          format: uuid
          example: d9f95cac8-9f2a-79a6-57f7-6d3f7079a65
          description: Unique Identifier of the BankCheckCapabilityResponse.
        credentials:
          type: array
          items:
            $ref: '#/components/schemas/SimpleCredential'
        decision:
          $ref: '#/components/schemas/Decision'
        data:
          type: object
          example: Deposit
          description: Type of transaction.
          properties:
            bankName:
              type: string
              description: |
                name of bank
              example: JPMORGAN CHASE BANK, N.A
            cardBrand:
              type: string
              description: |
                Brand of card used
              example: VISA, MASTERCARD
            bankCountry:
              type: string
              description: |
                country of the card in ISO 3166 Alpha-2 Code
              example: USA, IND
            cardLevel:
              type: string
              description: |
                level of card as def
              example: STANDARD
            cardType:
              type: string
              description: |
                type of card
              example: CREDIT, DEBIT
            cardCategory:
              type: string
              example: CLASSIC
            maxPanLength:
              type: string
              example: 16
            cardBusinessType:
              type: string
              example: PERSONAL, COMMERCIAL
            regulated:
              type: boolean
              description: This tells whether the bank is regulated or not
        additionalInformation:
          $ref: '#/components/schemas/AdditionalInformation'
    KycCheckCapabilityResponse:
      type: object
      required:
        - credentials
        - decision
      properties:
        id:
          type: string
          format: uuid
        credentials:
          type: array
          items:
            $ref: '#/components/schemas/SimpleCredential'
        decision:
          $ref: '#/components/schemas/Decision'
        data:
          type: object
          properties:
            emailVerificationStatus:
              type: string
              example: >-
                GeneralError, Certified, Verified, EmailInexistent, ValidDomain,
                DomainInexistent
              description: >
                Shows the status of email verification. Available values are
                given in the examples.
            phoneType:
              type: string
              example: >-
                fixed line, invalid, mobile, other, pager, payphone, personal,
                prepaid, tollfree, voip
              description: >
                Shows the phone type. Available values are given in the
                examples.
            watchlistVerificationStatus:
              type: string
              example: >-
                false_positive, potential_match, true_positive, unknown,
                true_positive_approve, true_positive_reject
              description: >
                Shows the status of watchlist verification. Available values are
                given in the examples.
        additionalInformation:
          $ref: '#/components/schemas/AdditionalInformation'
    SearchBusinessResult:
      type: object
      properties:
        registrationNumber:
          type: string
          description: Business registration number
          example: '000680890'
        name:
          type: string
          description: Business name
        country:
          type: string
          description: >-
            Country where the business is located in ISO 3166 Alpha 3 Code
            format
          example: USA
        state:
          type: string
          description: State where the business is located
          example: CA
        city:
          type: string
          description: City where the business is located
          example: California
        address:
          type: string
          description: business address
        kybCapabilities:
          type: array
          description: which all KYB Capabilities can be run on this business
          example: ADVERSE_MEDIA, COMPLIANCE_WATCHLIST
          items:
            type: string
            description: name of KYB capability available to run on
        searchId:
          type: integer
    SearchBusinessCapabilityResponse:
      type: object
      description: Search business capability response.
      required:
        - credentials
        - decision
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier of the SearchBusinessCapabilityResponse.
        credentials:
          type: array
          items:
            $ref: '#/components/schemas/SimpleCredential'
        decision:
          $ref: '#/components/schemas/Decision'
        data:
          type: object
          properties:
            results:
              type: array
              items:
                $ref: '#/components/schemas/SearchBusinessResult'
        additionalInformation:
          $ref: '#/components/schemas/AdditionalInformation'
    EmailVerificationCapabilityResponse:
      type: object
      description: Email verification response.
      required:
        - credentials
        - decision
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier of the EmailVerificationCapabilityResponse.
        credentials:
          type: array
          items:
            $ref: '#/components/schemas/SimpleCredential'
        decision:
          $ref: '#/components/schemas/Decision'
        data:
          type: object
          properties:
            emailVerificationStatus:
              type: string
              example: Verified
            firstVerifiedAt:
              type: string
              format: date-time
            totalHits:
              type: string
            emailExists:
              type: boolean
            domainExists:
              type: boolean
            domainName:
              type: string
            domainCompany:
              type: string
            domainRiskLevel:
              type: string
              example: VERY_LOW,MEDIUM,HIGH
            domainCreationDate:
              type: string
              format: date-time
            advice:
              type: string
              example: DATA_REVIEW
            domainCountry:
              type: string
              example: USA
            domainCategory:
              type: string
              example: Webmail
            domainCorporate:
              type: boolean
              example: true,false
            reason:
              type: string
              example: RISKY_COUNTRY
            emailDeterminedStatus:
              type: string
              example: Not Sure
            domainDeterminedStatus:
              type: string
              example: Not Sure
            countForReason:
              type: integer
              example: 4
            countryForReason:
              type: string
        additionalInformation:
          $ref: '#/components/schemas/AdditionalInformation'
    PhoneVerificationCapabilityResponse:
      type: object
      description: >-
        Device risk verification capability response. Guide to image check
        capability.
      required:
        - credentials
        - decision
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier of the PhoneVerificationCapabilityResponse.
        credentials:
          type: array
          items:
            $ref: '#/components/schemas/SimpleCredential'
        decision:
          $ref: '#/components/schemas/Decision'
        data:
          type: object
          properties:
            phoneType:
              type: string
              example: mobile
              description: >-
                Shows the phone type. Available values are given in the
                examples.
              values: >-
                fixed line, invalid, mobile, other, pager, payphone, personal,
                prepaid, tollfree, voip
            carrier:
              type: string
            blocked:
              type: boolean
            riskInsights:
              type: object
              properties:
                relativeRisk:
                  type: array
                  items:
                    type: string
                applicationToPersonTraffic:
                  type: array
                  items:
                    type: string
                personToPersonTraffic:
                  type: array
                  items:
                    type: string
                numberType:
                  type: array
                  items:
                    type: string
        additionalInformation:
          $ref: '#/components/schemas/AdditionalInformation'
    GeoIpVerificationCapabilityResponse:
      type: object
      description: Geo IP verification capability response.
      required:
        - credentials
        - decision
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier of the GeoIpVerificationCapabilityResponse.
        credentials:
          type: array
          items:
            $ref: '#/components/schemas/SimpleCredential'
        decision:
          $ref: '#/components/schemas/Decision'
        data:
          type: object
          properties:
            country:
              type: string
              description: country of IP Address
              example: USA
            state:
              type: string
              description: 2 letter symbol code specifying state
              example: WA
            city:
              type: string
              description: name of city of IP address
              example: Los Vegas
            isp:
              type: string
              description: name of the Internet Service Provider
              example: Google
            organization:
              type: string
              description: organization of the IP Address
              example: Google
            accuracyRadius:
              type: integer
              description: >-
                accuracy of IP address location from provided coordinates in
                KiloMeters
            latitude:
              type: number
              format: double
            longitude:
              type: number
              format: double
            anonymousVpn:
              type: boolean
              description: whether IP address is an anonymous VPN
            torExitNode:
              type: boolean
              description: whether the IP address is a Tor Browser Exit Node
            anonymous:
              type: boolean
              description: whether the IP address is anonymous
            proxyType:
              type: string
              description: if proxy is used, what type it is
              example: ANONYMOUS
              enum:
                - ANONYMOUS
                - RESIDENTIAL
                - PUBLIC
            highBillingPostalCodeVelocity:
              type: boolean
              description: high no. of billing postal codes are seen with the IP Address
            highEmailVelocity:
              type: boolean
              description: high no. of billing postal codes are seen with the IP Address
            highIssuerIdVelocity:
              type: boolean
              description: >-
                high no. of Issuer ID(credit cards, prepaid cards etc) are seen
                with the IP address
            highRiskDevicesActivity:
              type: boolean
              description: high risk devices are seen on this IP address
            highRiskEmailsActivity:
              type: boolean
              description: high risk emails are seen on this IP address
            highRiskNetworkActivity:
              type: boolean
              description: high risk actors are seen on this IP addres
            userType:
              type: string
              description: specifies the behaviour observed with typical users.
              enum:
                - BUSINESS
                - RESIDENTIAL
                - CAFE
                - CELLULAR
              example: RESIDENTIAL
        additionalInformation:
          $ref: '#/components/schemas/AdditionalInformation'
    BusinessInfoResult:
      type: object
      description: Device risk verification capability response.
      properties:
        kyb_source:
          type: string
        data:
          type: object
          additionalProperties: true
    BusinessInfoCapabilityResponse:
      type: object
      description: Device risk verification capability response.
      required:
        - credentials
        - decision
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier of the BusinessInfoCapabilityResponse.
        credentials:
          type: array
          items:
            $ref: '#/components/schemas/SimpleCredential'
        decision:
          $ref: '#/components/schemas/Decision'
        data:
          type: object
          description: Device risk verification capability response.
          properties:
            results:
              type: array
              items:
                $ref: '#/components/schemas/BusinessInfoResult'
        additionalInformation:
          $ref: '#/components/schemas/AdditionalInformation'
    EkycAdvancedVerificationCapabilityResponse:
      type: object
      description: Device risk verification capability response.
      required:
        - credentials
        - decision
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier of the EkycAdvancedVerificationCapabilityResponse.
        credentials:
          type: array
          items:
            $ref: '#/components/schemas/SimpleCredential'
        decision:
          $ref: '#/components/schemas/Decision'
        data:
          type: object
          properties:
            verificationResult:
              type: string
            nameMatch:
              type: string
            addressMatch:
              type: string
            nationalIdMatch:
              type: string
            dobMatch:
              type: string
            dobDayMatch:
              type: string
            dobMonthMatch:
              type: string
            dobYearMatch:
              type: string
            phoneMatch:
              type: string
        additionalInformation:
          $ref: '#/components/schemas/AdditionalInformation'
    EkycCheckCapabilityResponseData:
      type: object
      properties:
        completeNameMatch:
          type: string
          example: MATCH, PARTIAL_MATCH, NOT_MATCH
        initialNameMatch:
          type: string
          example: MATCH, PARTIAL_MATCH, NOT_MATCH
        firstNameMatch:
          type: string
          example: MATCH, PARTIAL_MATCH, NOT_MATCH
        lastNameMatch:
          type: string
          example: MATCH, PARTIAL_MATCH, NOT_MATCH
        addressMatch:
          type: string
          example: MATCH, PARTIAL_MATCH, NOT_MATCH
        addressLine1Match:
          type: string
          example: MATCH, PARTIAL_MATCH, NOT_MATCH
        addressLine2Match:
          type: string
          example: MATCH, PARTIAL_MATCH, NOT_MATCH
        houseNumberMatch:
          type: string
          example: MATCH, PARTIAL_MATCH, NOT_MATCH
        thoroughfareMatch:
          type: string
          example: MATCH, PARTIAL_MATCH, NOT_MATCH
        cityMatch:
          type: string
          example: MATCH, PARTIAL_MATCH, NOT_MATCH
        stateMatch:
          type: string
          example: MATCH, PARTIAL_MATCH, NOT_MATCH
        zipOrPinCodeMatch:
          type: string
          example: MATCH, PARTIAL_MATCH, NOT_MATCH
        nationalIdMatch:
          type: string
          example: MATCH, PARTIAL_MATCH, NOT_MATCH
        dateOfBirthMatch:
          type: string
          example: MATCH, PARTIAL_MATCH, NOT_MATCH
        dateOfBirthDayMatch:
          type: string
          example: MATCH, PARTIAL_MATCH, NOT_MATCH
        dateOfBirthMonthMatch:
          type: string
          example: MATCH, PARTIAL_MATCH, NOT_MATCH
        dateOfBirthYearMatch:
          type: string
          example: MATCH, PARTIAL_MATCH, NOT_MATCH
        phoneMatch:
          type: string
          example: MATCH, PARTIAL_MATCH, NOT_MATCH
        datasourceType:
          type: string
          description: It will contain datasource like `United States Credit`
        searchType:
          type: string
          example: 1+1, 2+2
          description: It will show the searchType selected in request
        matchType:
          type: string
          example: 1+1, 2+2
          description: >-
            this field will contain values only in case low_risk, medium_risk.
            It will be populated based on searchType in request and risk score.
        source:
          type: string
          example: CRD1, TEL1
        datasourceSummary:
          type: array
          items:
            $ref: '#/components/schemas/EkycCheckCapabilityResponseData'
    EkycCheckCapabilityResponse:
      type: object
      required:
        - credentials
        - decision
      properties:
        id:
          type: string
          format: uuid
        credentials:
          type: array
          items:
            $ref: '#/components/schemas/SimpleCredential'
        decision:
          $ref: '#/components/schemas/Decision'
        data:
          $ref: '#/components/schemas/EkycCheckCapabilityResponseData'
        additionalInformation:
          $ref: '#/components/schemas/AdditionalInformation'
    MaskingCapabilityResponse:
      type: object
      required:
        - credentials
        - decision
      properties:
        id:
          type: string
          format: uuid
        credentials:
          type: array
          items:
            $ref: '#/components/schemas/SimpleCredential'
        decision:
          $ref: '#/components/schemas/Decision'
    LookupsCapabilityResponse:
      type: object
      required:
        - credentials
        - decision
      properties:
        id:
          type: string
          format: uuid
        credentials:
          type: array
          items:
            $ref: '#/components/schemas/SimpleCredential'
        decision:
          $ref: '#/components/schemas/Decision'
        data:
          type: object
          properties:
            matchedTransactions:
              $ref: '#/components/schemas/MatchedTransactions'
            faceMatchedTransactions:
              $ref: '#/components/schemas/MatchedTransactions'
            matchedImagesTransactions:
              $ref: '#/components/schemas/MatchedTransactions'
    MatchedTransactions:
      type: object
      properties:
        totalHighRiskTransactions:
          type: integer
        totalMediumRiskTransactions:
          type: integer
        totalLowRiskTransactions:
          type: integer
        earliestTransactionTime:
          type: string
          format: date-time
        latestTransactionTime:
          type: string
          format: date-time
        network:
          $ref: '#/components/schemas/NetworkResponse'
        associatedNetwork:
          $ref: '#/components/schemas/AssociatedNetworkResponse'
        globalNetwork:
          $ref: '#/components/schemas/GlobalNetworkResponse'
    NetworkResponse:
      type: object
      properties:
        highRiskTransactions:
          type: integer
        mediumRiskTransactions:
          type: integer
        lowRiskTransactions:
          type: integer
        earliestTransactionTime:
          type: string
          format: date-time
        latestTransactionTime:
          type: string
          format: date-time
        transactions:
          type: array
          items:
            type: string
            format: uuid
    AssociatedNetworkResponse:
      type: object
      properties:
        highRiskTransactions:
          type: integer
        mediumRiskTransactions:
          type: integer
        lowRiskTransactions:
          type: integer
        earliestTransactionTime:
          type: string
          format: date-time
        latestTransactionTime:
          type: string
          format: date-time
        transactions:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
              format: uuid
    GlobalNetworkResponse:
      type: object
      properties:
        highRiskTransactions:
          type: integer
        mediumRiskTransactions:
          type: integer
        lowRiskTransactions:
          type: integer
        earliestTransactionTime:
          type: string
          format: date-time
        latestTransactionTime:
          type: string
          format: date-time
    EkycSsnVerificationCapabilityResponse:
      type: object
      description: Device risk verification capability response.
      required:
        - credentials
        - decision
      properties:
        id:
          type: string
          format: uuid
          decription: Unique identifier of the EkycSsnVerificationCapabilityResponse.
        credentials:
          type: array
          items:
            $ref: '#/components/schemas/SimpleCredential'
        decision:
          $ref: '#/components/schemas/Decision'
        data:
          type: object
          properties:
            addressVerificationResult:
              type: string
            ssnResult:
              type: string
            dobVerification:
              type: string
            addressDescription:
              type: string
            ssnDescription:
              type: string
            dobDescription:
              type: string
            addressResultRisk:
              type: string
            phoneResultRisk:
              type: string
            deceased:
              type: string
            addressType:
              type: string
            addressMatch:
              type: string
              description: Tells whether address matches or not
              example: MATCH
            nameMatchToSsn:
              type: string
              description: Tells whether Name matches to SSN or not
              example: MATCH
            nameMatchToAddress:
              type: string
              example: MATCH
            phoneMatch:
              type: string
              description: Tells whether Phone match or not
              example: MATCH
            ssnMatch:
              type: string
              description: Tells whether social Security number match or not
              example: MATCH
            dateOfBirthMatch:
              type: string
              description: Tells whether date of birth match or not
              example: MATCH
            isDeceased:
              type: boolean
              description: Tells whether person is alive or not
            isSSNIssuedPriorYOB:
              type: boolean
              description: this tells whether issue date of SSN is before year of birth
        additionalInformation:
          $ref: '#/components/schemas/AdditionalInformation'
    RiskAnalyticsCapabilityResponse:
      type: object
      required:
        - credentials
        - decision
      properties:
        id:
          type: string
          format: uuid
        credentials:
          type: array
          items:
            $ref: '#/components/schemas/SimpleCredential'
        decision:
          $ref: '#/components/schemas/Decision'
        data:
          type: object
          properties:
            associationRisk:
              type: object
              properties:
                riskLevel:
                  type: string
                  description: risk level, LOW, MEDIUM, HIGH, UNKNOWN
                riskScore:
                  type: integer
                insights:
                  type: array
                  items:
                    $ref: '#/components/schemas/Insight'
            network:
              $ref: '#/components/schemas/Network'
            globalNetwork:
              $ref: '#/components/schemas/Network'
    Insight:
      type: object
      properties:
        message:
          type: string
        value:
          type: string
        riskScore:
          type: integer
        riskLevel:
          type: string
    Network:
      type: object
      properties:
        totalAssociations:
          type: integer
        totalHighRiskAssociations:
          type: integer
        associatedEntities:
          type: array
          items:
            $ref: '#/components/schemas/NetworkEntity'
    NetworkEntity:
      type: object
      properties:
        transactionId:
          type: string
        highRiskTransaction:
          type: boolean
        riskScore:
          type: integer
        entities:
          type: array
          items:
            type: string
    DlRestriction:
      type: object
      properties:
        restriction:
          type: string
          example: A
        availability:
          type: string
          example: 'yes'
    DateParts:
      type: object
      properties:
        year:
          type: string
          example: 2021
        month:
          type: string
          example: 10
        day:
          type: string
          example: 10
    AdditionalInformation:
      type: object
      properties:
        vendor:
          type: object
          properties:
            response:
              type: object
              description: Response received from Vendor.
            name:
              type: string
              description: Name of the Vendor.
    Decision:
      type: object
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - PASSED
            - REJECTED
            - WARNING
            - NOT_EXECUTED
          example: PASSED
          description: >-
            The decision rendered for the capability or workflow step that wraps
            this object. Use the 'label' property to get context and detail.
        details:
          type: object
          properties:
            label:
              type: string
    Risk:
      type: object
      properties:
        score:
          type: number
          format: float
          description: Values can range between -1 to 100. Highest risk value is 100.
          example: 93
    DecisionReason:
      type: object
      properties:
        label:
          type: string
        type:
          type: string
    WorkflowStep:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: 999
        name:
          type: string
        decision:
          $ref: '#/components/schemas/Decision'
        capabilities:
          type: array
          items:
            $ref: '#/components/schemas/SimpleCapability'
        capabilityIds:
          type: array
          items:
            type: string
            format: uuid
    DecisionWithRisk:
      type: object
      required:
        - type
        - risk
      properties:
        type:
          type: string
          description: >-
            The decision rendered for the capability or workflow step that wraps
            this object.
          example: WARNING
          enum:
            - NOT_EXECUTED
            - PASSED
            - REJECTED
            - WARNING
        details:
          type: object
          properties:
            label:
              type: string
        risk:
          $ref: '#/components/schemas/Risk'
    TransactionFeedbackRequestBody:
      type: object
      required:
        - status
      properties:
        status:
          type: string
          enum:
            - NA
            - FRAUD
            - NOT_FRAUD
          example: FRAUD
        reason:
          type: string
          example: FIRST_PARTY_FRAUD
          description: Reason for altering the status.
          enum:
            - NA
            - ACCOUNT_TAKEOVER
            - COMPANY_POLICY
            - FIRST_PARTY_FRAUD
            - GOVERNMENT_REGULATIONS
            - IDENTITY_FRAUD
            - INSIDER_FRAUD
            - MONEY_LAUNDERING
            - PAYMENT_FRAUD
            - PHISHING
            - SYNTHETIC_ID_FRAUD
            - THIRD_PARTY_FRAUD
    TransactionFeedback:
      type: object
      required:
        - status
      properties:
        status:
          type: string
          enum:
            - NA
            - FRAUD
            - NOT_FRAUD
          example: FRAUD
        reason:
          type: string
          example: FIRST_PARTY_FRAUD
          description: Reason for altering the status.
          enum:
            - NA
            - ACCOUNT_TAKEOVER
            - COMPANY_POLICY
            - FIRST_PARTY_FRAUD
            - GOVERNMENT_REGULATIONS
            - IDENTITY_FRAUD
            - INSIDER_FRAUD
            - MONEY_LAUNDERING
            - PAYMENT_FRAUD
            - PHISHING
            - SYNTHETIC_ID_FRAUD
            - THIRD_PARTY_FRAUD
        providedAt:
          type: string
          format: date-time
    WorkflowStatusResponse:
      type: object
      required:
        - account
        - workflowExecution
      properties:
        account:
          $ref: '#/components/schemas/AccountWithHref'
        workflowExecution:
          $ref: '#/components/schemas/WorkflowExecutionWithHref'
    WorkflowStepsResponse:
      type: object
      required:
        - steps
      properties:
        steps:
          type: array
          items:
            $ref: '#/components/schemas/WorkflowStep'
    WorkflowStepsWithHref:
      type: object
      required:
        - href
      properties:
        href:
          type: string
          format: uri
    AccountWithHref:
      type: object
      required:
        - id
      properties:
        id:
          type: string
          format: uuid
        href:
          type: string
          format: uri
    PdfGeneratedResponse:
      type: object
      required:
        - id
      properties:
        workflowId:
          type: string
          format: uuid
        presignedUrl:
          type: string
          format: uri
    WorkflowExecutionWithHref:
      type: object
      required:
        - id
        - definitionKey
        - status
      properties:
        id:
          type: string
          format: uuid
        href:
          type: string
          format: uri
        definitionKey:
          type: string
        status:
          type: string
    Problem:
      type: object
      description: https://tools.ietf.org/html/rfc7807
      properties:
        title:
          type: string
          description: >
            A short, summary of the problem type. Written in english and
            readable

            for engineers (usually not suited for non technical stakeholders and

            not localized); example: Service Unavailable
        status:
          type: integer
          format: int32
          description: >
            The HTTP status code generated by the origin server for this
            occurrence

            of the problem.
          minimum: 100
          maximum: 600
          exclusiveMaximum: true
          example: 503
        detail:
          type: string
          description: |
            A human readable explanation specific to this occurrence of the
            problem.
          example: Connection to database timed out
        instance:
          type: string
          format: uri
          description: >
            An absolute URI that identifies the specific occurrence of the
            problem.

            It may or may not yield further information if dereferenced.
    WorkflowExecutionRulesResponseWithHref:
      type: object
      properties:
        href:
          type: string
          format: uri
        executions:
          type: array
          items:
            $ref: '#/components/schemas/RulesExecutionResponse'
    WorkflowExecutionConsentResponse:
      type: object
      properties:
        obtained:
          type: string
          description: >-
            Indicates whether the user's consent was obtained.(`yes`- user's
            consent was obtained, `no`- user's consent was not obtained, `na`-
            not applicable to the transaction)
          enum:
            - 'yes'
            - 'no'
            - na
          example: 'yes'
        obtainedAt:
          type: string
          format: date-time
    WorkflowExecutionRulesResponse:
      type: object
      properties:
        executions:
          type: array
          items:
            $ref: '#/components/schemas/RulesExecutionResponse'
    WorkflowExecutionCaptureClientResponse:
      type: object
      properties:
        client:
          type: string
          description: Client type (web or mobile).
          example: web
        platform:
          type: string
        version:
          type: string
        osName:
          type: string
        state:
          type: array
          items:
            type: string
        captureDetails:
          type: object
          additionalProperties:
            type: string
    RulesExecutionResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
        startedAt:
          type: string
          format: date-time
        completedAt:
          type: string
          format: date-time
        rulesets:
          type: array
          items:
            $ref: '#/components/schemas/RulesetResponse'
    RulesetResponse:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        version:
          type: integer
        score:
          type: integer
        rulesMatched:
          type: array
          items:
            $ref: '#/components/schemas/RuleResponse'
        rulesNotMatched:
          type: array
          items:
            $ref: '#/components/schemas/RuleResponse'
    RuleResponse:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        version:
          type: integer
        score:
          type: integer
  responses:
    NotFound:
      description: Not Found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Problem'
          example:
            type: https://jumio.github.io/problems/not-found
            title: Not found
            status: 404
            detail: The requested resource could not be found
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Problem'
          example:
            type: https://jumio.github.io/problems/unauthorized
            title: Unauthorized
            status: 401
            detail: The provided credentials are invalid
    Forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Problem'
          example:
            type: https://jumio.github.io/problems/forbidden
            title: Forbidden
            status: 403
            detail: >-
              The provided credentials are not allowed to access the request
              resource
  securitySchemes:
    Oauth2-SGP:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://auth.apac-1.jumio.ai/oauth2/token
          scopes:
            transactions/retrieval: Grants access to retrieve transactions
    Oauth2-EU:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://auth.emea-1.jumio.ai/oauth2/token
          scopes:
            transactions/retrieval: Grants access to retrieve transactions
    Oauth2-US:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://auth.amer-1.jumio.ai/oauth2/token
          scopes:
            transactions/retrieval: Grants access to retrieve transactions
security:
  - Oauth2-EU:
      - transactions/retrieval
  - Oauth2-US:
      - transactions/retrieval
  - Oauth2-SGP:
      - transactions/retrieval
