> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lendflow.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Vouched KYC

## Vouched KYC

Vouched KYC provides identity-document verification and identity cross-checking for a primary business owner. Verification sends the applicant through a hosted identity experience, while CrossCheck compares submitted identity information without requiring an applicant session.

The **Vouched KYC** block is available for individual entities in the **KYC** category.

## Available services

| Service | Required data | User-facing role |
| - | - | - |
| **Vouched Verification** | No owner field is required by the current request validator. | Creates an identity-verification session and stores the completed Vouched job result. |
| **Vouched CrossCheck** | Owner email, telephone, or both | Compares the owner's identity, contact, and address information with Vouched signals. |
| **Vouched Invite Link** | No owner field is required by the current request validator. | Helper service that creates the hosted Verification URL. |
| **Vouched Download PDF** | Completed Verification result | Helper service that retrieves the completed verification report and stores it as a private Lendflow file. |

Users interact primarily with **Verification** and **CrossCheck**. Invite-link creation and PDF retrieval support the Verification flow.

## Requirements

### Verification invite

| Application field | Requirement | Notes |
| - | - | - |
| Owner email | Optional | Uses the primary owner's email. |
| Owner telephone | Optional | Uses the primary owner's telephone. |
| Owner first and last name | Optional | Uses the primary owner's name. |

Although the owner fields are optional in the Vouched request, populate them so the verification session is associated with the expected applicant.

### CrossCheck

| Application field | Requirement | Notes |
| - | - | - |
| Owner email | Conditional | Uses the primary owner's email. An email, a telephone number, or both are required. |
| Owner telephone | Conditional | Uses the primary owner's telephone. A telephone number, an email, or both are required. |
| Owner first and last name | Optional | Uses the primary owner's name and can improve identity matching. |
| Street address, unit, city, state, ZIP code, and country | Optional | Uses the business address and can improve identity matching. |

Lendflow's request validator permits each identity field to be empty. However, Vouched requires an email, a telephone number, or both. The provider returns an invalid-request error when neither value is submitted. Names and addresses improve the identity-matching result.

## Verification flow

1. Generate a Vouched invite URL.
2. Send or display the URL to the applicant.
3. The applicant completes the selected identity-verification experience.
4. Vouched sends the completed job to Lendflow through a signed webhook.
5. Lendflow stores the Verification response.
6. When available, Lendflow downloads the verification PDF and attaches it privately to the primary owner.

If the webhook does not complete the flow, Lendflow can poll Vouched for the job result. A verification that remains incomplete eventually receives a timeout failure.

## Generate a Verification link through the API

1. Call [Create Temporary Application Links](/api-reference/workflow-management/create-temporary-application-links) for the application.
2. Set `vouched_invite_link` to `true`.
3. Set `auth_type` to `idv` or `id`. When omitted or unsupported, Lendflow defaults to `idv`.
4. Use the returned `vouched_invite_link` URL for the applicant session.

The application must have a primary owner for the verification result to be associated and stored correctly.

## Run CrossCheck through the API

1. Call [Enrich Business Credit Application](/api-reference/workflow-management/enrich-business-credit-application) for the application.
2. Set `provider` to `vouched_cross_check`.
3. Include the applicable underwriting `stage_id` when required by the application's workflow.
4. Confirm that the response contains `data.onqueue: true`.
5. Poll [Get Commercial Data](/api-reference/workflow-management/get-commercial-data) with `services[]=vouched_cross_check`.
6. Check `statuses.vouched.cross_check` and read `commercial_data.vouched.cross_check`.

## Data Orchestration availability

Vouched is not currently available as a Data Orchestration service. Use the KYC Workflow Builder block, temporary-link endpoint, or application enrichment endpoint.

## How Vouched responses are stored

The path to a result depends on how the service completed:

| Flow | Path in application commercial data | Stored shape |
| - | - | - |
| Verification completed by webhook | `commercial_data.vouched.verification` | Complete Vouched job object. |
| Verification retrieved by polling | `commercial_data.vouched.verification[]` | Array of Vouched job objects returned by Find Jobs. |
| Standalone CrossCheck | `commercial_data.vouched.cross_check` | Complete standalone CrossCheck response, including its outer `id` and `result` objects. |
| CrossCheck included in Verification | `commercial_data.vouched.cross_check` | Embedded `result.crosscheck` object without the standalone response's outer `id` and `result` objects. |

Check whether the stored value is an object or an array before reading Verification fields. For CrossCheck, check whether the value contains an outer `result` object before selecting a nested field.

## Verification sample response

```json theme={"system"}
{
  "id": "example-job-id",
  "status": "completed",
  "completed": true,
  "errors": [],
  "result": {
    "success": true,
    "firstName": "JANE",
    "lastName": "DOE",
    "birthDate": "02/20/1990",
    "country": "US",
    "confidences": {
      "id": 1,
      "nameMatch": 0.99,
      "idQuality": 0.94
    },
    "featuresEnabled": {
      "crosscheckEnabled": false,
      "idvEnabled": true
    }
  },
  "submitted": "2026-09-09T15:00:00+00:00",
  "updatedAt": "2026-09-09T15:02:00+00:00"
}
```

### Verification response attributes

