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

# Inscribe Document Verification

## Inscribe Document Verification

Inscribe Document Verification checks an uploaded document for fraud and returns document metadata, extracted details, and quality and trust scores. The Workflow Builder block ID and service ID are both `inscribe`; the block supports business and individual entities.

## Requirements

| Application field | Requirement | Notes |
| - | - | - |
| Document type | Required | Accepted values: `drivers_license`, `social_security_card`, `bank_statement`, `payslip`, `tax_form`, `invoice`, `utility_bill`, `check`, `business_filing`, `financial_statement`, or `unknown`. |
| Verification document | Required | JPG, PNG, HEIC, or PDF up to 50 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. |

## Run Inscribe Document Verification

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

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

The request creates a verification record and queues `inscribe`. Processing is asynchronous; Inscribe completes the record through a webhook.

## Data Orchestration availability

Inscribe is available as an asynchronous Data Orchestration prerequisite. Inscribe conditions can evaluate completed results. If a result is missing, Data Orchestration can submit existing unprocessed Inscribe verifications or create bank-statement verifications from application bank-statement files. The optional `number_of_bank_statements` setting defaults to `3`.

Data Orchestration does not replace the document-verification API for an arbitrary uploaded document.

## What the service returns

| Response area | Meaning |
| - | - |
| Verification lifecycle | Identifies when Lendflow created, submitted, completed, failed, or errored the verification. |
| `report` | Inscribe's stored analysis. It is empty until Inscribe returns a result. |
| `files` | Metadata for the document stored by Lendflow. |
| `personal_information` | The associated owner, when one was resolved. |

## Representative response

```json theme={"system"}
{
  "data": {
    "id": 364,
    "service": "inscribe",
    "verification": "document",
    "document_type": "drivers_license",
    "submitted_at": "2026-09-11T16:00:00.000000Z",
    "passed_at": "2026-09-11T16:00:06.000000Z",
    "failed_at": null,
    "has_passed": true,
    "has_failed": false,
    "error": null,
    "report": {
      "document_type": "DRIVING_LICENSE",
      "file_type": "IMAGE",
      "is_fraudulent": false,
      "quality_score": 92,
      "trust_score": 74,
      "state": "PROCESSED",
      "total_pages": 1,
      "parsed_details": {
        "date_of_birth": {
          "confidence": 0.72,
          "normalized": "2000-01-01"
        }
      }
    },
    "files": [
      {
        "id": 35719,
        "mime_type": "image/jpeg",
        "original_name": "document.jpg",
        "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. | `inscribe` | Always. |
| `data.verification` | String | Verification operation. | `document` | Always. |
| `data.document_type` | String | Requested Lendflow document type. | One of the accepted `type` values. | Always. |
| `data.passed_at`, `data.failed_at`, `data.errored_at` | String or null | Terminal lifecycle timestamps. | ISO 8601 timestamp or `null`. | As processing progresses. |
| `data.error` | String or null | Stored execution error. | Error text or `null`. | When processing errors. |
| `data.report.is_fraudulent` | Boolean | Whether Inscribe identified fraud. | `true` or `false`. | When supplied. |
| `data.report.quality_score` | Number | Provider document-quality score. | 0–100 in the current response shape. | When supplied. |
| `data.report.trust_score` | Number | Provider trust score. | 0–100 in the current response shape. | When supplied. |
| `data.report.state` | String | Provider processing state. | For example, `PROCESSED`, `ERROR_PROCESSING`, `VIRUS_DETECTED`, `PASSWORD_PROTECTED`, or `EXCEEDS_MAX_COUNT`. | In the completed report. |
| `data.report.parsed_details` | Object | Provider-extracted document fields. | Provider-dependent; fields may be absent. | When Inscribe extracts details. |
| `data.files` | Array | Stored verification-document metadata. | Zero or more file objects. | When files are loaded. |

## Errors and statuses

* HTTP `422` indicates an invalid service, verification, document type, owner ID, file ID, file format, or file size.
* HTTP `403` indicates that the caller cannot update the application or the client cannot run `inscribe`.
* `error`, `error_status_code`, and `errored_at` describe asynchronous execution errors.
* `has_passed` and `has_failed` reflect stored terminal timestamps; an accepted creation response does not mean verification has finished.

## FAQ

<AccordionGroup>
  <Accordion title="What verification value does Inscribe require?">
    Use `document`. `government-id` is not an Inscribe verification value.
  </Accordion>

  <Accordion title="Does Inscribe accept HEIC files?">
    Yes. Lendflow accepts JPG, PNG, HEIC, and PDF documents for Inscribe, up to 50 MB.
  </Accordion>

  <Accordion title="Can Data Orchestration start Inscribe?">
    Yes, when an Inscribe attribute needs prerequisite data and bank statements or unprocessed Inscribe verifications are available. Use the document-verification API for an arbitrary document upload.
  </Accordion>
</AccordionGroup>
