DocV Webhook Payload Reference
DocV Webhook Payloads
This page documents the fields in the DocV webhook payloads delivered on evaluation_completed. Use it to look up a specific object — you don't need to read it end to end. For how to subscribe to webhooks and act on the decision, see Receive Results with DocV Webhooks.
Payload structure
Every evaluation_completed webhook wraps the evaluation in a four-key envelope. The evaluation details — including the final decision, tags, and enrichment results — are nested under data. The data.data_enrichments array holds the per-flow verification output documented in the rest of this page.
JSON
{
"event_id": "336ccd2a-b3a8-49a8-b2cc-89a4ae90feeb",
"event_at": "2025-08-27T16:16:23.104744158Z",
"event_type": "evaluation_completed",
"data": {
"id": "test-1245",
"workflow": "consumer_onboarding",
"eval_id": "8770e076-f568-48a9-8201-dca13087e592",
"decision": "ACCEPT",
"status": "CLOSED",
"sub_status": "Approved",
"tags": ["DocV Accept"],
"evaluation_status": "evaluation_completed",
"review_queues": [],
"data_enrichments": [
{ "...": "Per-flow verification output — see Enrichment results below." }
]
}
}
Top-level fields
| Field | Type | Description | Example |
|---|---|---|---|
event_id |
String (UUID) | Unique identifier for the webhook event. | "336ccd2a-b3a8-49a8-b2cc-89a4ae90feeb" |
event_at |
String | RFC 3339 timestamp when the event was created. | "2025-08-27T16:16:23.104744158Z" |
event_type |
String | Event type. Always "evaluation_completed" for this payload. | "evaluation_completed" |
data |
Object | Evaluation details, including the decision, tags, and enrichments. | See data fields. |
data fields
| Field | Type | Description | Example |
|---|---|---|---|
id |
String | Customer-provided identifier for the evaluation. | "test-1245" |
workflow |
String | Workflow name for the evaluation use case. | "consumer_onboarding" |
eval_id |
String (UUID) | RiskOS™-generated unique evaluation ID. Use it to correlate the webhook with your records. | "8770e076-f568-48a9-8201-dca13087e592" |
decision |
String | Final decision outcome. Use this as the primary routing field. | "ACCEPT" |
status |
String | Case status (for example, OPEN or CLOSED). |
"CLOSED" |
sub_status |
String | Case sub-status (for example, Approved or Surveillance). |
"Approved" |
tags |
Array of strings | Tags associated with the evaluation. See data.tags. |
["DocV Accept"] |
evaluation_status |
String | Processing status. Always "evaluation_completed" for this event. | "evaluation_completed" |
review_queues |
Array of strings | Review queues assigned to the evaluation. | ["Default Queue"] |
data_enrichments |
Array of objects | Per-flow enrichment results. See Enrichment results. | See Enrichment results. |
📘
Two
decisionvalues, two formats:The envelope
data.decisionis the final routing decision in uppercase (ACCEPT,REJECT,REVIEW). The DocV enrichment result has its owndecision.valuein lowercase (accept,reject,resubmit,review) that describes only the document analysis. Route ondata.decision.
Enrichment results
Enrichment outputs are returned in the data.data_enrichments array.
| Field | Type | Description | Example |
|---|---|---|---|
enrichment_name |
String | Name of the enrichment executed as part of the evaluation. | "Socure DocV" |
enrichment_endpoint |
String | API endpoint used for the enrichment request. | "https://service.socure.com/api/5.0/documents/verify" |
enrichment_provider |
String | Provider responsible for the enrichment. | "Socure" |
status_code |
Integer | HTTP status code returned by the enrichment provider. | 200 |
is_source_cache |
Boolean | Whether the enrichment result was served from cache. | false |
total_attempts |
Integer | Number of attempts made to complete the enrichment call. | 1 |
error_message |
String | Error detail returned by the provider, or an empty string on success. | "" |
request |
Object | Payload sent to the enrichment provider (often redacted in documentation examples). | { ... } |
response |
Object | Enrichment response payload. Contains a flow-specific result object — for example, documentVerification or secondaryDocument for DocV flows, or individual for Socure Pass. |
See the following response schemas. |
Example standard Document Verification webhook payload
This example shows a complete evaluation_completed payload for the standard Document Verification path, with the documentVerification result nested under data.data_enrichments[].response.
{
"event_id": "a4c92f1e-8b3d-4a17-9c5e-f2d8e7b61a03",
"event_at": "2025-08-27T16:16:23.104744158Z",
"event_type": "evaluation_completed",
"data": {
"id": "test-1245",
"workflow": "consumer_onboarding",
"eval_id": "8770e076-f568-48a9-8201-dca13087e592",
"decision": "ACCEPT",
"status": "CLOSED",
"sub_status": "Approved",
"tags": ["Document Verification Triggered", "DocV Accept"],
"evaluation_status": "evaluation_completed",
"review_queues": [],
"data_enrichments": [
{
"enrichment_name": "Socure DocV",
"enrichment_endpoint": "https://service.socure.com/api/5.0/documents/verify",
"enrichment_provider": "Socure",
"status_code": 200,
"is_source_cache": false,
"total_attempts": 1,
"error_message": "",
"request": {},
"response": {
"documentVerification": {
"reasonCodes": ["<reason_code>", "<reason_code>"],
"documentType": {
"type": "Drivers License",
"country": "USA",
"state": "NY"
},
"decision": {
"name": "lenient",
"value": "accept"
},
"documentData": {
"firstName": "John",
"surName": "Smith",
"fullName": "John Smith",
"dob": "1989-05-07",
"address": "32194 N College Ave, Apt 4B, New York City, NY 10001",
"parsedAddress": {
"physicalAddress": "32194 N College Ave",
"physicalAddress2": "Apt 4B",
"city": "New York City",
"state": "NY",
"country": "US",
"zip": "10001"
},
"documentNumber": "00000000",
"issueDate": "2021-01-12",
"expirationDate": "2029-05-07",
"nameSuffix": "Jr",
"customFields": {
"endorsements": "NONE",
"restrictions": "B",
"vehicleClass": "D"
}
}
}
}
}
]
}
}