DocV Webhook Payload Reference
Field-by-field reference for the Predictive DocV webhook payloads, including documentVerification, documentData, and Socure Pass enrichment results.
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.
{
"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
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" |
decision_at | String | RFC 3339 timestamp when the decision was finalized. | "2025-08-27T16:16:23.096676037Z" |
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"] |
custom | Object | Additional session identifiers. Present for Socure Pass flows. See data.custom fields. | See data.custom fields. |
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.
data.custom fields
data.custom fieldsThe data.custom object contains Socure Pass session identifiers for traceability and audit. It is present when the evaluation runs a Socure Pass flow.
| Field | Type | Description | Example |
|---|---|---|---|
consent_id | String | Unique consent record for this session. Ties the disclosure to the consumer's explicit approval. | "01KR4PQH6MRJ3RFXAHFF4MVECW" |
eval_id | String | Links back to the RiskOS™ evaluation. | "2b74fe41-bf69-484a-82c7-4630f5846fa6" |
redirect_uri | String | The partner's callback URI for post-flow redirect. | "stellardemo://callback" |
wallet_id | String | The consumer's Socure Pass identifier (internal). | "01KQZCSS0TDXKGSBVE9E9J3W1C" |
data.tags
data.tagsThe data.tags array carries labels for filtering and reporting. Evaluations involving Socure Pass include the following tags:
| Tag | Description |
|---|---|
Socure Pass Triggered | The system initiated the Socure Pass flow (consumer selected "Verify with Socure Pass"). |
Socure Pass Has Data | The consumer has valid stored verification data available for reuse. |
DocV Accept | Document verification was accepted (either via reuse or fresh DocV). |
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. |
documentVerification fields
documentVerification fields| Field | Type | Description | Example |
|---|---|---|---|
reasonCodes | Array of Strings | List of rule or insight codes returned from DocV analysis. See the reason code list. | ["<reason_code>", "<reason_code>"] |
documentType | Object | Details about the document type provided for verification. | See documentType fields. |
decision | Object | Result of the document verification analysis. | See decision fields. |
documentData | Object | Parsed data extracted from the submitted document. | See documentData fields. |
Tip:
reasonCodesare machine-readable flags that explain why a decision occurred (for example, data mismatches, capture issues, authenticity checks). They appear underdata_enrichments.response.documentVerification.reasonCodesand are intended for routing, UX, and review workflows.How to use them:
- Drive resubmission UX (for example, prompt for glare removal if an image-quality code is present).
- Route to manual review when authenticity or data-consistency codes indicate risk.
- Log for audit and analytics.
The full catalog of reason codes and their descriptions is available in the reason code list.
documentType fields
documentType fields| Field | Type | Description | Example |
|---|---|---|---|
type | String | Human-readable document type. May return "Unknown" when the system doesn't support the document type or can't classify it. | "Drivers License" |
country | String | Country associated with the document type, in ISO 3166-1 alpha-2 format. May return "Unknown" when the country cannot be determined. | "US" |
state | String | State/region associated with the document type. May return "Unknown" when the state cannot be determined. | "NY" |
Handle
"Unknown"values:The
documentTypefields (type,country, orstate) may return"Unknown"instead of a specific value. This occurs when the uploaded document type isn't supported or when the system cannot confidently extract or classify the document information from the submitted images. Design your integration to handle"Unknown"values and avoid assuming these fields always contain a recognized document type or region.
Supported document types
These are the document types you may encounter in documentVerification.documentType and when configuring capture flows. Coverage and acceptance may vary by country and program.
| Document type | Description |
|---|---|
| Drivers License | A government-issued license permitting the consumer to operate a motor vehicle. |
| Identification Card | A non-driver government-issued photo ID for verifying identity. |
| Passport | An official government document certifying identity and nationality, used for international travel. |
| Employment Authorization Card | A document issued by USCIS that proves authorization to work in the U.S. |
| Permanent Resident Card | A document (for example, U.S. Green Card) proving the consumer's lawful permanent resident status. |
| Passport Card | A wallet-sized U.S. document used for land and sea travel between certain countries. |
| Military ID | An ID card issued by a country's armed forces to identify active-duty or retired service members. |
| Health Card | An ID card issued by a government or insurer to access health services. |
| Visa | An official endorsement permitting the consumer to enter, stay, or work in a foreign country. |
| Social Security Card | A U.S. government-issued card showing the consumer's Social Security Number (SSN). |
| Weapons License | A document permitting the consumer to carry or own firearms or other regulated weapons. |
| Tribal ID Card | A government-recognized identity card issued by a Native American or Indigenous tribe. |
| Mexican Permanent Resident Card | An identity document for foreign nationals authorized to live permanently in Mexico. |
| Unknown | Returned when the document type is not supported or can't be confidently classified. |
decision fields
decision fieldsRecommendations only:
DocV responses are recommendations only. They inform your decision-making process and fit into your organization's broader risk strategy.
| Field | Type | Description | Example |
|---|---|---|---|
name | String | Internal label representing the configured decision rule set (for example, "lenient" or "strict"). | "lenient" |
value | String | Outcome of the DocV analysis. One of: • accept — Images met validation criteria and were verified.• reject — Images failed some or all required validation criteria.• resubmit — User must resubmit due to unacceptable image quality or missing data.• review — Images did not meet configured criteria and should be manually reviewed. Returned only if enabled in your DocV Product Settings. | "reject" |
documentData fields
documentData fieldsThe documentData object contains the data extracted from OCR, barcode, or MRZ.
Missing
documentData:If DocV cannot extract sufficient information due to poor image quality or unreadable fields, the
documentDataobject is not present, and the decision isresubmit.
| Field | Type | Description | Example |
|---|---|---|---|
personalNumber | String | The personal identifier value extracted from the ID, when applicable. Meaning and availability vary by country and document type, but it generally represents an identifier tied to the individual rather than the document itself (for example, a tax identification number or voter ID). | "123456" |
personalNumberType | String | Indicates what the personal number represents. Supported values depend on the issuing country and document type. | "BRA_CPF" |
firstName | String | First/given name parsed from the document. | "John" |
surName | String | Last/family name parsed from the document. | "Smith" |
fullName | String | Full name as printed on the document. | "John Smith" |
address | String | Single-line address string (as returned). | "32194 N College Ave, New York City, NY 10001" |
parsedAddress | Object | Structured address parts extracted from address. | See parsedAddress fields. |
documentNumber | String | Document identifier/number. | "00000000" |
dob | String | Date of birth (YYYY-MM-DD). | "1989-05-07" |
issueDate | String | Document issue date (YYYY-MM-DD). | "2021-01-12" |
expirationDate | String | Document expiration date (YYYY-MM-DD). | "2029-05-07" |
barcode | Object | Identity and license details parsed from the barcode of a government-issued ID. | See barcode fields. |
parsedAddress fields
parsedAddress fields| Field | Type | Description | Example |
|---|---|---|---|
physicalAddress | String | Primary street address (line 1) of the parsed location. | "32194 N College Ave" |
physicalAddress2 | String | Combined city, state, and postal code as returned from parsing. | "New York City NY 10001" |
city | String | City component extracted from the parsed address. | "New York City" |
state | String | State, province, or regional code component extracted from the address. | "NY" |
country | String | ISO 3166-1 alpha-2 country code associated with the parsed address. | "US" |
zip | String | Postal or ZIP code component extracted from the parsed address. | "10001" |
barcode fields
barcode fields| Field | Type | Description | Example |
|---|---|---|---|
firstName | String | The individual's given or first name as encoded in the barcode. | "John" |
middleName | String | The individual's middle name or initial extracted from the barcode. | "Larry" |
surName | String | The individual's last name or family name as encoded in the barcode. | "Smith" |
nameSuffix | String | Any name suffix present, such as Jr., Sr., II, or III. | "JR" |
complianceType | String | Code representing the license's compliance type (for example, Federal or state). | "F" |
licenseClass | String | The class or category of license (for example, commercial, operator). | "C" |
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": "US",
"state": "NY"
},
"decision": {
"name": "lenient",
"value": "accept"
},
"documentData": {
"firstName": "John",
"surName": "Smith",
"fullName": "John Smith",
"dob": "1989-05-07",
"address": "32194 N College Ave, New York City, NY 10001",
"parsedAddress": {
"physicalAddress": "32194 N College Ave",
"physicalAddress2": "New York City NY 10001",
"city": "New York City",
"state": "NY",
"country": "US",
"zip": "10001"
},
"documentNumber": "00000000",
"issueDate": "2021-01-12",
"expirationDate": "2029-05-07"
}
}
}
}
]
}
}secondaryDocument fields
secondaryDocument fieldsWhen the evaluation runs a Secondary Document Capture flow, the result is nested under data_enrichments[].response.secondaryDocument instead of documentVerification.
| Field | Type | Description | Example |
|---|---|---|---|
transactionGroupId | String | Identifier linking related document transactions. May be null. | "2b74fe41-bf69-484a-82c7" |
decision | Object | Result of the secondary document analysis. | See secondaryDocument.decision fields. |
reasonCodes | Array of Strings | Rule or insight codes explaining the result. | See the reason code list. |
documents | Array of Objects | One entry per uploaded document, with capture metadata. | See documents fields. |
document | Object | Parsed details for a single secondary document, when extraction is available. May be null. | See document fields. |
digitalIntelligence | Object | Device risk signals collected during capture. May be null. | { ... } |
signals | Object | Additional DocV signal data. May be null. | { ... } |
secondaryDocument.decision fields
secondaryDocument.decision fields| Field | Type | Description | Example |
|---|---|---|---|
strategy | String | Configured decision rule set applied to the secondary document. | "lenient" |
value | String | Outcome of the analysis. One of accept, reject, resubmit, or review. | "accept" |
documents fields
documents fieldsEach object in the documents array describes one uploaded file.
| Field | Type | Description | Example |
|---|---|---|---|
type | String | Document type label configured for the flow. | "Utility Bill" |
names | Array of Strings | Names detected on the document, when available. | ["Jane Doe"] |
uploadedAt | String | Timestamp when the document was uploaded. | "2026-05-01T12:34:56Z" |
uploads | String | Reference to the uploaded file or files. May be null. | "upload-7f2a" |
document fields
document fieldsThe document object contains parsed data extracted from a single secondary document.
| Field | Type | Description | Example |
|---|---|---|---|
documentType | String | Type of the secondary document. | "Utility Bill" |
names | Array of Strings | Names parsed from the document. | ["Jane Doe"] |
uploadedAt | String | Timestamp when the document was uploaded. | "2026-05-01T12:34:56Z" |
userData | Object | Identity data extracted from the document. May be null. | See document.userData fields. |
documentData | Object | Additional key-value data extracted from the document. Keys vary by document type. | { "accountNumber": "1234" } |
document.userData fields
document.userData fields| Field | Type | Description | Example |
|---|---|---|---|
firstName | String | First/given name extracted from the document. | "Jane" |
surName | String | Last/family name extracted from the document. | "Doe" |
fullName | String | Full name as printed on the document. | "Jane Doe" |
dob | String | Date of birth (YYYY-MM-DD). | "2000-05-01" |
address | String | Single-line address string. | "463 Mertz Motorway, Port Spencer, OH 65036" |
parsedAddress | Object | Structured address parts. Uses the same fields as the parsedAddress object documented above. | See parsedAddress fields. |
Socure Pass enrichment results
Enrichment outputs are returned in the data_enrichments array. The response shape depends on which path the consumer took:
- Socure Pass path: A single
SocurePassenrichment containing the stored verified identity data. - Standard DocV path: Two enrichments:
SocureDocRequest(session metadata) andSocure(document verification results).
Handle both response shapes:
The webhook payload differs depending on which path the consumer takes. If the consumer selects "Verify with Socure Pass," the enrichment comes from the
SocurePassprovider. If the consumer selects "Continue with Standard Verification," the enrichment comes from the standard Document Verification provider. Your integration must handle both response shapes.
How to determine which path the consumer took
Check the tags array or enrichment_provider field:
| Signal | Socure Pass path | Standard DocV path |
|---|---|---|
tags contains "Socure Pass Triggered" | Yes | No |
enrichment_provider | "SocurePass" | "Socure" / "SocureDocRequest" |
| Verified data location | data_enrichments[].response.individual | data_enrichments[].response.documentVerification.documentData |
Socure Pass enrichment (reuse path)
| Field | Type | Description | Example |
|---|---|---|---|
enrichment_name | String | Name of the enrichment executed as part of the evaluation. | "Socure Pass" |
enrichment_endpoint | String | API endpoint used for the enrichment request. | "https://reusable-id-sandbox.webapps.us-east-1.prod.socure.link/api/proof" |
enrichment_provider | String | Provider responsible for the enrichment. | "SocurePass" |
status_code | Integer | HTTP status code returned by the enrichment provider. | 200 |
request | Object | Identifiers sent to the Socure Pass service to retrieve verified claims. | See the request fields in the following sections. |
response | Object | Enrichment response payload containing verified identity data. | See the response.individual fields in the following sections. |
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. | "" |
Example Socure Pass webhook payload
{
"enrichment_name": "Socure Pass",
"enrichment_endpoint": "https://reusable-id-sandbox.webapps.us-east-1.prod.socure.link/api/proof",
"enrichment_provider": "SocurePass",
"status_code": 200,
"request": {
"account_id": "acc-ucrmplxHmx",
"consent_id": "01KR4PQH6MRJ3RFXAHFF4MVECW",
"eval_id": "2b74fe41-bf69-484a-82c7-4630f5846fa6"
},
"response": {
"individual": {
"address": {
"city": "Port Spencer",
"country": "USA",
"line_1": "463 Mertz Motorway",
"postal_code": "65036",
"state": "OH"
},
"date_of_birth": "2000-05-01",
"family_name": "Doe",
"given_name": "Jane",
"identification_documents": {
"expiry_date": "2099-01-01",
"issued_date": "2015-01-01",
"issuing_country": "USA",
"issuing_state": "NY",
"number": "123456789",
"type": "Drivers License"
}
},
"request_id": "59762fc4-302b-9458-9b1b-2844f4c92791"
},
"is_source_cache": false,
"total_attempts": 1
}Enrichment request fields
request fieldsThe Socure Pass enrichment sends three identifiers to retrieve the consumer's verified claims.
| Field | Type | Description | Example |
|---|---|---|---|
account_id | String | Partner account identifier. | "acc-ucrmplxHmx" |
consent_id | String | The consent record from the consumer's approval. | "01KR4PQH6MRJ3RFXAHFF4MVECW" |
eval_id | String | The current RiskOS™ evaluation ID. | "2b74fe41-bf69-484a-82c7-4630f5846fa6" |
Enrichment response fields
response fields| Field | Type | Description | Example |
|---|---|---|---|
request_id | String | Unique identifier for the enrichment request. | "59762fc4-302b-9458-9b1b-2844f4c92791" |
individual | Object | The verified identity data the consumer consented to share. | See the response.individual fields in the following section. |
response.individual fields
response.individual fields| Field | Type | Description | Example |
|---|---|---|---|
given_name | String | First/given name from the verified document. | "Jane" |
family_name | String | Last/family name from the verified document. | "Doe" |
date_of_birth | String | Date of birth (YYYY-MM-DD). | "2000-05-01" |
address | Object | Structured address from the verified document. | See address fields in the following section. |
identification_documents | Object | Document details from the verified credential. | See the identification_documents fields in the following section. |
address fields (Socure Pass)
address fields (Socure Pass)| Field | Type | Description | Example |
|---|---|---|---|
line_1 | String | Primary street address. | "463 Mertz Motorway" |
city | String | City. | "Port Spencer" |
state | String | State or region code. | "OH" |
postal_code | String | Postal or ZIP code. | "65036" |
country | String | Country code. | "USA" |
identification_documents fields
identification_documents fields| Field | Type | Description | Example |
|---|---|---|---|
type | String | Document type verified. | "Drivers License" |
number | String | Document identifier/number. | "123456789" |
issuing_country | String | Country that issued the document. | "USA" |
issuing_state | String | State that issued the document. | "NY" |
issued_date | String | Document issue date (YYYY-MM-DD). | "2015-01-01" |
expiry_date | String | Document expiration date (YYYY-MM-DD). | "2099-01-01" |
identification_documents.type uses the same values listed under Supported document types in the documentType fields section. Socure Pass commonly returns Drivers License, Identification Card, Passport, or Passport Card.
The Socure Pass session identifiers (data.custom) and the Socure Pass tags (data.tags) are top-level data fields, documented under Payload structure.
Related references
Updated about 22 hours ago
