---
title: "Finalize document processing"
url: "https://developer.incode.com/api-reference/finalize-document/"
section: "api-reference"
group: "Proof of address capture"
version: "v1.1"
status: "live"
endpoint: "POST /omni/finalize/document"
---
# Finalize document processing

`POST /omni/finalize/document`

Base URL: `https://demo-api.incodesmile.com` — Incode demo environment

Finalize document processing for multi-page documents with optional page capture

## Path & query parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `api-version` | header | string | yes |  |

## Request body

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `type` | string | yes | Type of document image for which processing is being finalized. Enum: `selfie`, `authenticationSelfie`, `sorSelfie`, `videoSelfie`, `croppedFace`, `croppedAuthenticationSelfie`, `croppedFrameAnalysisSelfie`, `croppedIDFace`, `croppedNfcFace`, `document`, `originalSignature`, `signature`, `initials`, `fullFrameFrontID`, `fullFrameBackID`, `croppedFrontID`, `refCroppedFrontID`, `croppedBackID`, `refCroppedBackID`, `croppedOriginalFrontID`, `croppedOriginalBackID`, `confSelfie`, `confFrontID`, `confBackID`, `confPoa`, `addressStatement`, `medicalDoc`, `secondId`, `thirdId`, `contract`, `signedContract`, `videoSelfieCompareID`, `videoSelfieCompareOcr`, `videoSelfieCompareBackID`, `videoSelfieCompareBackOcr`, `otherDocument1`, `otherDocument2`, `otherDocument3`, `paymentProof`, `consent`, `annotationImg`, `externalScreen`, `eSignDocument`, `sessionExport`, `zoomedFrontId`, `zoomedBackId`, `zoomedSelfie`, `regionBasedTemplate`, `renaperCropped`, `voiceConsentSelfie`, `v5cLogbook`, `v5cMultiPageLogbook`, `carInvoice`, `circulationCard`, `financeSettlement`, `faceRecordingFrame`, `signatureImageID`, `ghostSignatureImageID`, `ghostPortraitImageID`, `fingerprintImageID`, `documentNumberCropImageID`, `ineMexScan` |

## Responses

### 200

OK

Response body (`application/json`):

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `status` | string |  | AddDocumentStatus Enum: `SUCCESS`, `PROCESS_DOC_ERROR`, `SESSION_ERROR`, `ADD_NEXT_PAGE`, `OPTIONAL_PAGE_CAPTURE`, `CLASSIFICATION_ERROR`, `MULTI_PAGE_CLASSIFICATION_ERROR`, `V5C_REGISTRATION_NUMBER_MISMATCH`, `V5C_REFERENCE_NUMBER_MISMATCH`, `V5C_NUMBER_MISMATCH`, `FSL_AGREEMENT_REFERENCE_MISMATCH`, `FSL_NAME_MISMATCH`, `MANDATORY_FIELD_MISSING`, `UNSUPPORTED_PAGE_NUMBERS`, `VALIDATION_ERROR`, `UNEXPECTED_ERROR`, `FINALIZE_ERROR_NO_PAGES`, `UNSUPPORTED_MP_DOCUMENT_TYPE` |

## Code samples

Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `<YOUR_API_KEY>` with a key for your region.

### cURL

```bash
curl -X POST https://demo-api.incodesmile.com/omni/finalize/document \
  -H "x-api-key: <YOUR_API_KEY>" \
  -H "api-version: 1.0" \
  -H "Content-Type: application/json" \
  -d '{
    "type": ""
  }'
```

### Node

```js
const res = await fetch("https://demo-api.incodesmile.com/omni/finalize/document", {
  method: "POST",
  headers: {
      "x-api-key": "<YOUR_API_KEY>",
      "api-version": "1.0",
      "Content-Type": "application/json",
  },
    body: JSON.stringify({
      "type": ""
    }),
});
const data = await res.json();
```

### Python

```python
import requests

headers = {
    "x-api-key": "<YOUR_API_KEY>",
    "api-version": "1.0",
    "Content-Type": "application/json",
}
res = requests.post("https://demo-api.incodesmile.com/omni/finalize/document", headers=headers, json={
  "type": ""
})
data = res.json()
```

### Java

```java
HttpRequest req = HttpRequest.newBuilder()
    .uri(URI.create("https://demo-api.incodesmile.com/omni/finalize/document"))
    .header("x-api-key", "<YOUR_API_KEY>")
    .header("api-version", "1.0")
    .header("Content-Type", "application/json")
    .method("POST", HttpRequest.BodyPublishers.ofString("{\n  \"type\": \"\"\n}"))
    .build();
HttpResponse<String> res = HttpClient.newHttpClient()
    .send(req, HttpResponse.BodyHandlers.ofString());
```

### Example response

```json
{
  "success": true,
  "status": "OK"
}
```