| Attribute | Type | Meaning |
| - | - | - |
| `id` | String | Vouched job identifier used for polling and PDF retrieval. |
| `status` | String | Current job status, such as `completed`. |
| `completed` | Boolean | Whether the Vouched job is complete. This field does not independently indicate approval. |
| `errors` | Array | Errors returned for the job. Lendflow fixtures also contain entries marked as warnings; treat that as observed provider behavior rather than a guaranteed schema. |
| `result` | Object | Identity-verification result. |
| `result.success` | Boolean | Whether identity verification completed successfully without errors. Warnings can still be present, and later manual review can override the result. |
| `result.firstName` | String | First name parsed from the identity result. |
| `result.lastName` | String | Last name parsed from the identity result. |
| `result.birthDate` | String | Birth date parsed from the identity result. |
| `result.country` | String | Issuing country of the identity document, represented as an ISO 3166-1 country code. |
| `result.confidences` | Object | Vouched verification confidence scores. The documented scores range from 0 to 1. |
| `result.confidences.id` | Number | Confidence score for the submitted identity-document image. |
| `result.confidences.nameMatch` | Number or null | Confidence score for the match between the user-provided name and the name extracted from the identity document. |
| `result.confidences.idQuality` | Number | Confidence score for the image quality of the identity document. |
| `result.featuresEnabled` | Object | Identifies Vouched features enabled for the job. |
| `result.featuresEnabled.crosscheckEnabled` | Boolean or null | Whether CrossCheck was enabled as part of the verification job. When enabled, the job can also contain `result.crosscheck`. |
| `result.featuresEnabled.idvEnabled` | Boolean or null | Whether identity-document verification was enabled for the job. |
| `submitted` | String | ISO 8601 timestamp when the job was submitted. |
| `updatedAt` | String | ISO 8601 timestamp when Vouched last updated the job. |

## CrossCheck sample response

```json theme={"system"}
{
  "id": "example-crosscheck-id",
  "result": {
    "success": true,
    "warnings": false,
    "email": {
      "isValid": true,
      "isMatch": true
    },
    "phone": {
      "isValid": true,
      "isMatch": true,
      "type": "mobile",
      "carrier": "Example Carrier"
    },
    "address": {
      "isValid": true,
      "isMatch": true
    },
    "confidences": {
      "identity": 0.92
    }
  }
}
```

### CrossCheck response attributes

The current Lendflow fixture for standalone CrossCheck includes `result.success` and `result.warnings`. These fields are not guaranteed by Vouched's current standalone CrossCheck schema, so integrations should not require them.

| Attribute | Type | Meaning |
| - | - | - |
| `id` | String | Vouched identifier for the CrossCheck request. |
| `result.success` | Boolean | Observed Lendflow fixture field indicating that the standalone job completed successfully. Do not use it as the identity-match decision. |
| `result.warnings` | Boolean | Observed Lendflow fixture field indicating warning conditions. |
| `result.email` | Object or null | Email validity and name-match signals when an email result is available. |
| `result.email.isValid` | Boolean | Whether Vouched considers the submitted email address valid. |
| `result.email.isMatch` | Boolean | Whether the name associated with the email address matches the submitted person. |
| `result.phone` | Object or null | Phone validity, name-match, line-type, and carrier signals when a phone result is available. |
| `result.phone.isValid` | Boolean | Whether Vouched considers the submitted telephone number valid. |
| `result.phone.isMatch` | Boolean | Whether the name associated with the telephone number matches the submitted person. |
| `result.phone.type` | String | Telephone classification: `fixed-voip`, `landline`, `mobile`, `non-fixed-voip`, `premium-rate`, `tollfree`, `voicemail`, or `other`. |
| `result.phone.carrier` | String | Carrier associated with the telephone number. |
| `result.address` | Object or null | Address validity and identity-match signals when available. |
| `result.address.isValid` | Boolean | Whether Vouched considers the submitted address valid. |
| `result.address.isMatch` | Boolean | Whether the name on the address matches the submitted person. |
| `result.confidences.identity` | Number | Vouched's overall identity risk-confidence score from 0 to 1, based on address, email, and telephone details cross-referenced with submitted or identity-document information. |

## Errors

| Message or result | Meaning |
| - | - |
| Failed to create Vouched invite link | Credentials are invalid or Vouched did not return a successful invite response. |
| Verification did not complete in time | The applicant did not finish before the polling window ended. |
| Invalid webhook signature | The configured Vouched signature or private key does not match the webhook signature. |
| No verification data for this application | A PDF was requested before an invite or completed verification supplied a Vouched job ID. |
| Service not enabled | The applicable Vouched service is unavailable for the client. |

## FAQ

<AccordionGroup>
  <Accordion title="What is the difference between Verification and CrossCheck?">
    Verification requires an applicant identity session and can include document and selfie checks. CrossCheck compares identity, contact, and address information without an applicant session.
  </Accordion>

  <Accordion title="What is the difference between id and idv?">
    `id` performs identity-document verification. `idv` performs identity and selfie verification and is the default invite type.
  </Accordion>

  <Accordion title="Why is there no Run button for Verification?">
    Verification begins through a hosted or embedded Vouched link because the applicant must complete the identity experience.
  </Accordion>

  <Accordion title="Can I run Vouched in Data Orchestration?">
    No. Vouched is not currently registered as a Data Orchestration service.
  </Accordion>
</AccordionGroup>
