Trulioo · Arazzo Workflow

Trulioo Configure And Verify A Person

Version 1.0.0

Discover a country's accepted fields and consents, then run a KYC identity verification.

1 workflow 2 source APIs 1 provider
View Spec View on GitHub Identity VerificationKYCKYBAMLWatchlist ScreeningBiometricsDocument VerificationFraud PreventionComplianceGlobal IdentityArazzoWorkflows

Provider

trulioo

Workflows

configure-and-verify-person
Resolve fields and consents for a country, then verify a person.
Reads the accepted field schema and the consent-requiring datasources for the configuration/country pair, submits a Verify request that includes those consents, and returns the normalized record status.
3 steps inputs: communication, configurationName, countryCode, location, personInfo outputs: recordStatus, transactionId, transactionRecordId
1
getFields
getFields
Retrieve the full set of accepted input fields for the target configuration and country to confirm the supplied data is shaped correctly.
2
getConsents
getConsents
List the datasources that require end-user consent for this configuration/country so the Verify request can declare them.
3
verify
verifyPerson
Submit the Verify request with the supplied identity fields and the consent list discovered above, accepting the Trulioo terms and conditions.

Source API Descriptions

Arazzo Workflow Specification

trulioo-configure-and-verify-person-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Trulioo Configure And Verify A Person
  summary: Discover a country's accepted fields and consents, then run a KYC identity verification.
  description: >-
    The canonical Trulioo identity verification (KYC) flow. Before submitting a
    Verify request the workflow inspects the configured product package to learn
    which input fields are accepted for the target country and which datasources
    require explicit end-user consent, then submits a normalized Verify request
    carrying those consents and finally reads the RecordStatus from the result.
    Every step spells out its request inline so the flow can be read and executed
    without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: configurationApi
  url: ../openapi/trulioo-configuration-api-openapi.yml
  type: openapi
- name: verificationsApi
  url: ../openapi/trulioo-verifications-api-openapi.yml
  type: openapi
workflows:
- workflowId: configure-and-verify-person
  summary: Resolve fields and consents for a country, then verify a person.
  description: >-
    Reads the accepted field schema and the consent-requiring datasources for
    the configuration/country pair, submits a Verify request that includes those
    consents, and returns the normalized record status.
  inputs:
    type: object
    required:
    - configurationName
    - countryCode
    - personInfo
    - location
    properties:
      configurationName:
        type: string
        description: Configured product/package name (e.g. "Identity Verification").
      countryCode:
        type: string
        description: Two-letter ISO 3166 country code (e.g. US).
      personInfo:
        type: object
        description: PersonInfo block (names and date-of-birth fields).
      location:
        type: object
        description: Location block (address fields).
      communication:
        type: object
        description: Optional Communication block (phone/email).
  steps:
  - stepId: getFields
    description: >-
      Retrieve the full set of accepted input fields for the target
      configuration and country to confirm the supplied data is shaped correctly.
    operationId: getFields
    parameters:
    - name: configurationName
      in: path
      value: $inputs.configurationName
    - name: countryCode
      in: path
      value: $inputs.countryCode
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      fieldSchema: $response.body
  - stepId: getConsents
    description: >-
      List the datasources that require end-user consent for this
      configuration/country so the Verify request can declare them.
    operationId: getConsents
    parameters:
    - name: configurationName
      in: path
      value: $inputs.configurationName
    - name: countryCode
      in: path
      value: $inputs.countryCode
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      consents: $response.body
  - stepId: verify
    description: >-
      Submit the Verify request with the supplied identity fields and the
      consent list discovered above, accepting the Trulioo terms and conditions.
    operationId: verifyPerson
    requestBody:
      contentType: application/json
      payload:
        AcceptTruliooTermsAndConditions: true
        ConfigurationName: $inputs.configurationName
        CountryCode: $inputs.countryCode
        ConsentForDataSources: $steps.getConsents.outputs.consents
        DataFields:
          PersonInfo: $inputs.personInfo
          Location: $inputs.location
          Communication: $inputs.communication
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      transactionId: $response.body#/TransactionID
      transactionRecordId: $response.body#/Record/TransactionRecordID
      recordStatus: $response.body#/Record/RecordStatus
  outputs:
    transactionId: $steps.verify.outputs.transactionId
    transactionRecordId: $steps.verify.outputs.transactionRecordId
    recordStatus: $steps.verify.outputs.recordStatus