Skip to main content
PATCH
/
v3
/
workflows
/
{settings_uuid}
/
cURL
curl -X PATCH 'https://verification.didit.me/v3/workflows/a1b2c3d4-5678-90ab-cdef-111111111111/' \
  -H 'x-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"workflow_label": "Premium KYC"}'
{}
Use PATCH for partial updates. To rename a workflow, send only workflow_label.
{
  "workflow_label": "Premium KYC"
}
To change the checks in the workflow, send the full desired features array. This replaces the previous feature order and configuration.
{
  "features": [
    {
      "feature": "OCR",
      "config": {
        "documents_allowed": {
          "USA": {
            "DL": {
              "enabled": 1,
              "sides": 2
            }
          }
        }
      }
    },
    {
      "feature": "AML",
      "config": {
        "aml_score_review_threshold": 70,
        "aml_score_approve_threshold": 30
      }
    }
  ]
}
The v3 API keeps workflows simple: one linear path and one final status step. Branching, action nodes, and webhook nodes are not accepted here.

Feature config reference

When you send features 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.
FieldTypeDescription
is_white_label_enabledbooleanEnable white-label customization for sessions created with this workflow.
is_desktop_allowedbooleanAllow the verification flow to run on desktop browsers.
max_retry_attemptsinteger (0–10)Maximum retry attempts allowed after a declined verification. 0 blocks the user after the first decline.
retry_window_daysinteger (1–365) or nullRolling window in days used to count retries (null = all-time limit).
session_expiration_timeinteger (3600–2419200)Seconds before an unfinished session expires. Minimum 1 hour, maximum 4 weeks.
{
  "is_white_label_enabled": true,
  "is_desktop_allowed": true,
  "max_retry_attempts": 5,
  "retry_window_days": 14,
  "session_expiration_time": 86400
}
Use the workflow uuid returned by the list, create, or get endpoint as settings_uuid in this URL.

Authorizations

x-api-key
string
header
required

Path Parameters

settings_uuid
string<uuid>
required

Per-version UUID of the workflow to update.

Body

application/json

Update workflow metadata or replace the full linear feature list. STRICT field whitelist: any key not listed here is rejected with a 400.

workflow_label
string

Display name for the workflow (max 50 characters).

Maximum string length: 50
is_default
boolean

Set this workflow as the default for new sessions.

status
enum<string>

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.

Available options:
draft,
published
features
object[]

If provided, this replaces the full feature order and configuration.

Minimum array length: 1
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

Maximum retry attempts allowed after a declined verification. 0 blocks the user after the first decline.

Required range: 0 <= x <= 10
retry_window_days
integer | null

Rolling window in days used to count retries. null enforces an all-time limit.

Required range: 1 <= x <= 365
face_liveness_max_attempts
integer

Maximum liveness submissions per session. This value is also copied into generated liveness and age-estimation workflow nodes unless the feature-level config overrides it.

Required range: 1 <= x <= 3
face_match_max_attempts
integer

Maximum face-match submissions per session. This value is also copied into generated face-match workflow nodes unless the feature-level config overrides it.

Required range: 1 <= x <= 3
session_expiration_time
integer

Seconds before an unfinished session expires. Minimum 1 hour (3600), maximum 4 weeks (2419200).

Required range: 3600 <= x <= 2419200

Response

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}/).