Update Workflow
Update a workflow. Versioning depends on the status field you send and the current state of the version: (1) no status on a published version → the published version is updated in place (same uuid, same version); (2) no status on a draft → the draft is updated and immediately published; (3) status: "published" on a published version → a NEW published version is created under the same workflow_id (new uuid, version + 1) and returned, and any existing draft in the group is deleted; (4) status: "draft" keeps a draft as a draft (autosave) but is rejected with 400 on a published version ("Cannot revert a published version to draft."). The body accepts the same strict field whitelist as create — unknown keys are rejected with 400.
PATCH for partial updates. To rename a workflow, send only workflow_label.
features array. This replaces the previous feature order and configuration.
Feature config reference
When you sendfeatures in a PATCH, the array replaces the previous feature order and configuration. Include every required config again.
The exact config object depends on the feature. Review the full field list, defaults, required settings, value ranges, and examples in Workflow Feature Configs.
For OCR, omit config.documents_allowed, send null, or send {} to allow every supported document type. Include it only when you want to restrict the workflow to specific countries or document types. For QUESTIONNAIRE, config.questionnaire_uuid is required.
Updating workflow settings
You can patch session-level settings without touching the feature list. Send only the fields you want to change.| Field | Type | Description |
|---|---|---|
is_white_label_enabled | boolean | Enable white-label customization for sessions created with this workflow. |
is_desktop_allowed | boolean | Allow the verification flow to run on desktop browsers. |
max_retry_attempts | integer (0–10) | Maximum retry attempts allowed after a declined verification. 0 blocks the user after the first decline. |
retry_window_days | integer (1–365) or null | Rolling window in days used to count retries (null = all-time limit). |
session_expiration_time | integer (3600–2419200) | Seconds before an unfinished session expires. Minimum 1 hour, maximum 4 weeks. |
uuid returned by the list, create, or get endpoint as settings_uuid in this URL.Authorizations
Path Parameters
Per-version UUID of the workflow to update.
Body
Update workflow metadata or replace the full linear feature list. STRICT field whitelist: any key not listed here is rejected with a 400.
Display name for the workflow (max 50 characters).
50Set this workflow as the default for new sessions.
Controls versioning. Omit to update the current version in place (drafts auto-publish). published on an already-published version creates and returns a NEW version. draft is only valid while the version is still a draft.
draft, published If provided, this replaces the full feature order and configuration.
1Enable white-label customization for sessions created with this workflow.
Allow the verification flow to run on desktop browsers.
Maximum retry attempts allowed after a declined verification. 0 blocks the user after the first decline.
0 <= x <= 10Rolling window in days used to count retries. null enforces an all-time limit.
1 <= x <= 365Maximum liveness submissions per session. This value is also copied into generated liveness and age-estimation workflow nodes unless the feature-level config overrides it.
1 <= x <= 3Maximum face-match submissions per session. This value is also copied into generated face-match workflow nodes unless the feature-level config overrides it.
1 <= x <= 3Seconds before an unfinished session expires. Minimum 1 hour (3600), maximum 4 weeks (2419200).
3600 <= x <= 2419200Response
Workflow updated. The body is the FULL configuration of the resulting version (same raw VerificationSettings shape as GET /v3/workflows/{settings_uuid}/). When the update created a new version (status: "published" sent on a published row) the returned uuid and version differ from the ones you patched — use the returned uuid for subsequent calls.
Full workflow configuration (see GET /v3/workflows/{settings_uuid}/).