Receive DocV Results
DocV is asynchronous: the consumer completes capture on their own device with no further backend interaction, so the original API response can't carry the outcome. Once capture finishes, RiskOS™ resumes the paused evaluation and produces a decision. You receive that result in one of two ways.
Two ways to receive results
| Method | How it works | Use it when |
|---|---|---|
| Webhooks (recommended) | RiskOS™ pushes the result to your endpoint in real time as the evaluation completes. | You can host a public endpoint and want results delivered automatically. |
| GET request (polling) | Your backend requests the evaluation's current state on demand. | You can't host a webhook endpoint, or you need to reconcile a missed webhook or confirm the decision before acting. |
Both methods return the same result schema. Webhooks are the recommended path; use a GET request as a fallback or to reconcile state. The Decision handling steps that follow apply no matter which method you use.
Method 1: Webhooks (recommended)
DocV delivers results through two webhook events. Subscribe to both for full visibility, then act on the final decision.
Subscribe to webhooks
Configure your webhook endpoint and event subscriptions in the RiskOS™ Dashboard before you run an evaluation. Subscribe to two events:
evaluation_completed— fires when the evaluation finishes; carries the final decision and DocV results. Subscribe to this if you only need the outcome for decision-making.case_notes_added— fires as the consumer moves through capture; carries lightweight progress notes. Subscribe to this as well if you want progress visibility.
To subscribe:
- In the RiskOS™ Dashboard, go to Developer Workbench > Webhooks.
- Create (or edit) a webhook and subscribe to the
case_notes_addedandevaluation_completedevent types. - Click Continue to Test, then Save to begin receiving real-time notifications.
For endpoint configuration, retries, and signature verification, see Configure Webhooks in RiskOS™. For the exhaustive event and payload schemas, see the API Reference.
Workflow completion
The paused evaluation resumes only on a terminal capture event. Intermediate progress events leave the workflow paused.
| Capture outcome | Resumes workflow? | Result |
|---|---|---|
Session Complete |
Yes | Capture finished; the workflow continues and produces a decision. |
Session Expired |
Yes | Link expired; the workflow resumes with a terminal-negative outcome. |
Consent Declined |
Yes | Consumer declined consent; the workflow resumes with a terminal-negative outcome. |
| Progress events (app opened, images uploaded) | No | Indicators only; the workflow stays paused. |
Capture progress: case_notes_added
These lightweight events track where the consumer is in the capture flow. They do not contain PII.
data.notes value |
When it fires |
|---|---|
Capture App Opened |
Consumer opened the Capture App. |
Document Front Uploaded |
Front of the document uploaded. |
Document Back Uploaded |
Back of the document uploaded. |
Document Selfie Uploaded |
Selfie uploaded. |
Documents Upload Successful |
All required images uploaded. |
Session Complete |
Capture and upload completed. |
Consent Declined |
Consumer declined consent (terminal). |
Session Expired |
Capture link expired (terminal). By default, the link expires 24 hours after it is created. |
Terminal note classification:
Treat Consent Declined and Session Expired as terminal-negative, and Session Complete and Documents Upload Successful as terminal-positive.
Final decision: evaluation_completed
This event fires when the evaluation finishes. The top-level data.decision (uppercase ACCEPT, REVIEW, REJECT) is the workflow decision. The DocV module decision and extracted data are nested inside data.data_enrichments.
A complete evaluation_completed payload includes workflow metadata, the SocureDocRequest enrichment, and the Socure Document Verification enrichment with extracted documentData and the digitalIntelligence.device block.
Automate terminal handling
You can configure your workflow to act on a terminal capture outcome automatically, without manual review. Add a Condition step or Decision Rules step after the Document Request enrichment:
- Auto-cancel — check for a
Session ExpiredorConsent Declinedoutcome, then route to a Decision step configured with a Cancel outcome. - Auto-resubmit — check for a
resubmitenrichment decision, then route to a Decision step configured with a Resubmit outcome to prompt the consumer to recapture without a manual review.