Skip to main content
POST
curl
When you override a step with defer_until_flow_finishes: true while the person is still in the flow, the override waits and applies when the flow finishes. Cancel it here if you no longer want it to apply. The check keeps its current status. The cancellation is recorded in the session’s activity as FEATURE_OVERRIDE_CANCELLED, and no webhook is sent. The response is the override with state: cancelled and cancel_reason: cancelled_by_reviewer.

Find the override ID

Use the id of the override object returned by Update Feature Status, or list the session’s overrides with List Feature Overrides and pick one whose state is pending_until_flow_finishes.

When cancelling fails

An override that already applied or was cancelled returns 409 with the code feature_override_not_pending. To change a check after its override applied, send a new Update Feature Status request instead.

Authorizations

x-api-key
string
header
required

Your application's API key, from Developers -> API keys in the Business Console. The primary key has full access. A named key can be scoped: none, read or write per resource, limited to some workflows or to approved sessions, to a list of IP addresses, and to an expiry date. 401 means the key is missing, wrong, revoked or expired; 403 means the key has no access to this resource or action, or the request came from an address outside its IP list; 404 on a session route means the session is outside the key's workflows or statuses. A key without media access receives image, video and PDF URLs as null, and a key without sessions write receives session links and tokens as null. See https://docs.didit.me/console/api-keys.

Path Parameters

sessionId
string<uuid>
required

UUID of the verification session. Accepts both user (KYC) and business (KYB) session IDs.

Example:

"3fa85f64-5717-4562-b3fc-2c963f66afa6"

overrideId
string<uuid>
required

The id of the override to cancel.

Example:

"9b2f4c1e-8d3a-4e5f-a6b7-c8d9e0f1a2b3"

Response

The override is cancelled and will never apply.

One override of a check (feature) status made with PATCH /v3/session/{sessionId}/features/{nodeId}/update-status/: what it changes, whether it applied or still waits for the person to finish the flow, who asked and why.

id
string<uuid>
required

Identifier of the override. Pass it to the cancel endpoint.

Example:

"7c9e6679-7425-40de-944b-e07fc1f90ae7"

node_id
string
required

The workflow node the request named (default for a step without a node).

Example:

"feature_ocr_1"

feature_type
string
required

The feature_type the request passed, or an empty string when it passed none.

Example:

""

feature_model
string
required

The kind of check that was overridden, for example KYC, Face, AML or GeolocationCheck.

Example:

"KYC"

previous_status
enum<string>
required

The check's status when the override was requested.

Available options:
Not Finished,
Approved,
Declined,
In Review,
Resub Requested
Example:

"In Review"

new_status
enum<string>
required

The status the override sets.

Available options:
Approved,
Declined,
In Review
Example:

"Approved"

state
enum<string>
required

applied: the check has the new status. pending_until_flow_finishes: the override waits and applies when the person finishes the flow. cancelled: it waited and never applied (see cancel_reason).

Available options:
applied,
pending_until_flow_finishes,
cancelled
Example:

"applied"

forced
boolean
required

true when the override applied at once while the person was still in the flow.

Example:

false

reason
string | null
required

The comment sent with the request, or null.

Example:

"Document manually verified by compliance."

requested_by
object | null
required

Who requested the override, or null when that is not known.

requested_at
string<date-time>
required

When the override was requested.

Example:

"2026-10-13T09:15:00Z"

applied_at
string<date-time> | null
required

When the check took the new status, or null while it waits or once it is cancelled.

Example:

"2026-10-13T09:15:00Z"

cancelled_at
string<date-time> | null
required

When a waiting override was cancelled, or null.

Example:

null

cancel_reason
enum<string> | null
required

Why a waiting override never applied, or null. cancelled_by_reviewer: cancelled with the cancel endpoint. replaced: a newer override on the same check replaced it. check_changed: the person redid the check before finishing the flow. session_closed: the session left the flow before the person finished it (abandoned, expired, or decided mid-flow).

Available options:
cancelled_by_reviewer,
replaced,
check_changed,
session_closed,
null
Example:

null