Resuming paused evaluations
Learn how to resume or skip paused workflow steps using the RiskOS™ Evaluation API, including the actions parameter and legacy force_resume_evaluation flag.
Certain workflow steps — such as OTP verification, Document Verification, and Wait steps — pause the evaluation until an external event or user action occurs. When a step stalls, fails, or is no longer needed, you can force the evaluation to skip the paused step and continue from the next step in the workflow.
When to resume an evaluation
Use forced resume when:
- A workflow step is stuck or has failed and cannot complete on its own.
- A consumer switches channels (for example, from SMS to email for OTP delivery).
- A step is no longer relevant and you want the workflow to proceed without waiting.
Do not use forced resume for normal workflow progression. Under standard conditions, paused steps resume automatically when the expected data or action arrives (for example, when a user submits an OTP code via a PATCH request).
Warning:
Skipping a paused step means that step produces no result. Downstream decision logic that depends on the skipped step's output may behave differently than expected. Test resume behavior in Sandbox before using it in Production.
Before you begin
- You have a valid RiskOS™ API key with permission to call the Evaluation endpoint.
- You have the
eval_idof a currently paused evaluation. Retrieve it from the initialPOSTresponse or from anevaluation_pausedwebhook event.
How to resume a paused evaluation
Send a PATCH request to the Evaluation endpoint with the eval_id of the paused evaluation. Include the actions object with resume set to true.
Endpoint
PATCH https://riskos.sandbox.socure.com/api/evaluation/{eval_id}PATCH https://riskos.socure.com/api/evaluation/{eval_id}Headers
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Accept: application/jsonRequest body
{
"actions": {
"resume": true
}
}| Field | Type | Required | Description |
|---|---|---|---|
actions | Object | Yes | Controls workflow execution behavior. |
actions.resume | Boolean | Yes | Set to true to skip the current paused step and continue from the next step. |
actions.end | Boolean | No | Set to true to terminate the workflow entirely instead of resuming. Do not combine with resume. |
Example: resume a paused OTP step
If a consumer's OTP delivery failed or the consumer wants to switch from SMS to email, resume the evaluation to skip the current OTP step:
curl -X PATCH "https://riskos.sandbox.socure.com/api/evaluation/{eval_id}" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"actions": {
"resume": true
}
}'After the paused step is skipped, the workflow continues from the next configured step. If your workflow contains another OTP step configured for a different channel, the consumer receives a new OTP through that channel.
Example: end a paused workflow
If the evaluation is no longer needed, terminate it instead of resuming:
{
"actions": {
"end": true
}
}Legacy parameter: force_resume_evaluation
force_resume_evaluationNote:
The
force_resume_evaluationparameter is deprecated. Useactions.resumefor new integrations. Both approaches are supported and produce the same result.
Existing integrations may use the force_resume_evaluation boolean flag nested under data.individual. This flag is maintained for backward compatibility and produces the same behavior as actions.resume.
{
"data": {
"individual": {
"force_resume_evaluation": true
}
}
}| Field | Type | Required | Description |
|---|---|---|---|
data.individual.force_resume_evaluation | Boolean | No | Deprecated. Set to true to skip the current paused step. Use actions.resume instead. |
Comparison
| Approach | Request location | Status | Supports end? |
|---|---|---|---|
actions.resume | Top-level actions object | Recommended | Yes (actions.end) |
force_resume_evaluation | data.individual | Deprecated | No |
If both actions.resume and force_resume_evaluation are set to true in the same request, the evaluation resumes. The system treats them as equivalent — either one triggers the resume.
What happens when you resume
- The currently paused step is skipped — it produces no output and no enrichment result for that step.
- The workflow continues from the next step in the configured sequence.
- If the next step is also a paused step (for example, two consecutive Wait steps), the workflow pauses again at that step and sends a webhook notification.
- The evaluation response reflects the updated
eval_statusas the workflow progresses.
Troubleshooting
| Issue | Explanation | Suggested fix |
|---|---|---|
evaluation is not paused error | The evaluation is not currently paused, either because it already completed or was never paused. | Verify the eval_id corresponds to an active, paused evaluation. Check eval_status with a GET request before attempting to resume. |
| Resume has no effect | The request was accepted but the workflow did not advance. | Confirm the evaluation is paused at a step that supports forced resume. Check that your PATCH request includes the correct eval_id in the URL path. |
| Downstream step fails after resume | A later step expected output from the skipped step. | Review your workflow configuration. Verify that downstream conditions and rules handle the case where the skipped step has no output. |
Related resources
- Integrating with RiskOS™ — End-to-end integration guide including async workflow patterns
- Wait step — Pause and resume behavior for Wait steps
- OTP troubleshooting — Fallback strategies for OTP workflows
- API reference — Full Evaluation endpoint specification
Updated 2 days ago
