Skip to content

Reading the result

application.status === "complete"
Value Meaning
incomplete Created, not submitted. No verification has happened.
complete Submitted. Results are meaningful.
expired The form expired unsubmitted.

Nothing below is meaningful until this holds — before then other_status.ekyc may read pending or even pass while nothing has been captured.

extra carries what the verification actually produced. Prefer it over the status columns: statuses are summaries, and every column except ekyc is configured per workspace.

extra.ekyc.face_compare selfie against the document portrait
extra.ekyc.liveness the liveness capture and its attempts
extra.ekyc.identity_document the document scan
extra.identity_aml screening results, when the flow runs them

Full field detail: extra.ekyc.

answers.date_of_expiry.value

Compare against the submission date, not today, if you are reprocessing historical applications.

Flows with a screening step also return extra.identity_aml. Its aggregate verdict:

extra.identity_aml.comply_advantage[0].result
Flag Matched against
is_any_in_sanctions Sanctions lists
is_any_in_pep Politically exposed persons
is_any_in_warnings Regulator and law-enforcement warning lists
is_any_in_adverse_media Adverse media
is_any_in_fitness_probity Fitness-and-probity registers

How each maps to your own decision is a policy matter. UpPass reports; you decide.