Process catalog

Four processes, five implementations (identity documents have both an Au10tix and an Entrust flavour). Framework details are in Domain model: processes & tasks.

Au10tix / Entrust coexistence. Entrust Identity Verification (Onfido) is the eventual replacement for Au10tix identity-document validation. During the rollout both vendors run under the same validate_identity_document process, so the GSI, dedup logic and admin reporting keep working unchanged. ToolType.get_by_process_name therefore still maps validate_identity_document to AU10TIX; the Entrust code paths reference ToolType.ENTRUST directly. Do not switch that mapping until Au10tix is fully retired.

Catalog

Process Vendor Page

validate_identity_document

Au10tix

validate_identity_document (Au10tix)

validate_identity_document

Entrust (Onfido)

validate_identity_document (Entrust / Onfido)

validate_personal_information

Thomson Reuters CLEAR (EIDV)

validate_personal_information (KYC)

download_personal_background_report

Thomson Reuters CLEAR

download_personal_background_report

download_business_background_report

Thomson Reuters CLEAR

download_business_background_report

Behaviour matrix

Behaviour ID doc (Au10tix) ID verification (Entrust) Personal info (KYC) Personal background Business background

Allowed sources

internal + supplier dashboard

internal + supplier dashboard + onboarding

internal + supplier dashboard

internal only

internal only

Has an input validator

no

n/a (pydantic body)

yes

yes

yes

Writes FinalStatusTable

yes

yes (terminal verdicts only)

yes

yes

no

Writes ToolTable

yes (AU10TIX)

yes (ENTRUST)

yes (THOMSON_REUTERS_CLEAR_ID)

yes, tiered

no

Emits EventBridge

ProcessFinished

ProcessFinished (terminal only)

TR match / mismatch / not-working + ProcessFinished

ProcessFinished

none

Implements purge()

no

no

yes

yes

yes

Handle-step input

full fields in the SWF payload

{supplier_key, person_id, applicant_id, workflow_run_id}

{correlation_id} only

{correlation_id} only

{correlation_id} only

Syncs HubSpot

no

yes (best effort)

no

no

no

Verdict vocabulary

Process FinalStatusTable.data shape

validate_identity_document

DocumentAuthenticity, IDNameMatch, IsDocumentExpired, OverallQuality — each VERIFIED or NOT_VERIFIED

validate_personal_information

one key per matched PII field — MATCH or NO_MATCH

download_personal_background_report

{access: {<Section>: PASS|FAIL|ERROR}, advance: {…}}

download_business_background_report

not written

Underwriters can override these through PUT /tasks/{correlation_id}/final_statuses, which also accepts PENDING and recomputes the tool status from the override.

Tool statuses (ToolStatus): NOT_RUN, PENDING, ERROR, NOT_VERIFIED, VERIFIED, VERIFIED_ACCESS, VERIFIED_ADVANCE, VERIFIED_ACCESS_AND_ADVANCE. The tiered values apply only to the personal background report.

Rate limits and dedup

Rule Where

Identical non-failed in-flight execution returns the existing correlation_id

POST /tasks/execute (input equality on task_input)

3 executions per supplier + process for SUPPLIER_DASHBOARD

POST /tasks/execute → 429

force_new_execution bypasses dedup (internal only, else 403)

POST /tasks/execute

A pending Entrust session with an unexpired hosted link is reused

POST /entrust/sessions

3 Entrust sessions per person for SUPPLIER_DASHBOARD and ONBOARDING; INTERNAL unlimited

POST /entrust/sessions → 429

Concurrent webhook redeliveries dedup on a deterministic SWF workflowId

POST /entrust/webhook

An already-processed Entrust task short-circuits without reprocessing

entrust/handle_identity_document_validation_response