# 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](https://help.socure.com/riskos/docs/docv-receive-results).

## 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

```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 `decision` values, two formats:**
>
> The envelope `data.decision` is the final routing decision in uppercase (`ACCEPT`, `REJECT`, `REVIEW`). The DocV enrichment result has its own `decision.value` in lowercase (`accept`, `reject`, `resubmit`, `review`) that describes only the document analysis. Route on `data.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`.

```json
{
  "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"
              }
            }
          }
        }
      }
    ]
  }
}
```
