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

# Persona Document Verification

## Persona Document Verification

Persona Document Verification verifies an individual's government-issued ID and returns the verification status, confidence reasons, extracted identity fields, and individual checks. The Workflow Builder block ID and service ID are both `persona`. This block is available only for individual entities.

## Requirements

| Application field | Requirement | Notes |
| - | - | - |
| Government ID type | Required | Accepted values: `drivers_license`, `state_id`, or `passport`. |
| Front image | Required | JPG, PNG, BMP, PDF, or GIF up to 25 MB; may be a new upload or an existing application file. |
| Back image | Optional | JPG, PNG, BMP, PDF, or GIF up to 25 MB; may be a new upload or an existing application file. |
| Application owner | Conditional | Required when the application has multiple owners; otherwise, the sole owner is selected. |
| Application business address | Required | Used as the source for the document country. |

## Run Persona Document Verification

Call [Create Document Verification](/api-reference/workflow-management/create-document-verification):

```text theme={"system"}
POST /api/applications/{application_id}/document_verifications
```

Lendflow creates a Persona inquiry, uploads the selected government ID, submits the verification, and stores the result asynchronously.

## Data Orchestration availability

Persona results are available to Data Orchestration conditions and owner-field synchronization after a Persona verification exists. Data Orchestration does not create the required government-ID upload; create it through the document-verification API or the Persona Workflow Builder block first.

## What the service returns

| Response area | Meaning |
| - | - |
| Verification lifecycle | Lendflow creation, submission, completion, failure, and error state. |
| `report.status` | Persona's overall verification result. |
| Confidence data | Persona's entity-confidence score and reasons. |
| Extracted identity | Names, birthdate, address, document identifiers, dates, and other fields when detected. |
| `report.checks` | Individual Persona checks with status, reasons, and metadata. |

## Representative response

```json theme={"system"}
{
  "data": {
    "id": 365,
    "service": "persona",
    "verification": "government-id",
    "document_type": "drivers_license",
    "submitted_at": "2026-09-11T16:10:00.000000Z",
    "failed_at": "2026-09-11T16:10:03.000000Z",
    "has_passed": false,
    "has_failed": true,
    "error": null,
    "report": {
      "status": "failed",
      "country_code": null,
      "entity_confidence_score": 0,
      "entity_confidence_reasons": [
        "attribute_missing",
        "replica_detected",
        "glare",
        "mrz_not_detected"
      ],
      "id_class": null,
      "capture_method": "api",
      "name_first": null,
      "name_last": null,
      "birthdate": null,
      "document_number": null,
      "checks": [
        {
          "name": "id_inquiry_comparison",
          "status": "not_applicable",
          "reasons": ["missing_properties"],
          "metadata": []
        }
      ]
    },
    "files": [
      {
        "id": 35720,
        "mime_type": "image/png",
        "original_name": "front.png",
        "file_type": "verification_doc"
      }
    ]
  }
}
```

## Response attributes

| Attribute | Type | Meaning | Possible values or units | When returned |
| - | - | - | - | - |
| `data.id` | Integer | Lendflow verification ID. | Positive integer. | After creation. |
| `data.service` | String | Verification service. | `persona` | Always. |
| `data.verification` | String | Verification operation. | `government-id` | Always. |
| `data.document_type` | String | Requested ID type. | `drivers_license`, `state_id`, or `passport`. | Always. |
| `data.has_passed`, `data.has_failed` | Boolean | Lendflow's terminal-state indicators. | `true` or `false`. | Always. |
| `data.report.status` | String | Persona verification result. | Provider status such as `passed` or `failed`. | In a completed report. |
| `data.report.entity_confidence_score` | Number | Persona entity-confidence score. | Provider number. | When supplied. |
| `data.report.entity_confidence_reasons` | Array | Reasons affecting confidence. | Provider reason strings. | When supplied. |
| `data.report.id_class` | String or null | Persona's detected ID class. | Provider value or `null`. | After analysis. |
| `data.report.name_first`, `name_middle`, `name_last` | String or null | Extracted name components. | Text or `null`. | When detected. |
| `data.report.birthdate`, `issue_date`, `expiration_date` | String or null | Extracted dates. | Provider date string or `null`. | When detected. |
| `data.report.checks` | Array | Persona checks. | Zero or more check objects. | In the report. |
| `data.report.checks[].status` | String | Result of one check. | Provider status such as `not_applicable`. | For each check. |
| `data.files` | Array | Stored front- and back-document metadata. | Zero or more file objects. | When files are loaded. |

## Errors and statuses

* HTTP `422` indicates an invalid service, verification, ID type, owner ID, file ID, format, or file size.
* HTTP `403` indicates that the caller cannot update the application or the client cannot run `persona`.
* Persona client errors use the first provider error title when available. Other provider failures are stored as `Failed to verify document.`
* A missing optional back image can reduce the information available to Persona, but it does not fail Lendflow request validation.

## FAQ

<AccordionGroup>
  <Accordion title="Which entity type supports the Persona block?">
    The registered Workflow Builder block supports individual entities only.
  </Accordion>

  <Accordion title="Which ID types can I submit?">
    Submit `drivers_license`, `state_id`, or `passport`.
  </Accordion>

  <Accordion title="Can Data Orchestration upload an ID to Persona?">
    No. Data Orchestration can evaluate and synchronize existing Persona results, but the government-ID verification must be created first.
  </Accordion>
</AccordionGroup>
