Skip to main content

Verification workflows

Verification workflows control what an applicant must complete and how evidence resolves to approve, review or reject.

List workflows

GET /v1/workflows
Authorization: Bearer pl_live_…
const { workflows } = await proofline.workflows.list();
const workflow = workflows.find(
(item) =>
item.applicationType === "individual" && item.status === "published",
);

if (!workflow) throw new Error("No approved individual workflow is configured");

Version semantics

StatusEditableNew applicationsExisting applications
draftYesNoNone
publishedNoYesContinues pinned
retiredNoNoContinues pinned

Published policy is immutable because changing it in place would rewrite the meaning of historic evidence and decisions. Use Create editable version, validate the successor, publish it, update your configured workflow ID, then retire the predecessor for new intake.

Explicit assignment

Every application creation must include workflowId. Assayra does not guess the latest workflow. This protects integrations from silently moving to a different regulatory or risk policy after an administrator publishes a new version.

Decision branches

Supported risk-decision inputs include risk score, screening candidate count, document result and biometric result. The workflow engine resolves overlapping conditions conservatively; diagram edge order cannot turn a higher-risk result into approval.

Automated approval requires all mandatory signals to pass, no unresolved AML candidate, tenant automation enabled, an approving workflow terminal and—outside fictional showcase traffic—an approved Country Assurance Pack.

Per-control acceptance thresholds

Select a document, face likeness, human presence, screening or business-registry node in Workflow Studio to set its acceptance policy from 0 to 100. Higher values are stricter. The values are saved inside the immutable workflow version, copied into model evidence and enforced server-side; a hosted page or SDK cannot lower them.

Example liveness node
{
"id": "presence",
"type": "liveness",
"label": "Human presence",
"x": 470,
"y": 270,
"config": {
"activeLiveness": true,
"faceDetectionThreshold": 82,
"faceMatchThreshold": 74,
"subjectContinuityThreshold": 55,
"padThreshold": 80,
"movementThreshold": 7
}
}

faceMatchThreshold is a calibrated model acceptance score, not a literal statistical probability. Validate the operating point against an approved corpus before live use. Assayra preserves the raw cosine score, the normalized 0–100 score and the threshold used in the signal evidence.

Use liveness when active movement and PAD are required. Use face_match when the journey requires a live document-to-person likeness comparison without an active-liveness challenge. Do not add both: active liveness already performs the likeness comparison.

Node typeConfigurable percentage gates
documentCombined document acceptance, OCR confidence, declared-name similarity
face_matchFace detection, document-to-live likeness, capture-burst subject continuity
livenessFace detection, document-to-live likeness, PAD, subject continuity, challenge motion
screeningPotential-candidate and high-risk match scores
collect_businessLicensed-registry match score

Test before release

Workflow Studio provides:

  1. structural validation;
  2. warnings for missing document, liveness, screening or rejection controls;
  3. deterministic scenario simulation;
  4. the exact hosted-applicant runtime sequence; and
  5. immutable publish, successor and retirement actions.

Simulation never changes live application state.