# Incode Developer Hub — full documentation > Public developer documentation and REST API reference for the Incode Omni identity platform — onboarding, SDKs, and integration guides. 1043 pages. Each block below is one page: a metadata line, then the page's Markdown source. Blocks are separated by `---`. --- - Path: `api-reference/add-address-statement` - URL: https://developer.incode.com/api-reference/add-address-statement/ - Markdown: https://developer.incode.com/api-reference/add-address-statement.md - Endpoint: `POST /omni/add/address-statement` # Add proof of address `POST /omni/add/address-statement` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Add a proof of address statement as a blob. OCR data from statement will be automatically extracted ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `format` | query | string | | Enum: `image`, `pdf` | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/address-statement?format=%3Cformat%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/address-statement?format=%3Cformat%3E", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/address-statement?format=%3Cformat%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/address-statement?format=%3Cformat%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/address-statement?format=%3Cformat%3E") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/address-statement?format=%3Cformat%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/add-address-statement-v2` - URL: https://developer.incode.com/api-reference/add-address-statement-v2/ - Markdown: https://developer.incode.com/api-reference/add-address-statement-v2.md - Endpoint: `POST /omni/add/address-statement/v2` # Add proof of address v2 `POST /omni/add/address-statement/v2` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Add a proof of address statement as a base64 string. OCR data from statement will be automatically extracted ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `format` | query | string | | Enum: `image`, `pdf` | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `base64Image` | string | yes | Base64 string representation of the image | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/address-statement/v2?format=%3Cformat%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" \ -d '{ "base64Image": "" }' ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/address-statement/v2?format=%3Cformat%3E", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, body: JSON.stringify({ "base64Image": "" }), }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/address-statement/v2?format=%3Cformat%3E", headers=headers, json={ "base64Image": "" }) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/address-statement/v2?format=%3Cformat%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{\n \"base64Image\": \"\"\n}")) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/address-statement/v2?format=%3Cformat%3E") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" req.body = '{ "base64Image": "" }' res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/address-statement/v2?format=%3Cformat%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "base64Image": "" }'); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/add-back-id-v2` - URL: https://developer.incode.com/api-reference/add-back-id-v2/ - Markdown: https://developer.incode.com/api-reference/add-back-id-v2.md - Endpoint: `POST /omni/add/back-id/v2` # Add back side of ID `POST /omni/add/back-id/v2` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment This endpoint is used for storing back side of id for further processing. Image quality check is performed during that call. Number of retries is not limited. Once [process-id](/api-reference/process-id/) is finished, this endpoint cannot be called for retries. **Note**: Front-side of id should be uploaded before back side. In case of passport or only front sided documents, this endpoint should not be called. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `retry` | query | boolean | | Flag stating that this is retry attempt for add/back-id Default: `false` | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `base64Image` | string | | Image in base64 format. One of base64Image or imageUrl is required | | `imageUrl` | string | | URL of the image. One of base64Image or imageUrl is required | ## Responses ### 200 In case there's some issue when calling the endpoint due to classification failed, an issue such as bad quality, or any of the fail reasons the response will always have the field: - classification - failReason - sharpness - glare - horizontalResolution We recommend considering the call as failed if there's a failReason in the response or if the classification is false. Possible values for fail reason: - UNKNOWN_DOCUMENT_TYPE: document classification failed - WRONG_DOCUMENT_SIDE: can happen when uploading back side of id when front id is required or the other way around - WRONG_ONE_SIDED_DOCUMENT: uploading wrong document with only one side - WRONG_UNFOLDED_DOCUMENT: uploading unfolded document with unrecognizable sides - UNFOLDED_DOCUMENT_PAGE_MISMATCH: uploading unfolded document with mismatching sides - DOCUMENT_NOT_READABLE: document couldn't be read, probably due to image quality - UNABLE_TO_ALIGN_DOCUMENT: alignment failed - ID_TYPE_UNACCEPTABLE: invalid type of id - UNEXPECTED_ERROR_OCCURRED: unexpected error Whenever the classification is done successfully the fields that will always be present are: - classification - sharpness - glare - horizontalResolution - readibility - typeOfId - sessionStatus The remaining fields could be optional depending on the specific type of id and country of origin. Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `correctSharpness` | boolean | | It's true if the sharpness of the ID meets the requirements. | | `correctGlare` | boolean | | It's true if the glare of the ID meets the requirements. | | `horizontalResolution` | integer (int32) | | Value is based on the resolution of the cropped photo. Low value means after performing the crop we have a bad quality of image. We recommend to retry capture if value is below 155. | | `shadowConfidence` | number (float) | | Value 0 means it is no shadow on the image and image quality is good, while value 1 represents bad quality of image with a lot of shadow. We recommend to retry capture if value is 1. | | `classification` | boolean | | If true, server classified image as a front side of an id. If false, server failed to classify image as valid front side of an id or passport and other parameters can be ignored. | | `readability` | boolean | | If true, server can properly read ID. If false server failed to read some key places of the ID. | | `typeOfId` | string | | Enum: `Unknown`, `Passport`, `Visa`, `DriversLicense`, `IdentificationCard`, `Permit`, `Currency`, `ResidenceDocument`, `TravelDocument`, `BirthCertificate`, `VehicleRegistration`, `Other`, `WeaponLicense`, `TribalIdentification`, `VoterIdentification`, `Military`, `TaxIdentification`, `FederalID`, `MedicalCard` | | `issueYear` | integer (int32) | | Issue year of the ID. | | `issueName` | string | | Description of the ID. Could contain country code, state, type of ID, subtype of ID. | | `curpCheck` | boolean | | Only for Mexican IDs. Flag stating if curp was properly read. | | `sessionStatus` | string | | Session Status Enum: `Alive`, `Closed`, `Deleted` | | `countryCode` | string | | Valid ISO alpha-2 or alpha-3 code of the ID issuing country. | | `state` | string | | Issuing state of the ID. | | `failReason` | string | | Classification fail reason Enum: `UNKNOWN_DOCUMENT_TYPE`, `WRONG_DOCUMENT_SIDE`, `WRONG_ONE_SIDED_DOCUMENT`, `UNFOLDED_DOCUMENT_PAGE_MISMATCH`, `WRONG_UNFOLDED_DOCUMENT`, `DOCUMENT_NOT_READABLE`, `UNABLE_TO_ALIGN_DOCUMENT`, `ID_TYPE_UNACCEPTABLE`, `UNEXPECTED_ERROR_OCCURRED`, `DIGITAL_ID_REQUESTED_BUT_OTHER_PROVIDED` | | `skipBackIdCapture` | boolean | | Flag that signals if back id capture should be skipped or not. | | `forceFrontIdCapture` | boolean | | Flag that signals if front id capture must be executed after back. | | `showMandatoryConsent` | boolean | | Render mandatory consent page based on this parameter value. | | `regulationType` | string | | Regulation type for the mandatory consent (only if showMandatoryConsent set to true). | | `skipGlareFront` | boolean | | Flag that signals if front side glare should be ignored. | | `skipGlareBack` | boolean | | Flag that signals if back side glare should be ignored. | | `documentIsOnTheEdge` | boolean | | Flag that signals if document is on the edge on the full frame image. | | `acceptedDocuments` | array[string] | | List of accepted documents for that particular country in case of ID_TYPE_UNACCEPTABLE failReason. Enum: `Unknown`, `Passport`, `Visa`, `DriversLicense`, `IdentificationCard`, `Permit`, `Currency`, `ResidenceDocument`, `TravelDocument`, `BirthCertificate`, `VehicleRegistration`, `Other`, `WeaponLicense`, `TribalIdentification`, `VoterIdentification`, `Military`, `TaxIdentification`, `FederalID`, `MedicalCard` | | `imageRedacted` | boolean | | Flag that signals if image was redacted as part of the ID capture. | | `idFaceExtractionSkipped` | boolean | | True when biometric face extraction from the front ID was skipped because the client passed extractIdFace=false. While this flag is true, face-match flows that require an ID-side template cannot run; the flag is cleared on a subsequent add/front-id call where extractIdFace is true (or omitted). | | `captureAttemptsLimit` | CaptureAttemptsLimitDto | | Checked only if configured in the session flow. | | `captureAttemptsLimit.max` | integer (int32) | | Maximum number of attempts to capture a photo. | | `captureAttemptsLimit.remaining` | integer (int32) | | Number of remaining attempts to capture a photo. | | `idQualityAttemptApproved` | boolean | | ID quality check result based on ML readability estimation. True if perFieldReadability >= 0.9, false otherwise. | | `isDocumentExpired` | boolean | | Flag indicating if the document side is expired. | | `attemptId` | string | | Created attempt id. | ### 400 Custom error statuses: - 4004: Could not find user - 5003: Unsatisfied image size - 4092: Image format is unsupported or the image is unreadable Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ### 503 Image conversion temporarily unavailable; retry after the Retry-After header Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/back-id/v2?retry=false \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/back-id/v2?retry=false", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/back-id/v2?retry=false", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/back-id/v2?retry=false")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/back-id/v2?retry=false") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/back-id/v2?retry=false"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "correctSharpness": true, "correctGlare": true, "horizontalResolution": 0, "shadowConfidence": 0, "classification": true, "readability": true, "typeOfId": "Unknown", "issueYear": 0, "issueName": "string", "curpCheck": true, "sessionStatus": "Alive", "countryCode": "string", "state": "string", "failReason": "UNKNOWN_DOCUMENT_TYPE", "skipBackIdCapture": true, "forceFrontIdCapture": true, "showMandatoryConsent": true, "regulationType": "string", "skipGlareFront": true, "skipGlareBack": true, "documentIsOnTheEdge": true, "acceptedDocuments": [ "Unknown" ], "imageRedacted": true, "idFaceExtractionSkipped": true, "captureAttemptsLimit": { "max": 0, "remaining": 0 }, "idQualityAttemptApproved": true, "isDocumentExpired": true, "attemptId": "string" } ``` --- - Path: `api-reference/add-back-second-id-v2` - URL: https://developer.incode.com/api-reference/add-back-second-id-v2/ - Markdown: https://developer.incode.com/api-reference/add-back-second-id-v2.md - Endpoint: `POST /omni/add/back-second-id/v2` # Add back side of Second ID `POST /omni/add/back-second-id/v2` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Image quality check is performed during that call. Number of retries is not limited. Once id processing is finished, this endpoint cannot be called for retries. Front side of id should be uploaded before back side. In case of passport, this endpoint should not be called. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `captureType` | query | string | | Enum: `AUTO`, `MANUAL`, `NATIVE`, `UPLOAD` | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `base64Image` | string | | Image in base64 format. One of base64Image or imageUrl is required | | `imageUrl` | string | | URL of the image. One of base64Image or imageUrl is required | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `correctSharpness` | boolean | | It's true if the sharpness of the ID meets the requirements. | | `correctGlare` | boolean | | It's true if the glare of the ID meets the requirements. | | `horizontalResolution` | integer (int32) | | Value is based on the resolution of the cropped photo. Low value means after performing the crop we have a bad quality of image. We recommend to retry capture if value is below 155. | | `shadowConfidence` | number (float) | | Value 0 means it is no shadow on the image and image quality is good, while value 1 represents bad quality of image with a lot of shadow. We recommend to retry capture if value is 1. | | `classification` | boolean | | If true, server classified image as a front side of an id. If false, server failed to classify image as valid front side of an id or passport and other parameters can be ignored. | | `readability` | boolean | | If true, server can properly read ID. If false server failed to read some key places of the ID. | | `typeOfId` | string | | Enum: `Unknown`, `Passport`, `Visa`, `DriversLicense`, `IdentificationCard`, `Permit`, `Currency`, `ResidenceDocument`, `TravelDocument`, `BirthCertificate`, `VehicleRegistration`, `Other`, `WeaponLicense`, `TribalIdentification`, `VoterIdentification`, `Military`, `TaxIdentification`, `FederalID`, `MedicalCard` | | `issueYear` | integer (int32) | | Issue year of the ID. | | `issueName` | string | | Description of the ID. Could contain country code, state, type of ID, subtype of ID. | | `curpCheck` | boolean | | Only for Mexican IDs. Flag stating if curp was properly read. | | `sessionStatus` | string | | Session Status Enum: `Alive`, `Closed`, `Deleted` | | `countryCode` | string | | Valid ISO alpha-2 or alpha-3 code of the ID issuing country. | | `state` | string | | Issuing state of the ID. | | `failReason` | string | | Classification fail reason Enum: `UNKNOWN_DOCUMENT_TYPE`, `WRONG_DOCUMENT_SIDE`, `WRONG_ONE_SIDED_DOCUMENT`, `UNFOLDED_DOCUMENT_PAGE_MISMATCH`, `WRONG_UNFOLDED_DOCUMENT`, `DOCUMENT_NOT_READABLE`, `UNABLE_TO_ALIGN_DOCUMENT`, `ID_TYPE_UNACCEPTABLE`, `UNEXPECTED_ERROR_OCCURRED`, `DIGITAL_ID_REQUESTED_BUT_OTHER_PROVIDED` | | `skipBackIdCapture` | boolean | | Flag that signals if back id capture should be skipped or not. | | `forceFrontIdCapture` | boolean | | Flag that signals if front id capture must be executed after back. | | `showMandatoryConsent` | boolean | | Render mandatory consent page based on this parameter value. | | `regulationType` | string | | Regulation type for the mandatory consent (only if showMandatoryConsent set to true). | | `skipGlareFront` | boolean | | Flag that signals if front side glare should be ignored. | | `skipGlareBack` | boolean | | Flag that signals if back side glare should be ignored. | | `documentIsOnTheEdge` | boolean | | Flag that signals if document is on the edge on the full frame image. | | `acceptedDocuments` | array[string] | | List of accepted documents for that particular country in case of ID_TYPE_UNACCEPTABLE failReason. Enum: `Unknown`, `Passport`, `Visa`, `DriversLicense`, `IdentificationCard`, `Permit`, `Currency`, `ResidenceDocument`, `TravelDocument`, `BirthCertificate`, `VehicleRegistration`, `Other`, `WeaponLicense`, `TribalIdentification`, `VoterIdentification`, `Military`, `TaxIdentification`, `FederalID`, `MedicalCard` | | `imageRedacted` | boolean | | Flag that signals if image was redacted as part of the ID capture. | | `idFaceExtractionSkipped` | boolean | | True when biometric face extraction from the front ID was skipped because the client passed extractIdFace=false. While this flag is true, face-match flows that require an ID-side template cannot run; the flag is cleared on a subsequent add/front-id call where extractIdFace is true (or omitted). | | `captureAttemptsLimit` | CaptureAttemptsLimitDto | | Checked only if configured in the session flow. | | `captureAttemptsLimit.max` | integer (int32) | | Maximum number of attempts to capture a photo. | | `captureAttemptsLimit.remaining` | integer (int32) | | Number of remaining attempts to capture a photo. | | `idQualityAttemptApproved` | boolean | | ID quality check result based on ML readability estimation. True if perFieldReadability >= 0.9, false otherwise. | | `isDocumentExpired` | boolean | | Flag indicating if the document side is expired. | | `attemptId` | string | | Created attempt id. | ### 400 Custom error statuses: - 4092: Image format is unsupported or the image is unreadable Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ### 503 Image conversion temporarily unavailable; retry after the Retry-After header Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/back-second-id/v2?captureType=%3CcaptureType%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/back-second-id/v2?captureType=%3CcaptureType%3E", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/back-second-id/v2?captureType=%3CcaptureType%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/back-second-id/v2?captureType=%3CcaptureType%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/back-second-id/v2?captureType=%3CcaptureType%3E") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/back-second-id/v2?captureType=%3CcaptureType%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "correctSharpness": true, "correctGlare": true, "horizontalResolution": 0, "shadowConfidence": 0, "classification": true, "readability": true, "typeOfId": "Unknown", "issueYear": 0, "issueName": "string", "curpCheck": true, "sessionStatus": "Alive", "countryCode": "string", "state": "string", "failReason": "UNKNOWN_DOCUMENT_TYPE", "skipBackIdCapture": true, "forceFrontIdCapture": true, "showMandatoryConsent": true, "regulationType": "string", "skipGlareFront": true, "skipGlareBack": true, "documentIsOnTheEdge": true, "acceptedDocuments": [ "Unknown" ], "imageRedacted": true, "idFaceExtractionSkipped": true, "captureAttemptsLimit": { "max": 0, "remaining": 0 }, "idQualityAttemptApproved": true, "isDocumentExpired": true, "attemptId": "string" } ``` --- - Path: `api-reference/add-barcode` - URL: https://developer.incode.com/api-reference/add-barcode/ - Markdown: https://developer.incode.com/api-reference/add-barcode.md - Endpoint: `POST /omni/add/barcode` # Add Barcode `POST /omni/add/barcode` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Add raw barcode and parse it to interview. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `rawBarcode` | string | | Barcode in raw format | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/barcode \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/barcode", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/barcode", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/barcode")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/barcode") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/barcode"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/add-barcode-v2` - URL: https://developer.incode.com/api-reference/add-barcode-v2/ - Markdown: https://developer.incode.com/api-reference/add-barcode-v2.md - Endpoint: `POST /omni/add/barcode/v2` # Add Base64 Barcode `POST /omni/add/barcode/v2` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Add Base64 barcode and parse it to interview. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `base64Barcode` | string | | Barcode in base64 format. | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/barcode/v2 \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/barcode/v2", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/barcode/v2", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/barcode/v2")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/barcode/v2") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/barcode/v2"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/add-barcode-v3` - URL: https://developer.incode.com/api-reference/add-barcode-v3/ - Markdown: https://developer.incode.com/api-reference/add-barcode-v3.md - Endpoint: `POST /omni/add/barcode/v3` # Add Base64 Barcode `POST /omni/add/barcode/v3` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Add Base64 barcode and parse it to interview. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `processId` | query | boolean | | Flag stating if id validation should be automatically performed Default: `false` | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `base64Barcode` | string | | Barcode in base64 format. | ## Responses ### 200 Response: - forceFrontIdCapture: Boolean. Flag that signals if front id capture must be executed after barcode being added. - sessionStatus: SessionStatus. Session status Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `countryCode` | string | | Valid ISO alpha-2 or alpha-3 code of the barcode issuing country. | | `forceFrontIdCapture` | boolean | | Flag that signals if front id capture must be executed after barcode being added. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | | `idValidationCompleted` | boolean | | Flag that indicates whether ID validation has been completed. | | `isDocumentExpired` | boolean | | Flag indicating if the document is expired. | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/barcode/v3?processId=false \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/barcode/v3?processId=false", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/barcode/v3?processId=false", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/barcode/v3?processId=false")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/barcode/v3?processId=false") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/barcode/v3?processId=false"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "countryCode": "string", "forceFrontIdCapture": true, "sessionStatus": "Alive", "idValidationCompleted": true, "isDocumentExpired": true } ``` --- - Path: `api-reference/add-conference-consent` - URL: https://developer.incode.com/api-reference/add-conference-consent/ - Markdown: https://developer.incode.com/api-reference/add-conference-consent.md - Endpoint: `POST /omni/add/conference-consent` # Save user consent `POST /omni/add/conference-consent` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Save information indicating that user has accepted terms and conditions and other checks on conference. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `interviewId` | query | string | yes | ID of interview for which consent needs to be given. | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `conferenceTermAndConditionsAccepted` | boolean | | User accepts terms and conditions. | | `creditBureauConsentGiven` | boolean | | User accepts credit bureau check. | | `applicantDataConfirmed` | boolean | | Executive has verified user data. | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/conference-consent?interviewId=%3CinterviewId%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/conference-consent?interviewId=%3CinterviewId%3E", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/conference-consent?interviewId=%3CinterviewId%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/conference-consent?interviewId=%3CinterviewId%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/conference-consent?interviewId=%3CinterviewId%3E") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/conference-consent?interviewId=%3CinterviewId%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/add-conference-feedback` - URL: https://developer.incode.com/api-reference/add-conference-feedback/ - Markdown: https://developer.incode.com/api-reference/add-conference-feedback.md - Endpoint: `POST /omni/add/conference/feedback` # Add conference feedback `POST /omni/add/conference/feedback` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment This endpoint is used for adding conference feedback for the interview/session. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `id` | query | string | yes | | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `feedback` | string | | Feedback to save | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/conference/feedback?id=%3Cid%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/conference/feedback?id=%3Cid%3E", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/conference/feedback?id=%3Cid%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/conference/feedback?id=%3Cid%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/conference/feedback?id=%3Cid%3E") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/conference/feedback?id=%3Cid%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/add-conference-module` - URL: https://developer.incode.com/api-reference/add-conference-module/ - Markdown: https://developer.incode.com/api-reference/add-conference-module.md - Endpoint: `POST /omni/add/conference-module` # Add conference module `POST /omni/add/conference-module` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Add conference module with name, url and icon (base64). ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `name` | string | | | | `url` | string | | | | `iconBase64` | string | | | | `index` | string | | | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/conference-module \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/conference-module", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/conference-module", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/conference-module")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/conference-module") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/conference-module"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/add-conference-notes` - URL: https://developer.incode.com/api-reference/add-conference-notes/ - Markdown: https://developer.incode.com/api-reference/add-conference-notes.md - Endpoint: `POST /omni/add/conference/notes` # Add notes `POST /omni/add/conference/notes` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment This endpoint is used for adding notes for interview/session. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `notes` | string | | Notes to save | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/conference/notes \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/conference/notes", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/conference/notes", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/conference/notes")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/conference/notes") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/conference/notes"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/add-curp` - URL: https://developer.incode.com/api-reference/add-curp/ - Markdown: https://developer.incode.com/api-reference/add-curp.md - Endpoint: `POST /omni/add/curp` # Add curp `POST /omni/add/curp` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Add curp and the validation process result to interview. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | | ## Request body Content-Type: `application/json` | Field | Type | Required | Description | | --- | --- | --- | --- | | `curp` | string | | User's curp. Has to be in valid format. If it isn't present, then curp value from interview is used. | ## Responses ### 200 Respuesta con validación de CURP ```json { "success": true, "curp": "XXXX820814HDFABC01", "sex": "MUJER", "nationality": "MEX", "result": "success", "requestData": { "name": "JUANA", "firstLastName": "PEREZ", "secondLastName": "LOPEZ", "gender": "M", "birthDate": "14/08/1982", "state": "DF" }, "transactionId": "transaction1234567890", "renapo_valid": true, "names": "JUANA", "paternal_surname": "PEREZ", "mothers_maiden_name": "LOPEZ", "birthdate": "14/08/1982", "entity_birth": "DF", "probation_document": "1", "probation_document_data": { "foja": "", "numEntidadReg": "09", "libro": "", "NumRegExtranjeros": "", "cveEntidadNac": "DF", "numActa": "00001", "CRIP": "", "tomo": "", "cveEntidadEmisora": "", "anioReg": "1982", "cveMunicipioReg": "001", "FolioCarta": "" }, "status_curp": "RCN", "deceasedStatus": "ALIVE" } ``` ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ### 500 Internal error during CURP validation. ### 504 The request to validate the CURP exceeded the allowed time limit ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/curp \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/curp", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/curp", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/curp")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/curp") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/curp"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "curp": "XXXX820814HDFABC01", "sex": "MUJER", "nationality": "MEX", "result": "success", "requestData": { "name": "JUANA", "firstLastName": "PEREZ", "secondLastName": "LOPEZ", "gender": "M", "birthDate": "14/08/1982", "state": "DF" }, "transactionId": "transaction1234567890", "renapo_valid": true, "names": "JUANA", "paternal_surname": "PEREZ", "mothers_maiden_name": "LOPEZ", "birthdate": "14/08/1982", "entity_birth": "DF", "probation_document": "1", "probation_document_data": { "foja": "", "numEntidadReg": "09", "libro": "", "NumRegExtranjeros": "", "cveEntidadNac": "DF", "numActa": "00001", "CRIP": "", "tomo": "", "cveEntidadEmisora": "", "anioReg": "1982", "cveMunicipioReg": "001", "FolioCarta": "" }, "status_curp": "RCN", "deceasedStatus": "ALIVE" } ``` --- - Path: `api-reference/add-curp-v2` - URL: https://developer.incode.com/api-reference/add-curp-v2/ - Markdown: https://developer.incode.com/api-reference/add-curp-v2.md - Endpoint: `POST /omni/add/curp/v2` # Add curp v2 `POST /omni/add/curp/v2` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Add CURP and validation result based on a person data. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `interviewId` | query | string | | | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `curp` | string | | User's curp. Has to be in valid format. If it isn't present, then curp value from interview is used. | | `name` | string | | | | `firstLastName` | string | | | | `secondLastName` | string | | | | `gender` | string | | Valid gender values are "H" (Hombre, male), "M" (mujer, female) and "X" (otro, other) Enum: `H`, `M`, `X` | | `birthDate` | string (dd/mm/yyyy) | | | | `state` | string | | | | `externalId` | string | | | ## Responses ### 200 Respuesta con validación de CURP ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ### 500 Internal error during CURP validation. ### 504 The request to validate the CURP exceeded the allowed time limit ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/curp/v2?interviewId=%3CinterviewId%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/curp/v2?interviewId=%3CinterviewId%3E", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/curp/v2?interviewId=%3CinterviewId%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/curp/v2?interviewId=%3CinterviewId%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/curp/v2?interviewId=%3CinterviewId%3E") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/curp/v2?interviewId=%3CinterviewId%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "curp": "XXXX820814HDFABC01", "sex": "MUJER", "nationality": "MEX", "result": "success", "requestData": { "name": "JUANA", "firstLastName": "PEREZ", "secondLastName": "LOPEZ", "gender": "M", "birthDate": "14/08/1982", "state": "DF" }, "transactionId": "transaction1234567890", "renapo_valid": true, "names": "JUANA", "paternal_surname": "PEREZ", "mothers_maiden_name": "LOPEZ", "birthdate": "14/08/1982", "entity_birth": "DF", "probation_document": "1", "probation_document_data": { "foja": "", "numEntidadReg": "09", "libro": "", "NumRegExtranjeros": "", "cveEntidadNac": "DF", "numActa": "00001", "CRIP": "", "tomo": "", "cveEntidadEmisora": "", "anioReg": "1982", "cveMunicipioReg": "001", "FolioCarta": "" }, "status_curp": "RCN", "deceasedStatus": "ALIVE" } ``` --- - Path: `api-reference/add-custom-fields` - URL: https://developer.incode.com/api-reference/add-custom-fields/ - Markdown: https://developer.incode.com/api-reference/add-custom-fields.md - Endpoint: `POST /omni/add/custom-fields` # Add custom fields `POST /omni/add/custom-fields` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment This endpoint is used for adding custom fields to current onboarding session. The key must match one of the keys that are defined for the Organization, and the value must be of the type that is defined for the corresponding key. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `customFields` | object | | Used to send any additional information in key value pair format. Max fields: {maxEntries}, max key length: {keyMaxLength}, max value length: {valueMaxLength} | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/custom-fields \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/custom-fields", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/custom-fields", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/custom-fields")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/custom-fields") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/custom-fields"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/add-device-fingerprint` - URL: https://developer.incode.com/api-reference/add-device-fingerprint/ - Markdown: https://developer.incode.com/api-reference/add-device-fingerprint.md - Endpoint: `POST /omni/add/device-fingerprint` # Add device fingerprint `POST /omni/add/device-fingerprint` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Sends information about device from which endpoint is called ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `deviceType` | string | yes | Platform of device Enum: `IOS`, `ANDROID`, `WEBAPP` | | `hash` | string | yes | Hash code of the device fingerprint | | `ip` | string | yes | IP address of the device | | `ipLocation` | IpLocationDto | | Location info based on IP address | | `ipLocation.ipCountry` | string | | Country from IP address | | `ipLocation.ipRegion` | string | | Region from IP address | | `ipLocation.ipCity` | string | | City from IP address | | `ipLocation.ipLatitude` | number (double) | | Latitude from IP address | | `ipLocation.ipLongitude` | number (double) | | Longitude from IP address | | `data` | string | yes | Additional data about device | | `osVersion` | string | | OS version. If omitted it is parsed from user agent | | `deviceModel` | string | | Device model. If omitted it is parsed from user agent | | `sdkVersion` | string | | Version of SDK used | | `hostingApp` | string | | hostingApp. Name of the hosting application | | `algorithmName` | string | | Name of the fingerprinting algorithm used to produce the hash | | `algorithmVersion` | string | | Version of the fingerprinting algorithm used to produce the hash | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | | `ipCountry` | string | | Current country based on the geolocation Api | | `ipState` | string | | Current state based on the geolocation Api | | `showMandatoryConsent` | boolean | | Render mandatory consent page based on this parameter value. | | `regulationType` | string | | Regulation type for the mandatory consent (only if showMandatoryConsent set to true). | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/device-fingerprint \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" \ -d '{ "deviceType": "", "hash": "", "ip": "", "data": "" }' ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/device-fingerprint", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, body: JSON.stringify({ "deviceType": "", "hash": "", "ip": "", "data": "" }), }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/device-fingerprint", headers=headers, json={ "deviceType": "", "hash": "", "ip": "", "data": "" }) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/device-fingerprint")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{\n \"deviceType\": \"\",\n \"hash\": \"\",\n \"ip\": \"\",\n \"data\": \"\"\n}")) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/device-fingerprint") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" req.body = '{ "deviceType": "", "hash": "", "ip": "", "data": "" }' res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/device-fingerprint"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "deviceType": "", "hash": "", "ip": "", "data": "" }'); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive", "ipCountry": "string", "ipState": "string", "showMandatoryConsent": true, "regulationType": "string" } ``` --- - Path: `api-reference/add-device-fingerprint-signals` - URL: https://developer.incode.com/api-reference/add-device-fingerprint-signals/ - Markdown: https://developer.incode.com/api-reference/add-device-fingerprint-signals.md - Endpoint: `POST /omni/add/device-fingerprint-signals` # Add device fingerprint signals `POST /omni/add/device-fingerprint-signals` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Records signals (device, network, behaviour, or PID) captured during an interview event ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `metadata` | string | yes | HMAC-signed Base64-encoded metadata blob. Format: .. Inner JSON shape: DeviceFingerprintSignalsMetadataDto (fields: timestamp, signalsType, payload, sdkPlatform, sdkVersion, signalsVersion). Server verifies HMAC via the service-configured `hmac_key` and rejects expired/replayed signatures based on the per-tenant CaptureMetadataConfig timestamp threshold. | | `interviewEvent` | string | yes | Frontend interview-event code categorizing these signals; resolved against the interview-event dictionary (must be a FRONTEND-sender code, e.g. "captureAttemptFinished"). | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/device-fingerprint-signals \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" \ -d '{ "metadata": "", "interviewEvent": "" }' ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/device-fingerprint-signals", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, body: JSON.stringify({ "metadata": "", "interviewEvent": "" }), }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/device-fingerprint-signals", headers=headers, json={ "metadata": "", "interviewEvent": "" }) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/device-fingerprint-signals")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{\n \"metadata\": \"\",\n \"interviewEvent\": \"\"\n}")) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/device-fingerprint-signals") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" req.body = '{ "metadata": "", "interviewEvent": "" }' res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/device-fingerprint-signals"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "metadata": "", "interviewEvent": "" }'); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/add-diagnostics-data` - URL: https://developer.incode.com/api-reference/add-diagnostics-data/ - Markdown: https://developer.incode.com/api-reference/add-diagnostics-data.md - Endpoint: `POST /omni/add/diagnostics-data` # Forward diagnostics data `POST /omni/add/diagnostics-data` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Accepts an encrypted TrueSight diagnostics envelope from the SDK, enriches it with server-resolved clientId and environment, and forwards it to TrueSight. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `version` | integer (int32) | | Envelope format version | | `alg` | string | | Encryption algorithm | | `compression` | string | | Compression algorithm | | `kid` | string | | Key identifier | | `iv` | string | | Initialization vector (Base64) | | `ciphertext` | string | | Encrypted diagnostics payload (Base64) | | `tag` | string | | Authentication tag (Base64) | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `forwarded` | boolean | | True when the diagnostics envelope was forwarded to TrueSight. False when diagnostics ingest is not enabled in this environment. | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/diagnostics-data \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/diagnostics-data", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/diagnostics-data", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/diagnostics-data")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/diagnostics-data") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/diagnostics-data"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "forwarded": true } ``` --- - Path: `api-reference/add-document` - URL: https://developer.incode.com/api-reference/add-document/ - Markdown: https://developer.incode.com/api-reference/add-document.md - Endpoint: `POST /omni/add/document` # Add document `POST /omni/add/document` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Upload document image and store data. **Note**: Make sure to put the 'Content-Type' header as 'Content-Type: image/jpeg' or 'Content-Type: image/png'. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `type` | query | string | yes | - **signature**: Upload user's digital signature. This can be later fetched in get images endpoint. - **document**: Upload user's proof of address document. This can be later fetched in get images endpoint. - **addressStatement**: (Legacy) Upload user's proof of address document. Used for backward compatibility. Use type 'document' instead. - **contract**: Upload contract image. Enum: `signature`, `document`, `contract` | | `title` | query | string | | Only if type is contract. Title of contract. | | `format` | query | string | | Only if type is document. Possible values are image (jpg and png supported) or pdf. Default is image. Enum: `image`, `pdf` | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/document?type=%3Ctype%3E&title=%3Ctitle%3E&format=%3Cformat%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/document?type=%3Ctype%3E&title=%3Ctitle%3E&format=%3Cformat%3E", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/document?type=%3Ctype%3E&title=%3Ctitle%3E&format=%3Cformat%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/document?type=%3Ctype%3E&title=%3Ctitle%3E&format=%3Cformat%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/document?type=%3Ctype%3E&title=%3Ctitle%3E&format=%3Cformat%3E") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/document?type=%3Ctype%3E&title=%3Ctitle%3E&format=%3Cformat%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/add-document-async` - URL: https://developer.incode.com/api-reference/add-document-async/ - Markdown: https://developer.incode.com/api-reference/add-document-async.md - Endpoint: `POST /omni/add/document/async` # Add document asynchronously `POST /omni/add/document/async` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Upload document image and store data asynchronously. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `type` | query | string | yes | - **signature**: Upload user's digital signature. This can be later fetched in get images endpoint. - **document**: Upload user's proof of address document. This can be later fetched in get images endpoint. - **addressStatement**: (Legacy) Upload user's proof of address document. Used for backward compatibility. Use type 'document' instead. - **contract**: Upload contract image. Enum: `signature`, `document`, `contract` | | `title` | query | string | | Only if type is contract. Title of contract. | | `format` | query | string | | Only if type is document. Possible values are image (jpg and png supported) or pdf. Default is image. Enum: `image`, `pdf` | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `base64Image` | string | | Image in base64 format. One of base64Image or imageUrl is required | | `imageUrl` | string | | URL of the image. One of base64Image or imageUrl is required | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/document/async?type=%3Ctype%3E&title=%3Ctitle%3E&format=%3Cformat%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/document/async?type=%3Ctype%3E&title=%3Ctitle%3E&format=%3Cformat%3E", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/document/async?type=%3Ctype%3E&title=%3Ctitle%3E&format=%3Cformat%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/document/async?type=%3Ctype%3E&title=%3Ctitle%3E&format=%3Cformat%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/document/async?type=%3Ctype%3E&title=%3Ctitle%3E&format=%3Cformat%3E") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/document/async?type=%3Ctype%3E&title=%3Ctitle%3E&format=%3Cformat%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/add-document-id` - URL: https://developer.incode.com/api-reference/add-document-id/ - Markdown: https://developer.incode.com/api-reference/add-document-id.md - Endpoint: `POST /omni/add/document-id` # Add document id `POST /omni/add/document-id` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Upload document identifier. For Mexican id it is cic from the back of id. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `documentIdentifier` | string | | Document id. | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/document-id \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/document-id", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/document-id", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/document-id")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/document-id") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/document-id"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/add-document-v2` - URL: https://developer.incode.com/api-reference/add-document-v2/ - Markdown: https://developer.incode.com/api-reference/add-document-v2.md - Endpoint: `POST /omni/add/document/v2` # Add document V2 `POST /omni/add/document/v2` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Upload document image and store data. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `type` | query | string | yes | - **signature**: Upload user's digital signature. This can be later fetched in get images endpoint. - **document**: Upload user's proof of address document. This can be later fetched in get images endpoint. - **addressStatement**: (Legacy) Upload user's proof of address document. Used for backward compatibility. Use type 'document' instead. - **contract**: Upload contract image. Enum: `signature`, `document`, `contract` | | `title` | query | string | | Only if type is contract. Title of contract. | | `format` | query | string | | Only if type is document. Possible values are image (jpg and png supported) or pdf. Default is image. Enum: `image`, `pdf` | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `base64Image` | string | | Image in base64 format. One of base64Image or imageUrl is required | | `imageUrl` | string | | URL of the image. One of base64Image or imageUrl is required | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/document/v2?type=%3Ctype%3E&title=%3Ctitle%3E&format=%3Cformat%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/document/v2?type=%3Ctype%3E&title=%3Ctitle%3E&format=%3Cformat%3E", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/document/v2?type=%3Ctype%3E&title=%3Ctitle%3E&format=%3Cformat%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/document/v2?type=%3Ctype%3E&title=%3Ctitle%3E&format=%3Cformat%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/document/v2?type=%3Ctype%3E&title=%3Ctitle%3E&format=%3Cformat%3E") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/document/v2?type=%3Ctype%3E&title=%3Ctitle%3E&format=%3Cformat%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/add-document-v3` - URL: https://developer.incode.com/api-reference/add-document-v3/ - Markdown: https://developer.incode.com/api-reference/add-document-v3.md - Endpoint: `POST /omni/add/document/v3` # Add document V3 `POST /omni/add/document/v3` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Upload document image gathered and store data. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `type` | query | string | yes | - **signature**: Upload user's digital signature. This can be later fetched in get images endpoint. - **document**: Upload user's proof of address document. This can be later fetched in get images endpoint. - **addressStatement**: (Legacy) Upload user's proof of address document. Used for backward compatibility. Use type 'document' instead. - **contract**: Upload contract image. - **v5cMultiPageLogbook**: Upload single page (image) of V5C logbook multi page document. - **carInvoice**: Upload single page (image) of two pages car invoice document. - **financeSettlement**: Upload single page (image) of two pages finance settlement letter. - **w8Ben**: Upload IRS W-8BEN form as a single page image or a PDF. - **w8BenE**: Upload one page (image) of the multi page IRS W-8BEN-E form, or the complete form as a PDF. Finish with the finalize document endpoint. Enum: `signature`, `document`, `contract`, `v5cMultiPageLogbook`, `carInvoice`, `financeSettlement`, `w8Ben`, `w8BenE` | | `title` | query | string | | Only if type is contract. Title of contract. | | `format` | query | string | | Only if type is document. Possible values are image (jpg and png supported) or pdf. Default is image. Enum: `image`, `pdf` | | `processingMethod` | query | string | | Only applicable for some documents. Possible values are sync and async. Default is sync. Default: `sync` Enum: `sync`, `async` | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `base64Image` | string | | Image in base64 format. One of base64Image or imageUrl is required | | `imageUrl` | string | | URL of the image. One of base64Image or imageUrl is required | ## 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`, `NOT_W8_BEN`, `NOT_W8_BEN_E`, `MANDATORY_FIELD_MISSING`, `UNSUPPORTED_PAGE_NUMBERS`, `VALIDATION_ERROR`, `UNEXPECTED_ERROR`, `FINALIZE_ERROR_NO_PAGES`, `UNSUPPORTED_MP_DOCUMENT_TYPE` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/document/v3?type=%3Ctype%3E&title=%3Ctitle%3E&format=%3Cformat%3E&processingMethod=sync \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/document/v3?type=%3Ctype%3E&title=%3Ctitle%3E&format=%3Cformat%3E&processingMethod=sync", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/document/v3?type=%3Ctype%3E&title=%3Ctitle%3E&format=%3Cformat%3E&processingMethod=sync", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/document/v3?type=%3Ctype%3E&title=%3Ctitle%3E&format=%3Cformat%3E&processingMethod=sync")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/document/v3?type=%3Ctype%3E&title=%3Ctitle%3E&format=%3Cformat%3E&processingMethod=sync") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/document/v3?type=%3Ctype%3E&title=%3Ctitle%3E&format=%3Cformat%3E&processingMethod=sync"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "status": "SUCCESS" } ``` --- - Path: `api-reference/add-email` - URL: https://developer.incode.com/api-reference/add-email/ - Markdown: https://developer.incode.com/api-reference/add-email.md - Endpoint: `POST /omni/add/email` # Add email `POST /omni/add/email` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Add email to interview. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `email` | string | | User's email. Has to be in valid format. | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/email \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/email", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/email", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/email")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/email") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/email"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/add-face-third-party` - URL: https://developer.incode.com/api-reference/add-face-third-party/ - Markdown: https://developer.incode.com/api-reference/add-face-third-party.md - Endpoint: `POST /omni/add/face/third-party` # Add face/Selfie image `POST /omni/add/face/third-party` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Uploads selfie image for onboarding session. Response will contain data regarding liveness — if that is the photo of a real person. Number of retries is not limited. **Note**: After selfie and front-id are uploaded, endpoint for comparing faces process-face on those two images can be called. It is required that person is alone on the photo. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `imageType` | query | string | | Image type. Default is selfie Enum: `selfie`, `videoSelfie`, `id`, `nfc` | | `captureType` | query | string | | Enum: `AUTO`, `MANUAL`, `NATIVE`, `UPLOAD` | | `externalCaptureId` | query | string | | | | `recordingId` | query | string | | | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `base64Image` | string | | Image of user's face represented in base64. | | `imageUrl` | string | | URL of face image, required to belong to a whitelisted domain | | `faceCoordinates` | FaceCoordinatesDto | | Face coordinates | | `faceCoordinates.leftEyeX` | number (float) | yes | Left eye coordinates for X | | `faceCoordinates.leftEyeY` | number (float) | yes | Left eye coordinates for Y | | `faceCoordinates.rightEyeX` | number (float) | yes | Right eye coordinates for X | | `faceCoordinates.rightEyeY` | number (float) | yes | Right eye coordinates for Y | | `faceCoordinates.mouthX` | number (float) | | Left mouth coordinates for X. Note: the field is deprecated, use leftMouthX instead | | `faceCoordinates.leftMouthX` | number (float) | | Left mouth coordinates for X | | `faceCoordinates.mouthY` | number (float) | | Left mouth coordinates for Y. Note: the field is deprecated, use leftMouthY instead | | `faceCoordinates.leftMouthY` | number (float) | | Left mouth coordinates for Y | | `faceCoordinates.rightMouthX` | number (float) | yes | Right mouth coordinates for X | | `faceCoordinates.rightMouthY` | number (float) | yes | Right mouth coordinates for Y | | `faceCoordinates.noseTipX` | number (float) | yes | Nose coordinates for X | | `faceCoordinates.noseTipY` | number (float) | yes | Nose coordinates for Y | | `faceCoordinates.x` | number (float) | yes | X coordinate of face rectangle. | | `faceCoordinates.y` | number (float) | yes | Y coordinate of face rectangle. | | `faceCoordinates.width` | number (float) | yes | Width of face rectangle. | | `faceCoordinates.height` | number (float) | yes | Height of face rectangle. | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `age` | integer (int32) | | Age of th person in the photo. | | `isBright` | boolean | | We recommend capturing another photo if value is false. | | `confidence` | number (float) | | Value 0 means that person on photo is alive. We recommend capturing another photo if value is 1. | | `hasLenses` | boolean | | We recommend capturing another photo if value is true. | | `hasFaceMask` | boolean | | Checked only if configured in the session flow. We recommend capturing another photo if value is true. | | `hasClosedEyes` | boolean | | Checked only if configured in the session flow. We recommend capturing another photo if value is true. | | `hasHeadCover` | boolean | | Checked only if configured in the session flow. We recommend capturing another photo if value is true. | | `faceOccluded` | boolean | | Checked only if configured in the session flow. We recommend capturing another photo if value is true. | | `sessionStatus` | string | | SessionStatus Enum: `Alive`, `Closed`, `Deleted` | | `captureAttemptsLimit` | CaptureAttemptsLimitDto | | Checked only if configured in the session flow. | | `captureAttemptsLimit.max` | integer (int32) | | Maximum number of attempts to capture a photo. | | `captureAttemptsLimit.remaining` | integer (int32) | | Number of remaining attempts to capture a photo. | ### 400 Custom error statuses: - 4010: More than one face detected - 4019: Face not found - 4077: Selfie image has low quality - 4078: Selfie face is occluded or partially covered Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/face/third-party?imageType=%3CimageType%3E&captureType=%3CcaptureType%3E&externalCaptureId=%3CexternalCaptureId%3E&recordingId=%3CrecordingId%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" \ -d '{ "faceCoordinates": { "leftEyeX": "", "leftEyeY": "", "rightEyeX": "", "rightEyeY": "", "rightMouthX": "", "rightMouthY": "", "noseTipX": "", "noseTipY": "", "x": "", "y": "", "width": "", "height": "" } }' ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/face/third-party?imageType=%3CimageType%3E&captureType=%3CcaptureType%3E&externalCaptureId=%3CexternalCaptureId%3E&recordingId=%3CrecordingId%3E", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, body: JSON.stringify({ "faceCoordinates": { "leftEyeX": "", "leftEyeY": "", "rightEyeX": "", "rightEyeY": "", "rightMouthX": "", "rightMouthY": "", "noseTipX": "", "noseTipY": "", "x": "", "y": "", "width": "", "height": "" } }), }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/face/third-party?imageType=%3CimageType%3E&captureType=%3CcaptureType%3E&externalCaptureId=%3CexternalCaptureId%3E&recordingId=%3CrecordingId%3E", headers=headers, json={ "faceCoordinates": { "leftEyeX": "", "leftEyeY": "", "rightEyeX": "", "rightEyeY": "", "rightMouthX": "", "rightMouthY": "", "noseTipX": "", "noseTipY": "", "x": "", "y": "", "width": "", "height": "" } }) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/face/third-party?imageType=%3CimageType%3E&captureType=%3CcaptureType%3E&externalCaptureId=%3CexternalCaptureId%3E&recordingId=%3CrecordingId%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{\n \"faceCoordinates\": {\n \"leftEyeX\": \"\",\n \"leftEyeY\": \"\",\n \"rightEyeX\": \"\",\n \"rightEyeY\": \"\",\n \"rightMouthX\": \"\",\n \"rightMouthY\": \"\",\n \"noseTipX\": \"\",\n \"noseTipY\": \"\",\n \"x\": \"\",\n \"y\": \"\",\n \"width\": \"\",\n \"height\": \"\"\n }\n}")) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/face/third-party?imageType=%3CimageType%3E&captureType=%3CcaptureType%3E&externalCaptureId=%3CexternalCaptureId%3E&recordingId=%3CrecordingId%3E") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" req.body = '{ "faceCoordinates": { "leftEyeX": "", "leftEyeY": "", "rightEyeX": "", "rightEyeY": "", "rightMouthX": "", "rightMouthY": "", "noseTipX": "", "noseTipY": "", "x": "", "y": "", "width": "", "height": "" } }' res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/face/third-party?imageType=%3CimageType%3E&captureType=%3CcaptureType%3E&externalCaptureId=%3CexternalCaptureId%3E&recordingId=%3CrecordingId%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "faceCoordinates": { "leftEyeX": "", "leftEyeY": "", "rightEyeX": "", "rightEyeY": "", "rightMouthX": "", "rightMouthY": "", "noseTipX": "", "noseTipY": "", "x": "", "y": "", "width": "", "height": "" } }'); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "age": 0, "isBright": true, "confidence": 0, "hasLenses": true, "hasFaceMask": true, "hasClosedEyes": true, "hasHeadCover": true, "faceOccluded": true, "sessionStatus": "Alive", "captureAttemptsLimit": { "max": 0, "remaining": 0 } } ``` --- - Path: `api-reference/add-fingerprints` - URL: https://developer.incode.com/api-reference/add-fingerprints/ - Markdown: https://developer.incode.com/api-reference/add-fingerprints.md - Endpoint: `POST /omni/add/fingerprints` # Add fingerprints `POST /omni/add/fingerprints` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Add fingerprints blobs and metadata to interview. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `type` | integer (int32) | | | | `fingerprints` | array[Fingerprint] | yes | | | `fingerprints.index` | integer (int32) | | | | `fingerprints.base64Fingerprint` | string | | | | `fingerprints.fingerprintMetadata` | FingerprintMetadata | | | | `fingerprints.fingerprintMetadata.device` | string | | | | `fingerprints.fingerprintMetadata.resolution` | string | | | | `fingerprints.fingerprintMetadata.qualityScore` | string | | | ## Responses ### 200 Respuesta con validación de CURP ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ### 500 Internal error during CURP validation. ### 504 The request to validate the CURP exceeded the allowed time limit ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/fingerprints \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/fingerprints", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/fingerprints", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/fingerprints")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/fingerprints") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/fingerprints"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "curp": "XXXX820814HDFABC01", "sex": "MUJER", "nationality": "MEX", "result": "success", "requestData": { "name": "JUANA", "firstLastName": "PEREZ", "secondLastName": "LOPEZ", "gender": "M", "birthDate": "14/08/1982", "state": "DF" }, "transactionId": "transaction1234567890", "renapo_valid": true, "names": "JUANA", "paternal_surname": "PEREZ", "mothers_maiden_name": "LOPEZ", "birthdate": "14/08/1982", "entity_birth": "DF", "probation_document": "1", "probation_document_data": { "foja": "", "numEntidadReg": "09", "libro": "", "NumRegExtranjeros": "", "cveEntidadNac": "DF", "numActa": "00001", "CRIP": "", "tomo": "", "cveEntidadEmisora": "", "anioReg": "1982", "cveMunicipioReg": "001", "FolioCarta": "" }, "status_curp": "RCN", "deceasedStatus": "ALIVE" } ``` --- - Path: `api-reference/add-fiscal-qr-url` - URL: https://developer.incode.com/api-reference/add-fiscal-qr-url/ - Markdown: https://developer.incode.com/api-reference/add-fiscal-qr-url.md - Endpoint: `POST /omni/add/fiscal-qr-url` # Add fiscal qr url `POST /omni/add/fiscal-qr-url` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Upload the url extracted from a fiscal qr code. Data from the given url will be available via the [Get fiscal qr url response](ref:getfiscalqrurlresponse) endpoint. (México only) ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `poaUrl` | string | | | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | | `rfc` | string | | | | `curp` | string | | | | `name` | string | | | | `firstLastName` | string | | | | `secondLastName` | string | | | | `birthdate` | string | | | | `denomination` | string | | | | `regime` | string | | | | `constitutionDate` | string | | | | `operationStartDate` | string | | | | `personStatus` | string | | | | `lastSituationChangeDate` | string | | | | `state` | string | | | | `delegation` | string | | | | `colony` | string | | | | `streetType` | string | | | | `streetName` | string | | | | `extNumber` | string | | | | `intNumber` | string | | | | `postalCode` | string | | | | `email` | string | | | | `al` | string | | | | `fiscalRegime` | string | | | | `fiscalStartDate` | string | | | | `error` | string | | | | `result` | string | | | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/fiscal-qr-url \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/fiscal-qr-url", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/fiscal-qr-url", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/fiscal-qr-url")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/fiscal-qr-url") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/fiscal-qr-url"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive", "rfc": "string", "curp": "string", "name": "string", "firstLastName": "string", "secondLastName": "string", "birthdate": "string", "denomination": "string", "regime": "string", "constitutionDate": "string", "operationStartDate": "string", "personStatus": "string", "lastSituationChangeDate": "string", "state": "string", "delegation": "string", "colony": "string", "streetType": "string", "streetName": "string", "extNumber": "string", "intNumber": "string", "postalCode": "string", "email": "string", "al": "string", "fiscalRegime": "string", "fiscalStartDate": "string", "error": "string", "result": "string" } ``` --- - Path: `api-reference/add-fiscal-qr-url-image` - URL: https://developer.incode.com/api-reference/add-fiscal-qr-url-image/ - Markdown: https://developer.incode.com/api-reference/add-fiscal-qr-url-image.md - Endpoint: `POST /omni/add/fiscal-qr-url-image` # Add fiscal qr image `POST /omni/add/fiscal-qr-url-image` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Upload a fiscal qr image as base64 to session. The data available in the url embedded in the qr will be available via the [Get fiscal qr url response](ref:getfiscalqrurlresponse) endpoint. (México only) ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `base64Image` | string | | Image in base64 format. One of base64Image or imageUrl is required | | `imageUrl` | string | | URL of the image. One of base64Image or imageUrl is required | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | | `rfc` | string | | | | `curp` | string | | | | `name` | string | | | | `firstLastName` | string | | | | `secondLastName` | string | | | | `birthdate` | string | | | | `denomination` | string | | | | `regime` | string | | | | `constitutionDate` | string | | | | `operationStartDate` | string | | | | `personStatus` | string | | | | `lastSituationChangeDate` | string | | | | `state` | string | | | | `delegation` | string | | | | `colony` | string | | | | `streetType` | string | | | | `streetName` | string | | | | `extNumber` | string | | | | `intNumber` | string | | | | `postalCode` | string | | | | `email` | string | | | | `al` | string | | | | `fiscalRegime` | string | | | | `fiscalStartDate` | string | | | | `error` | string | | | | `result` | string | | | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/fiscal-qr-url-image \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/fiscal-qr-url-image", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/fiscal-qr-url-image", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/fiscal-qr-url-image")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/fiscal-qr-url-image") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/fiscal-qr-url-image"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive", "rfc": "string", "curp": "string", "name": "string", "firstLastName": "string", "secondLastName": "string", "birthdate": "string", "denomination": "string", "regime": "string", "constitutionDate": "string", "operationStartDate": "string", "personStatus": "string", "lastSituationChangeDate": "string", "state": "string", "delegation": "string", "colony": "string", "streetType": "string", "streetName": "string", "extNumber": "string", "intNumber": "string", "postalCode": "string", "email": "string", "al": "string", "fiscalRegime": "string", "fiscalStartDate": "string", "error": "string", "result": "string" } ``` --- - Path: `api-reference/add-front-id-v2` - URL: https://developer.incode.com/api-reference/add-front-id-v2/ - Markdown: https://developer.incode.com/api-reference/add-front-id-v2.md - Endpoint: `POST /omni/add/front-id/v2` # Add front side of ID `POST /omni/add/front-id/v2` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment This endpoint is used for storing front side of id for further processing. Image quality check is performed during that call. Number of retries is not limited. Once [process-id](/api-reference/process-id/) is finished, this endpoint cannot be called for retries. **Note: Front side of id should be uploaded before [back-side](/api-reference/add-back-id-v2/)** **Image requirements**: the smallest side of the image must be at least 200 px. A smaller image can pass this capture step, but [process-id](/api-reference/process-id/) rejects it with error status 4085 ("ID image is too small."). Images larger than 2048 px on the longest side are scaled down automatically. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `onlyFront` | query | boolean | | Flag stating if document is one-sided (like Passport) Default: `false` | | `extractIdFace` | query | boolean | | When false, skips biometric face extraction and template creation from the front ID. Default true. Default: `true` | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `base64Image` | string | | Image in base64 format. One of base64Image or imageUrl is required | | `imageUrl` | string | | URL of the image. One of base64Image or imageUrl is required | ## Responses ### 200 In case there's some issue when calling the endpoint due to classification failed, an issue such as bad quality, or any of the fail reasons the response will always have the field: - classification - failReason - sharpness - glare - horizontalResolution We recommend considering the call as failed if there's a failReason in the response or if the classification is false. Possible values for fail reason: - UNKNOWN_DOCUMENT_TYPE: document classification failed - WRONG_DOCUMENT_SIDE: can happen when uploading back side of id when front id is required or the other way around - WRONG_ONE_SIDED_DOCUMENT: uploading wrong document with only one side - WRONG_UNFOLDED_DOCUMENT: uploading unfolded document with unrecognizable sides - UNFOLDED_DOCUMENT_PAGE_MISMATCH: uploading unfolded document with mismatching sides - DOCUMENT_NOT_READABLE: document couldn't be read, probably due to image quality - UNABLE_TO_ALIGN_DOCUMENT: alignment failed - ID_TYPE_UNACCEPTABLE: invalid type of id - UNEXPECTED_ERROR_OCCURRED: unexpected error Whenever the classification is done successfully the fields that will always be present are: - classification - sharpness - glare - horizontalResolution - readability - typeOfId - sessionStatus The remaining fields could be optional depending on the specific type of id and country of origin. Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `correctSharpness` | boolean | | It's true if the sharpness of the ID meets the requirements. | | `correctGlare` | boolean | | It's true if the glare of the ID meets the requirements. | | `horizontalResolution` | integer (int32) | | Value is based on the resolution of the cropped photo. Low value means after performing the crop we have a bad quality of image. We recommend to retry capture if value is below 155. | | `shadowConfidence` | number (float) | | Value 0 means it is no shadow on the image and image quality is good, while value 1 represents bad quality of image with a lot of shadow. We recommend to retry capture if value is 1. | | `classification` | boolean | | If true, server classified image as a front side of an id. If false, server failed to classify image as valid front side of an id or passport and other parameters can be ignored. | | `readability` | boolean | | If true, server can properly read ID. If false server failed to read some key places of the ID. | | `typeOfId` | string | | Enum: `Unknown`, `Passport`, `Visa`, `DriversLicense`, `IdentificationCard`, `Permit`, `Currency`, `ResidenceDocument`, `TravelDocument`, `BirthCertificate`, `VehicleRegistration`, `Other`, `WeaponLicense`, `TribalIdentification`, `VoterIdentification`, `Military`, `TaxIdentification`, `FederalID`, `MedicalCard` | | `issueYear` | integer (int32) | | Issue year of the ID. | | `issueName` | string | | Description of the ID. Could contain country code, state, type of ID, subtype of ID. | | `curpCheck` | boolean | | Only for Mexican IDs. Flag stating if curp was properly read. | | `sessionStatus` | string | | Session Status Enum: `Alive`, `Closed`, `Deleted` | | `countryCode` | string | | Valid ISO alpha-2 or alpha-3 code of the ID issuing country. | | `state` | string | | Issuing state of the ID. | | `failReason` | string | | Classification fail reason Enum: `UNKNOWN_DOCUMENT_TYPE`, `WRONG_DOCUMENT_SIDE`, `WRONG_ONE_SIDED_DOCUMENT`, `UNFOLDED_DOCUMENT_PAGE_MISMATCH`, `WRONG_UNFOLDED_DOCUMENT`, `DOCUMENT_NOT_READABLE`, `UNABLE_TO_ALIGN_DOCUMENT`, `ID_TYPE_UNACCEPTABLE`, `UNEXPECTED_ERROR_OCCURRED`, `DIGITAL_ID_REQUESTED_BUT_OTHER_PROVIDED` | | `skipBackIdCapture` | boolean | | Flag that signals if back id capture should be skipped or not. | | `forceFrontIdCapture` | boolean | | Flag that signals if front id capture must be executed after back. | | `showMandatoryConsent` | boolean | | Render mandatory consent page based on this parameter value. | | `regulationType` | string | | Regulation type for the mandatory consent (only if showMandatoryConsent set to true). | | `skipGlareFront` | boolean | | Flag that signals if front side glare should be ignored. | | `skipGlareBack` | boolean | | Flag that signals if back side glare should be ignored. | | `documentIsOnTheEdge` | boolean | | Flag that signals if document is on the edge on the full frame image. | | `acceptedDocuments` | array[string] | | List of accepted documents for that particular country in case of ID_TYPE_UNACCEPTABLE failReason. Enum: `Unknown`, `Passport`, `Visa`, `DriversLicense`, `IdentificationCard`, `Permit`, `Currency`, `ResidenceDocument`, `TravelDocument`, `BirthCertificate`, `VehicleRegistration`, `Other`, `WeaponLicense`, `TribalIdentification`, `VoterIdentification`, `Military`, `TaxIdentification`, `FederalID`, `MedicalCard` | | `imageRedacted` | boolean | | Flag that signals if image was redacted as part of the ID capture. | | `idFaceExtractionSkipped` | boolean | | True when biometric face extraction from the front ID was skipped because the client passed extractIdFace=false. While this flag is true, face-match flows that require an ID-side template cannot run; the flag is cleared on a subsequent add/front-id call where extractIdFace is true (or omitted). | | `captureAttemptsLimit` | CaptureAttemptsLimitDto | | Checked only if configured in the session flow. | | `captureAttemptsLimit.max` | integer (int32) | | Maximum number of attempts to capture a photo. | | `captureAttemptsLimit.remaining` | integer (int32) | | Number of remaining attempts to capture a photo. | | `idQualityAttemptApproved` | boolean | | ID quality check result based on ML readability estimation. True if perFieldReadability >= 0.9, false otherwise. | | `isDocumentExpired` | boolean | | Flag indicating if the document side is expired. | | `attemptId` | string | | Created attempt id. | ### 400 Custom error statuses: - 1003: Face cropping failure - 4004: Could not find user - 4019: Face not found - 4092: Image format is unsupported or the image is unreadable Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ### 503 Image conversion temporarily unavailable; retry after the Retry-After header Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/front-id/v2?onlyFront=false&extractIdFace=true \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/front-id/v2?onlyFront=false&extractIdFace=true", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/front-id/v2?onlyFront=false&extractIdFace=true", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/front-id/v2?onlyFront=false&extractIdFace=true")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/front-id/v2?onlyFront=false&extractIdFace=true") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/front-id/v2?onlyFront=false&extractIdFace=true"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "correctSharpness": true, "correctGlare": true, "horizontalResolution": 0, "shadowConfidence": 0, "classification": true, "readability": true, "typeOfId": "Unknown", "issueYear": 0, "issueName": "string", "curpCheck": true, "sessionStatus": "Alive", "countryCode": "string", "state": "string", "failReason": "UNKNOWN_DOCUMENT_TYPE", "skipBackIdCapture": true, "forceFrontIdCapture": true, "showMandatoryConsent": true, "regulationType": "string", "skipGlareFront": true, "skipGlareBack": true, "documentIsOnTheEdge": true, "acceptedDocuments": [ "Unknown" ], "imageRedacted": true, "idFaceExtractionSkipped": true, "captureAttemptsLimit": { "max": 0, "remaining": 0 }, "idQualityAttemptApproved": true, "isDocumentExpired": true, "attemptId": "string" } ``` --- - Path: `api-reference/add-front-second-id-v2` - URL: https://developer.incode.com/api-reference/add-front-second-id-v2/ - Markdown: https://developer.incode.com/api-reference/add-front-second-id-v2.md - Endpoint: `POST /omni/add/front-second-id/v2` # Add front side of Second ID `POST /omni/add/front-second-id/v2` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment This endpoint is used for storing front side of second id for further processing ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `onlyFront` | query | boolean | | Flag stating if document is one-sided (like Passport). Default value is false, in case it is not sent. Default: `false` | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `base64Image` | string | | Image in base64 format. One of base64Image or imageUrl is required | | `imageUrl` | string | | URL of the image. One of base64Image or imageUrl is required | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `correctSharpness` | boolean | | It's true if the sharpness of the ID meets the requirements. | | `correctGlare` | boolean | | It's true if the glare of the ID meets the requirements. | | `horizontalResolution` | integer (int32) | | Value is based on the resolution of the cropped photo. Low value means after performing the crop we have a bad quality of image. We recommend to retry capture if value is below 155. | | `shadowConfidence` | number (float) | | Value 0 means it is no shadow on the image and image quality is good, while value 1 represents bad quality of image with a lot of shadow. We recommend to retry capture if value is 1. | | `classification` | boolean | | If true, server classified image as a front side of an id. If false, server failed to classify image as valid front side of an id or passport and other parameters can be ignored. | | `readability` | boolean | | If true, server can properly read ID. If false server failed to read some key places of the ID. | | `typeOfId` | string | | Enum: `Unknown`, `Passport`, `Visa`, `DriversLicense`, `IdentificationCard`, `Permit`, `Currency`, `ResidenceDocument`, `TravelDocument`, `BirthCertificate`, `VehicleRegistration`, `Other`, `WeaponLicense`, `TribalIdentification`, `VoterIdentification`, `Military`, `TaxIdentification`, `FederalID`, `MedicalCard` | | `issueYear` | integer (int32) | | Issue year of the ID. | | `issueName` | string | | Description of the ID. Could contain country code, state, type of ID, subtype of ID. | | `curpCheck` | boolean | | Only for Mexican IDs. Flag stating if curp was properly read. | | `sessionStatus` | string | | Session Status Enum: `Alive`, `Closed`, `Deleted` | | `countryCode` | string | | Valid ISO alpha-2 or alpha-3 code of the ID issuing country. | | `state` | string | | Issuing state of the ID. | | `failReason` | string | | Classification fail reason Enum: `UNKNOWN_DOCUMENT_TYPE`, `WRONG_DOCUMENT_SIDE`, `WRONG_ONE_SIDED_DOCUMENT`, `UNFOLDED_DOCUMENT_PAGE_MISMATCH`, `WRONG_UNFOLDED_DOCUMENT`, `DOCUMENT_NOT_READABLE`, `UNABLE_TO_ALIGN_DOCUMENT`, `ID_TYPE_UNACCEPTABLE`, `UNEXPECTED_ERROR_OCCURRED`, `DIGITAL_ID_REQUESTED_BUT_OTHER_PROVIDED` | | `skipBackIdCapture` | boolean | | Flag that signals if back id capture should be skipped or not. | | `forceFrontIdCapture` | boolean | | Flag that signals if front id capture must be executed after back. | | `showMandatoryConsent` | boolean | | Render mandatory consent page based on this parameter value. | | `regulationType` | string | | Regulation type for the mandatory consent (only if showMandatoryConsent set to true). | | `skipGlareFront` | boolean | | Flag that signals if front side glare should be ignored. | | `skipGlareBack` | boolean | | Flag that signals if back side glare should be ignored. | | `documentIsOnTheEdge` | boolean | | Flag that signals if document is on the edge on the full frame image. | | `acceptedDocuments` | array[string] | | List of accepted documents for that particular country in case of ID_TYPE_UNACCEPTABLE failReason. Enum: `Unknown`, `Passport`, `Visa`, `DriversLicense`, `IdentificationCard`, `Permit`, `Currency`, `ResidenceDocument`, `TravelDocument`, `BirthCertificate`, `VehicleRegistration`, `Other`, `WeaponLicense`, `TribalIdentification`, `VoterIdentification`, `Military`, `TaxIdentification`, `FederalID`, `MedicalCard` | | `imageRedacted` | boolean | | Flag that signals if image was redacted as part of the ID capture. | | `idFaceExtractionSkipped` | boolean | | True when biometric face extraction from the front ID was skipped because the client passed extractIdFace=false. While this flag is true, face-match flows that require an ID-side template cannot run; the flag is cleared on a subsequent add/front-id call where extractIdFace is true (or omitted). | | `captureAttemptsLimit` | CaptureAttemptsLimitDto | | Checked only if configured in the session flow. | | `captureAttemptsLimit.max` | integer (int32) | | Maximum number of attempts to capture a photo. | | `captureAttemptsLimit.remaining` | integer (int32) | | Number of remaining attempts to capture a photo. | | `idQualityAttemptApproved` | boolean | | ID quality check result based on ML readability estimation. True if perFieldReadability >= 0.9, false otherwise. | | `isDocumentExpired` | boolean | | Flag indicating if the document side is expired. | | `attemptId` | string | | Created attempt id. | ### 400 Custom error statuses: - 4019: Face not found - 1003: Face cropping failure - 4092: Image format is unsupported or the image is unreadable Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ### 503 Image conversion temporarily unavailable; retry after the Retry-After header Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/front-second-id/v2?onlyFront=false \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/front-second-id/v2?onlyFront=false", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/front-second-id/v2?onlyFront=false", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/front-second-id/v2?onlyFront=false")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/front-second-id/v2?onlyFront=false") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/front-second-id/v2?onlyFront=false"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "correctSharpness": true, "correctGlare": true, "horizontalResolution": 0, "shadowConfidence": 0, "classification": true, "readability": true, "typeOfId": "Unknown", "issueYear": 0, "issueName": "string", "curpCheck": true, "sessionStatus": "Alive", "countryCode": "string", "state": "string", "failReason": "UNKNOWN_DOCUMENT_TYPE", "skipBackIdCapture": true, "forceFrontIdCapture": true, "showMandatoryConsent": true, "regulationType": "string", "skipGlareFront": true, "skipGlareBack": true, "documentIsOnTheEdge": true, "acceptedDocuments": [ "Unknown" ], "imageRedacted": true, "idFaceExtractionSkipped": true, "captureAttemptsLimit": { "max": 0, "remaining": 0 }, "idQualityAttemptApproved": true, "isDocumentExpired": true, "attemptId": "string" } ``` --- - Path: `api-reference/add-geolocation` - URL: https://developer.incode.com/api-reference/add-geolocation/ - Markdown: https://developer.incode.com/api-reference/add-geolocation.md - Endpoint: `POST /omni/add/geolocation` # Add geolocation `POST /omni/add/geolocation` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Send location to store in database, or send coordinates and fetch location and store it ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `longitude` | number (float) | yes | User's geolocation longitude | | `latitude` | number (float) | yes | User's geolocation latitude | | `location` | string | | User's current location | | `madminArea` | string | | | | `msubAdminArea` | string | | | | `mlocality` | string | | | | `msubLocality` | string | | | | `mthoroughfare` | string | | | | `msubThoroughfare` | string | | | | `mpostalCode` | string | | | | `mcountryCode` | string | | | | `mcountryName` | string | | | ## Responses ### 200 OK ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/geolocation \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" \ -d '{ "longitude": "", "latitude": "" }' ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/geolocation", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, body: JSON.stringify({ "longitude": "", "latitude": "" }), }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/geolocation", headers=headers, json={ "longitude": "", "latitude": "" }) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/geolocation")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{\n \"longitude\": \"\",\n \"latitude\": \"\"\n}")) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/geolocation") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" req.body = '{ "longitude": "", "latitude": "" }' res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/geolocation"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "longitude": "", "latitude": "" }'); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json {} ``` --- - Path: `api-reference/add-name` - URL: https://developer.incode.com/api-reference/add-name/ - Markdown: https://developer.incode.com/api-reference/add-name.md - Endpoint: `POST /omni/add/name` # Add name `POST /omni/add/name` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment This endpoint is used for adding user's name for current onboarding session. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `name` | string | | User's name. | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/name \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/name", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/name", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/name")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/name") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/name"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/add-notes` - URL: https://developer.incode.com/api-reference/add-notes/ - Markdown: https://developer.incode.com/api-reference/add-notes.md - Endpoint: `POST /omni/add/notes` # Add notes `POST /omni/add/notes` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment This endpoint is used for adding notes for interview/session. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `notes` | string | | Notes to save | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/notes \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/notes", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/notes", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/notes")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/notes") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/notes"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/add-phone` - URL: https://developer.incode.com/api-reference/add-phone/ - Markdown: https://developer.incode.com/api-reference/add-phone.md - Endpoint: `POST /omni/add/phone` # Add phone `POST /omni/add/phone` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment > **Deprecated** — this endpoint is marked deprecated in the Omni API specification. Add phone to interview. Deprecated, use POST /phone instead. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `phone` | string | | User's phone number. E.164 number convention. | | `optInGranted` | boolean | | Indicates whether opt-in is granted Default: `false` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | | `existingCustomer` | boolean | | Flag indicating if this user with given phone already exists in the system. | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/phone \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/phone", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/phone", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/phone")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/phone") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/phone"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive", "existingCustomer": true } ``` --- - Path: `api-reference/add-qr-code-text` - URL: https://developer.incode.com/api-reference/add-qr-code-text/ - Markdown: https://developer.incode.com/api-reference/add-qr-code-text.md - Endpoint: `POST /omni/add/qr-code-text` # Add QR code raw text `POST /omni/add/qr-code-text` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Add QR code raw text to interview. It will be saved in customFields named 'qrCodeText', this fields needs to be present in organization's custom fields schema. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `qrCodeText` | string | | QR code raw text. | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/qr-code-text \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/qr-code-text", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/qr-code-text", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/qr-code-text")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/qr-code-text") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/qr-code-text"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/add-user-consent` - URL: https://developer.incode.com/api-reference/add-user-consent/ - Markdown: https://developer.incode.com/api-reference/add-user-consent.md - Endpoint: `POST /omni/add/user-consent` # Add user consent `POST /omni/add/user-consent` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Add user consent with title, content and status to session. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `title` | string | | Title of the consent. | | `content` | string | | Text content. | | `status` | boolean | | Status | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/user-consent \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/user-consent", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/user-consent", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/user-consent")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/user-consent") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/user-consent"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/add-watchlist-identity` - URL: https://developer.incode.com/api-reference/add-watchlist-identity/ - Markdown: https://developer.incode.com/api-reference/add-watchlist-identity.md - Endpoint: `POST /omni/add/watchlist/identity` # Add custom watchlist entry from identity `POST /omni/add/watchlist/identity` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Works with Admin Token. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `identityId` | string | | | | `watchlistType` | string | | Enum: `WHITELIST`, `BLACKLIST` | | `recordExpiresAt` | string | | | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/watchlist/identity \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/watchlist/identity", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/watchlist/identity", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/watchlist/identity")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/watchlist/identity") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/watchlist/identity"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/add-watchlist-session` - URL: https://developer.incode.com/api-reference/add-watchlist-session/ - Markdown: https://developer.incode.com/api-reference/add-watchlist-session.md - Endpoint: `POST /omni/add/watchlist/session` # Add custom watchlist entry from session `POST /omni/add/watchlist/session` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Works with Admin Token. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `sessionId` | string | | | | `watchlistType` | string | | Enum: `WHITELIST`, `BLACKLIST` | | `recordExpiresAt` | string | | | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/watchlist/session \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/watchlist/session", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/watchlist/session", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/watchlist/session")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/watchlist/session") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/watchlist/session"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/add-watchlist-single-record` - URL: https://developer.incode.com/api-reference/add-watchlist-single-record/ - Markdown: https://developer.incode.com/api-reference/add-watchlist-single-record.md - Endpoint: `POST /omni/add/watchlist/single-record` # Add custom watchlist entry `POST /omni/add/watchlist/single-record` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Works with Admin Token. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `name` | string | | Name of person that is being uploaded to Watchlist | | `birthDate` | string | | Birthdate (timestamp) of person that is being uploaded to Watchlist | | `idNumber` | string | | Id number of person that is being uploaded to Watchlist | | `email` | string | | Email of person that is being uploaded to Watchlist | | `phone` | string | | Phone of person that is being uploaded to Watchlist | | `personalIdNumber` | string | | Personal Id Number of person that is being uploaded to Watchlist | | `externalId` | string | | External id of person that is being uploaded to Watchlist | | `imageBase64` | string | | Base64 representation of face image of person that is being uploaded to Watchlist | | `frontIdBase64` | string | | Base64 representation of front side of document image that is being processed to gather OCR data and uploaded to Watchlist | | `backIdBase64` | string | | Base64 representation of back side of document image that is being processed to gather OCR data and uploaded to Watchlist | | `watchlistType` | string | | Defines type of Watchlist to use Enum: `WHITELIST`, `BLACKLIST` | | `recordExpiresAt` | string | | Date (timestamp) until the watchlist entry is active. When searched after this date, score of watchlist match will be 0. | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | | `customerId` | string | | | | `watchlistId` | string | | | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/watchlist/single-record \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/watchlist/single-record", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/watchlist/single-record", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/watchlist/single-record")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/watchlist/single-record") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/watchlist/single-record"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive", "customerId": "string", "watchlistId": "string" } ``` --- - Path: `api-reference/api-calculate-rfc` - URL: https://developer.incode.com/api-reference/api-calculate-rfc/ - Markdown: https://developer.incode.com/api-reference/api-calculate-rfc.md - Endpoint: `POST /api/calculate/rfc` # Calculate RFC `POST /api/calculate/rfc` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Calculate and return the RFC based on a person data. Once you obtain the calculated RFC it doesn't necessarily mean it's a valid one. You could use the validate RFC method to check if it exists. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `name` | string | yes | | | `firstLastName` | string | yes | | | `secondLastName` | string | yes | | | `birthDate` | string (dd/mm/yyyy) | yes | | ## Responses ### 200 Successfully calculated RFC Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `calculatedRFC` | string | | | ### 400 Invalid input data Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ### 500 Internal server error during calculation Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/api/calculate/rfc \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" \ -d '{ "name": "", "firstLastName": "", "secondLastName": "", "birthDate": "" }' ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/api/calculate/rfc", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, body: JSON.stringify({ "name": "", "firstLastName": "", "secondLastName": "", "birthDate": "" }), }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/api/calculate/rfc", headers=headers, json={ "name": "", "firstLastName": "", "secondLastName": "", "birthDate": "" }) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/api/calculate/rfc")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{\n \"name\": \"\",\n \"firstLastName\": \"\",\n \"secondLastName\": \"\",\n \"birthDate\": \"\"\n}")) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/api/calculate/rfc") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" req.body = '{ "name": "", "firstLastName": "", "secondLastName": "", "birthDate": "" }' res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/api/calculate/rfc"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "name": "", "firstLastName": "", "secondLastName": "", "birthDate": "" }'); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "calculatedRFC": "PEPJ870918ABC" } ``` --- - Path: `api-reference/api-fetch-curp-v3` - URL: https://developer.incode.com/api-reference/api-fetch-curp-v3/ - Markdown: https://developer.incode.com/api-reference/api-fetch-curp-v3.md - Endpoint: `GET /api/fetch/curp/v3` # Fetch CURP scraping results `GET /api/fetch/curp/v3` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Fetch the results from [/api/validate/curp/v3](#/API%20Validations/validateCurp3). The recommended wait time is 25 secs and retrying every 5 secs after that. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `idResults` | query | string | yes | | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `get_version` | integer (int64) | | | | `scrapingStatus` | string | | - IN_PROGRESS: Service hasn't finished and should retry in 5 seconds. - FINISHED: Service finished and we got a result. Either a success or an error, such as curp not found. - ERROR: Service had an unhandled error, a new attempt is recommended. Enum: `IN_PROGRESS`, `FINISHED`, `ERROR` | | `success` | boolean | | | | `result` | string | | - success: Call finished and data was validated successfully. - error: Invalid curp or data, exact details returned by the website can be found in the resultDetails field. - timeout: Elements needed for scrapping were never found, isolated network issue, website down or website changed. - maintenance: Elements indicating that the website is under maintenance have been found. - unhandledError: Unhandled error occured during scrapping. | | `resultDetails` | string | | | | `screenshotUrl` | string | | | | `curp` | string | | | | `nombre` | string | | | | `primerApellido` | string | | | | `segundoApellido` | string | | | | `sexo` | string | | | | `nacionalidad` | string | | | | `entidadNacimiento` | string | | | | `documentoProbatorio` | string | | | | `datosDocumentoProbatorio` | object | | - municipioRegistro: String. - entidadRegistro: String. - numeroActa: Integer. - anioRegistro: Integer. | | `curpHistoricas` | string | | | | `statusCurp` | string | | | | `transactionId` | string | | | | `codigoRespuestaCCB` | string | | | | `descripcionRespuestaCCB` | string | | | | `codigoRespuestaRENAPO` | string | | | | `descripcionRespuestaRENAPO` | string | | | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/api/fetch/curp/v3?idResults=%3CidResults%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/api/fetch/curp/v3?idResults=%3CidResults%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/api/fetch/curp/v3?idResults=%3CidResults%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/api/fetch/curp/v3?idResults=%3CidResults%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/api/fetch/curp/v3?idResults=%3CidResults%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/api/fetch/curp/v3?idResults=%3CidResults%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "get_version": 0, "scrapingStatus": "IN_PROGRESS", "success": true, "result": "string", "resultDetails": "string", "screenshotUrl": "string", "curp": "string", "nombre": "string", "primerApellido": "string", "segundoApellido": "string", "sexo": "string", "nacionalidad": "string", "entidadNacimiento": "string", "documentoProbatorio": "string", "datosDocumentoProbatorio": {}, "curpHistoricas": "string", "statusCurp": "string", "transactionId": "string", "codigoRespuestaCCB": "string", "descripcionRespuestaCCB": "string", "codigoRespuestaRENAPO": "string", "descripcionRespuestaRENAPO": "string" } ``` --- - Path: `api-reference/api-fetch-ine` - URL: https://developer.incode.com/api-reference/api-fetch-ine/ - Markdown: https://developer.incode.com/api-reference/api-fetch-ine.md - Endpoint: `GET /api/fetch/ine` # Fetch INE scraping results `GET /api/fetch/ine` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Fetch the results from [/api/validate/ine](#/API%20Validations/validateIne). The recommended wait time is 20 sec and retrying every 5 sec after that. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `idResults` | query | string | yes | | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 scrapingStatus possible values are: - IN_PROGRESS: service hasn't finished and should retry in 5 seconds. - FINISHED: scrapping service finished and we got either a successful response or an error such as curp not found. - ERROR: scrapping service had an unhandled error, another attempt should be sent to validate curp. If INE is not found or an error occurs (such as service being in maintenance) then the success field will be false and the field resultDetails will have additional information. Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `get_version` | integer (int64) | | | | `scrapingStatus` | string | | Scraping status Enum: `IN_PROGRESS`, `FINISHED`, `ERROR` | | `success` | boolean | | Flag indicating if the process finished successfully. | | `result` | string | | Result Enum: `success`, `error` | | `resultDetails` | string | | | | `screenshotUrl` | string | | | | `cic` | string | | Cic value. | | `claveElector` | string | | Clave de elector. | | `numeroEmision` | string | | Emission number. | | `ocr` | string | | Ocr number. | | `anioRegistro` | string | | Registration year. | | `anioEmision` | string | | Emission year. | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/api/fetch/ine?idResults=%3CidResults%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/api/fetch/ine?idResults=%3CidResults%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/api/fetch/ine?idResults=%3CidResults%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/api/fetch/ine?idResults=%3CidResults%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/api/fetch/ine?idResults=%3CidResults%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/api/fetch/ine?idResults=%3CidResults%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "get_version": 0, "scrapingStatus": "IN_PROGRESS", "success": true, "result": "success", "resultDetails": "string", "screenshotUrl": "string", "cic": "string", "claveElector": "string", "numeroEmision": "string", "ocr": "string", "anioRegistro": "string", "anioEmision": "string" } ``` --- - Path: `api-reference/api-key` - URL: https://developer.incode.com/api-reference/api-key/ - Markdown: https://developer.incode.com/api-reference/api-key.md - Endpoint: `GET /omni/api-key` # Fetch `GET /omni/api-key` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Fetch all API keys of current user's organization. If user is super admin, parameter apiKey can be provided to specify organization for which the keys should be fetched (ignored otherwise). ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `apiKey` | query | string | | Organization reference. | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/api-key?apiKey=%3CapiKey%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/api-key?apiKey=%3CapiKey%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/api-key?apiKey=%3CapiKey%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/api-key?apiKey=%3CapiKey%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/api-key?apiKey=%3CapiKey%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/api-key?apiKey=%3CapiKey%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json [ { "name": "key1", "value": "f35844c8bcb417be1a64fd6e8d622cc93b0fcfaa", "clientId": "key1254", "valid": true, "createdAt": 1678185005948, "updatedAt": 1678185005948 } ] ``` --- - Path: `api-reference/api-key-post` - URL: https://developer.incode.com/api-reference/api-key-post/ - Markdown: https://developer.incode.com/api-reference/api-key-post.md - Endpoint: `POST /omni/api-key` # Create `POST /omni/api-key` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Create new API key for current user's organization. If user is super admin, parameter apiKey can be provided to specify organization for which the key should be created (ignored otherwise). ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `name` | string | | Key name. | | `apiKey` | string | | Organization reference. | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `name` | string | | Key name. | | `value` | string | | Key value, sha1(clientId). | | `clientId` | string | | Key clientId, name + random 3 digits. | | `valid` | boolean | | Key validity. | | `createdAt` | integer (int64) | | Key creation timestamp. | | `updatedAt` | integer (int64) | | Key adjustment timestamp. | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/api-key \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/api-key", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/api-key", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/api-key")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/api-key") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/api-key"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "name": "key1", "value": "f35844c8bcb417be1a64fd6e8d622cc93b0fcfaa", "clientId": "key1254", "valid": true, "createdAt": 1678185005948, "updatedAt": 1678185005948 } ``` --- - Path: `api-reference/api-key-put` - URL: https://developer.incode.com/api-reference/api-key-put/ - Markdown: https://developer.incode.com/api-reference/api-key-put.md - Endpoint: `PUT /omni/api-key` # Update `PUT /omni/api-key` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Validate/invalidate API key for current user's organization. If user is super admin, parameter apiKey can be provided to specify organization for which the key should be adjusted (ignored otherwise). User is not allowed to invalidate last valid key of the belonging organization. Super admin user can invalidate last valid keys of other organizations (effectively revoking their access to the application). ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `valid` | boolean | yes | Key validity. | | `name` | string | | Key name. | | `apiKey` | string | | Organization reference. | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `name` | string | | Key name. | | `value` | string | | Key value, sha1(clientId). | | `clientId` | string | | Key clientId, name + random 3 digits. | | `valid` | boolean | | Key validity. | | `createdAt` | integer (int64) | | Key creation timestamp. | | `updatedAt` | integer (int64) | | Key adjustment timestamp. | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X PUT https://demo-api.incodesmile.com/omni/api-key \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" \ -d '{ "valid": "" }' ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/api-key", { method: "PUT", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, body: JSON.stringify({ "valid": "" }), }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.put("https://demo-api.incodesmile.com/omni/api-key", headers=headers, json={ "valid": "" }) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/api-key")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("PUT", HttpRequest.BodyPublishers.ofString("{\n \"valid\": \"\"\n}")) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/api-key") req = Net::HTTP::Put.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" req.body = '{ "valid": "" }' res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/api-key"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "valid": "" }'); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "name": "key1", "value": "f35844c8bcb417be1a64fd6e8d622cc93b0fcfaa", "clientId": "key1254", "valid": true, "createdAt": 1678185005948, "updatedAt": 1678185005948 } ``` --- - Path: `api-reference/api-validate-bank-statement` - URL: https://developer.incode.com/api-reference/api-validate-bank-statement/ - Markdown: https://developer.incode.com/api-reference/api-validate-bank-statement.md - Endpoint: `POST /api/validate/bank-statement` # Validate bank statement `POST /api/validate/bank-statement` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment This endpoint is used to validate and get the information from a bank statement. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `dummy` | query | boolean | | Enables sending any pdf and will return a dummy response. Default: `false` | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 fields are optional, based on the bank statement format - name: String. - account_num: String. - clabe: String. - summary: String. - bank: String. - rfc: String. - starting_balance: Float. - ending_balance: Float. - pdf_quality: Number. - summary: Object. Object with detailed information on balance, deposits, withdrawals and fees. - txs: Array of transactions. ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/api/validate/bank-statement?dummy=false \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/api/validate/bank-statement?dummy=false", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/api/validate/bank-statement?dummy=false", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/api/validate/bank-statement?dummy=false")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/api/validate/bank-statement?dummy=false") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/api/validate/bank-statement?dummy=false"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json {} ``` --- - Path: `api-reference/api-validate-bank-statement-v2` - URL: https://developer.incode.com/api-reference/api-validate-bank-statement-v2/ - Markdown: https://developer.incode.com/api-reference/api-validate-bank-statement-v2.md - Endpoint: `POST /api/validate/bank-statement/v2` # Validate bank statement v2 `POST /api/validate/bank-statement/v2` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment This endpoint is used to validate and get the information from a bank statement. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `dummy` | query | boolean | | Enables sending any pdf and will return a dummy response. Default: `false` | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `base64File` | string | yes | Base64 string representation of the bank statement pdf. | ## Responses ### 200 Fields are optional, based on the bank statement format - name: String. - account_num: String. - clabe: String. - summary: String. - bank: String. - rfc: String. - starting_balance: Float. - ending_balance: Float. - pdf_quality: Number. - summary: Object. Object with detailed information on balance, deposits, withdrawals and fees. - txs: Array of transactions. ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/api/validate/bank-statement/v2?dummy=false \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" \ -d '{ "base64File": "" }' ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/api/validate/bank-statement/v2?dummy=false", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, body: JSON.stringify({ "base64File": "" }), }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/api/validate/bank-statement/v2?dummy=false", headers=headers, json={ "base64File": "" }) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/api/validate/bank-statement/v2?dummy=false")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{\n \"base64File\": \"\"\n}")) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/api/validate/bank-statement/v2?dummy=false") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" req.body = '{ "base64File": "" }' res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/api/validate/bank-statement/v2?dummy=false"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "base64File": "" }'); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json {} ``` --- - Path: `api-reference/api-validate-curp-by-data-v3` - URL: https://developer.incode.com/api-reference/api-validate-curp-by-data-v3/ - Markdown: https://developer.incode.com/api-reference/api-validate-curp-by-data-v3.md - Endpoint: `POST /api/validate/curp-by-data/v3` # CURP scraping validation by data `POST /api/validate/curp-by-data/v3` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Check for valid CURP directly with an automated search in [https://www.gob.mx/curp/](https://www.gob.mx/curp/) and return corresponding curp of that person. Parameters are the person's details. Scraping service will start working asynchronously and this service will return a resultsId to fetch the results in [/api/fetch/curp/v3](#/API%20Validations/fetchCurp3). The recommended wait time is 25 sec. Valid values for state are the ones listed by renapo in this link: [https://es.wikipedia.org/wiki/Plantilla:Abreviaciones_de_los_estados_de_México](https://es.wikipedia.org/wiki/Plantilla:Abreviaciones_de_los_estados_de_México) ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `curp` | string | | User's curp. Has to be in valid format. If it isn't present, then curp value from interview is used. | | `name` | string | | | | `firstLastName` | string | | | | `secondLastName` | string | | | | `gender` | string | | Valid gender values are "H" (Hombre, male), "M" (mujer, female) and "X" (otro, other) Enum: `H`, `M`, `X` | | `birthDate` | string (dd/mm/yyyy) | | | | `state` | string | | | | `externalId` | string | | | ## Responses ### 200 idResults: String. ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/api/validate/curp-by-data/v3 \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/api/validate/curp-by-data/v3", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/api/validate/curp-by-data/v3", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/api/validate/curp-by-data/v3")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/api/validate/curp-by-data/v3") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/api/validate/curp-by-data/v3"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json {} ``` --- - Path: `api-reference/api-validate-curp-by-data-v4` - URL: https://developer.incode.com/api-reference/api-validate-curp-by-data-v4/ - Markdown: https://developer.incode.com/api-reference/api-validate-curp-by-data-v4.md - Endpoint: `POST /api/validate/curp-by-data/v4` # CURP by data validation v4 `POST /api/validate/curp-by-data/v4` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Check for valid CURP based on a person data and return corresponding values of that person including the CURP. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `curp` | string | | User's curp. Has to be in valid format. If it isn't present, then curp value from interview is used. | | `name` | string | | | | `firstLastName` | string | | | | `secondLastName` | string | | | | `gender` | string | | Valid gender values are "H" (Hombre, male), "M" (mujer, female) and "X" (otro, other) Enum: `H`, `M`, `X` | | `birthDate` | string (dd/mm/yyyy) | | | | `state` | string | | | | `externalId` | string | | | ## Responses ### 200 If data doesn't match any CURP then the field renapo_valid will be false. If there is an error with the request data an error object is returned with the details, example:" ``` { "error": { "descripcionRespuesta": "DATOS INCORRECTOS: [El campo no cumple con el formato.]", "codigoRespuesta": "02", } } ``` Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `curp` | string | | Curp | | `sex` | string | | Sex Enum: `Mujer`, `Hombre`, `X` | | `nationality` | string | | Nationality | | `result` | string | | | | `transactionId` | string | | | | `renapo_valid` | boolean | | Flag indicating if CURP validation passed - tipoError present in response | | `names` | string | | Names | | `paternal_surname` | string | | Paternal surname | | `mothers_maiden_name` | string | | Mother maiden name | | `birthdate` | string | | Birth Date in format DD/MM/YYYY | | `entity_birth` | string | | Birth State | | `probation_document` | string | | Probation Document | | `probation_document_data` | object | | Key/Value structure. All keys are type of string. Available Key values: - anioReg - foja - tomo - libro - numActa - CRIP - numEntidadReg - cveMunicipioReg - NumRegExtranjeros - FolioCarta - cveEntidadNac - cveEntidadEmisora | | `status_curp` | string | | Status Curp | | `deceasedStatus` | string | | Deceased Status | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/api/validate/curp-by-data/v4 \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/api/validate/curp-by-data/v4", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/api/validate/curp-by-data/v4", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/api/validate/curp-by-data/v4")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/api/validate/curp-by-data/v4") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/api/validate/curp-by-data/v4"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "curp": "string", "sex": "Mujer", "nationality": "string", "result": "string", "transactionId": "string", "renapo_valid": true, "names": "string", "paternal_surname": "string", "mothers_maiden_name": "string", "birthdate": "string", "entity_birth": "string", "probation_document": "string", "probation_document_data": {}, "status_curp": "string", "deceasedStatus": "string" } ``` --- - Path: `api-reference/api-validate-curp-v3` - URL: https://developer.incode.com/api-reference/api-validate-curp-v3/ - Markdown: https://developer.incode.com/api-reference/api-validate-curp-v3.md - Endpoint: `POST /api/validate/curp/v3` # CURP scraping validation `POST /api/validate/curp/v3` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Check for valid CURP directly with an automated search in [https://www.gob.mx/curp/](https://www.gob.mx/curp/) and return corresponding values of that person. Parameter must be "curp". Scraping service will start working asynchronously and this service will return a resultsId to fetch the results in [/api/fetch/curp/v3](#/API%20Validations/fetchCurp3). The recommended wait time is 25 sec. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `curp` | string | | | | `externalId` | string | | | ## Responses ### 200 idResults: String ### 400 Invalid curp: a 400 error will be thrown if the curp provided does not match the correct pattern. Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/api/validate/curp/v3 \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/api/validate/curp/v3", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/api/validate/curp/v3", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/api/validate/curp/v3")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/api/validate/curp/v3") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/api/validate/curp/v3"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json {} ``` --- - Path: `api-reference/api-validate-curp-v4` - URL: https://developer.incode.com/api-reference/api-validate-curp-v4/ - Markdown: https://developer.incode.com/api-reference/api-validate-curp-v4.md - Endpoint: `POST /api/validate/curp/v4` # CURP validation v4 `POST /api/validate/curp/v4` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Check for valid CURP and return corresponding values of that person. If CURP is not found then renapo_valid field will be false. if CURP has invalid format or is not found an error object with details will be returned, for example: ``` { "error": { "codigoError": "06", "message": "La CURP no se encuentra en la base de datos" }, "result": "Not valid request: La CURP no se encuentra en la base de datos code: 06", } ``` ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `curp` | string | | | | `externalId` | string | | | ## Responses ### 200 Respuesta con validación de CURP ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ### 500 Internal error during CURP validation. ### 504 The request to validate the CURP exceeded the allowed time limit ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/api/validate/curp/v4 \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/api/validate/curp/v4", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/api/validate/curp/v4", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/api/validate/curp/v4")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/api/validate/curp/v4") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/api/validate/curp/v4"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "curp": "XXXX820814HDFABC01", "sex": "MUJER", "nationality": "MEX", "result": "success", "requestData": { "name": "JUANA", "firstLastName": "PEREZ", "secondLastName": "LOPEZ", "gender": "M", "birthDate": "14/08/1982", "state": "DF" }, "transactionId": "transaction1234567890", "renapo_valid": true, "names": "JUANA", "paternal_surname": "PEREZ", "mothers_maiden_name": "LOPEZ", "birthdate": "14/08/1982", "entity_birth": "DF", "probation_document": "1", "probation_document_data": { "foja": "", "numEntidadReg": "09", "libro": "", "NumRegExtranjeros": "", "cveEntidadNac": "DF", "numActa": "00001", "CRIP": "", "tomo": "", "cveEntidadEmisora": "", "anioReg": "1982", "cveMunicipioReg": "001", "FolioCarta": "" }, "status_curp": "RCN", "deceasedStatus": "ALIVE" } ``` --- - Path: `api-reference/api-validate-ine` - URL: https://developer.incode.com/api-reference/api-validate-ine/ - Markdown: https://developer.incode.com/api-reference/api-validate-ine.md - Endpoint: `POST /api/validate/ine` # INE scraping validation `POST /api/validate/ine` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Check for valid INE directly with an automated search in [https://listanominal.ine.mx/scpln/](https://listanominal.ine.mx/scpln/) and return corresponding values of that ID. Scraping service will start working asynchronously and this service will return a resultsId to fetch the results in [/api/fetch/ine](#/API%20Validations/fetchIne). The recommended wait time is 20 sec. Possible parameters are ocr, cic, claveElector and numeroEmision but the parameters sent depend on the model of the INE/IFE to be consulted. Model C: IFE with emission year from 2008 to 2013, should send claveElector, numeroEmision and ocr from the back of ID. Model D: INE with emission year from 2013, should send cic from back of ID (9 characters) and OCR from the back of the ID (13 characters). Model E,F,G,H: INE with emission year from 2014 onwards, should send CIC from the back of the ID (9 characters) and citizen id (ocr) from the back of the ID (9 characters). Additional indications and information on the models of the credentials can be found in [https://listanominal.ine.mx/scpln/](https://listanominal.ine.mx/scpln/) ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `ocr` | string | yes | | | `identificadorCiudadano` | string | | | | `cic` | string | | Mandatory for model D,E,F,G,H | | `claveElector` | string | | Mandatory for model C | | `numeroEmision` | string | | Mandatory for model C, should have a length of 2: ex 02 | ## Responses ### 200 idResults: String ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/api/validate/ine \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" \ -d '{ "ocr": "" }' ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/api/validate/ine", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, body: JSON.stringify({ "ocr": "" }), }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/api/validate/ine", headers=headers, json={ "ocr": "" }) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/api/validate/ine")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{\n \"ocr\": \"\"\n}")) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/api/validate/ine") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" req.body = '{ "ocr": "" }' res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/api/validate/ine"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "ocr": "" }'); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json {} ``` --- - Path: `api-reference/api-validate-registraduria` - URL: https://developer.incode.com/api-reference/api-validate-registraduria/ - Markdown: https://developer.incode.com/api-reference/api-validate-registraduria.md - Endpoint: `POST /api/validate/registraduria` # Registraduria validation - Colombian id `POST /api/validate/registraduria` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Check for valid Colombian ID and return corresponding values of that person. Optionally, you can set isForeign flag to true to check for foreign people living in Colombia. An example could be a Mexican person with a Colombian ID. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `id` | string | | | | `emissionDate` | string (dd/mm/yyyy) | | mandatory if isForeign is true, otherwise optional | | `fullName` | string | | | | `isForeign` | boolean | | | | `nameBean` | NameBean | | | | `nameBean.fullName` | string | | | | `nameBean.fullNameNativeScript` | string | | | | `nameBean.firstNameNativeScript` | string | | | | `nameBean.paternalLastNameNativeScript` | string | | | | `nameBean.maternalLastNameNativeScript` | string | | | | `nameBean.machineReadableFullName` | string | | Full name from Barcode or MRZ | | `nameBean.firstName` | string | | | | `nameBean.middleName` | string | | | | `nameBean.givenName` | string | | | | `nameBean.givenNameMrz` | string | | | | `nameBean.initials` | string | | Initials as returned by bank-ID schemes (e.g. iDIN) — the only given-name evidence they provide | | `nameBean.nameSuffix` | string | | | | `nameBean.paternalLastName` | string | | | | `nameBean.maternalLastName` | string | | | | `nameBean.lastNameMrz` | string | | | | `nameBean.familyName` | string | | | ## Responses ### 200 Response: - data: Object with following fields. - anio_resolucion: Integer. - codigo_error_datos_cedula: Integer. - codigo_respuesta: Integer. - date: String. - departamento_expedicion: String. - descripcion_estado: String. - estado_cedula: Integer. - fecha_expedicion: String. - informacion_adicional: String. - municipio_expedicion: String. - nombre_completo: String. - nuip: Integer. - numero_resolucion: Integer. - particula: String. - primer_apellido: String. - primer_nombre: String. - segundo_apellido: String. - segundo_nombre: String. - error: String. - findings: String []. - status: Boolean. A response example for foreigners is: ``` { "data": { "ce": "456123", "estado": "VIGENTE", "fecha_expedicion": "02/10/2019", "fecha_nacimiento": "05/03/1956", "fecha_vencimiento": "01/10/2024", "nacionalidad": "CHILENA", "nombre_completo": "JUAN ALEJANDRO PEREZ LOPEZ" }, "error": "", "findings": [], "status": true } ``` ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/api/validate/registraduria \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/api/validate/registraduria", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/api/validate/registraduria", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/api/validate/registraduria")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/api/validate/registraduria") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/api/validate/registraduria"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json {} ``` --- - Path: `api-reference/api-validate-registraduria-ppt` - URL: https://developer.incode.com/api-reference/api-validate-registraduria-ppt/ - Markdown: https://developer.incode.com/api-reference/api-validate-registraduria-ppt.md - Endpoint: `POST /api/validate/registraduria-ppt` # Colombia - Temporary Residency / PPT Validation `POST /api/validate/registraduria-ppt` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Check for a valid Colombian temporary residency ID and return the corresponding values of that person. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `id` | string | | | | `emissionDate` | string (dd/mm/yyyy) | | mandatory if isForeign is true, otherwise optional | | `fullName` | string | | | | `isForeign` | boolean | | | | `nameBean` | NameBean | | | | `nameBean.fullName` | string | | | | `nameBean.fullNameNativeScript` | string | | | | `nameBean.firstNameNativeScript` | string | | | | `nameBean.paternalLastNameNativeScript` | string | | | | `nameBean.maternalLastNameNativeScript` | string | | | | `nameBean.machineReadableFullName` | string | | Full name from Barcode or MRZ | | `nameBean.firstName` | string | | | | `nameBean.middleName` | string | | | | `nameBean.givenName` | string | | | | `nameBean.givenNameMrz` | string | | | | `nameBean.initials` | string | | Initials as returned by bank-ID schemes (e.g. iDIN) — the only given-name evidence they provide | | `nameBean.nameSuffix` | string | | | | `nameBean.paternalLastName` | string | | | | `nameBean.maternalLastName` | string | | | | `nameBean.lastNameMrz` | string | | | | `nameBean.familyName` | string | | | ## Responses ### 200 - data: Object with following fields. - estado: String. - fecha_entrega: String. - identidad_venezolana: String. - lugar_entrega: String. - nombre_completo: String. - ppt: String. - tipo_documento: String. - error: String. - findings: String []. - status: Boolean. ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/api/validate/registraduria-ppt \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/api/validate/registraduria-ppt", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/api/validate/registraduria-ppt", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/api/validate/registraduria-ppt")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/api/validate/registraduria-ppt") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/api/validate/registraduria-ppt"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json {} ``` --- - Path: `api-reference/api-validate-rfc` - URL: https://developer.incode.com/api-reference/api-validate-rfc/ - Markdown: https://developer.incode.com/api-reference/api-validate-rfc.md - Endpoint: `POST /api/validate/rfc` # RFC validation `POST /api/validate/rfc` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Check for valid RFC. If RFC is not found then validRFC field will be false. `rfcMessageCode` gives the machine-readable reason for the outcome. `RFC_VALID` is the only value for which `validRFC` is true. `RFC_PROVIDER_UNAVAILABLE` means the RFC could NOT be checked — the provider failed — and must not be treated as a negative verdict on the RFC. The full catalog is `RFC_VALID`, `RFC_VALID_NOT_INVOICEABLE`, `RFC_NOT_FOUND`, `RFC_FORMAT_INVALID`, `RFC_PROVIDER_UNAVAILABLE`, `RFC_UNKNOWN`. A malformed RFC supplied by the caller is rejected with HTTP 400 before any provider call, so `RFC_FORMAT_INVALID` is not returned on this endpoint — see the 400 example below. `status`, `message` and `errorMessage` are unchanged; `rfcMessageCode`, and `messageCode`/`rfcType` on the error path, are additive. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `rfc` | string | | | ## Responses ### 200 RFC validation result Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `validRFC` | boolean | | | | `status` | string | | | | `message` | string | | | | `rfcType` | string | | | | `messageCode` | string | | | | `errorMessage` | string | | | | `rfcMessageCode` | string | | Machine-readable reason for the validation outcome. Populated on both the success and the error paths. RFC_PROVIDER_UNAVAILABLE means the RFC could not be checked, not that it is invalid. Enum: `RFC_VALID`, `RFC_VALID_NOT_INVOICEABLE`, `RFC_NOT_FOUND`, `RFC_FORMAT_INVALID`, `RFC_PROVIDER_UNAVAILABLE`, `CURP_PROVIDER_UNAVAILABLE`, `CURP_NOT_FOUND`, `CURP_INVALID`, `CURP_DATA_INSUFFICIENT`, `RFC_UNKNOWN` | ### 400 Invalid RFC format Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ### 500 Internal server error during validation Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/api/validate/rfc \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/api/validate/rfc", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/api/validate/rfc", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/api/validate/rfc")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/api/validate/rfc") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/api/validate/rfc"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "validRFC": true, "status": "OK", "message": "RFC Valido", "rfcType": "F", "messageCode": "0", "rfcMessageCode": "RFC_VALID" } ``` --- - Path: `api-reference/api-validate-rfc-by-curp-v2` - URL: https://developer.incode.com/api-reference/api-validate-rfc-by-curp-v2/ - Markdown: https://developer.incode.com/api-reference/api-validate-rfc-by-curp-v2.md - Endpoint: `POST /api/validate/rfc-by-curp/v2` # RFC validation by CURP v2 `POST /api/validate/rfc-by-curp/v2` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Check for valid CURP, use obtained data to calculate RFC and then validate the RFC. If CURP is not found then renapo_valid field will be false. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `curp` | string | | | | `externalId` | string | | | ## Responses ### 200 Respuesta con validación de CURP ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ### 500 Internal error during CURP validation. ### 504 The request to validate the CURP exceeded the allowed time limit ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/api/validate/rfc-by-curp/v2 \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/api/validate/rfc-by-curp/v2", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/api/validate/rfc-by-curp/v2", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/api/validate/rfc-by-curp/v2")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/api/validate/rfc-by-curp/v2") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/api/validate/rfc-by-curp/v2"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "curp": "XXXX820814HDFABC01", "sex": "MUJER", "nationality": "MEX", "result": "success", "requestData": { "name": "JUANA", "firstLastName": "PEREZ", "secondLastName": "LOPEZ", "gender": "M", "birthDate": "14/08/1982", "state": "DF" }, "transactionId": "transaction1234567890", "renapo_valid": true, "names": "JUANA", "paternal_surname": "PEREZ", "mothers_maiden_name": "LOPEZ", "birthdate": "14/08/1982", "entity_birth": "DF", "probation_document": "1", "probation_document_data": { "foja": "", "numEntidadReg": "09", "libro": "", "NumRegExtranjeros": "", "cveEntidadNac": "DF", "numActa": "00001", "CRIP": "", "tomo": "", "cveEntidadEmisora": "", "anioReg": "1982", "cveMunicipioReg": "001", "FolioCarta": "" }, "status_curp": "RCN", "deceasedStatus": "ALIVE" } ``` --- - Path: `api-reference/api-validate-ssn` - URL: https://developer.incode.com/api-reference/api-validate-ssn/ - Markdown: https://developer.incode.com/api-reference/api-validate-ssn.md - Endpoint: `POST /api/validate/ssn` # SSN Validation `POST /api/validate/ssn` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Validate a social security number and the person associated with it. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `ssn` | string | | Person's social security number | | `dateOfBirth` | string (YYYY-MM-DD) | | Person's birthdate | | `firstName` | string | | Person's first name | | `lastName` | string | | Person's last name | | `middleName` | string | | Person's middle name | | `email` | string | | Person's email | ## Responses ### 200 - requestId: Int. Response's status, check catalog. - ssnValid: Boolean. Indicates if ssn information sent is valid. - deceasedPerson: Boolean. Indicates if information sent corresponds to a deceased person. - errorCode: String. Error code in case something goes wrong. - errorCodeDescription: String. Error description in case something goes wrong or if ssn is not valid. ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/api/validate/ssn \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/api/validate/ssn", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/api/validate/ssn", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/api/validate/ssn")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/api/validate/ssn") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/api/validate/ssn"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json {} ``` --- - Path: `api-reference/api-validate-vin` - URL: https://developer.incode.com/api-reference/api-validate-vin/ - Markdown: https://developer.incode.com/api-reference/api-validate-vin.md - Endpoint: `POST /api/validate/vin` # Vehicle Identification Number Validation `POST /api/validate/vin` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Validate a VIN number and obtain data related to reports about crashes, theft, etc. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `vin` | string | | Vehicle Identification Number | | `getPdf` | boolean | | Obtains pdf with details in base64 format. Default: `false` | ## Responses ### 200 - id: String. - vin: String. - attributes: Object with following fields. - vin: String. - year: String. - make: String. - model: String. - type: String. - made_In: String. - style: String. - engine: String. - success: Boolean. - error: String. - base64PDF: String. ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/api/validate/vin \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/api/validate/vin", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/api/validate/vin", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/api/validate/vin")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/api/validate/vin") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/api/validate/vin"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json {} ``` --- - Path: `api-reference/attach-signature-on-annotation` - URL: https://developer.incode.com/api-reference/attach-signature-on-annotation/ - Markdown: https://developer.incode.com/api-reference/attach-signature-on-annotation.md - Endpoint: `POST /omni/attach-signature-on-annotation` # Attach signature on annotation `POST /omni/attach-signature-on-annotation` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Attach signature from interview to previously uploaded PDF contracts at all places annotated with text from request, with desired height on pdf. Annotations must contain text with either preselected values, or alternative can be supplied. If user wishes to use signature supplied during onboarding, DEFAULT signature type should be used. Preselected values are: DEFAULT, INITIALS, PATIENTS_SIGNATURE, NON_MEDICAL_SIGNATURE_1, NON_MEDICAL_SIGNATURE_2, MEDICAL_SIGNATURE_1, MEDICAL_SIGNATURE_2 Endpoint is intended to be used as fluent api. One call to the api gives in responses id of the signed document which can then be used in the subsequent call to continuously add another signature on a different annotation. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `interviewId` | query | string | | | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `contractId` | string | yes | IDs of previously added contract (ID is returned on /add/document?imageType=contract) | | `signedContractId` | string | | IDs of previously signed contract (ID is returned as response from the previous /attach/signature/on/annotation) | | `signatureType` | string | | One of the preselected values for annotation text Enum: `DEFAULT`, `INITIALS`, `PATIENTS_SIGNATURE`, `NON_MEDICAL_SIGNATURE_1`, `NON_MEDICAL_SIGNATURE_2`, `MEDICAL_SIGNATURE_1`, `MEDICAL_SIGNATURE_2`, `MEDICAL_SIGNATURE_3`, `PATIENTS_SIGNATURE_NAME`, `NON_MEDICAL_SIGNATURE_1_NAME`, `NON_MEDICAL_SIGNATURE_2_NAME`, `MEDICAL_SIGNATURE_1_NAME`, `MEDICAL_SIGNATURE_2_NAME` | | `alternativeSignatureType` | string | | If annotation text is none of the preselected values, pass in here the alternative value (signature must be inserted with the alternative value into database as it's signature type) | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | | `additionalInformation` | object | | | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/attach-signature-on-annotation?interviewId=%3CinterviewId%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" \ -d '{ "contractId": "" }' ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/attach-signature-on-annotation?interviewId=%3CinterviewId%3E", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, body: JSON.stringify({ "contractId": "" }), }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/attach-signature-on-annotation?interviewId=%3CinterviewId%3E", headers=headers, json={ "contractId": "" }) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/attach-signature-on-annotation?interviewId=%3CinterviewId%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{\n \"contractId\": \"\"\n}")) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/attach-signature-on-annotation?interviewId=%3CinterviewId%3E") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" req.body = '{ "contractId": "" }' res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/attach-signature-on-annotation?interviewId=%3CinterviewId%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "contractId": "" }'); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "signedDocumentId": "new signed document ID", "signedDocumentURL": "temporary URL to new signed document" } ``` --- - Path: `api-reference/attach-signature-to-pdf` - URL: https://developer.incode.com/api-reference/attach-signature-to-pdf/ - Markdown: https://developer.incode.com/api-reference/attach-signature-to-pdf.md - Endpoint: `POST /omni/attach-signature-to-pdf` # Attach signature to pdf document `POST /omni/attach-signature-to-pdf` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Attach signature from interview to supplied pdf at (x, y) coordinates with desired height to desired page on pdf. Coordinates are relative to left bottom corner of page. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `x` | query | integer (int32) | yes | The x axis where to place the signature image (from the left bottom corner of page) | | `y` | query | integer (int32) | yes | The y axis where to place the signature image (from the left bottom corner of page) | | `height` | query | integer (int32) | yes | Height of the image when placed in the pdf, keeps aspect ratio. | | `pageNumber` | query | integer (int32) | | number of page on which to put the signature image (pages numbering start from 1, default value is 1) | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 Stream of new pdf document file ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/attach-signature-to-pdf?x=%3Cx%3E&y=%3Cy%3E&height=%3Cheight%3E&pageNumber=%3CpageNumber%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/attach-signature-to-pdf?x=%3Cx%3E&y=%3Cy%3E&height=%3Cheight%3E&pageNumber=%3CpageNumber%3E", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/attach-signature-to-pdf?x=%3Cx%3E&y=%3Cy%3E&height=%3Cheight%3E&pageNumber=%3CpageNumber%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/attach-signature-to-pdf?x=%3Cx%3E&y=%3Cy%3E&height=%3Cheight%3E&pageNumber=%3CpageNumber%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/attach-signature-to-pdf?x=%3Cx%3E&y=%3Cy%3E&height=%3Cheight%3E&pageNumber=%3CpageNumber%3E") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/attach-signature-to-pdf?x=%3Cx%3E&y=%3Cy%3E&height=%3Cheight%3E&pageNumber=%3CpageNumber%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` --- - Path: `api-reference/attach-signature-to-pdf-v2` - URL: https://developer.incode.com/api-reference/attach-signature-to-pdf-v2/ - Markdown: https://developer.incode.com/api-reference/attach-signature-to-pdf-v2.md - Endpoint: `POST /omni/attach-signature-to-pdf/v2` # Attach signature to multiple pdf documents `POST /omni/attach-signature-to-pdf/v2` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Attach signature from interview to previously uploaded PDF contracts at (x, y) coordinates with desired height to desired page on pdf. Coordinates are relative to left bottom corner of page. Every document id can have multiple signature attached to it, hence the array of signature positions for every document. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `interviewId` | query | string | | | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `signaturePositionsOnContracts` | object | | | | `includeSignedDocumentInResponse` | boolean | | Includes the signed document in base64 in response. | | `includeNom151SignatureInResponse` | boolean | | Includes the Nom 151 signature of the signed document in the response. | | `includeSignedDocumentWithNom151InResponse` | boolean | | Includes the signed document with the Nom 151 signature attached in the pdf in the response. | | `includeCertificateDetailsInResponse` | boolean | | Include the certificate details with which the Nom151 signature was created. | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | | `additionalInformation` | object | | | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/attach-signature-to-pdf/v2?interviewId=%3CinterviewId%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/attach-signature-to-pdf/v2?interviewId=%3CinterviewId%3E", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/attach-signature-to-pdf/v2?interviewId=%3CinterviewId%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/attach-signature-to-pdf/v2?interviewId=%3CinterviewId%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/attach-signature-to-pdf/v2?interviewId=%3CinterviewId%3E") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/attach-signature-to-pdf/v2?interviewId=%3CinterviewId%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive", "additionalInformation": { "signingDetails": { "providedBy": "Advantage Security, S. de R.L. de C.V.", "requestedBy": "Incode Technologies Inc.", "policyValue": "2.16.484.101.10.316.2.1.1.2.", "signingHash": "AHm8P/i2AnvdM8vKfVLWe5xCovA2v/7l3zmWc1+N4HE=", "certificateSerial": "2C", "signingTimestamp": "1651076647389" }, "signedDocumentBase64": "base64 of pdf document", "signedDocumentWithNomSignatureBase64": "base64 of pdf document with nom151" } } ``` --- - Path: `api-reference/attach-stamp-on-annotation` - URL: https://developer.incode.com/api-reference/attach-stamp-on-annotation/ - Markdown: https://developer.incode.com/api-reference/attach-stamp-on-annotation.md - Endpoint: `POST /omni/attach-stamp-on-annotation` # Attach stamp on annotation `POST /omni/attach-stamp-on-annotation` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Substitute stamps from interview to previously uploaded PDF contracts at all places with pdf text annotations. Annotations must contain text with preselected values. Preselected values are: - NAME (NAME_STAMP), - ADDRESS (ADDRESS_STAMP), - DATE #ZoneId# #Format#, - AGE, - SEX, - DOB #Format#, - COUNTRY, - STATE, - PHONE, - TIME #ZoneId# #Format#, - SECOND_NAME* Replace parameter ZoneId with full size zone using time zones used in Java8 TimeDate API Replace parameter Format with format you wish to display the time and date Stamps are added in Helvetica, size 13. Endpoint is intended to be used as fluent api. One call to the api gives in responses id of the signed document which can then be used in the subsequent call to continuously add another signature on a different annotation. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `contractId` | string | yes | IDs of previously added contract (ID is returned on /add/document?imageType=contract | | `customFields` | object | | Use to add substitute text for stamps with asterisk Eg: `{ "contractId": "e81cd044-98fd-47b0-b0c5-937b22b69977#contract1", "customFields": { "SECOND_NAME": "Luke Skywalker" } }` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | | `additionalInformation` | object | | | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/attach-stamp-on-annotation \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" \ -d '{ "contractId": "" }' ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/attach-stamp-on-annotation", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, body: JSON.stringify({ "contractId": "" }), }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/attach-stamp-on-annotation", headers=headers, json={ "contractId": "" }) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/attach-stamp-on-annotation")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{\n \"contractId\": \"\"\n}")) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/attach-stamp-on-annotation") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" req.body = '{ "contractId": "" }' res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/attach-stamp-on-annotation"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "contractId": "" }'); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive", "additionalInformation": {} } ``` --- - Path: `api-reference/authentication-verify` - URL: https://developer.incode.com/api-reference/authentication-verify/ - Markdown: https://developer.incode.com/api-reference/authentication-verify.md - Endpoint: `POST /omni/authentication/verify` # Verify authentication attempt `POST /omni/authentication/verify` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Verify the authenticity of an authentication attempt. Works with Admin Token. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `transactionId` | string | | | | `token` | string | | | | `interviewToken` | string | | | | `customerId` | string | | | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `verified` | boolean | | | | `reason` | integer (int32) | | | | `customerId` | string | | | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/authentication/verify \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/authentication/verify", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/authentication/verify", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/authentication/verify")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/authentication/verify") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/authentication/verify"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "verified": true, "reason": 0, "customerId": "string" } ``` --- - Path: `api-reference/authentications-external-search` - URL: https://developer.incode.com/api-reference/authentications-external-search/ - Markdown: https://developer.incode.com/api-reference/authentications-external-search.md - Endpoint: `POST /omni/authentications/external/search` # Fetch authentication attempts `POST /omni/authentications/external/search` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment This API allows for searching through stored authentication records, providing insight into both 1:1 (one to one) and 1:N (one to many) authentication modes. It includes data for successful and failed login attempts, enabling an overview of authentication activity within the organization. Works with Admin Token. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `offset` | query | integer (int32) | | Default: `0` | | `limit` | query | integer (int32) | | Default: `30` | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `authenticationAttempts` | array[AuthenticationAttemptExternalDto] | | | | `authenticationAttempts.customerId` | string | | | | `authenticationAttempts.deviceType` | string | | Enum: `IOS`, `ANDROID`, `WEBAPP` | | `authenticationAttempts.deviceName` | string | | | | `authenticationAttempts.version` | string | | | | `authenticationAttempts.isSpoof` | boolean | | | | `authenticationAttempts.get_updatedAt` | integer (int64) | | | | `authenticationAttempts.url` | string | | | | `authenticationAttempts.isAuthenticated` | boolean | | | | `authenticationAttempts.recognitionConfidence` | number (float) | | | | `authenticationAttempts.source` | string | | | | `authenticationAttempts.transactionId` | string | | | | `authenticationAttempts.authenticationType` | string | | Enum: `ONE_TO_ONE`, `ONE_TO_N` | | `authenticationAttempts.authenticationMethod` | string | | Enum: `server`, `local`, `hybrid` | | `authenticationAttempts.faceEnrollmentForced` | boolean | | | | `authenticationAttempts.isBlocklisted` | boolean | | | | `authenticationAttempts.clientRecognitionThreshold` | number (float) | | | | `authenticationAttempts.clientLivenessThreshold` | number (float) | | | | `authenticationAttempts.blocklistConfidence` | number (float) | | | | `authenticationAttempts.videoRecordingUrl` | string | | | | `total` | integer (int32) | | | | `more` | boolean | | | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/authentications/external/search?offset=0&limit=30 \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/authentications/external/search?offset=0&limit=30", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/authentications/external/search?offset=0&limit=30", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/authentications/external/search?offset=0&limit=30")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/authentications/external/search?offset=0&limit=30") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/authentications/external/search?offset=0&limit=30"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "authenticationAttempts": [ { "customerId": "string", "deviceType": "IOS", "deviceName": "string", "version": "string", "isSpoof": true, "get_updatedAt": 0, "url": "string", "isAuthenticated": true, "recognitionConfidence": 0, "source": "string", "transactionId": "string", "authenticationType": "ONE_TO_ONE", "authenticationMethod": "server", "faceEnrollmentForced": true, "isBlocklisted": true, "clientRecognitionThreshold": 0, "clientLivenessThreshold": 0, "blocklistConfidence": 0, "videoRecordingUrl": "string" } ], "total": 0, "more": true } ``` --- - Path: `api-reference/b2b-onboarding-request-new` - URL: https://developer.incode.com/api-reference/b2b-onboarding-request-new/ - Markdown: https://developer.incode.com/api-reference/b2b-onboarding-request-new.md - Endpoint: `POST /omni/b2b/onboarding/request-new` # Request new onboarding for integrations `POST /omni/b2b/onboarding/request-new` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment This endpoint starts new onboarding session for integration and generates onboarding link. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `integrationReference` | string | yes | Integration reference for the onboarding request. | | `loginHint` | string | | User login hint. | | `applicantId` | string | | Existing applicant id. | | `externalCustomerId` | string | | Id that identifies user in clients external system. | | `name` | string | | Applicant name. | | `meetingLink` | string | | Meeting link. | | `linkValidityInMinutes` | integer (int32) | | Link validity in minutes. | | `notification` | NotificationDelivery | yes | Notification configuration | | `notification.type` | string | yes | Notification type, can be SMS, EMAIL or URL. Enum: `SMS`, `EMAIL`, `URL` | | `notification.email` | string | | Applicant email. Required for notification type EMAIL. | | `notification.phone` | string | | Applicant phone. Required for notification type SMS. | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `url` | string | | Generated onboarding URL. | | `interviewId` | string | | Interview identifier. | ### 400 Custom error statuses: - 4300: Integration not found by id - 4301: Employee by login factor cannot be found Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/b2b/onboarding/request-new \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" \ -d '{ "integrationReference": "", "notification": { "type": "" } }' ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/b2b/onboarding/request-new", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, body: JSON.stringify({ "integrationReference": "", "notification": { "type": "" } }), }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/b2b/onboarding/request-new", headers=headers, json={ "integrationReference": "", "notification": { "type": "" } }) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/b2b/onboarding/request-new")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{\n \"integrationReference\": \"\",\n \"notification\": {\n \"type\": \"\"\n }\n}")) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/b2b/onboarding/request-new") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" req.body = '{ "integrationReference": "", "notification": { "type": "" } }' res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/b2b/onboarding/request-new"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "integrationReference": "", "notification": { "type": "" } }'); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "url": "string", "interviewId": "string" } ``` --- - Path: `api-reference/b2b-v1-authentications-add-selfie-to-identity` - URL: https://developer.incode.com/api-reference/b2b-v1-authentications-add-selfie-to-identity/ - Markdown: https://developer.incode.com/api-reference/b2b-v1-authentications-add-selfie-to-identity.md - Endpoint: `POST /omni/b2b/v1/authentications/add-selfie-to-identity` # Add selfie to identity template `POST /omni/b2b/v1/authentications/add-selfie-to-identity` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Adds the selfie from the specified or latest authentication attempt to the user's identity template set. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `sessionId` | string | | | | `attemptId` | string | | | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/b2b/v1/authentications/add-selfie-to-identity \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/b2b/v1/authentications/add-selfie-to-identity", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/b2b/v1/authentications/add-selfie-to-identity", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/b2b/v1/authentications/add-selfie-to-identity")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/b2b/v1/authentications/add-selfie-to-identity") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/b2b/v1/authentications/add-selfie-to-identity"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/b2b-v1-devices-info` - URL: https://developer.incode.com/api-reference/b2b-v1-devices-info/ - Markdown: https://developer.incode.com/api-reference/b2b-v1-devices-info.md - Endpoint: `GET /omni/b2b/v1/devices/info` # Fetch device info list `GET /omni/b2b/v1/devices/info` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Fetch all device information entries associated with the given onboarding Session. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `id` | query | string | yes | Represents Session id for which device data are requested. | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/b2b/v1/devices/info?id=%3Cid%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/b2b/v1/devices/info?id=%3Cid%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/b2b/v1/devices/info?id=%3Cid%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/b2b/v1/devices/info?id=%3Cid%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/b2b/v1/devices/info?id=%3Cid%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/b2b/v1/devices/info?id=%3Cid%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json [ { "ipAddress": "string", "hash": "string", "deviceType": "IOS", "osVersion": "string", "deviceModel": "string", "sdkVersion": "string", "browser": "string", "hasLiedBrowser": true, "longitude": 0, "latitude": 0, "location": "string", "getmAdminArea": "CA", "getmSubAdminArea": "Santa Clara", "getmLocality": "string", "getmSubLocality": "Mission District", "getmThoroughfare": "string", "getmSubThoroughfare": "string", "getmPostalCode": 95014, "getmCountryCode": "US", "getmCountryName": "United States", "hostingApp": "Onboarding" } ] ``` --- - Path: `api-reference/b2b-v1-identities` - URL: https://developer.incode.com/api-reference/b2b-v1-identities/ - Markdown: https://developer.incode.com/api-reference/b2b-v1-identities.md - Endpoint: `GET /omni/b2b/v1/identities/{id}` # Fetch Identity data `GET /omni/b2b/v1/identities/{id}` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Fetches data associated with identity, which was gathered in onboarding. Works with Admin Token. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `id` | path | string | yes | | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `identityId` | string | | | | `originalSessionId` | string | | | | `ocrData` | IdentityOcrData | | | | `ocrData.name` | string | | | | `ocrData.phone` | string | | | | `ocrData.email` | string | | | | `ocrData.dateOfBirth` | string | | | | `ocrData.personalIdNumber` | string | | | | `ocrData.address` | string | | | | `ocrData.nationalNumber` | string | | | | `ocrData.countryCode` | string | | | | `ocrData.documentType` | string | | Enum: `Unknown`, `Passport`, `Visa`, `DriversLicense`, `IdentificationCard`, `Permit`, `Currency`, `ResidenceDocument`, `TravelDocument`, `BirthCertificate`, `VehicleRegistration`, `Other`, `WeaponLicense`, `TribalIdentification`, `VoterIdentification`, `Military`, `TaxIdentification`, `FederalID`, `MedicalCard` | | `ocrData.docExpiryDate` | integer (int32) | | | | `ocrData.displayName` | string | | | | `ocrData.fullNameMrz` | string | | | | `ocrData.gender` | string | | | | `documents` | array[IdentityDocument] | | | | `documents.documentNumber` | string | | | | `documents.issuingCountry` | string | | | | `documents.documentType` | string | | Enum: `Unknown`, `Passport`, `Visa`, `DriversLicense`, `IdentificationCard`, `Permit`, `Currency`, `ResidenceDocument`, `TravelDocument`, `BirthCertificate`, `VehicleRegistration`, `Other`, `WeaponLicense`, `TribalIdentification`, `VoterIdentification`, `Military`, `TaxIdentification`, `FederalID`, `MedicalCard` | | `documents.documentExpiryDate` | integer (int32) | | | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/b2b/v1/identities/%3Cid%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/b2b/v1/identities/%3Cid%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/b2b/v1/identities/%3Cid%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/b2b/v1/identities/%3Cid%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/b2b/v1/identities/%3Cid%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/b2b/v1/identities/%3Cid%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "identityId": "string", "originalSessionId": "string", "ocrData": { "name": "string", "phone": "string", "email": "string", "dateOfBirth": "string", "personalIdNumber": "string", "address": "string", "nationalNumber": "string", "countryCode": "string", "documentType": "Unknown", "docExpiryDate": 0, "displayName": "string", "fullNameMrz": "string", "gender": "string" }, "documents": [ { "documentNumber": "string", "issuingCountry": "string", "documentType": "Unknown", "documentExpiryDate": 0 } ] } ``` --- - Path: `api-reference/b2b-v1-sessions-continue` - URL: https://developer.incode.com/api-reference/b2b-v1-sessions-continue/ - Markdown: https://developer.incode.com/api-reference/b2b-v1-sessions-continue.md - Endpoint: `POST /omni/b2b/v1/sessions/continue` # Continue onboarding session `POST /omni/b2b/v1/sessions/continue` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Issues a new token for an ACTIVE existing onboarding session. The session is located by exactly one of: its sessionId, or its externalId (the value supplied as externalId on /omni/start). Providing zero or both identifiers is rejected with 400. Notes: - Continuations count against the same per-session limits as end-user continuations. Works with Admin Token. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `sessionId` | string | | Id of the session to continue. Exactly one of sessionId or externalId must be provided. | | `externalId` | string | | Id that identifies the user in the client's system; matches the externalId supplied on /omni/start. Exactly one of sessionId or externalId must be provided. | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `sessionId` | string | | Identifies the onboarding session that is continued. Can be used for fetching data about that session in future calls. | | `token` | string | | Internal JWT token used for the future subsequent calls. It is the value for X-Incode-Hardware-Id header in all other calls. | | `interviewCode` | string | | This value is used for connecting to conference call. | | `flowType` | string | | Type of the flow used. Could be flow (in most cases), or legacy type configuration (not used anymore). Enum: `configuration`, `flow`, `workflow` | | `idCaptureTimeout` | integer (int32) | | Number of seconds after which manual capture button should be shown to the user, while capturing ID when ID is detected. | | `idDetectionTimeout` | integer (int32) | | Number of seconds after which manual capture button should be shown to the user, if ID is not detected. | | `selfieCaptureTimeout` | integer (int32) | | Number of seconds after which manual capture button should be shown to the user, while capturing selfie. | | `idCaptureRetries` | integer (int32) | | Number of ID captures after which user should be taken to next screen. | | `selfieCaptureRetries` | integer (int32) | | Number of selfie captures after which user should be taken to next screen. | | `curpValidationRetries` | integer (int32) | | Number of curp validations after which user should be taken to next screen. (only for Mexico) | ### 400 Custom error statuses: - 4086: Current session continuation period is expired. - 4087: Max number of session continuations reached - 4088: Session is not active - 4089: Zero or both of sessionId / externalId provided Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ### 404 Session not found for the given sessionId or externalId within the api key's organization Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `sessionId` | string | | Identifies the onboarding session that is continued. Can be used for fetching data about that session in future calls. | | `token` | string | | Internal JWT token used for the future subsequent calls. It is the value for X-Incode-Hardware-Id header in all other calls. | | `interviewCode` | string | | This value is used for connecting to conference call. | | `flowType` | string | | Type of the flow used. Could be flow (in most cases), or legacy type configuration (not used anymore). Enum: `configuration`, `flow`, `workflow` | | `idCaptureTimeout` | integer (int32) | | Number of seconds after which manual capture button should be shown to the user, while capturing ID when ID is detected. | | `idDetectionTimeout` | integer (int32) | | Number of seconds after which manual capture button should be shown to the user, if ID is not detected. | | `selfieCaptureTimeout` | integer (int32) | | Number of seconds after which manual capture button should be shown to the user, while capturing selfie. | | `idCaptureRetries` | integer (int32) | | Number of ID captures after which user should be taken to next screen. | | `selfieCaptureRetries` | integer (int32) | | Number of selfie captures after which user should be taken to next screen. | | `curpValidationRetries` | integer (int32) | | Number of curp validations after which user should be taken to next screen. (only for Mexico) | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/b2b/v1/sessions/continue \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/b2b/v1/sessions/continue", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/b2b/v1/sessions/continue", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/b2b/v1/sessions/continue")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/b2b/v1/sessions/continue") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/b2b/v1/sessions/continue"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "sessionId": "string", "token": "string", "interviewCode": "string", "flowType": "configuration", "idCaptureTimeout": 0, "idDetectionTimeout": 0, "selfieCaptureTimeout": 0, "idCaptureRetries": 0, "selfieCaptureRetries": 0, "curpValidationRetries": 0 } ``` --- - Path: `api-reference/b2b-v1-sessions-listing` - URL: https://developer.incode.com/api-reference/b2b-v1-sessions-listing/ - Markdown: https://developer.incode.com/api-reference/b2b-v1-sessions-listing.md - Endpoint: `GET /omni/b2b/v1/sessions/listing` # Fetch session listing `GET /omni/b2b/v1/sessions/listing` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Fetch onboarding sessions listing. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `loginHint` | query | string | yes | Login hint to search onboarding sessions by (e.g. email). | | `maxItems` | query | integer (int32) | | Maximum number of items to retrieve (has to be positive). Optional, defaults to 10. Default: `10` | | `sessionScore` | query | string | | Filter by session score: PASS matches OK and MANUAL_OK, FAIL matches FAIL and MANUAL_FAIL. Optional. Enum: `PASS`, `FAIL` | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/b2b/v1/sessions/listing?loginHint=%3CloginHint%3E&maxItems=10&sessionScore=%3CsessionScore%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/b2b/v1/sessions/listing?loginHint=%3CloginHint%3E&maxItems=10&sessionScore=%3CsessionScore%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/b2b/v1/sessions/listing?loginHint=%3CloginHint%3E&maxItems=10&sessionScore=%3CsessionScore%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/b2b/v1/sessions/listing?loginHint=%3CloginHint%3E&maxItems=10&sessionScore=%3CsessionScore%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/b2b/v1/sessions/listing?loginHint=%3CloginHint%3E&maxItems=10&sessionScore=%3CsessionScore%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/b2b/v1/sessions/listing?loginHint=%3CloginHint%3E&maxItems=10&sessionScore=%3CsessionScore%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json [ { "sessionId": "string", "updatedAt": 0, "onboardingStatus": "UNKNOWN", "totalScoreStatus": "OK" } ] ``` --- - Path: `api-reference/b2b-v1-watchlist-integrator-batch` - URL: https://developer.incode.com/api-reference/b2b-v1-watchlist-integrator-batch/ - Markdown: https://developer.incode.com/api-reference/b2b-v1-watchlist-integrator-batch.md - Endpoint: `POST /omni/b2b/v1/watchlist/integrator/batch` # Add custom watchlist entries for child organizations `POST /omni/b2b/v1/watchlist/integrator/batch` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Imports custom watchlist entries from a CSV file and assigns each row to the child organization identified by clientId. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `file` | string (binary) | | CSV file with integrator watchlist rows. | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/b2b/v1/watchlist/integrator/batch \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/b2b/v1/watchlist/integrator/batch", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/b2b/v1/watchlist/integrator/batch", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/b2b/v1/watchlist/integrator/batch")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/b2b/v1/watchlist/integrator/batch") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/b2b/v1/watchlist/integrator/batch"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/batch-auth-stats` - URL: https://developer.incode.com/api-reference/batch-auth-stats/ - Markdown: https://developer.incode.com/api-reference/batch-auth-stats.md - Endpoint: `POST /omni/batch/auth-stats` # Insert authentications in batch `POST /omni/batch/auth-stats` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Inserts face authentications in batch. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `data` | array[QRScanAttempt] | | | | `data.id` | string | | Identity (customer) id. | | `data.photo` | string | | Base64 of photo. | | `data.confidence` | number (float) | | Match confidence. | | `data.timestamp` | integer (int64) | | Timestamp | | `data.sourceId` | string | | Source identifier of batch of authentications | | `data.deviceId` | string | | User device id | | `data.reasonCodes` | array[string] | | Reason codes | | `data.blocked` | boolean | | Flag indicating if user is on a blocklist | | `data.blocklistConfidence` | number (float) | | Confidence score related to block list | | `data.matchedWatchlistId` | string | | Id of the matched watchlist entry when blocklist validation exceeds the confidence threshold | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/batch/auth-stats \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/batch/auth-stats", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/batch/auth-stats", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/batch/auth-stats")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/batch/auth-stats") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/batch/auth-stats"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/calculate-contract-nom151-signature` - URL: https://developer.incode.com/api-reference/calculate-contract-nom151-signature/ - Markdown: https://developer.incode.com/api-reference/calculate-contract-nom151-signature.md - Endpoint: `POST /omni/calculate-contract-nom151-signature` # Calculate contract Nom151 signature `POST /omni/calculate-contract-nom151-signature` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment This api endpoint calculates the Nom151 signature of an already signed contract and returns the signature. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `includeSignedDocumentInResponse` | boolean | | Includes the signed document in base64 in response | | `includeCertificateDetailsInResponse` | boolean | | Includes the signed document with the Nom 151 signature attached in the pdf in the response | | `signedContractId` | string | yes | The id of the already signed contract | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | | `additionalInformation` | object | | | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/calculate-contract-nom151-signature \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" \ -d '{ "signedContractId": "" }' ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/calculate-contract-nom151-signature", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, body: JSON.stringify({ "signedContractId": "" }), }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/calculate-contract-nom151-signature", headers=headers, json={ "signedContractId": "" }) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/calculate-contract-nom151-signature")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{\n \"signedContractId\": \"\"\n}")) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/calculate-contract-nom151-signature") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" req.body = '{ "signedContractId": "" }' res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/calculate-contract-nom151-signature"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "signedContractId": "" }'); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive", "additionalInformation": { "signedDocumentNom151": "nom151 signature", "signedDocumentBase64": "base64 of signed document", "signedDocumentWithNomSignatureBase64": "base64 of signed contract with attached nom151 signature" } } ``` --- - Path: `api-reference/chat` - URL: https://developer.incode.com/api-reference/chat/ - Markdown: https://developer.incode.com/api-reference/chat.md - Endpoint: `POST /omni/chat` # Send conference chat `POST /omni/chat` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Store conference chat. The executive should send the whole chat at the end of conference call (just before finish is called). ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `interviewId` | string | | Interview id. | | `chat` | array[ChatDto] | yes | | | `chat.date` | integer (int64) | yes | UTC timestamp. | | `chat.body` | string | yes | Single message in chat. | | `chat.author` | string | | Author of the message. Enum: `user`, `interviewer` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/chat \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/chat", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/chat", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/chat")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/chat") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/chat"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/code-generate` - URL: https://developer.incode.com/api-reference/code-generate/ - Markdown: https://developer.incode.com/api-reference/code-generate.md - Endpoint: `GET /omni/code/generate` # Generate interview code `GET /omni/code/generate` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Generate interview code for this session. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 interviewCode: String. 6 characters. Newly generated code to be verified before connecting to video conference. ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/code/generate \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/code/generate", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/code/generate", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/code/generate")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/code/generate") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/code/generate"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json {} ``` --- - Path: `api-reference/code-verify` - URL: https://developer.incode.com/api-reference/code-verify/ - Markdown: https://developer.incode.com/api-reference/code-verify.md - Endpoint: `POST /omni/code/verify` # Verify interview code `POST /omni/code/verify` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Verify interview code before connecting to video conference. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `interviewCode` | string | | Interview code to be verified against given session. | ## Responses ### 200 Custom error status: - 4014: Invalid interview code Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/code/verify \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/code/verify", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/code/verify", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/code/verify")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/code/verify") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/code/verify"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/compare-sms-otp` - URL: https://developer.incode.com/api-reference/compare-sms-otp/ - Markdown: https://developer.incode.com/api-reference/compare-sms-otp.md - Endpoint: `GET /omni/compare/sms-otp` # Compare/Validate OTP code obtained through SMS for onboarding `GET /omni/compare/sms-otp` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Send OTP code obtained through SMS to validate an onboarding. Phone number is obtained from interview data, so phone step it's required. Success will be false if code sent doesn't match. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `code` | query | string | yes | | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/compare/sms-otp?code=%3Ccode%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/compare/sms-otp?code=%3Ccode%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/compare/sms-otp?code=%3Ccode%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/compare/sms-otp?code=%3Ccode%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/compare/sms-otp?code=%3Ccode%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/compare/sms-otp?code=%3Ccode%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/conference-add-event` - URL: https://developer.incode.com/api-reference/conference-add-event/ - Markdown: https://developer.incode.com/api-reference/conference-add-event.md - Endpoint: `POST /omni/conference/add/event` # Add conference event `POST /omni/conference/add/event` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Send (OpenTok) conference event. Any connection issue caught by webapp could be reported using this call. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `get_version` | integer (int64) | | | | `interviewId` | string | yes | Interview ID for which event is reported. | | `opentokSessionId` | string | yes | Opentok session ID of current video conference. | | `eventType` | string | yes | Opentok event type. Could be anything that Opentok sends, e.g. StreamDisconnected, StreamReconnected, VideoDisabled, VideoEnabled... | | `details` | string | | Any description that Opentok sends. | | `eventSource` | string | yes | Indicate event caught on customer or executive side. Enum: `customer`, `executive` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/conference/add/event \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" \ -d '{ "interviewId": "", "opentokSessionId": "", "eventType": "", "eventSource": "" }' ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/conference/add/event", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, body: JSON.stringify({ "interviewId": "", "opentokSessionId": "", "eventType": "", "eventSource": "" }), }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/conference/add/event", headers=headers, json={ "interviewId": "", "opentokSessionId": "", "eventType": "", "eventSource": "" }) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/conference/add/event")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{\n \"interviewId\": \"\",\n \"opentokSessionId\": \"\",\n \"eventType\": \"\",\n \"eventSource\": \"\"\n}")) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/conference/add/event") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" req.body = '{ "interviewId": "", "opentokSessionId": "", "eventType": "", "eventSource": "" }' res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/conference/add/event"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "interviewId": "", "opentokSessionId": "", "eventType": "", "eventSource": "" }'); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/conference-get-events` - URL: https://developer.incode.com/api-reference/conference-get-events/ - Markdown: https://developer.incode.com/api-reference/conference-get-events.md - Endpoint: `GET /omni/conference/get/events` # Fetch conference events `GET /omni/conference/get/events` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Fetch conference events for given 'interviewId'. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `interviewId` | query | string | yes | Interview id. | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/conference/get/events?interviewId=%3CinterviewId%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/conference/get/events?interviewId=%3CinterviewId%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/conference/get/events?interviewId=%3CinterviewId%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/conference/get/events?interviewId=%3CinterviewId%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/conference/get/events?interviewId=%3CinterviewId%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/conference/get/events?interviewId=%3CinterviewId%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json {} ``` --- - Path: `api-reference/conference-photo` - URL: https://developer.incode.com/api-reference/conference-photo/ - Markdown: https://developer.incode.com/api-reference/conference-photo.md - Endpoint: `POST /omni/conference/photo` # Store conference photos `POST /omni/conference/photo` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment A bank executive can ask the customer to additionally capture his face or document. These will be stored in DB. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `base64Image` | string | | Base64 string representation of the image. | | `interviewId` | string | | ID of interview. | | `origin` | string | yes | This parameter indicates which type of photo is taken Enum: `selfie`, `front`, `back`, `poa` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/conference/photo \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" \ -d '{ "origin": "" }' ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/conference/photo", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, body: JSON.stringify({ "origin": "" }), }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/conference/photo", headers=headers, json={ "origin": "" }) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/conference/photo")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{\n \"origin\": \"\"\n}")) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/conference/photo") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" req.body = '{ "origin": "" }' res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/conference/photo"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "origin": "" }'); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/conference-report-issue` - URL: https://developer.incode.com/api-reference/conference-report-issue/ - Markdown: https://developer.incode.com/api-reference/conference-report-issue.md - Endpoint: `POST /omni/conference/report-issue` # Report conference issue `POST /omni/conference/report-issue` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment An executive can report any issue by this call. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `interviewId` | string | yes | Interview ID for which issue is reported. | | `opentokSessionId` | string | yes | Opentok session ID of current video conference. | | `details` | string | yes | Any description that Opentok sends. | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/conference/report-issue \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" \ -d '{ "interviewId": "", "opentokSessionId": "", "details": "
" }' ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/conference/report-issue", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, body: JSON.stringify({ "interviewId": "", "opentokSessionId": "", "details": "
" }), }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/conference/report-issue", headers=headers, json={ "interviewId": "", "opentokSessionId": "", "details": "
" }) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/conference/report-issue")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{\n \"interviewId\": \"\",\n \"opentokSessionId\": \"\",\n \"details\": \"
\"\n}")) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/conference/report-issue") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" req.body = '{ "interviewId": "", "opentokSessionId": "", "details": "
" }' res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/conference/report-issue"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "interviewId": "", "opentokSessionId": "", "details": "
" }'); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/credentials-mdl` - URL: https://developer.incode.com/api-reference/credentials-mdl/ - Markdown: https://developer.incode.com/api-reference/credentials-mdl.md - Endpoint: `POST /omni/credentials/mdl` # Issue a device-bound mDL for the current interview `POST /omni/credentials/mdl` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Builds credential claims from the interview identified by the access token and issues a device-bound ISO/IEC 18013-5 mDL bound to the supplied device public key. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `devicePublicKey` | string | | Holder device public key as Base64 (standard) X.509 SubjectPublicKeyInfo DER, EC P-256. | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `docType` | string | | mdoc docType, e.g. org.iso.18013.5.1.mDL. | | `issuerSigned` | string | | Base64 (standard) of the CBOR-encoded IssuerSigned (nameSpaces + issuerAuth). | | `expiresAt` | string (date-time) | | When the mDL stops being valid (MSO validityInfo.validUntil). | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/credentials/mdl \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/credentials/mdl", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/credentials/mdl", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/credentials/mdl")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/credentials/mdl") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/credentials/mdl"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "docType": "string", "issuerSigned": "string", "expiresAt": "string" } ``` --- - Path: `api-reference/cross-doc-data-check-results` - URL: https://developer.incode.com/api-reference/cross-doc-data-check-results/ - Markdown: https://developer.incode.com/api-reference/cross-doc-data-check-results.md - Endpoint: `GET /omni/cross-doc-data-check/results` # Get cross-document comparison results `GET /omni/cross-doc-data-check/results` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Fetch cross-document data check results for a given interview ID. If no ID is provided, it defaults to the user's ID from the JWT. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `id` | query | string | | | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 Response contains a map of results with detailed comparison information. ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/cross-doc-data-check/results?id=%3Cid%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/cross-doc-data-check/results?id=%3Cid%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/cross-doc-data-check/results?id=%3Cid%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/cross-doc-data-check/results?id=%3Cid%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/cross-doc-data-check/results?id=%3Cid%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/cross-doc-data-check/results?id=%3Cid%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "additionalProp1": [ { "interviewId": "string", "comparisonName": "string", "comparisonId": "string", "result": "OK", "leftValueDetails": { "documentType": "string", "fieldName": "string", "value": {}, "sourceNotFound": true }, "rightValueDetails": { "documentType": "string", "fieldName": "string", "value": {}, "sourceNotFound": true }, "severity": "ultra_low" } ], "additionalProp2": [ { "interviewId": "string", "comparisonName": "string", "comparisonId": "string", "result": "OK", "leftValueDetails": { "documentType": "string", "fieldName": "string", "value": {}, "sourceNotFound": true }, "rightValueDetails": { "documentType": "string", "fieldName": "string", "value": {}, "sourceNotFound": true }, "severity": "ultra_low" } ] } ``` --- - Path: `api-reference/curp-validation-error-codes` - URL: https://developer.incode.com/api-reference/curp-validation-error-codes/ - Markdown: https://developer.incode.com/api-reference/curp-validation-error-codes.md - Endpoint: `POST /omni/add/curp` # CURP Validation Error Codes `POST /omni/add/curp` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Add curp and the validation process result to interview. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `curp` | string | | User's curp. Has to be in valid format. If it isn't present, then curp value from interview is used. | ## Responses ### 200 Respuesta con validación de CURP ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ### 500 Internal error during CURP validation. ### 504 The request to validate the CURP exceeded the allowed time limit ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/add/curp \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/add/curp", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/add/curp", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/add/curp")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/add/curp") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/add/curp"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "curp": "XXXX820814HDFABC01", "sex": "MUJER", "nationality": "MEX", "result": "success", "requestData": { "name": "JUANA", "firstLastName": "PEREZ", "secondLastName": "LOPEZ", "gender": "M", "birthDate": "14/08/1982", "state": "DF" }, "transactionId": "transaction1234567890", "renapo_valid": true, "names": "JUANA", "paternal_surname": "PEREZ", "mothers_maiden_name": "LOPEZ", "birthdate": "14/08/1982", "entity_birth": "DF", "probation_document": "1", "probation_document_data": { "foja": "", "numEntidadReg": "09", "libro": "", "NumRegExtranjeros": "", "cveEntidadNac": "DF", "numActa": "00001", "CRIP": "", "tomo": "", "cveEntidadEmisora": "", "anioReg": "1982", "cveMunicipioReg": "001", "FolioCarta": "" }, "status_curp": "RCN", "deceasedStatus": "ALIVE" } ``` --- - Path: `api-reference/delete-interviews` - URL: https://developer.incode.com/api-reference/delete-interviews/ - Markdown: https://developer.incode.com/api-reference/delete-interviews.md - Endpoint: `POST /omni/delete/interviews` # Delete Multiple onboarding sessions with multiple options. `POST /omni/delete/interviews` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment > **Deprecated** — this endpoint is marked deprecated in the Omni API specification. Delete all onboarding sessions by given array of interview ids. The endpoint is executed asynchronously. Note: Requires admin login token reference - /executive/log-in Please, bear in mind that usage of this API endpoint for deletion of Customer Data will mean that Incode will no longer have access to it nor will be able to review or analyze any issue related to deleted Customer Data. After deletion, as Incode will not be able to retrieve the deleted Customer Data, any potential claims related to such data will be waived by Customer. Finally, for clarity purposes, Incode may continue to process information derived from Customer Data that has been deidentified, anonymized, and/or aggregated such that the data is no longer considered Personal Data under applicable Data Protection Laws and in a manner that does not identify individuals or Customer to improve its services and defend its legitimate interests. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `interviewIds` | array[string] | | | | `cleanerConfiguration` | CleanerConfigurationDto | | | | `cleanerConfiguration.deletePiiFieldsOnly` | boolean | | Flag indicating if this is partial delete, where only PII fields should be removed. Default: `false` | | `cleanerConfiguration.piiFieldsToKeep` | array[string] | | | | `cleanerConfiguration.keepEnrolledUser` | boolean | | Flag indicating if user that was previously enrolled from this session should stay enrolled in the system after this session is deleted Default: `false` | | `cleanerConfiguration.keepTemplates` | boolean | | Flag indicating if face templates created during onboarding process, should remain in DB Default: `false` | | `cleanerConfiguration.keepImages` | boolean | | Flag indicating if images captured during onboarding process should remain in the system Default: `false` | | `cleanerConfiguration.keepDeviceFingerprints` | boolean | | Flag indicating if device fingerprint stored during onboarding process should remain in the system Default: `false` | | `cleanerConfiguration.keepEvents` | boolean | | Flag indicating if events stored during onboarding process should remain in the system Default: `false` | | `cleanerConfiguration.keepValidationTests` | boolean | | Flag indicating if validation tests stored during onboarding process should remain in the system Default: `false` | | `cleanerConfiguration.keepVideoArchives` | boolean | | Flag indicating if video archives stored during onboarding process should remain in the system Default: `false` | | `cleanerConfiguration.keepConferenceEvents` | boolean | | Flag indicating if events stored during conference video call should remain in the system Default: `false` | | `cleanerConfiguration.keepChats` | boolean | | Flag indicating if chat stored during conference video call should remain in the system Default: `false` | | `cleanerConfiguration.keepStats` | boolean | | Flag indicating if statistics stored during onboarding process should remain in the system Default: `false` | | `cleanerConfiguration.deletionMode` | string | | Specifies the type of deletion to perform. Enum: `BIOMETRICS`, `PII`, `FULL` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | | `taskId` | string | | | | `statusUri` | string | | | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/delete/interviews \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/delete/interviews", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/delete/interviews", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/delete/interviews")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/delete/interviews") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/delete/interviews"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive", "taskId": "string", "statusUri": "string" } ``` --- - Path: `api-reference/delete-watchlist-single-record` - URL: https://developer.incode.com/api-reference/delete-watchlist-single-record/ - Markdown: https://developer.incode.com/api-reference/delete-watchlist-single-record.md - Endpoint: `POST /omni/delete/watchlist/single-record` # Delete custom watchlist entry `POST /omni/delete/watchlist/single-record` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Works with Admin Token. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `id` | string | | Id of entry in watchlist database | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/delete/watchlist/single-record \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/delete/watchlist/single-record", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/delete/watchlist/single-record", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/delete/watchlist/single-record")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/delete/watchlist/single-record") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/delete/watchlist/single-record"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/device-stats` - URL: https://developer.incode.com/api-reference/device-stats/ - Markdown: https://developer.incode.com/api-reference/device-stats.md - Endpoint: `POST /omni/device/stats` # Update device stats `POST /omni/device/stats` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Sends information about collected capture frame statistics ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `inspectorOpened` | boolean | | Flag indicating web browser inspector detected | | `frontIdStatsAnalysisStatus` | string | | Status of the front ID capture analysis Enum: `PASS`, `UNCLEAR`, `FAIL` | | `backIdStatsAnalysisStatus` | string | | Status of the back ID capture analysis Enum: `PASS`, `UNCLEAR`, `FAIL` | | `selfieStatsAnalysisStatus` | string | | Status of the selfie ID capture analysis Enum: `PASS`, `UNCLEAR`, `FAIL` | | `motionStatus` | string | | Status of motion analysis Enum: `PASS`, `UNCLEAR`, `FAIL` | | `virtualCameraDetected` | boolean | | Flag indicating virtual camera was detected | | `cameraLabelInspectionStatus` | string | | Status of the camera label inspection Enum: `PASS`, `UNCLEAR`, `FAIL` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/device/stats \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/device/stats", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/device/stats", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/device/stats")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/device/stats") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/device/stats"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/es-documents-signed-v2` - URL: https://developer.incode.com/api-reference/es-documents-signed-v2/ - Markdown: https://developer.incode.com/api-reference/es-documents-signed-v2.md - Endpoint: `GET /omni/es/documents/signed/v2` # Get signed documents `GET /omni/es/documents/signed/v2` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment This endpoint is used to get signed documents for a session ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `interviewId` | query | string | | | | `pageNo` | query | integer (int32) | | Default: `0` | | `pageSize` | query | integer (int32) | | Default: `20` | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `documents` | array[ESignedDocumentDto] | | | | `documents.documentRef` | string | | | | `documents.documentUrl` | string | | | | `documents.qesAttemptId` | string | | | | `total` | integer (int32) | | | | `more` | boolean | | | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/es/documents/signed/v2?interviewId=%3CinterviewId%3E&pageNo=0&pageSize=20 \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/es/documents/signed/v2?interviewId=%3CinterviewId%3E&pageNo=0&pageSize=20", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/es/documents/signed/v2?interviewId=%3CinterviewId%3E&pageNo=0&pageSize=20", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/es/documents/signed/v2?interviewId=%3CinterviewId%3E&pageNo=0&pageSize=20")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/es/documents/signed/v2?interviewId=%3CinterviewId%3E&pageNo=0&pageSize=20") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/es/documents/signed/v2?interviewId=%3CinterviewId%3E&pageNo=0&pageSize=20"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "documents": [ { "documentRef": "string", "documentUrl": "string", "qesAttemptId": "string" } ], "total": 0, "more": true } ``` --- - Path: `api-reference/executive-events-find` - URL: https://developer.incode.com/api-reference/executive-events-find/ - Markdown: https://developer.incode.com/api-reference/executive-events-find.md - Endpoint: `POST /omni/executive-events/find` # Fetch audit logs `POST /omni/executive-events/find` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Use this API to retrieve records of activities performed within your organization. These logs include key events such as changes to organization settings, executive actions, updates to flows, workflows and user identities, as well as changes made to organization’s watchlist. Note: Requires admin login token. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `avoidCounting` | query | boolean | | | | `pageable` | query | Pageable | yes | | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `codes` | array[string] | | Enum: `SESSION_DELETED`, `IDENTITY_DELETED`, `SESSION_FACE_ADDED`, `IDENTITY_FACE_ADDED`, `SESSION_MANUALLY_APPROVED`, `SESSION_MANUALLY_REJECTED`, `SESSION_VIEWED`, `SESSIONS_VIEWED`, `SESSION_PDF_DOWNLOADED`, `LOGIN_ATTEMPT`, `LOGOUT`, `USER_CREATED`, `USER_DELETED`, `USER_UPDATED`, `USER_API_ACCESS_BLOCKED`, `USER_API_ACCESS_UNBLOCKED`, `USER_IAM_MIGRATION_INITIATED`, `CONFIGURATION_CREATE`, `CONFIGURATION_CLONED`, `CONFIGURATION_RESET`, `CONFIGURATION_UPDATE`, `FLOW_CREATE`, `FLOW_UPDATE`, `FLOW_DELETE`, `FLOW_CLONE`, `IDENTITIES_REPORT_GENERATED`, `SESSIONS_REPORT_GENERATED`, `AUTHENTICATIONS_REPORT_GENERATED`, `WATCH_LISTS_REPORT_GENERATED`, `USERS_REPORT_GENERATED`, `DOUBLE_CHECK_RECORD_FETCHED`, `DOUBLE_CHECK_RECORD_UPDATED`, `DOUBLE_CHECK_FINISHED`, `SESSION_ANTIFRAUD_RESOLVED`, `WATCH_LISTS_ENTRY_CREATED`, `GOVERNMENT_VERIFICATION_PROVIDERS_UPDATED`, `GOVERNMENT_VERIFICATION_PROVIDERS_CREATED`, `GOVERNMENT_VERIFICATION_PROVIDERS_DELETED`, `WATCHLIST_PROVIDER_SETTINGS_CREATED`, `WATCHLIST_PROVIDER_SETTINGS_UPDATED`, `WATCHLIST_PROVIDER_SETTINGS_DELETED`, `PAYMENTS_PROVIDER_SETTINGS_CREATED`, `PAYMENTS_PROVIDER_SETTINGS_UPDATED`, `PAYMENTS_PROVIDER_SETTINGS_DELETED`, `PERSONAL_IDENTIFICATION_NUMBER_PROVIDERS_UPDATED`, `PERSONAL_IDENTIFICATION_NUMBER_PROVIDERS_DELETED`, `PERSONAL_IDENTIFICATION_NUMBER_PROVIDERS_CREATED`, `EKYB_PROVIDERS_UPDATED`, `EKYB_PROVIDERS_CREATED`, `EKYB_PROVIDERS_DELETED`, `EKYC_PROVIDERS_CREATED`, `EKYC_PROVIDERS_UPDATED`, `EKYC_PROVIDERS_DELETED`, `QES_PROVIDERS_UPDATED`, `QES_PROVIDERS_DELETED`, `QES_PROVIDERS_CREATED`, `GENERAL_PROVISIONING_SETTINGS_UPDATED`, `MODULES_PROVISIONING_SETTINGS_UPDATED`, `ORGANIZATION_IAM_MIGRATION_INITIATED`, `SIGN_IN_URL_UPDATED`, `WORKFLOW_CREATED`, `WORKFLOW_IMPORTED`, `WORKFLOW_EDITED`, `WORKFLOW_UPDATED`, `WORKFLOW_DELETED`, `WORKFLOW_ACTIVATED`, `WORKFLOW_PAUSED`, `CONSENT_CREATED`, `CONSENT_UPDATED`, `CONSENT_DELETED`, `FRAUD_REPORTED`, `FRAUD_REPORT_REVOKED`, `WEBHOOK_CREATED`, `WEBHOOK_UPDATE`, `WEBHOOK_DELETE`, `WEBHOOK_AUTH_CONFIG_CREATE`, `WEBHOOK_AUTH_CONFIG_UPDATE`, `DATA_DELETION_UPDATE`, `WATCHLIST_ENTRY_DELETED`, `WATCHLIST_ENTRY_UPDATED`, `WATCHLIST_LIST_VIEWED`, `AUTHENTICATION_LIST_VIEWED`, `IDENTITY_VIEWED`, `SESSION_LIST_VIEWED`, `IDENTITY_LIST_VIEWED`, `AUDIT_LOG_REPORT_GENERATED`, `SINGLE_SESSION_REPORT_GENERATED`, `DATA_DELETION_DISABLE`, `FACE_ADDED_TO_DATABASE`, `SELFIE_ADDED_TO_IDENTITY_TEMPLATE`, `FRAUD_RING_RENAMED`, `FRAUD_RING_NOTE_ADDED`, `TRUSTGRAPH_SESSION_EXCLUDED`, `TRUSTGRAPH_SESSION_EXCLUSION_REVOKED`, `USER_DEACTIVATED`, `USER_ACTIVATED`, `ROLE_CREATED`, `ROLE_UPDATED`, `ROLE_DELETED`, `ROLE_ASSIGNED`, `ROLE_UNASSIGNED`, `GROUP_ROLE_MAPPING_UPDATED`, `ROLE_SOURCE_UPDATED`, `SSO_CONFIGURED`, `SSO_UPDATED`, `SSO_REMOVED`, `SCIM_ENABLED`, `SCIM_SECRET_ROTATED`, `SCIM_DISABLED`, `MFA_SETTINGS_UPDATED`, `PASSWORD_POLICY_UPDATED`, `LOGIN_FAILED`, `ACCOUNT_LOCKED`, `USER_INVITATION_ACCEPTED`, `PASSWORD_CHANGED`, `PASSWORD_RESET_REQUESTED`, `PASSWORD_RESET_COMPLETED`, `MFA_METHOD_ENROLLED`, `MFA_METHOD_REMOVED` | | `before` | string (date-time) | | | | `after` | string (date-time) | | | | `executiveIds` | array[string] | | | | `entityTypes` | array[string] | | Enum: `SESSION`, `IDENTITY`, `EXECUTIVE`, `FLOW`, `CONFIGURATION`, `WORKFLOW`, `WATCHLIST`, `PROVISIONING`, `CONSENT`, `DATA`, `WEBHOOK`, `AUDIT_LOG`, `AUTHENTICATION`, `USER`, `FRAUD_RING`, `ROLE`, `ORGANIZATION` | | `entityIds` | array[string] | | | | `applications` | array[string] | | Enum: `USER_SERVICE`, `IAM_SERVICE` | | `email` | string | | | | `ipAddress` | string | | | | `userAgent` | string | | | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `content` | array[ExecutiveEventDto] | | | | `content.id` | string | | | | `content.code` | string | | Enum: `SESSION_DELETED`, `IDENTITY_DELETED`, `SESSION_FACE_ADDED`, `IDENTITY_FACE_ADDED`, `SESSION_MANUALLY_APPROVED`, `SESSION_MANUALLY_REJECTED`, `SESSION_VIEWED`, `SESSIONS_VIEWED`, `SESSION_PDF_DOWNLOADED`, `LOGIN_ATTEMPT`, `LOGOUT`, `USER_CREATED`, `USER_DELETED`, `USER_UPDATED`, `USER_API_ACCESS_BLOCKED`, `USER_API_ACCESS_UNBLOCKED`, `USER_IAM_MIGRATION_INITIATED`, `CONFIGURATION_CREATE`, `CONFIGURATION_CLONED`, `CONFIGURATION_RESET`, `CONFIGURATION_UPDATE`, `FLOW_CREATE`, `FLOW_UPDATE`, `FLOW_DELETE`, `FLOW_CLONE`, `IDENTITIES_REPORT_GENERATED`, `SESSIONS_REPORT_GENERATED`, `AUTHENTICATIONS_REPORT_GENERATED`, `WATCH_LISTS_REPORT_GENERATED`, `USERS_REPORT_GENERATED`, `DOUBLE_CHECK_RECORD_FETCHED`, `DOUBLE_CHECK_RECORD_UPDATED`, `DOUBLE_CHECK_FINISHED`, `SESSION_ANTIFRAUD_RESOLVED`, `WATCH_LISTS_ENTRY_CREATED`, `GOVERNMENT_VERIFICATION_PROVIDERS_UPDATED`, `GOVERNMENT_VERIFICATION_PROVIDERS_CREATED`, `GOVERNMENT_VERIFICATION_PROVIDERS_DELETED`, `WATCHLIST_PROVIDER_SETTINGS_CREATED`, `WATCHLIST_PROVIDER_SETTINGS_UPDATED`, `WATCHLIST_PROVIDER_SETTINGS_DELETED`, `PAYMENTS_PROVIDER_SETTINGS_CREATED`, `PAYMENTS_PROVIDER_SETTINGS_UPDATED`, `PAYMENTS_PROVIDER_SETTINGS_DELETED`, `PERSONAL_IDENTIFICATION_NUMBER_PROVIDERS_UPDATED`, `PERSONAL_IDENTIFICATION_NUMBER_PROVIDERS_DELETED`, `PERSONAL_IDENTIFICATION_NUMBER_PROVIDERS_CREATED`, `EKYB_PROVIDERS_UPDATED`, `EKYB_PROVIDERS_CREATED`, `EKYB_PROVIDERS_DELETED`, `EKYC_PROVIDERS_CREATED`, `EKYC_PROVIDERS_UPDATED`, `EKYC_PROVIDERS_DELETED`, `QES_PROVIDERS_UPDATED`, `QES_PROVIDERS_DELETED`, `QES_PROVIDERS_CREATED`, `GENERAL_PROVISIONING_SETTINGS_UPDATED`, `MODULES_PROVISIONING_SETTINGS_UPDATED`, `ORGANIZATION_IAM_MIGRATION_INITIATED`, `SIGN_IN_URL_UPDATED`, `WORKFLOW_CREATED`, `WORKFLOW_IMPORTED`, `WORKFLOW_EDITED`, `WORKFLOW_UPDATED`, `WORKFLOW_DELETED`, `WORKFLOW_ACTIVATED`, `WORKFLOW_PAUSED`, `CONSENT_CREATED`, `CONSENT_UPDATED`, `CONSENT_DELETED`, `FRAUD_REPORTED`, `FRAUD_REPORT_REVOKED`, `WEBHOOK_CREATED`, `WEBHOOK_UPDATE`, `WEBHOOK_DELETE`, `WEBHOOK_AUTH_CONFIG_CREATE`, `WEBHOOK_AUTH_CONFIG_UPDATE`, `DATA_DELETION_UPDATE`, `WATCHLIST_ENTRY_DELETED`, `WATCHLIST_ENTRY_UPDATED`, `WATCHLIST_LIST_VIEWED`, `AUTHENTICATION_LIST_VIEWED`, `IDENTITY_VIEWED`, `SESSION_LIST_VIEWED`, `IDENTITY_LIST_VIEWED`, `AUDIT_LOG_REPORT_GENERATED`, `SINGLE_SESSION_REPORT_GENERATED`, `DATA_DELETION_DISABLE`, `FACE_ADDED_TO_DATABASE`, `SELFIE_ADDED_TO_IDENTITY_TEMPLATE`, `FRAUD_RING_RENAMED`, `FRAUD_RING_NOTE_ADDED`, `TRUSTGRAPH_SESSION_EXCLUDED`, `TRUSTGRAPH_SESSION_EXCLUSION_REVOKED`, `USER_DEACTIVATED`, `USER_ACTIVATED`, `ROLE_CREATED`, `ROLE_UPDATED`, `ROLE_DELETED`, `ROLE_ASSIGNED`, `ROLE_UNASSIGNED`, `GROUP_ROLE_MAPPING_UPDATED`, `ROLE_SOURCE_UPDATED`, `SSO_CONFIGURED`, `SSO_UPDATED`, `SSO_REMOVED`, `SCIM_ENABLED`, `SCIM_SECRET_ROTATED`, `SCIM_DISABLED`, `MFA_SETTINGS_UPDATED`, `PASSWORD_POLICY_UPDATED`, `LOGIN_FAILED`, `ACCOUNT_LOCKED`, `USER_INVITATION_ACCEPTED`, `PASSWORD_CHANGED`, `PASSWORD_RESET_REQUESTED`, `PASSWORD_RESET_COMPLETED`, `MFA_METHOD_ENROLLED`, `MFA_METHOD_REMOVED` | | `content.timestamp` | string (date-time) | | | | `content.executiveId` | string | | | | `content.managedEntityType` | string | | Enum: `SESSION`, `IDENTITY`, `EXECUTIVE`, `FLOW`, `CONFIGURATION`, `WORKFLOW`, `WATCHLIST`, `PROVISIONING`, `CONSENT`, `DATA`, `WEBHOOK`, `AUDIT_LOG`, `AUTHENTICATION`, `USER`, `FRAUD_RING`, `ROLE`, `ORGANIZATION` | | `content.managedEntityId` | string | | | | `content.payload` | object | | | | `content.apiKey` | string | | | | `content.role` | string | | Enum: `OPEN`, `STATISTICS`, `LIMITED`, `INCODE_IDENTITY`, `INCODE_ID_USER`, `ACCESS`, `AUTHENTICATOR`, `REFRESH`, `REGISTER`, `INCODE_ID_CLIENT`, `EXECUTIVE`, `ADMIN`, `SCIM_ADMIN`, `MULTI_ORG_ADMIN`, `INTEGRATOR`, `INCODE_EXECUTIVE`, `INCODE_ADMIN`, `WIDGET_CLIENT`, `INTERNAL_SERVICE`, `AUTHORIZATION_SERVER`, `KEYCLOAK_SESSION`, `HIPAA_ADMIN`, `HIPAA_VIEWER`, `WORKFORCE_ADMIN`, `WORKFORCE_HELPDESK_STAFF`, `WORKFORCE_RECRUITER`, `SERVER`, `IDENTITY_SERVICE`, `TRUST_GRAPH_DATA_LOADER` | | `content.application` | string | | Enum: `USER_SERVICE`, `IAM_SERVICE` | | `content.ipAddress` | string | | | | `content.userAgent` | string | | | | `content.email` | string | | | | `page` | Page | | | | `page.size` | integer (int32) | | | | `page.totalElements` | integer (int64) | | | | `page.totalPages` | integer (int64) | | | | `page.currentPageNumber` | integer (int32) | | | | `total` | integer (int64) | | | | `more` | boolean | | | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/executive-events/find?avoidCounting=%3CavoidCounting%3E&pageable=%3Cpageable%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/executive-events/find?avoidCounting=%3CavoidCounting%3E&pageable=%3Cpageable%3E", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/executive-events/find?avoidCounting=%3CavoidCounting%3E&pageable=%3Cpageable%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/executive-events/find?avoidCounting=%3CavoidCounting%3E&pageable=%3Cpageable%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/executive-events/find?avoidCounting=%3CavoidCounting%3E&pageable=%3Cpageable%3E") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/executive-events/find?avoidCounting=%3CavoidCounting%3E&pageable=%3Cpageable%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "content": [ { "id": "string", "code": "SESSION_DELETED", "timestamp": "string", "executiveId": "string", "managedEntityType": "SESSION", "managedEntityId": "string", "payload": {}, "apiKey": "string", "role": "OPEN", "application": "USER_SERVICE", "ipAddress": "string", "userAgent": "string", "email": "string" } ], "page": { "size": 0, "totalElements": 0, "totalPages": 0, "currentPageNumber": 0 }, "total": 0, "more": true } ``` --- - Path: `api-reference/executive-log-in` - URL: https://developer.incode.com/api-reference/executive-log-in/ - Markdown: https://developer.incode.com/api-reference/executive-log-in.md - Endpoint: `POST /executive/log-in` # Login admin token `POST /executive/log-in` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Logs in an user and provides a token with high-privileges ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `email` | string | yes | | | `password` | string | yes | | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `token` | string | | Access token for next calls | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/executive/log-in \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" \ -d '{ "email": "", "password": "" }' ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/executive/log-in", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, body: JSON.stringify({ "email": "", "password": "" }), }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/executive/log-in", headers=headers, json={ "email": "", "password": "" }) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/executive/log-in")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{\n \"email\": \"\",\n \"password\": \"\"\n}")) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/executive/log-in") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" req.body = '{ "email": "", "password": "" }' res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/executive/log-in"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "email": "", "password": "" }'); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "token": "eyJhbGciOasfasiJ9.eyJleHRl2OTg5NX0.zdbAC-kE-I71" } ``` --- - Path: `api-reference/expire-interviews` - URL: https://developer.incode.com/api-reference/expire-interviews/ - Markdown: https://developer.incode.com/api-reference/expire-interviews.md - Endpoint: `POST /omni/expire/interviews` # Expire onboarding sessions by interviewIds. `POST /omni/expire/interviews` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Expire onboarding sessions given by interviewIds array, and cleanerConfiguration parameter. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `interviewIds` | array[string] | | | | `cleanerConfiguration` | ExpireInterviewConfigurationDto | | Configuration for expiring interview | | `cleanerConfiguration.expirationConditions` | array[string] | yes | Enum: `INCOMPLETE`, `NEEDS_REVIEW` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/expire/interviews \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" \ -d '{ "cleanerConfiguration": { "expirationConditions": [] } }' ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/expire/interviews", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, body: JSON.stringify({ "cleanerConfiguration": { "expirationConditions": [] } }), }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/expire/interviews", headers=headers, json={ "cleanerConfiguration": { "expirationConditions": [] } }) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/expire/interviews")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{\n \"cleanerConfiguration\": {\n \"expirationConditions\": []\n }\n}")) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/expire/interviews") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" req.body = '{ "cleanerConfiguration": { "expirationConditions": [] } }' res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/expire/interviews"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "cleanerConfiguration": { "expirationConditions": [] } }'); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/external-send-sms` - URL: https://developer.incode.com/api-reference/external-send-sms/ - Markdown: https://developer.incode.com/api-reference/external-send-sms.md - Endpoint: `POST /omni/external/send-sms` # Send SMS with the link for onboarding `POST /omni/external/send-sms` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Used by Admins or Executives to send SMS containing generated onboarding link. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `id` | query | string | yes | Id of onboarding session for which link is being generated. | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `smsText` | string | | Text to be shown with URL. Needs to have {0} placeholder inside for URL. | | `clientId` | string | yes | | | `shortUrl` | boolean | | Indicates whether the link should be shortened. If set to true, the link will be converted to a shortened version. | | `queryParams` | SendSmsExternalUrlParams | | Additional onboarding url query params allowed: lang | | `queryParams.lang` | string | | | | `uuid` | string | | Optional UUID to be reused for linking the onboarding session. If not provided or invalid, a new one will be generated. | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ### 400 Custom error status: - 4004: Could not find user Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/external/send-sms?id=%3Cid%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" \ -d '{ "clientId": "" }' ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/external/send-sms?id=%3Cid%3E", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, body: JSON.stringify({ "clientId": "" }), }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/external/send-sms?id=%3Cid%3E", headers=headers, json={ "clientId": "" }) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/external/send-sms?id=%3Cid%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{\n \"clientId\": \"\"\n}")) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/external/send-sms?id=%3Cid%3E") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" req.body = '{ "clientId": "" }' res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/external/send-sms?id=%3Cid%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "clientId": "" }'); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/externalverification-ekyb` - URL: https://developer.incode.com/api-reference/externalverification-ekyb/ - Markdown: https://developer.incode.com/api-reference/externalverification-ekyb.md - Endpoint: `POST /omni/externalVerification/ekyb` # eKYB `POST /omni/externalVerification/ekyb` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment This endpoint performs an eKYB check for the business specified ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `plugins` | array[string] | | | | `businessName` | string | | Name of the business | | `addressLine1` | string | | Address line 1 of the business | | `street` | string | | Street name of the business address | | `houseNo` | string | | The exterior number of the business address | | `addressLine2` | string | | Address line 2 of the business | | `city` | string | | City of the business address. | | `state` | string | | State or province of the business address. Send the form the local registry uses: a two-letter code for the United States, the full province name for Canada. | | `postalCode` | string | | Postal code of the business address. | | `country` | string | | Two-letter country code of the business address | | `taxId` | string | | The tax or company registration id of the business. Many countries require it and answer 400 when it is missing. Canada takes the Corporations Canada corporation number, a provincial registration number or the CRA business number. The United Arab Emirates takes any value that contains a letter or a digit, because each emirate and free zone issues its own format. | | `uboName` | string | | Ultimate Beneficial Owner name. Deprecated — use uboNames instead. | | `uboNames` | array[string] | | Ultimate Beneficial Owners names | | `directors` | array[string] | | Names of the directors of the business | ## Responses ### 200 The `kyb` array carries one entry per check that ran. Which keys appear depends on the country and the provider behind it, and on which fields the request supplied, so read the array by key rather than by position and treat an absent key as "not checked". `sub_label` holds the outcome of the check. `status` and `message` are populated by some providers only and are absent elsewhere. On most providers the "directors_name_match" and "ubo_name_match" keys repeat once per name supplied in `directors` and `uboNames`, and each entry names the value it reports on in `directorsName_input` or `uboName_input`. Match entries on that field rather than keeping one entry per key. In the United States there is at most one "ubo_name_match" entry. It reports on the first name in `uboNames` only and carries no `uboName_input`. Outcomes for a name or address check: - sub_label: Verified, the submitted value matched - sub_label: Approximate Match, a close but inexact match - sub_label: Unverified, the submitted value did not match. Most providers also return it when no company matched or they hold no value to compare - sub_label: Unknown, nothing was compared. Some providers return it when no company matched the request, when the registry holds no value for that field, or when the check does not apply to that country or to the fields supplied The `registrationStatus` key reports Active, Inactive or Unknown, and the `entityType` key carries the legal entity type in its own `entityType` object rather than in `sub_label`. The "address_property_type" and "address_deliverability" keys are returned for the United States only, and carry both a status and a message: - sub_label: Commercial, message: Submitted Office Address is a Commercial property - sub_label: Residential, message: Submitted Office Address is a Residential property - sub_label: Deliverable, message: The USPS is able to deliver mail to the submitted Office Address - sub_label: Undeliverable, message: The USPS is unable to deliver mail to the submitted Office Address Example: ``` { "kyb": [ { "key": "name", "status": "success", "sub_label": "Verified", "message": "Match identified to the submitted Business Name" }, { "key": "address_verification", "status": "success", "sub_label": "Verified", "message": "Match identified to the submitted Office Address" }, { "key": "address_deliverability", "status": "success", "sub_label": "Deliverable", "message": "The USPS is able to deliver mail to the submitted Office Address" }, { "key": "address_property_type", "status": "success", "sub_label": "Commercial", "message": "Submitted Office Address is a Commercial property" } ] } ``` Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `kyb` | array[EkybVerification] | | | | `kyb.key` | string | | The name of test | | `kyb.status` | string | | Whether the test ows passed. | | `kyb.sub_label` | string | | Additional info on the status. | | `kyb.message` | string | | Human readable description of the status. | | `kyb.reasonCodes` | array[string] | | Machine-readable qualifiers for this check, present only when the provider had something to qualify. The "tin" entry carries "Tax ID was not found." when the vendor returned no company matching the supplied identifier, REGNO or VATNO on the providers that resolve through a named identifier class, and REGISTRY_RECORD_NOT_VERIFIED when the provider matched a company but reports the registry record behind it as one it could not verify. The "ubo_name_match" entry carries NO_SHAREHOLDER_DATA, and "directors_name_match" carries NO_DIRECTOR_DATA, when the provider returned no usable records to compare against; on those two keys the field is absent when a comparison actually ran. An "Unverified" sub_label accompanied by a no-data code means the check could not be performed, rather than that it was performed and failed. New codes may be added over time, so treat unrecognised values as informational. | | `kyb.uboName_input` | string | | The beneficial owner name from the request that this "ubo_name_match" entry reports on, copied back unchanged. Most providers return one entry per name supplied in uboNames and set this field. In the United States there is at most one entry, which reports on the first name only, and this field is absent. | | `kyb.directorsName_input` | string | | The director name from the request that this "directors_name_match" entry reports on, copied back unchanged. The providers that return this key return one entry per name supplied in directors and set this field. | | `kyb.entityType` | EntityTypeInfo | | Carried by the "entityType" entry instead of sub_label: the legal entity type for the matched company, or "Unknown" when none could be determined. Most providers pass through the value the source reports, so the wording is not drawn from a fixed set. For Mexico the value is derived by Incode from the legal-name suffix. | | `kyb.entityType.entityType` | string | | Legal entity type for the matched company, or "Unknown" when none could be determined. Most providers pass through the value the source reports; for Mexico it is derived by Incode from the legal-name suffix. | | `kybSource` | EkybSourceInfo | | | | `kybSource.uboNames` | array[UboName] | | | | `kybSource.uboNames.id` | string | | | | `kybSource.uboNames.uboName` | string | | | | `businessClassification` | array[EkybVerification] | | | | `businessClassification.key` | string | | The name of test | | `businessClassification.status` | string | | Whether the test ows passed. | | `businessClassification.sub_label` | string | | Additional info on the status. | | `businessClassification.message` | string | | Human readable description of the status. | | `businessClassification.reasonCodes` | array[string] | | Machine-readable qualifiers for this check, present only when the provider had something to qualify. The "tin" entry carries "Tax ID was not found." when the vendor returned no company matching the supplied identifier, REGNO or VATNO on the providers that resolve through a named identifier class, and REGISTRY_RECORD_NOT_VERIFIED when the provider matched a company but reports the registry record behind it as one it could not verify. The "ubo_name_match" entry carries NO_SHAREHOLDER_DATA, and "directors_name_match" carries NO_DIRECTOR_DATA, when the provider returned no usable records to compare against; on those two keys the field is absent when a comparison actually ran. An "Unverified" sub_label accompanied by a no-data code means the check could not be performed, rather than that it was performed and failed. New codes may be added over time, so treat unrecognised values as informational. | | `businessClassification.uboName_input` | string | | The beneficial owner name from the request that this "ubo_name_match" entry reports on, copied back unchanged. Most providers return one entry per name supplied in uboNames and set this field. In the United States there is at most one entry, which reports on the first name only, and this field is absent. | | `businessClassification.directorsName_input` | string | | The director name from the request that this "directors_name_match" entry reports on, copied back unchanged. The providers that return this key return one entry per name supplied in directors and set this field. | | `businessClassification.entityType` | EntityTypeInfo | | Carried by the "entityType" entry instead of sub_label: the legal entity type for the matched company, or "Unknown" when none could be determined. Most providers pass through the value the source reports, so the wording is not drawn from a fixed set. For Mexico the value is derived by Incode from the legal-name suffix. | | `businessClassification.entityType.entityType` | string | | Legal entity type for the matched company, or "Unknown" when none could be determined. Most providers pass through the value the source reports; for Mexico it is derived by Incode from the legal-name suffix. | | `status` | string | | Only present on a 202 async dispatch: PENDING until the verification finishes and the result is delivered via the EKYB_VERIFICATION_RESULT webhook. Enum: `PENDING`, `COMPLETED`, `FAILED` | | `referenceId` | string | | Only present on a 202 async dispatch: id correlating the webhook notification and the result-poll endpoint with this request. | ### 202 Async verification is enabled for the organization; the request is processed in the background and the result is delivered via the EKYB_VERIFICATION_RESULT webhook. Body carries only referenceId and status=PENDING. Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `kyb` | array[EkybVerification] | | | | `kyb.key` | string | | The name of test | | `kyb.status` | string | | Whether the test ows passed. | | `kyb.sub_label` | string | | Additional info on the status. | | `kyb.message` | string | | Human readable description of the status. | | `kyb.reasonCodes` | array[string] | | Machine-readable qualifiers for this check, present only when the provider had something to qualify. The "tin" entry carries "Tax ID was not found." when the vendor returned no company matching the supplied identifier, REGNO or VATNO on the providers that resolve through a named identifier class, and REGISTRY_RECORD_NOT_VERIFIED when the provider matched a company but reports the registry record behind it as one it could not verify. The "ubo_name_match" entry carries NO_SHAREHOLDER_DATA, and "directors_name_match" carries NO_DIRECTOR_DATA, when the provider returned no usable records to compare against; on those two keys the field is absent when a comparison actually ran. An "Unverified" sub_label accompanied by a no-data code means the check could not be performed, rather than that it was performed and failed. New codes may be added over time, so treat unrecognised values as informational. | | `kyb.uboName_input` | string | | The beneficial owner name from the request that this "ubo_name_match" entry reports on, copied back unchanged. Most providers return one entry per name supplied in uboNames and set this field. In the United States there is at most one entry, which reports on the first name only, and this field is absent. | | `kyb.directorsName_input` | string | | The director name from the request that this "directors_name_match" entry reports on, copied back unchanged. The providers that return this key return one entry per name supplied in directors and set this field. | | `kyb.entityType` | EntityTypeInfo | | Carried by the "entityType" entry instead of sub_label: the legal entity type for the matched company, or "Unknown" when none could be determined. Most providers pass through the value the source reports, so the wording is not drawn from a fixed set. For Mexico the value is derived by Incode from the legal-name suffix. | | `kyb.entityType.entityType` | string | | Legal entity type for the matched company, or "Unknown" when none could be determined. Most providers pass through the value the source reports; for Mexico it is derived by Incode from the legal-name suffix. | | `kybSource` | EkybSourceInfo | | | | `kybSource.uboNames` | array[UboName] | | | | `kybSource.uboNames.id` | string | | | | `kybSource.uboNames.uboName` | string | | | | `businessClassification` | array[EkybVerification] | | | | `businessClassification.key` | string | | The name of test | | `businessClassification.status` | string | | Whether the test ows passed. | | `businessClassification.sub_label` | string | | Additional info on the status. | | `businessClassification.message` | string | | Human readable description of the status. | | `businessClassification.reasonCodes` | array[string] | | Machine-readable qualifiers for this check, present only when the provider had something to qualify. The "tin" entry carries "Tax ID was not found." when the vendor returned no company matching the supplied identifier, REGNO or VATNO on the providers that resolve through a named identifier class, and REGISTRY_RECORD_NOT_VERIFIED when the provider matched a company but reports the registry record behind it as one it could not verify. The "ubo_name_match" entry carries NO_SHAREHOLDER_DATA, and "directors_name_match" carries NO_DIRECTOR_DATA, when the provider returned no usable records to compare against; on those two keys the field is absent when a comparison actually ran. An "Unverified" sub_label accompanied by a no-data code means the check could not be performed, rather than that it was performed and failed. New codes may be added over time, so treat unrecognised values as informational. | | `businessClassification.uboName_input` | string | | The beneficial owner name from the request that this "ubo_name_match" entry reports on, copied back unchanged. Most providers return one entry per name supplied in uboNames and set this field. In the United States there is at most one entry, which reports on the first name only, and this field is absent. | | `businessClassification.directorsName_input` | string | | The director name from the request that this "directors_name_match" entry reports on, copied back unchanged. The providers that return this key return one entry per name supplied in directors and set this field. | | `businessClassification.entityType` | EntityTypeInfo | | Carried by the "entityType" entry instead of sub_label: the legal entity type for the matched company, or "Unknown" when none could be determined. Most providers pass through the value the source reports, so the wording is not drawn from a fixed set. For Mexico the value is derived by Incode from the legal-name suffix. | | `businessClassification.entityType.entityType` | string | | Legal entity type for the matched company, or "Unknown" when none could be determined. Most providers pass through the value the source reports; for Mexico it is derived by Incode from the legal-name suffix. | | `status` | string | | Only present on a 202 async dispatch: PENDING until the verification finishes and the result is delivered via the EKYB_VERIFICATION_RESULT webhook. Enum: `PENDING`, `COMPLETED`, `FAILED` | | `referenceId` | string | | Only present on a 202 async dispatch: id correlating the webhook notification and the result-poll endpoint with this request. | ### 400 Validation failures and provider failures both answer 400. The body's `status` field carries the classification: 400 when the request was rejected because a field the country requires is missing or blank, 503 when the provider did not return a complete result in time and the request can be retried later, 502 when the provider answered the search but not the company profile. `message` carries the reason. Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/externalVerification/ekyb \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/externalVerification/ekyb", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/externalVerification/ekyb", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/externalVerification/ekyb")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/externalVerification/ekyb") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/externalVerification/ekyb"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "kyb": [ { "key": "string", "status": "string", "sub_label": "string", "message": "string", "reasonCodes": [ "NO_SHAREHOLDER_DATA" ], "uboName_input": "Sample Holding Company", "directorsName_input": "Sample Director", "entityType": { "entityType": "Business Corporation" } } ], "kybSource": { "uboNames": [ { "id": "string", "uboName": "string" } ] }, "businessClassification": [ { "key": "string", "status": "string", "sub_label": "string", "message": "string", "reasonCodes": [ "NO_SHAREHOLDER_DATA" ], "uboName_input": "Sample Holding Company", "directorsName_input": "Sample Director", "entityType": { "entityType": "Business Corporation" } } ], "status": "PENDING", "referenceId": "string" } ``` --- - Path: `api-reference/externalverification-ekyb-session` - URL: https://developer.incode.com/api-reference/externalverification-ekyb-session/ - Markdown: https://developer.incode.com/api-reference/externalverification-ekyb-session.md - Endpoint: `GET /omni/externalVerification/ekyb/session` # Get eKYB session data for the current session `GET /omni/externalVerification/ekyb/session` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Returns stored eKYB verification request/response data for the interview associated with the caller's session token. Intended for downstream onboarding steps (e.g. the business watchlist screen) to reuse data the user already entered on the eKYB form, such as `businessName`, `country` and `taxId`, without requiring an executive token. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `requestData` | BusinessVerificationRequestData | | | | `requestData.plugins` | array[string] | | | | `requestData.businessName` | string | | | | `requestData.address` | string | | | | `requestData.addressLine1` | string | | | | `requestData.street` | string | | | | `requestData.houseNo` | string | | | | `requestData.addressLine2` | string | | | | `requestData.city` | string | | | | `requestData.state` | string | | | | `requestData.postalCode` | string | | | | `requestData.country` | string | | Enum: `US`, `BR`, `CA`, `CN`, `UK`, `GB`, `DE`, `FR`, `RO`, `ES`, `IT`, `IL`, `AR`, `IE`, `JP`, `SE`, `NO`, `VN`, `NL`, `NG`, `KE`, `CM`, `HK`, `IN`, `MX`, `DK`, `BG`, `MT`, `LT`, `KM`, `TR`, `EG`, `AE`, `SA`, `AU`, `GR`, `PT`, `BE`, `AT` | | `requestData.taxId` | string | | | | `requestData.uboNames` | array[string] | | | | `requestData.directors` | array[string] | | | | `verificationResult` | BusinessVerificationResultData | | | | `verificationResult.businessName` | string | | | | `verificationResult.businessClassification` | string | | | | `verificationResult.addressVerification` | string | | | | `verificationResult.cityVerification` | string | | | | `verificationResult.postalCodeVerification` | string | | | | `verificationResult.stateVerification` | string | | | | `verificationResult.addressPropertyType` | string | | | | `verificationResult.addressDeliverability` | string | | | | `verificationResult.tinVerification` | string | | | | `verificationResult.uboNameMatch` | string | | | | `verificationResult.registrationStatus` | string | | Enum: `Active`, `Inactive`, `Unknown` | | `verificationResult.entityType` | EntityTypeData | | | | `verificationResult.entityType.entityType` | string | | | | `verificationResult.uboNameVerificationResults` | array[UboNameVerificationResultData] | | | | `verificationResult.uboNameVerificationResults.name` | string | | | | `verificationResult.uboNameVerificationResults.uboNameMatch` | string | | | | `verificationResult.uboNameVerificationResults.matchId` | string | | | | `verificationResult.uboNameVerificationResults.ownershipPercentage` | string | | | | `verificationResult.directorsVerificationResults` | array[UboNameVerificationResultData] | | | | `verificationResult.directorsVerificationResults.name` | string | | | | `verificationResult.directorsVerificationResults.uboNameMatch` | string | | | | `verificationResult.directorsVerificationResults.matchId` | string | | | | `verificationResult.directorsVerificationResults.ownershipPercentage` | string | | | | `verificationResult.people` | array[PeopleData] | | | | `verificationResult.people.name` | string | | | | `verificationResult.people.titles` | array[TitleData] | | | | `verificationResult.people.titles.title` | string | | | | `verificationResult.people.memberType` | string | | | | `verificationResult.verificationMessages` | VerificationMessages | | | | `verificationResult.verificationMessages.tinVerificationMessage` | string | | | | `externalVerificationThirdPartyRequest` | object | | | | `externalVerificationThirdPartyResponse` | object | | | | `providerInteractions` | array[ProviderInteraction] | | | | `providerInteractions.providerName` | string | | Enum: `MIDDESK`, `OPEN_CORPS_US`, `OPEN_CORPS_CA`, `SERPRO`, `OPENDATA`, `CREDITSAFE_UK`, `CREDITSAFE_RO`, `CREDITSAFE_IT`, `CREDITSAFE_ES`, `CREDITSAFE_FR`, `CREDITSAFE_DE`, `CREDITSAFE_AR`, `CREDITSAFE_IE`, `CREDITSAFE_JP`, `CREDITSAFE_SE`, `CREDITSAFE_NO`, `CREDITSAFE_NL`, `CREDITSAFE_VN`, `CREDITSAFE_NG`, `CREDITSAFE_CM`, `CREDITSAFE_KE`, `CREDITSAFE_MX`, `CREDITSAFE_DK`, `CREDITSAFE_BG`, `CREDITSAFE_MT`, `CREDITSAFE_LT`, `CREDITSAFE_AU`, `CREDITSAFE_GR`, `CREDITSAFE_PT`, `THE_KYB_NL`, `THE_KYB_KM`, `THE_KYB_TR`, `THE_KYB_EG`, `THE_KYB_AE`, `THE_KYB_SA`, `THE_KYB_CA`, `NUBARIUM_MX`, `ASIAVERIFY_CN`, `ASIAVERIFY_IN`, `ASIAVERIFY_HK`, `MONO_NG`, `IDENTIFY_AFRICA_KE`, `IDMERIT_MX`, `THE_KYB_SA_PREFILL`, `THE_KYB_AE_PREFILL`, `CREDITSAFE_AU_PREFILL`, `CREDITSAFE_GB_PREFILL`, `BASELAYER_US_PREFILL`, `CREDITSAFE_IN_PREFILL`, `CREDITSAFE_DE_PREFILL`, `CREDITSAFE_ES_PREFILL`, `CREDITSAFE_FR_PREFILL`, `CREDITSAFE_IT_PREFILL`, `CREDITSAFE_NL_PREFILL`, `CREDITSAFE_GR_PREFILL`, `CREDITSAFE_PT_PREFILL`, `CREDITSAFE_BE_PREFILL`, `CREDITSAFE_AT_PREFILL`, `CREDITSAFE_IE_PREFILL` | | `providerInteractions.interactionType` | string | | Enum: `token_fetch`, `verification`, `business_classification`, `entity_lookup`, `prefill` | | `providerInteractions.timestamp` | string (date-time) | | | | `providerInteractions.externalVerificationThirdPartyRequest` | object | | | | `providerInteractions.externalVerificationThirdPartyResponse` | object | | | | `providerInteractions.status` | string | | Enum: `SUCCESS`, `NO_RESULT`, `DEFERRED` | | `providerInteractions.errorMessage` | string | | | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/externalVerification/ekyb/session \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/externalVerification/ekyb/session", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/externalVerification/ekyb/session", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/externalVerification/ekyb/session")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/externalVerification/ekyb/session") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/externalVerification/ekyb/session"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "requestData": { "plugins": [ "string" ], "businessName": "string", "address": "string", "addressLine1": "string", "street": "string", "houseNo": "string", "addressLine2": "string", "city": "string", "state": "string", "postalCode": "string", "country": "US", "taxId": "string", "uboNames": [ "string" ], "directors": [ "string" ] }, "verificationResult": { "businessName": "string", "businessClassification": "string", "addressVerification": "string", "cityVerification": "string", "postalCodeVerification": "string", "stateVerification": "string", "addressPropertyType": "string", "addressDeliverability": "string", "tinVerification": "string", "uboNameMatch": "string", "registrationStatus": "Active", "entityType": { "entityType": "string" }, "uboNameVerificationResults": [ { "name": "string", "uboNameMatch": "string", "matchId": "string", "ownershipPercentage": "string" } ], "directorsVerificationResults": [ { "name": "string", "uboNameMatch": "string", "matchId": "string", "ownershipPercentage": "string" } ], "people": [ { "name": "string", "titles": [ { "title": "string" } ], "memberType": "string" } ], "verificationMessages": { "tinVerificationMessage": "string" } }, "externalVerificationThirdPartyRequest": {}, "externalVerificationThirdPartyResponse": {}, "providerInteractions": [ { "providerName": "MIDDESK", "interactionType": "token_fetch", "timestamp": "string", "externalVerificationThirdPartyRequest": {}, "externalVerificationThirdPartyResponse": {}, "status": "SUCCESS", "errorMessage": "string" } ] } ``` --- - Path: `api-reference/externalverification-ekyc` - URL: https://developer.incode.com/api-reference/externalverification-ekyc/ - Markdown: https://developer.incode.com/api-reference/externalverification-ekyc.md - Endpoint: `POST /omni/externalVerification/ekyc` # External Verification (eKYC) `POST /omni/externalVerification/ekyc` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment This endpoint verifies phone, email, address, date of birth and tax numbers, specifically social security number (ssn). When making a request use "kyc" in the plugins array. To have the API return specific risk scores for phone, email, ssn (taxId) and address, see examples below. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `plugins` | array[string] | | Enum: `kyc` | | `firstName` | string | | The following special characters are not supported: `^±!@£$%&*_+¡€#¢§¶•ªº«<>?\\/:;\|=` | | `surName` | string | | The following special characters are not supported: `^±!@£$%&*_+¡€#¢§¶•ªº«<>?\\/:;\|=` | | `middleName` | string | | The following special characters are not supported: `^±!@£$%&*_+¡€#¢§¶•ªº«<>?\\/:;\|=` | | `maternalSurname` | string | | The following special characters are not supported: `^±!@£$%&*_+¡€#¢§¶•ªº«<>?\\/:;\|=` | | `email` | string | | | | `street` | string | | | | `streetNo` | string | | | | `floor` | string | | | | `apartment` | string | | | | `postalCode` | string | | | | `countryCode` | string | | ISO 3166-1 alpha-2 format | | `phone` | string | | Use E.164 format. Hyphens are optional | | `state` | string | | | | `city` | string | | | | `idNumber` | string | | | | `idNumber1` | string | | | | `idNum` | string | | Brazilian CPF number for BR_TAX_PHONE_REGISTER (IDmerit BR1) | | `gender` | string | | | | `taxId` | string | | | | `dateOfBirth` | string (YYYY-MM-DD) | | | | `dlExpireAt` | string (YYYY-MM-DD) | | | | `fullName` | string | | | | `panNumber` | string | | Indian Permanent Account Number (PAN), format: AAAAANNNNA | | `district` | string | | District or Barangay (neighbourhood), used for Philippines KYC | | `idType` | string | | National ID type. Supported for Philippines KYC: SSS, TIN, GSIS | | `issueDate` | string (YYYY-MM-DD) | | ID document issue date. Required for Colombia Civil Register (CO_CIVIL_REGISTER_1) KYC | | `fileNumber` | string | | Indian passport file number (PRFN), format: 2 letters followed by 13 digits | | `dateOfIssue` | string (YYYY-MM-DD) | | Passport issue date, used for INDIA_PASSPORT_1 KYC | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `kyc` | array[EkycVerification] | | | | `kyc.key` | string | | Indicates a type of risk, such as addressRiskLevel. The overallLevel key name is an aggregate risk score for all risk types. It can be used to obtain a single risk score for a whole result set. | | `kyc.status` | string | | Explains the risk level, ie "low", "medium", or "high". When doing a social security number check, the API will return status values of nomatch, fuzzy or exact. Fuzzy means there is plausible match between the name and the social security number, like Dave and David both resolve to the same SSN. | | `kyc.sub_label` | string | | Additional info on the status. | | `kyc.message` | string | | | | `kyc.reasonCodes` | array[string] | | | | `income` | array[EkycVerification] | | | | `income.key` | string | | Indicates a type of risk, such as addressRiskLevel. The overallLevel key name is an aggregate risk score for all risk types. It can be used to obtain a single risk score for a whole result set. | | `income.status` | string | | Explains the risk level, ie "low", "medium", or "high". When doing a social security number check, the API will return status values of nomatch, fuzzy or exact. Fuzzy means there is plausible match between the name and the social security number, like Dave and David both resolve to the same SSN. | | `income.sub_label` | string | | Additional info on the status. | | `income.message` | string | | | | `income.reasonCodes` | array[string] | | | | `riskAddons` | array[object] | | | | `riskAddons.type` | string | | Enum: `phoneCheck`, `advancedPhoneCheck`, `emailCheck`, `phoneProfile` | | `riskAddons.checkStatus` | string | | Outcome of the check for the provided phone number: found or notFound. | | `riskAddons.message` | string | | Explanation returned when checkStatus is notFound. | | `riskAddons.confidenceLevel` | string | | Confidence in the returned identity match: low, medium or high. | | `riskAddons.phoneFirstName` | string | | First name on file for the phone number. | | `riskAddons.phoneLastName` | string | | Last name on file for the phone number. | | `riskAddons.phoneDob` | string | | Date of birth on file, yyyy-MM-dd. Availability varies by country. | | `riskAddons.phoneValid` | boolean | | Whether the provider considers the phone number valid. | | `riskAddons.phoneCountry` | string | | Country of the phone number as reported by the provider. | | `riskAddons.phoneAddresses` | array[PhoneProfileAddressResponse] | | | | `riskAddons.phoneAddresses.address1` | string | | Single concatenated address string, not split into street, city, state or postal code. | | `riskAddons.nameReturned` | boolean | | True only when both phoneFirstName and phoneLastName were returned. | | `riskAddons.phonePersonAge` | integer (int32) | | Age computed from phoneDob at the time of the check. Absent when phoneDob is unavailable. | | `riskAddons.isAdult` | boolean | | True when phonePersonAge is 18 or more, or, without a date of birth, when a name was returned. | | `riskAddons.additionalProfiles` | array[PhoneProfileAdditionalProfileResponse] | | | | `riskAddons.additionalProfiles.firstName` | string | | First name of the alternate candidate identity. | | `riskAddons.additionalProfiles.lastName` | string | | Last name of the alternate candidate identity. | | `riskAddons.additionalProfiles.dob` | string | | Date of birth of the alternate candidate identity, yyyy-MM-dd, when the provider returns it. | | `riskAddons.additionalProfiles.addresses` | array[PhoneProfileAddressResponse] | | | | `riskAddons.additionalProfiles.addresses.address1` | string | | Single concatenated address string, not split into street, city, state or postal code. | | `riskAddons.reasonCodes` | array[string] | | | | `additionalVerificationInfo` | AdditionalVerificationInfo | | | | `additionalVerificationInfo.creditFileDetails` | CreditFileDetails | | | | `additionalVerificationInfo.creditFileDetails.creditFileNumber` | string | | | | `additionalVerificationInfo.creditFileDetails.creditFileCreationDate` | string | | | | `sot` | string | | | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/externalVerification/ekyc \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/externalVerification/ekyc", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/externalVerification/ekyc", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/externalVerification/ekyc")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/externalVerification/ekyc") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/externalVerification/ekyc"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "kyc": [ { "key": "string", "status": "string", "sub_label": "string", "message": "string", "reasonCodes": [ "string" ] } ], "income": [ { "key": "string", "status": "string", "sub_label": "string", "message": "string", "reasonCodes": [ "string" ] } ], "riskAddons": [ { "type": "phoneCheck", "checkStatus": "string", "message": "string", "confidenceLevel": "string", "phoneFirstName": "string", "phoneLastName": "string", "phoneDob": "string", "phoneValid": true, "phoneCountry": "string", "phoneAddresses": [ { "address1": "string" } ], "nameReturned": true, "phonePersonAge": 0, "isAdult": true, "additionalProfiles": [ { "firstName": "string", "lastName": "string", "dob": "string", "addresses": [ { "address1": null } ] } ], "reasonCodes": [ "string" ] } ], "additionalVerificationInfo": { "creditFileDetails": { "creditFileNumber": "string", "creditFileCreationDate": "string" } }, "sot": "string" } ``` --- - Path: `api-reference/externalverification-ekyc-session` - URL: https://developer.incode.com/api-reference/externalverification-ekyc-session/ - Markdown: https://developer.incode.com/api-reference/externalverification-ekyc-session.md - Endpoint: `GET /omni/externalVerification/ekyc/session` # Get eKYC session data for the current session `GET /omni/externalVerification/ekyc/session` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Returns stored eKYC verification request/response data for the interview associated with the caller's session token. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `userData` | ExternalVerificationRequest | | | | `userData.plugins` | array[string] | | | | `userData.source` | string | | Enum: `US_DRIVERS_LICENSE_1`, `US_TELCO_1`, `US_TELCO_2`, `US_TELCO_4`, `US_TELCO_5`, `US_CREDIT_BUREAU_1`, `US_CREDIT_BUREAU_3`, `US_ADDRESS_1`, `US_CONSUMER_1`, `MX_CONSUMER_1`, `MX_CONSUMER_2`, `BR_GOVT_1`, `BR_CPF_1`, `CA_RES_CREDIT`, `CA_CREDIT_FINTRAC`, `UK_CREDIT_BUREAU_1`, `UK_VOTER_REGISTER`, `ES_PHONE_REGISTER_2`, `CL_1`, `AR_1`, `AR_RES_REGISTER`, `AR_CREDIT_BUR_1`, `GR_1`, `GT_1`, `CR_1`, `CO_1`, `PHONE_RISK_1`, `PHONE_RISK_2`, `PHONE_PROFILE`, `EMAIL_RISK_1`, `RISK_ADDONS_ONLY`, `GH_CARD_VERIFY_1`, `PE_MIGRATION_INSTITUTE`, `KE_IDENTIFYAFRICA`, `INDIA_PAN`, `IN_DMV`, `NG_MONO_BVN`, `NG_MONO_NIN`, `US_CREDIT_TELCO`, `PH_RES_CREDIT`, `VE_CIVIL_REGISTER`, `CO_CIVIL_REGISTER_1`, `MX_CIVIL_REGISTER_2`, `BR_TAX_PHONE_REGISTER`, `NL_CONSUMER_POP_REG_TELCO`, `NL_CIVIL_REG_CREDIT_TELCO`, `FI_NATIONAL_ID`, `FI_CONSUMER_POP_REG_TELCO`, `BE_CREDIT_TELCO`, `DK_CIVIL_REG_CREDIT_TELCO`, `GB_2X2`, `PE_CIVIL_REGISTER_2`, `NO_CONS_POP_REG`, `DE_PHONE_MOBILE_REGISTER`, `IT_CIVIL_REG_CREDIT_TELCO` | | `userData.fullName` | string | | | | `userData.firstName` | string | | | | `userData.middleName` | string | | | | `userData.surName` | string | | | | `userData.email` | string | | | | `userData.street` | string | | | | `userData.houseNo` | string | | | | `userData.postalCode` | string | | | | `userData.countryCode` | string | | | | `userData.phone` | string | | | | `userData.state` | string | | | | `userData.city` | string | | | | `userData.ssn` | string | | | | `userData.dateOfBirth` | string | | | | `userData.ipAddress` | string | | | | `userData.taxIdStatus` | string | | | | `userData.nationality` | string | | | | `userData.dlNumber` | string | | | | `userData.dlExpireAt` | string | | | | `userData.dlState` | string | | | | `userData.last4SSN` | string | | | | `userData.idNumber` | string | | | | `userData.panNumber` | string | | | | `riskData` | PremiumExternalVerification | | | | `riskData.level` | string | | | | `riskData.verifications` | object | | | | `riskData.income` | Income | | | | `riskData.income.status` | string | | | | `riskData.income.range` | string | | | | `riskData.employment` | Employment | | | | `riskData.employment.status` | string | | | | `riskData.employment.type` | string | | | | `riskData.employment.sector` | string | | | | `riskData.reasonCodes` | array[VerificationReasonCodes] | | | | `riskData.reasonCodes.key` | string | | | | `riskData.reasonCodes.reasonCodes` | array[ReasonCode] | | | | `riskData.reasonCodes.reasonCodes.reasonCode` | string | | Enum: `A40SS`, `A70SS`, `A4070SS`, `AASE`, `ACV`, `ADC`, `ADCMS`, `ADCUD`, `AFAEI`, `AFM`, `AFMNCC`, `AFMSCC`, `AHNI`, `AHR`, `AIA`, `AII`, `AIR`, `AMCC`, `AMI`, `AMICC`, `AMICCMM`, `AMICCSE`, `ANA`, `AND`, `ANF`, `APA`, `APAI`, `APCC`, `APNV`, `ARNF`, `ASC`, `ASCV`, `ASDL`, `ASU`, `AUICCM`, `AWS`, `EA1Y`, `EA2Y`, `EA4M`, `EA4Y`, `EA6M`, `EAC1F`, `EACMF`, `EADP`, `EAF1`, `EAF2`, `EAF3`, `EAF4Y`, `EAFC`, `EAG1`, `EAG2`, `EAG3`, `EAG4`, `EAG5`, `EAG6`, `EAHF`, `EALLI`, `EALSM`, `EALTW`, `EAM`, `EAMC`, `EAMF`, `EAMI`, `EAMP`, `EANA`, `EANE`, `EANI`, `EANP`, `EAPF`, `EAQ3`, `EAQ4`, `EAQM`, `EASI`, `EAVQ`, `EAW`, `EAY`, `ED4M`, `EDCH`, `EDCO`, `EDDN`, `EDHA`, `EDHC`, `EDHI`, `EDHN`, `EDI`, `EDL`, `EDLC`, `EDM`, `EDNP`, `EDPR`, `EDVH`, `EDVHC`, `EDVHI`, `EE24`, `EE90`, `EEPEII`, `EMA24`, `EMA90`, `ESG24`, `ESG90`, `EVS24`, `EVS90`, `P2OSOV`, `P3OSOV`, `P4OSOV`, `P5OSOV`, `PA2M`, `PA3M`, `PA15`, `PA24`, `PABA`, `PABM`, `PACF`, `PADU`, `PAE`, `PAHR`, `PAIN`, `PALT`, `PAM`, `PAMA`, `PAML`, `PANN`, `PANV`, `PAPM`, `PAPO`, `PAUD`, `PAV`, `PAVN`, `PAW`, `PBL`, `PBOT`, `PCC`, `PDI`, `PDL`, `PDLA`, `PE24`, `PE90`, `PECD`, `PELT`, `PES90`, `PES`, `PFIS`, `PFN`, `PFOI`, `PFOS`, `PFRD`, `PH90`, `PHAI`, `PHAO`, `PHLT`, `PHRL`, `PHSLT`, `PILE`, `PINV`, `PLEA`, `PLLT`, `PLS`, `PLST`, `PMA24`, `PMA90`, `PMAE`, `PMAIC`, `PMAOC`, `PMAOP`, `PMAOT`, `PML`, `PMNA`, `PMO`, `PMS`, `PMST`, `PMU`, `PMVS`, `PN3M`, `PNC`, `PNMB`, `PNN`, `PNNS`, `PNO`, `PNPB`, `PNRR`, `PNS`, `PNU`, `POD`, `PPC3`, `PPC5`, `PPC6`, `PPC9`, `PPGR`, `PPN`, `PPPH`, `PPRT`, `PPV`, `PRC`, `PRCO`, `PRM`, `PROM`, `PRP`, `PRSA`, `PRSK`, `PRSV`, `PSCD`, `PSDBM`, `PSFE`, `PSG24`, `PSG90`, `PSHRSN`, `PSM90`, `PSMDB`, `PSMRN`, `PSMSN`, `PSTF`, `PTFN`, `PTL`, `PTO`, `PVLA`, `PVLS`, `PVMN`, `PVOIP`, `PVRC`, `PVS24`, `PVS90`, `PVST`, `PVSTF`, `TANO`, `TDDA`, `TFAD1`, `TFADF`, `TFADI`, `TFVE`, `TFVI`, `TH3AA`, `TH3AH`, `TH3AI`, `TH3AO`, `TH3AS`, `TH3BO`, `TH3CH`, `TH3DB`, `TH3DI`, `TH3ED`, `TH3FG`, `TH3FR`, `TH3IT`, `TH3MR`, `TH3NN`, `TH3OM`, `TH3PB`, `TH3PH`, `TH3PR`, `TH3RI`, `TH3SA`, `TH3SF`, `TH3SM`, `THAAA`, `THAAH`, `THAAI`, `THAAO`, `THAAS`, `THABO`, `THACH`, `THADB`, `THADI`, `THAED`, `THAFG`, `THAFR`, `THAIT`, `THAMR`, `THANN`, `THAOM`, `THAPB`, `THAPH`, `THAPR`, `THARI`, `THASA`, `THASF`, `THASM`, `THPAA`, `THPAH`, `THPAI`, `THPAO`, `THPAS`, `THPBO`, `THPCH`, `THPDB`, `THPDI`, `THPED`, `THPFG`, `THPFR`, `THPIT`, `THPMR`, `THPNN`, `THPOM`, `THPPB`, `THPPH`, `THPPR`, `THPRI`, `THPSA`, `THPSF`, `THPSM`, `THTAH`, `THTAV`, `THTBE`, `THTBP`, `THTDI`, `THTED`, `THTES`, `THTFG`, `THTFR`, `THTGP`, `THTHE`, `THTIA`, `THTIH`, `THTIP`, `THTMX`, `THTNN`, `THTOM`, `THTPR`, `THTRP`, `THTSG`, `THTVP`, `TIAWB`, `TIAWF`, `TINO`, `TL3AA`, `TL3AH`, `TL3AI`, `TL3AO`, `TL3AS`, `TL3BO`, `TL3CH`, `TL3DB`, `TL3DI`, `TL3ED`, `TL3FG`, `TL3FR`, `TL3IT`, `TL3MR`, `TL3NN`, `TL3OM`, `TL3PB`, `TL3PH`, `TL3PR`, `TL3RI`, `TL3SA`, `TL3SF`, `TL3SM`, `TLAAA`, `TLAAH`, `TLAAI`, `TLAAO`, `TLAAS`, `TLABO`, `TLACH`, `TLADB`, `TLADI`, `TLAED`, `TLAFG`, `TLAFR`, `TLAIT`, `TLAMR`, `TLANN`, `TLAOM`, `TLAPB`, `TLAPH`, `TLAPR`, `TLARI`, `TLASA`, `TLASF`, `TLASM`, `TLGPD`, `TLPAA`, `TLPAH`, `TLPAI`, `TLPAO`, `TLPAS`, `TLPBO`, `TLPCH`, `TLPDB`, `TLPDI`, `TLPED`, `TLPFG`, `TLPFR`, `TLPIT`, `TLPMR`, `TLPNN`, `TLPOM`, `TLPPB`, `TLPPH`, `TLPPR`, `TLPRI`, `TLPSA`, `TLPSF`, `TLPSM`, `TLTAH`, `TLTAV`, `TLTBE`, `TLTBP`, `TLTDI`, `TLTED`, `TLTES`, `TLTFG`, `TLTFR`, `TLTGP`, `TLTHE`, `TLTIA`, `TLTIH`, `TLTIP`, `TLTMX`, `TLTNN`, `TLTOM`, `TLTPR`, `TLTRP`, `TLTSG`, `TLTVP`, `TMAI`, `TMFSI`, `TNAPD`, `TNASM`, `TNPID`, `TNPIE`, `TNPIN`, `TNPIP`, `TNPIR`, `TNPIS`, `TNPIZ`, `TNPMS`, `TOAB`, `TOAF`, `TPAI`, `TPDNV`, `TPSMT`, `TSAC`, `TSAF`, `TSBF`, `TSBG`, `TSBH`, `TSBI`, `TSBJ`, `TBK`, `TSBN`, `TSBO`, `TSCG`, `TSCH`, `TSDC`, `TSDD`, `TSDE`, `TSDF`, `TSDG`, `TSDH`, `TSDI`, `TSDJ`, `TSDK`, `TSDL`, `TSDM`, `TSDN`, `TSDO`, `TSDP`, `TSMA`, `TSMB`, `TSMC`, `TNSA`, `TSNB`, `TSNC`, `TSOA`, `TSKU`, `TSLI`, `TSLJ`, `TSLK`, `TSLN`, `TSLO`, `TSDV`, `TSNA`, `TSNV`, `TSOD`, `TSOP`, `TSPNA`, `TSPNM`, `TSR`, `TSRD`, `TSRF`, `TSSF`, `TSTUT`, `TTIQ`, `TXHR`, `TXMTW`, `TXNA`, `TXR`, `TXTW`, `TXVHR`, `TSRP` | | `riskData.reasonCodes.reasonCodes.description` | string | | | | `riskData.additionalVerificationInfo` | AdditionalVerificationInfo | | | | `riskData.additionalVerificationInfo.creditFileDetails` | CreditFileDetails | | | | `riskData.additionalVerificationInfo.creditFileDetails.creditFileNumber` | string | | | | `riskData.additionalVerificationInfo.creditFileDetails.creditFileCreationDate` | string | | | | `riskAddons` | array[object] | | | | `riskAddons.type` | string | | Enum: `phoneCheck`, `advancedPhoneCheck`, `emailCheck`, `phoneProfile` | | `riskAddons.checkStatus` | string | | Outcome of the check for the provided phone number: found or notFound. | | `riskAddons.message` | string | | Explanation returned when checkStatus is notFound. | | `riskAddons.confidenceLevel` | string | | Confidence in the returned identity match: low, medium or high. | | `riskAddons.phoneFirstName` | string | | First name on file for the phone number. | | `riskAddons.phoneLastName` | string | | Last name on file for the phone number. | | `riskAddons.phoneDob` | string | | Date of birth on file, yyyy-MM-dd. Availability varies by country. | | `riskAddons.phoneValid` | boolean | | Whether the provider considers the phone number valid. | | `riskAddons.phoneCountry` | string | | Country of the phone number as reported by the provider. | | `riskAddons.phoneAddresses` | array[PhoneProfileAddressResponse] | | | | `riskAddons.phoneAddresses.address1` | string | | Single concatenated address string, not split into street, city, state or postal code. | | `riskAddons.nameReturned` | boolean | | True only when both phoneFirstName and phoneLastName were returned. | | `riskAddons.phonePersonAge` | integer (int32) | | Age computed from phoneDob at the time of the check. Absent when phoneDob is unavailable. | | `riskAddons.isAdult` | boolean | | True when phonePersonAge is 18 or more, or, without a date of birth, when a name was returned. | | `riskAddons.additionalProfiles` | array[PhoneProfileAdditionalProfileResponse] | | | | `riskAddons.additionalProfiles.firstName` | string | | First name of the alternate candidate identity. | | `riskAddons.additionalProfiles.lastName` | string | | Last name of the alternate candidate identity. | | `riskAddons.additionalProfiles.dob` | string | | Date of birth of the alternate candidate identity, yyyy-MM-dd, when the provider returns it. | | `riskAddons.additionalProfiles.addresses` | array[PhoneProfileAddressResponse] | | | | `riskAddons.additionalProfiles.addresses.address1` | string | | Single concatenated address string, not split into street, city, state or postal code. | | `riskAddons.reasonCodes` | array[string] | | | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/externalVerification/ekyc/session \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/externalVerification/ekyc/session", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/externalVerification/ekyc/session", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/externalVerification/ekyc/session")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/externalVerification/ekyc/session") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/externalVerification/ekyc/session"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "userData": { "plugins": [ "string" ], "source": "US_DRIVERS_LICENSE_1", "fullName": "string", "firstName": "string", "middleName": "string", "surName": "string", "email": "string", "street": "string", "houseNo": "string", "postalCode": "string", "countryCode": "string", "phone": "string", "state": "string", "city": "string", "ssn": "string", "dateOfBirth": "string", "ipAddress": "string", "taxIdStatus": "string", "nationality": "string", "dlNumber": "string", "dlExpireAt": "string", "dlState": "string", "last4SSN": "string", "idNumber": "string", "panNumber": "string" }, "riskData": { "level": "string", "verifications": {}, "income": { "status": "string", "range": "string" }, "employment": { "status": "string", "type": "string", "sector": "string" }, "reasonCodes": [ { "key": "string", "reasonCodes": [ { "reasonCode": "A40SS", "description": "string" } ] } ], "additionalVerificationInfo": { "creditFileDetails": { "creditFileNumber": "string", "creditFileCreationDate": "string" } } }, "riskAddons": [ { "type": "phoneCheck", "checkStatus": "string", "message": "string", "confidenceLevel": "string", "phoneFirstName": "string", "phoneLastName": "string", "phoneDob": "string", "phoneValid": true, "phoneCountry": "string", "phoneAddresses": [ { "address1": "string" } ], "nameReturned": true, "phonePersonAge": 0, "isAdult": true, "additionalProfiles": [ { "firstName": "string", "lastName": "string", "dob": "string", "addresses": [ { "address1": null } ] } ], "reasonCodes": [ "string" ] } ] } ``` --- - Path: `api-reference/externalverification-ekyc-unified` - URL: https://developer.incode.com/api-reference/externalverification-ekyc-unified/ - Markdown: https://developer.incode.com/api-reference/externalverification-ekyc-unified.md - Endpoint: `POST /omni/externalVerification/ekyc/unified` # Unified start + eKYC + finish (low-latency) `POST /omni/externalVerification/ekyc/unified` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Runs session start and eKYC verification in parallel and fires finish-status asynchronously, returning once both the start and eKYC legs have resolved. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `start` | StartRequest | yes | Fields used to initialize the onboarding session (same shape as /omni/start). | | `start.language` | string | | Language code to be used when doing speech to text. Possible values: en-US, es-ES, pt-BR. | | `start.externalId` | string | | Id that identifies user in clients system should be used for externalId. (Deprecated, use externalCustomerId instead) | | `start.externalCustomerId` | string | | Id that identifies user in clients external system. | | `start.uuid` | string | | uuid key used in redis, can be used as an alternative to sending interviewId. | | `start.configurationId` | string | | Id of the flow to be used for this onboarding. | | `start.redirectionUrl` | string | | Url the user will be redirected to after finishing the onboarding successfully. | | `start.integrationReference` | string | | Optional integration reference. | | `start.urlUuid` | string | | Url uuid key used in redis. Will be validated in start if qrPhishingResistance is ON. | | `start.customFields` | object | | Used to send any additional information in key value pair format. Max fields: {maxEntries}, max key length: {keyMaxLength}, max value length: {valueMaxLength} | | `ekyc` | EkycVerificationRequest | yes | Fields used for the eKYC verification (same shape as /omni/externalVerification/ekyc). | | `ekyc.plugins` | array[string] | | Enum: `kyc` | | `ekyc.firstName` | string | | The following special characters are not supported: `^±!@£$%&*_+¡€#¢§¶•ªº«<>?\\/:;\|=` | | `ekyc.surName` | string | | The following special characters are not supported: `^±!@£$%&*_+¡€#¢§¶•ªº«<>?\\/:;\|=` | | `ekyc.middleName` | string | | The following special characters are not supported: `^±!@£$%&*_+¡€#¢§¶•ªº«<>?\\/:;\|=` | | `ekyc.maternalSurname` | string | | The following special characters are not supported: `^±!@£$%&*_+¡€#¢§¶•ªº«<>?\\/:;\|=` | | `ekyc.email` | string | | | | `ekyc.street` | string | | | | `ekyc.streetNo` | string | | | | `ekyc.floor` | string | | | | `ekyc.apartment` | string | | | | `ekyc.postalCode` | string | | | | `ekyc.countryCode` | string | | ISO 3166-1 alpha-2 format | | `ekyc.phone` | string | | Use E.164 format. Hyphens are optional | | `ekyc.state` | string | | | | `ekyc.city` | string | | | | `ekyc.idNumber` | string | | | | `ekyc.idNumber1` | string | | | | `ekyc.idNum` | string | | Brazilian CPF number for BR_TAX_PHONE_REGISTER (IDmerit BR1) | | `ekyc.gender` | string | | | | `ekyc.taxId` | string | | | | `ekyc.dateOfBirth` | string (YYYY-MM-DD) | | | | `ekyc.dlExpireAt` | string (YYYY-MM-DD) | | | | `ekyc.fullName` | string | | | | `ekyc.panNumber` | string | | Indian Permanent Account Number (PAN), format: AAAAANNNNA | | `ekyc.district` | string | | District or Barangay (neighbourhood), used for Philippines KYC | | `ekyc.idType` | string | | National ID type. Supported for Philippines KYC: SSS, TIN, GSIS | | `ekyc.issueDate` | string (YYYY-MM-DD) | | ID document issue date. Required for Colombia Civil Register (CO_CIVIL_REGISTER_1) KYC | | `ekyc.fileNumber` | string | | Indian passport file number (PRFN), format: 2 letters followed by 13 digits | | `ekyc.dateOfIssue` | string (YYYY-MM-DD) | | Passport issue date, used for INDIA_PASSPORT_1 KYC | | `finishAsync` | boolean | | When true (default), finish-session runs asynchronously after the response is sent. | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `interviewId` | string | | Identifier of the onboarding session created by /start. | | `token` | string | | JWT token for subsequent calls (X-Incode-Hardware-Id header). | | `interviewCode` | string | | Short onboarding code from /start. | | `flowType` | string | | Flow type of the configuration used. Enum: `configuration`, `flow`, `workflow` | | `ekyc` | EkycVerificationResponse | | eKYC verification result. | | `ekyc.kyc` | array[EkycVerification] | | | | `ekyc.kyc.key` | string | | Indicates a type of risk, such as addressRiskLevel. The overallLevel key name is an aggregate risk score for all risk types. It can be used to obtain a single risk score for a whole result set. | | `ekyc.kyc.status` | string | | Explains the risk level, ie "low", "medium", or "high". When doing a social security number check, the API will return status values of nomatch, fuzzy or exact. Fuzzy means there is plausible match between the name and the social security number, like Dave and David both resolve to the same SSN. | | `ekyc.kyc.sub_label` | string | | Additional info on the status. | | `ekyc.kyc.message` | string | | | | `ekyc.kyc.reasonCodes` | array[string] | | | | `ekyc.income` | array[EkycVerification] | | | | `ekyc.income.key` | string | | Indicates a type of risk, such as addressRiskLevel. The overallLevel key name is an aggregate risk score for all risk types. It can be used to obtain a single risk score for a whole result set. | | `ekyc.income.status` | string | | Explains the risk level, ie "low", "medium", or "high". When doing a social security number check, the API will return status values of nomatch, fuzzy or exact. Fuzzy means there is plausible match between the name and the social security number, like Dave and David both resolve to the same SSN. | | `ekyc.income.sub_label` | string | | Additional info on the status. | | `ekyc.income.message` | string | | | | `ekyc.income.reasonCodes` | array[string] | | | | `ekyc.riskAddons` | array[object] | | | | `ekyc.riskAddons.type` | string | | Enum: `phoneCheck`, `advancedPhoneCheck`, `emailCheck`, `phoneProfile` | | `ekyc.riskAddons.checkStatus` | string | | Outcome of the check for the provided phone number: found or notFound. | | `ekyc.riskAddons.message` | string | | Explanation returned when checkStatus is notFound. | | `ekyc.riskAddons.confidenceLevel` | string | | Confidence in the returned identity match: low, medium or high. | | `ekyc.riskAddons.phoneFirstName` | string | | First name on file for the phone number. | | `ekyc.riskAddons.phoneLastName` | string | | Last name on file for the phone number. | | `ekyc.riskAddons.phoneDob` | string | | Date of birth on file, yyyy-MM-dd. Availability varies by country. | | `ekyc.riskAddons.phoneValid` | boolean | | Whether the provider considers the phone number valid. | | `ekyc.riskAddons.phoneCountry` | string | | Country of the phone number as reported by the provider. | | `ekyc.riskAddons.phoneAddresses` | array[PhoneProfileAddressResponse] | | | | `ekyc.riskAddons.phoneAddresses.address1` | string | | Single concatenated address string, not split into street, city, state or postal code. | | `ekyc.riskAddons.nameReturned` | boolean | | True only when both phoneFirstName and phoneLastName were returned. | | `ekyc.riskAddons.phonePersonAge` | integer (int32) | | Age computed from phoneDob at the time of the check. Absent when phoneDob is unavailable. | | `ekyc.riskAddons.isAdult` | boolean | | True when phonePersonAge is 18 or more, or, without a date of birth, when a name was returned. | | `ekyc.riskAddons.additionalProfiles` | array[PhoneProfileAdditionalProfileResponse] | | | | `ekyc.riskAddons.additionalProfiles.firstName` | string | | First name of the alternate candidate identity. | | `ekyc.riskAddons.additionalProfiles.lastName` | string | | Last name of the alternate candidate identity. | | `ekyc.riskAddons.additionalProfiles.dob` | string | | Date of birth of the alternate candidate identity, yyyy-MM-dd, when the provider returns it. | | `ekyc.riskAddons.additionalProfiles.addresses` | array[PhoneProfileAddressResponse] | | | | `ekyc.riskAddons.additionalProfiles.addresses.address1` | string | | Single concatenated address string, not split into street, city, state or postal code. | | `ekyc.riskAddons.reasonCodes` | array[string] | | | | `ekyc.additionalVerificationInfo` | AdditionalVerificationInfo | | | | `ekyc.additionalVerificationInfo.creditFileDetails` | CreditFileDetails | | | | `ekyc.additionalVerificationInfo.creditFileDetails.creditFileNumber` | string | | | | `ekyc.additionalVerificationInfo.creditFileDetails.creditFileCreationDate` | string | | | | `ekyc.sot` | string | | | | `ekycStatus` | string | | Status of the eKYC verification: SUCCESS, TIMEOUT, or ERROR. Enum: `SUCCESS`, `TIMEOUT`, `ERROR` | | `finishQueued` | boolean | | True when finish-session was queued for asynchronous processing. | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/externalVerification/ekyc/unified \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/externalVerification/ekyc/unified", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/externalVerification/ekyc/unified", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/externalVerification/ekyc/unified")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/externalVerification/ekyc/unified") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/externalVerification/ekyc/unified"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "interviewId": "string", "token": "string", "interviewCode": "string", "flowType": "configuration", "ekyc": { "kyc": [ { "key": "string", "status": "string", "sub_label": "string", "message": "string", "reasonCodes": [ "string" ] } ], "income": [ { "key": "string", "status": "string", "sub_label": "string", "message": "string", "reasonCodes": [ "string" ] } ], "riskAddons": [ { "type": "phoneCheck", "checkStatus": "string", "message": "string", "confidenceLevel": "string", "phoneFirstName": "string", "phoneLastName": "string", "phoneDob": "string", "phoneValid": true, "phoneCountry": "string", "phoneAddresses": [ { "address1": "string" } ], "nameReturned": true, "phonePersonAge": 0, "isAdult": true, "additionalProfiles": [ { "firstName": "string", "lastName": "string", "dob": "string", "addresses": [] } ], "reasonCodes": [ "string" ] } ], "additionalVerificationInfo": { "creditFileDetails": { "creditFileNumber": "string", "creditFileCreationDate": "string" } }, "sot": "string" }, "ekycStatus": "SUCCESS", "finishQueued": true } ``` --- - Path: `api-reference/externalverification-income` - URL: https://developer.incode.com/api-reference/externalverification-income/ - Markdown: https://developer.incode.com/api-reference/externalverification-income.md - Endpoint: `POST /omni/externalVerification/income` # eKYC Income verification `POST /omni/externalVerification/income` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment This endpoint performs an eKYC income check ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `taxId` | string | yes | 11 digit CPF | | `country` | string | yes | Two letter Alpha-2 country code. (Must be BR). | ## Responses ### 200 Example: ``` { "income": [ { "key": "employment_type", "status": "success", "sub_label": "Type", "message": "ENTREPRENEUR \| BUSINESS OWNER" }, { "key": "employment_sector", "status": "success", "sub_label": "Sector", "message": "PRIVATE - 4639701 - COMERCIO ATACADISTA DE PRODUTOS ALIMENTICIOS EM GERAL" }, { "key": "income_range", "status": "success", "sub_label": "Estimated Income Range", "message": "9240-13200" } ] } ``` Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `kyc` | array[EkycVerification] | | | | `kyc.key` | string | | Indicates a type of risk, such as addressRiskLevel. The overallLevel key name is an aggregate risk score for all risk types. It can be used to obtain a single risk score for a whole result set. | | `kyc.status` | string | | Explains the risk level, ie "low", "medium", or "high". When doing a social security number check, the API will return status values of nomatch, fuzzy or exact. Fuzzy means there is plausible match between the name and the social security number, like Dave and David both resolve to the same SSN. | | `kyc.sub_label` | string | | Additional info on the status. | | `kyc.message` | string | | | | `kyc.reasonCodes` | array[string] | | | | `income` | array[EkycVerification] | | | | `income.key` | string | | Indicates a type of risk, such as addressRiskLevel. The overallLevel key name is an aggregate risk score for all risk types. It can be used to obtain a single risk score for a whole result set. | | `income.status` | string | | Explains the risk level, ie "low", "medium", or "high". When doing a social security number check, the API will return status values of nomatch, fuzzy or exact. Fuzzy means there is plausible match between the name and the social security number, like Dave and David both resolve to the same SSN. | | `income.sub_label` | string | | Additional info on the status. | | `income.message` | string | | | | `income.reasonCodes` | array[string] | | | | `riskAddons` | array[object] | | | | `riskAddons.type` | string | | Enum: `phoneCheck`, `advancedPhoneCheck`, `emailCheck`, `phoneProfile` | | `riskAddons.checkStatus` | string | | Outcome of the check for the provided phone number: found or notFound. | | `riskAddons.message` | string | | Explanation returned when checkStatus is notFound. | | `riskAddons.confidenceLevel` | string | | Confidence in the returned identity match: low, medium or high. | | `riskAddons.phoneFirstName` | string | | First name on file for the phone number. | | `riskAddons.phoneLastName` | string | | Last name on file for the phone number. | | `riskAddons.phoneDob` | string | | Date of birth on file, yyyy-MM-dd. Availability varies by country. | | `riskAddons.phoneValid` | boolean | | Whether the provider considers the phone number valid. | | `riskAddons.phoneCountry` | string | | Country of the phone number as reported by the provider. | | `riskAddons.phoneAddresses` | array[PhoneProfileAddressResponse] | | | | `riskAddons.phoneAddresses.address1` | string | | Single concatenated address string, not split into street, city, state or postal code. | | `riskAddons.nameReturned` | boolean | | True only when both phoneFirstName and phoneLastName were returned. | | `riskAddons.phonePersonAge` | integer (int32) | | Age computed from phoneDob at the time of the check. Absent when phoneDob is unavailable. | | `riskAddons.isAdult` | boolean | | True when phonePersonAge is 18 or more, or, without a date of birth, when a name was returned. | | `riskAddons.additionalProfiles` | array[PhoneProfileAdditionalProfileResponse] | | | | `riskAddons.additionalProfiles.firstName` | string | | First name of the alternate candidate identity. | | `riskAddons.additionalProfiles.lastName` | string | | Last name of the alternate candidate identity. | | `riskAddons.additionalProfiles.dob` | string | | Date of birth of the alternate candidate identity, yyyy-MM-dd, when the provider returns it. | | `riskAddons.additionalProfiles.addresses` | array[PhoneProfileAddressResponse] | | | | `riskAddons.additionalProfiles.addresses.address1` | string | | Single concatenated address string, not split into street, city, state or postal code. | | `riskAddons.reasonCodes` | array[string] | | | | `additionalVerificationInfo` | AdditionalVerificationInfo | | | | `additionalVerificationInfo.creditFileDetails` | CreditFileDetails | | | | `additionalVerificationInfo.creditFileDetails.creditFileNumber` | string | | | | `additionalVerificationInfo.creditFileDetails.creditFileCreationDate` | string | | | | `sot` | string | | | ### 400 Example: ``` { "timestamp": 1722948860110, "status": 400, "error": "Both country and taxId are mandatory fields must be submitted for successful request", "message": "Both country and taxId are mandatory fields must be submitted for successful request", "path": "/omni/externalVerification/income" } ``` Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/externalVerification/income \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" \ -d '{ "taxId": "", "country": "" }' ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/externalVerification/income", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, body: JSON.stringify({ "taxId": "", "country": "" }), }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/externalVerification/income", headers=headers, json={ "taxId": "", "country": "" }) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/externalVerification/income")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{\n \"taxId\": \"\",\n \"country\": \"\"\n}")) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/externalVerification/income") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" req.body = '{ "taxId": "", "country": "" }' res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/externalVerification/income"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "taxId": "", "country": "" }'); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "kyc": [ { "key": "string", "status": "string", "sub_label": "string", "message": "string", "reasonCodes": [ "string" ] } ], "income": [ { "key": "string", "status": "string", "sub_label": "string", "message": "string", "reasonCodes": [ "string" ] } ], "riskAddons": [ { "type": "phoneCheck", "checkStatus": "string", "message": "string", "confidenceLevel": "string", "phoneFirstName": "string", "phoneLastName": "string", "phoneDob": "string", "phoneValid": true, "phoneCountry": "string", "phoneAddresses": [ { "address1": "string" } ], "nameReturned": true, "phonePersonAge": 0, "isAdult": true, "additionalProfiles": [ { "firstName": "string", "lastName": "string", "dob": "string", "addresses": [ { "address1": null } ] } ], "reasonCodes": [ "string" ] } ], "additionalVerificationInfo": { "creditFileDetails": { "creditFileNumber": "string", "creditFileCreationDate": "string" } }, "sot": "string" } ``` --- - Path: `api-reference/finalize-document` - URL: https://developer.incode.com/api-reference/finalize-document/ - Markdown: https://developer.incode.com/api-reference/finalize-document.md - 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 | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `type` | string | yes | Type of document image for which processing is being finalized. Enum: `selfie`, `authenticationSelfie`, `sorSelfie`, `videoSelfie`, `externalFace`, `croppedFace`, `croppedAuthenticationSelfie`, `croppedFrameAnalysisSelfie`, `croppedExternalFace`, `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`, `w8Ben`, `w8BenE`, `faceRecordingFrame`, `signatureImageID`, `ghostSignatureImageID`, `ghostPortraitImageID`, `fingerprintImageID`, `documentNumberCropImageID`, `ineMexScan`, `originalNfcFace` | ## 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`, `NOT_W8_BEN`, `NOT_W8_BEN_E`, `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 `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/finalize/document \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -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": "", "X-Incode-Hardware-Id": "", "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": "", "X-Incode-Hardware-Id": "", "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", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{\n \"type\": \"\"\n}")) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/finalize/document") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" req.body = '{ "type": "" }' res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/finalize/document"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "type": "" }'); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "status": "SUCCESS" } ``` --- - Path: `api-reference/finish` - URL: https://developer.incode.com/api-reference/finish/ - Markdown: https://developer.incode.com/api-reference/finish.md - Endpoint: `PUT /omni/finish` # Finish interview `PUT /omni/finish` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Finish the interview and remove customer from the queue. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `interviewId` | string | | Interview id. | | `status` | string | | Status of finished interview Default: `NEEDS_REVIEW` Enum: `NO_CONFERENCE`, `APPROVED`, `REJECTED`, `ABANDONED`, `NEEDS_REVIEW`, `REJECTED_BY_RISK`, `COMPLETED` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | | `urls` | array[string] | | | | `uuid` | string | | ID of newly created customer (if onboarding was approved). | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X PUT https://demo-api.incodesmile.com/omni/finish \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/finish", { method: "PUT", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.put("https://demo-api.incodesmile.com/omni/finish", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/finish")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("PUT", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/finish") req = Net::HTTP::Put.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/finish"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive", "urls": [ "string" ], "uuid": "string" } ``` --- - Path: `api-reference/finish-status` - URL: https://developer.incode.com/api-reference/finish-status/ - Markdown: https://developer.incode.com/api-reference/finish-status.md - Endpoint: `GET /omni/finish-status` # Mark onboarding complete `GET /omni/finish-status` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment > **Deprecated** — this endpoint is marked deprecated in the Omni API specification. Mark onboarding done. NOTE: This call is **deprecated**, use [POST /finish-status](#/Onboarding/finishSessionPost) instead. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `flowId` | query | string | | | | `interviewId` | query | string | | | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 Response: - redirectionUrl: String. Url to be redirected when onboarding is done - action: String. Possible values: none, approved, manualReview, rejected. Refers to the action performed based on the flow score configurations if applicable. Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `redirectionUrl` | string | | | | `action` | string | | | | `customerId` | string | | | | `scoreStatus` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/finish-status?flowId=%3CflowId%3E&interviewId=%3CinterviewId%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/finish-status?flowId=%3CflowId%3E&interviewId=%3CinterviewId%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/finish-status?flowId=%3CflowId%3E&interviewId=%3CinterviewId%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/finish-status?flowId=%3CflowId%3E&interviewId=%3CinterviewId%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/finish-status?flowId=%3CflowId%3E&interviewId=%3CinterviewId%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/finish-status?flowId=%3CflowId%3E&interviewId=%3CinterviewId%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "redirectionUrl": "string", "action": "string", "customerId": "string", "scoreStatus": "OK" } ``` --- - Path: `api-reference/finish-status-post` - URL: https://developer.incode.com/api-reference/finish-status-post/ - Markdown: https://developer.incode.com/api-reference/finish-status-post.md - Endpoint: `POST /omni/finish-status` # Mark onboarding complete `POST /omni/finish-status` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Mark onboarding done ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `flowId` | query | string | | | | `interviewId` | query | string | | | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 Response: - redirectionUrl: String. Url to be redirected when onboarding is done - action: String. Possible values: none, approved, manualReview, rejected. Refers to the action performed based on the flow score configurations if applicable. Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `redirectionUrl` | string | | | | `action` | string | | | | `customerId` | string | | | | `scoreStatus` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/finish-status?flowId=%3CflowId%3E&interviewId=%3CinterviewId%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/finish-status?flowId=%3CflowId%3E&interviewId=%3CinterviewId%3E", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/finish-status?flowId=%3CflowId%3E&interviewId=%3CinterviewId%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/finish-status?flowId=%3CflowId%3E&interviewId=%3CinterviewId%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/finish-status?flowId=%3CflowId%3E&interviewId=%3CinterviewId%3E") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/finish-status?flowId=%3CflowId%3E&interviewId=%3CinterviewId%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "redirectionUrl": "string", "action": "string", "customerId": "string", "scoreStatus": "OK" } ``` --- - Path: `api-reference/fiscal-qr-url-response` - URL: https://developer.incode.com/api-reference/fiscal-qr-url-response/ - Markdown: https://developer.incode.com/api-reference/fiscal-qr-url-response.md - Endpoint: `GET /omni/fiscal-qr-url-response/{interviewId}` # Get fiscal qr url response `GET /omni/fiscal-qr-url-response/{interviewId}` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Get the information obtained from a fiscal qr url added to the session. (México only) ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `interviewId` | path | string | yes | | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/fiscal-qr-url-response/%3CinterviewId%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/fiscal-qr-url-response/%3CinterviewId%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/fiscal-qr-url-response/%3CinterviewId%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/fiscal-qr-url-response/%3CinterviewId%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/fiscal-qr-url-response/%3CinterviewId%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/fiscal-qr-url-response/%3CinterviewId%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/form-answers` - URL: https://developer.incode.com/api-reference/form-answers/ - Markdown: https://developer.incode.com/api-reference/form-answers.md - Endpoint: `GET /omni/form/answers` # Fetch Form Answers `GET /omni/form/answers` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Retrieves all questions and answers that a user has responded to during a session, regardless of the form module configurations used. Works with Admin Token. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `interviewId` | query | string | yes | | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `answers` | array[FormAnswerDto] | | The answers provided by the user | | `answers.question` | string | | The question presented to the user | | `answers.answerDetails` | FormAnswerDetailsDto | | Details on user's answer | | `answers.answerDetails.singleAnswer` | string | | The user's answer to the question. Date Format: Dates in responses are returned as milliseconds since the Unix epoch (UTC) Country Code Format: Country codes in responses are returned using ISO 3166-1 alpha-3 format. For example, "USA" for the United States of America, "GBR" for Great Britain. | | `answers.answerDetails.selectedAnswers` | array[string] | | Field intended to support multiple selected answers by the user. Currently, this functionality is not supported and will always return as an empty array. | | `answers.inputType` | string | | Indicates the type of input used for the answer Enum: `NUMBER`, `CPF`, `COUNTRY`, `NATIONALITY`, `DATE`, `PHONE`, `EMAIL`, `TEXT`, `MULTISELECT`, `YESNO`, `SELECT` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/form/answers?interviewId=%3CinterviewId%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/form/answers?interviewId=%3CinterviewId%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/form/answers?interviewId=%3CinterviewId%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/form/answers?interviewId=%3CinterviewId%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/form/answers?interviewId=%3CinterviewId%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/form/answers?interviewId=%3CinterviewId%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "answers": [ { "question": "string", "answerDetails": { "singleAnswer": "string", "selectedAnswers": [ "string" ] }, "inputType": "NUMBER" } ] } ``` --- - Path: `api-reference/frame-analysis-analyze` - URL: https://developer.incode.com/api-reference/frame-analysis-analyze/ - Markdown: https://developer.incode.com/api-reference/frame-analysis-analyze.md - Endpoint: `POST /omni/frame-analysis/analyze` # Analysis of all faces from selfie image `POST /omni/frame-analysis/analyze` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Authenticate users by comparing base64 image from request and user's existing face templates. Each face from the image is analyzed, and relevant attributes are extracted. In case of failure, error description is returned. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `base64Image` | string | yes | Base64 representation of image. | | `videoRef` | string | | Reference of video from which frame is extracted. | | `frameRef` | string | | Reference of frame that should be analyzed. | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `identities` | array[AnalyzedIdentityDto] | | List of identities analyzed from input base64image. | | `identities.identityId` | string | | Id of recognized customer. | | `identities.estimatedAge` | integer (int32) | | Estimated age based on extracted face. | | `identities.error` | FrameAnalysisErrorDto | | Error name. Possible error names are: LENSES_DETECTED, FACE_MASK_DETECTED, HEAD_COVER_DETECTED, CLOSED_EYES_DETECTED, SPOOF_ATTEMPT_DETECTED, USER_IS_NOT_RECOGNIZED | | `identities.error.name` | string | | | | `videoRef` | string | | Reference of video from which frame is extracted. | | `frameRef` | string | | Reference of frame that is analyzed. | | `error` | FrameAnalysisErrorDto | | Error name. Possible error name is: FACE_EXTRACTION_FAILED | | `error.name` | string | | | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/frame-analysis/analyze \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" \ -d '{ "base64Image": "" }' ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/frame-analysis/analyze", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, body: JSON.stringify({ "base64Image": "" }), }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/frame-analysis/analyze", headers=headers, json={ "base64Image": "" }) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/frame-analysis/analyze")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{\n \"base64Image\": \"\"\n}")) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/frame-analysis/analyze") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" req.body = '{ "base64Image": "" }' res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/frame-analysis/analyze"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "base64Image": "" }'); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "identities": [ { "identityId": "string", "estimatedAge": 0, "error": { "name": "string" } } ], "videoRef": "string", "frameRef": "string", "error": { "name": "string" } } ``` --- - Path: `api-reference/frame-analysis-analyze-third-party` - URL: https://developer.incode.com/api-reference/frame-analysis-analyze-third-party/ - Markdown: https://developer.incode.com/api-reference/frame-analysis-analyze-third-party.md - Endpoint: `POST /omni/frame-analysis/analyze/third-party` # Analysis of all faces from selfie image `POST /omni/frame-analysis/analyze/third-party` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Authenticate users by comparing base64 image from request and user's existing face templates. Each face from the image is analyzed, and relevant attributes are extracted. In case of failure, error description is returned. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `base64Image` | string | yes | Base64 representation of image. | | `videoRef` | string | | Reference of video from which frame is extracted. | | `frameRef` | string | | Reference of frame that should be analyzed. | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `identities` | array[AnalyzedIdentityDto] | | List of identities analyzed from input base64image. | | `identities.identityId` | string | | Id of recognized customer. | | `identities.estimatedAge` | integer (int32) | | Estimated age based on extracted face. | | `identities.error` | FrameAnalysisErrorDto | | Error name. Possible error names are: LENSES_DETECTED, FACE_MASK_DETECTED, HEAD_COVER_DETECTED, CLOSED_EYES_DETECTED, SPOOF_ATTEMPT_DETECTED, USER_IS_NOT_RECOGNIZED | | `identities.error.name` | string | | | | `videoRef` | string | | Reference of video from which frame is extracted. | | `frameRef` | string | | Reference of frame that is analyzed. | | `error` | FrameAnalysisErrorDto | | Error name. Possible error name is: FACE_EXTRACTION_FAILED | | `error.name` | string | | | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/frame-analysis/analyze/third-party \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" \ -d '{ "base64Image": "" }' ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/frame-analysis/analyze/third-party", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, body: JSON.stringify({ "base64Image": "" }), }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/frame-analysis/analyze/third-party", headers=headers, json={ "base64Image": "" }) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/frame-analysis/analyze/third-party")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{\n \"base64Image\": \"\"\n}")) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/frame-analysis/analyze/third-party") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" req.body = '{ "base64Image": "" }' res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/frame-analysis/analyze/third-party"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "base64Image": "" }'); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "identities": [ { "identityId": "string", "estimatedAge": 0, "error": { "name": "string" } } ], "videoRef": "string", "frameRef": "string", "error": { "name": "string" } } ``` --- - Path: `api-reference/generatesessionrecordingdownloadurl` - URL: https://developer.incode.com/api-reference/generatesessionrecordingdownloadurl/ - Markdown: https://developer.incode.com/api-reference/generatesessionrecordingdownloadurl.md - Endpoint: `GET /omni/generateSessionRecordingDownloadUrl` # Get url to download session recording `GET /omni/generateSessionRecordingDownloadUrl` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Get url to download session recording ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `interviewId` | query | string | | | | `type` | query | string | yes | Enum: `frontId`, `backId`, `merged`, `selfie`, `authenticationattempt`, `videoselfie` | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `url` | string | | | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/generateSessionRecordingDownloadUrl?interviewId=%3CinterviewId%3E&type=%3Ctype%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/generateSessionRecordingDownloadUrl?interviewId=%3CinterviewId%3E&type=%3Ctype%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/generateSessionRecordingDownloadUrl?interviewId=%3CinterviewId%3E&type=%3Ctype%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/generateSessionRecordingDownloadUrl?interviewId=%3CinterviewId%3E&type=%3Ctype%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/generateSessionRecordingDownloadUrl?interviewId=%3CinterviewId%3E&type=%3Ctype%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/generateSessionRecordingDownloadUrl?interviewId=%3CinterviewId%3E&type=%3Ctype%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "url": "string" } ``` --- - Path: `api-reference/generatevideoselfiedownloadurl` - URL: https://developer.incode.com/api-reference/generatevideoselfiedownloadurl/ - Markdown: https://developer.incode.com/api-reference/generatevideoselfiedownloadurl.md - Endpoint: `GET /omni/generateVideoSelfieDownloadUrl` # Get download URL of videoselfie `GET /omni/generateVideoSelfieDownloadUrl` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Get URL for downloading video recording of video selfie. This is temporary pre-signed url, that expires in 1 hour ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `interviewId` | query | string | | Session ID for which url is generated. In case not set, interviewId will be determined from token from header. | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/generateVideoSelfieDownloadUrl?interviewId=%3CinterviewId%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/generateVideoSelfieDownloadUrl?interviewId=%3CinterviewId%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/generateVideoSelfieDownloadUrl?interviewId=%3CinterviewId%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/generateVideoSelfieDownloadUrl?interviewId=%3CinterviewId%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/generateVideoSelfieDownloadUrl?interviewId=%3CinterviewId%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/generateVideoSelfieDownloadUrl?interviewId=%3CinterviewId%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json {} ``` --- - Path: `api-reference/get-archives` - URL: https://developer.incode.com/api-reference/get-archives/ - Markdown: https://developer.incode.com/api-reference/get-archives.md - Endpoint: `GET /omni/get/archives` # Fetch video archive urls `GET /omni/get/archives` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Fetch URLs of video archives from given 'interviewId' or if omitted for given 'since' timestamp. If not provided, 'since' will be defaulted to time of first created archive. The maximum fetch size is 1000. In case maximum fetch size is reached, a new fetch should be triggered, using 'startTime' of last record from previous fetch as 'since'. URLs returned are temporary URLs, which expire in 5 days. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `interviewId` | query | string | | In case this parameter is provided, 'since' is ignored, and response will contain single interview requested. | | `since` | query | integer (int64) | | Timestamp — beginning of export. If omitted, it will be defaulted to time of first created archive. | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 - archives: Array of archive objects - interviewId: String. ID of interview. - name: String. Name of the user in conference call. - url: String. URL of archive file. - startTime: Long. Timestamp of archive creation. ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/get/archives?interviewId=%3CinterviewId%3E&since=%3Csince%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/get/archives?interviewId=%3CinterviewId%3E&since=%3Csince%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/get/archives?interviewId=%3CinterviewId%3E&since=%3Csince%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/get/archives?interviewId=%3CinterviewId%3E&since=%3Csince%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/get/archives?interviewId=%3CinterviewId%3E&since=%3Csince%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/get/archives?interviewId=%3CinterviewId%3E&since=%3Csince%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json {} ``` --- - Path: `api-reference/get-chat` - URL: https://developer.incode.com/api-reference/get-chat/ - Markdown: https://developer.incode.com/api-reference/get-chat.md - Endpoint: `GET /omni/get/chat` # Fetch conference chat `GET /omni/get/chat` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Fetch conference chat for given 'interviewId'.Works with Admin Token. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `interviewId` | query | string | yes | Interview id. | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/get/chat?interviewId=%3CinterviewId%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/get/chat?interviewId=%3CinterviewId%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/get/chat?interviewId=%3CinterviewId%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/get/chat?interviewId=%3CinterviewId%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/get/chat?interviewId=%3CinterviewId%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/get/chat?interviewId=%3CinterviewId%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json {} ``` --- - Path: `api-reference/get-combined-consent` - URL: https://developer.incode.com/api-reference/get-combined-consent/ - Markdown: https://developer.incode.com/api-reference/get-combined-consent.md - Endpoint: `GET /omni/get/combined-consent` # Get combined consent for requested language `GET /omni/get/combined-consent` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Fetches combined consent for requested language. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `id` | query | string | | Consent id | | `language` | query | string | yes | | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `id` | string | | | | `languageCode` | string | | Enum: `ps-AF`, `sv-AX`, `sq-AL`, `ar-DZ`, `en-AS`, `ca-AD`, `pt-AO`, `en-AI`, `en-AQ`, `en-AG`, `es-AR`, `hy-AM`, `nl-AW`, `en-AU`, `de-AT`, `az-AZ`, `en-BS`, `ar-BH`, `bn-BD`, `en-BB`, `be-BY`, `nl-BE`, `en-BZ`, `fr-BJ`, `en-BM`, `dz-BT`, `es-BO`, `nl-BQ`, `bs-BA`, `en-BW`, `no-BV`, `pt-BR`, `en-IO`, `ms-BN`, `bg-BG`, `fr-BF`, `rn-BI`, `pt-CV`, `km-KH`, `fr-CM`, `en-CA`, `fr-CA`, `en-KY`, `fr-CF`, `fr-TD`, `es-CL`, `zh-CN`, `en-CX`, `ms-CC`, `es-CO`, `ar-KM`, `fr-CG`, `fr-CD`, `en-CK`, `es-CR`, `fr-CI`, `hr-HR`, `es-CU`, `nl-CW`, `el-CY`, `cs-CZ`, `da-DK`, `fr-DJ`, `en-DM`, `es-DO`, `es-EC`, `ar-EG`, `es-SV`, `es-GQ`, `aa-ER`, `et-EE`, `am-ET`, `en-FK`, `fo-FO`, `en-FJ`, `fi-FI`, `fr-FR`, `fr-GF`, `fr-PF`, `fr-TF`, `fr-GA`, `en-GM`, `ka-GE`, `de-DE`, `en-GH`, `en-GI`, `el-GR`, `kl-GL`, `en-GD`, `fr-GP`, `en-GU`, `es-GT`, `en-GG`, `fr-GN`, `pt-GW`, `en-GY`, `fr-HT`, `en-HM`, `it-VA`, `es-HN`, `zh-HK`, `hu-HU`, `is-IS`, `hi-IN`, `id-ID`, `fa-IR`, `ar-IQ`, `ga-IE`, `en-IM`, `he-IL`, `it-IT`, `en-JM`, `ja-JP`, `en-JE`, `ar-JO`, `kk-KZ`, `sw-KE`, `en-KI`, `ko-KP`, `ko-KR`, `ar-KW`, `ky-KG`, `lo-LA`, `lv-LV`, `ar-LB`, `en-LS`, `en-LR`, `ar-LY`, `de-LI`, `lt-LT`, `fr-LU`, `zh-MO`, `mg-MG`, `ny-MW`, `ms-MY`, `dv-MV`, `fr-ML`, `mt-MT`, `mh-MH`, `fr-MQ`, `ar-MR`, `en-MU`, `fr-YT`, `es-MX`, `en-FM`, `ro-MD`, `fr-MC`, `mn-MN`, `sr-ME`, `en-MS`, `ar-MA`, `pt-MZ`, `my-MM`, `en-NA`, `na-NR`, `ne-NP`, `nl-NL`, `fr-NC`, `en-NZ`, `es-NI`, `fr-NE`, `en-NG`, `en-NU`, `en-NF`, `mk_MK`, `en-MP`, `no-NO`, `ar-OM`, `ur-PK`, `en-PW`, `ar-PS`, `es-PA`, `en-PG`, `es-PY`, `es-PE`, `en-PH`, `en-PN`, `pl-PL`, `pt-PT`, `es-PR`, `ar-QA`, `fr-RE`, `ro-RO`, `ru-RU`, `rw-RW`, `fr-BL`, `en-SH`, `en-KN`, `en-LC`, `fr-MF`, `fr-PM`, `en-VC`, `sm-WS`, `it-SM`, `pt-ST`, `ar-SA`, `fr-SN`, `sr-RS`, `en-SC`, `en-SL`, `en-SG`, `nl-SX`, `sk-SK`, `sl-SI`, `en-SB`, `so-SO`, `en-ZA`, `en-GS`, `en-SS`, `es-ES`, `si-LK`, `ar-SD`, `nl-SR`, `no-SJ`, `en-SZ`, `sv-SE`, `de-CH`, `ar-SY`, `zh-TW`, `tg-TJ`, `sw-TZ`, `th-TH`, `pt-TL`, `fr-TG`, `en-TK`, `to-TO`, `en-TT`, `ar-TN`, `tr-TR`, `tk-TM`, `en-TC`, `tvl`, `sw-UG`, `uk-UA`, `ar-AE`, `en-GB`, `en-US`, `en-UM`, `es-UY`, `uz-UZ`, `bi-VU`, `es-VE`, `vi-VN`, `en-VG`, `en-VI`, `fr-WF`, `ar-EH`, `ar-YE`, `en-ZM`, `en-ZW`, `en`, `es`, `pt`, `fr`, `de`, `ar` | | `title` | string | | | | `terms` | string | | | | `isDefault` | boolean | | | | `consents` | array[ConsentCheckbox] | | | | `consents.checkboxId` | string | | | | `consents.consentText` | string | | | | `consents.consentType` | string | | | | `consents.origin` | string | | Enum: `USER`, `SHARED` | | `consents.optional` | boolean | | | | `consents.editable` | boolean | | | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/get/combined-consent?id=%3Cid%3E&language=%3Clanguage%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/get/combined-consent?id=%3Cid%3E&language=%3Clanguage%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/get/combined-consent?id=%3Cid%3E&language=%3Clanguage%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/get/combined-consent?id=%3Cid%3E&language=%3Clanguage%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/get/combined-consent?id=%3Cid%3E&language=%3Clanguage%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/get/combined-consent?id=%3Cid%3E&language=%3Clanguage%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "id": "string", "languageCode": "ps-AF", "title": "string", "terms": "string", "isDefault": true, "consents": [ { "checkboxId": "string", "consentText": "string", "consentType": "string", "origin": "USER", "optional": true, "editable": true } ] } ``` --- - Path: `api-reference/get-concatenated-images` - URL: https://developer.incode.com/api-reference/get-concatenated-images/ - Markdown: https://developer.incode.com/api-reference/get-concatenated-images.md - Endpoint: `POST /omni/get/concatenated-images` # Fetch concatenated images `POST /omni/get/concatenated-images` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Concatenates requested images from user. Resulting image keep the largest width of the requested images and preserves the order. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `id` | query | string | | Id of onboarding for which images are requested. If not present, it will be extracted from token. | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `images` | array[string] | yes | Enum: `selfie`, `authenticationSelfie`, `sorSelfie`, `videoSelfie`, `externalFace`, `croppedFace`, `croppedAuthenticationSelfie`, `croppedFrameAnalysisSelfie`, `croppedExternalFace`, `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`, `w8Ben`, `w8BenE`, `faceRecordingFrame`, `signatureImageID`, `ghostSignatureImageID`, `ghostPortraitImageID`, `fingerprintImageID`, `documentNumberCropImageID`, `ineMexScan`, `originalNfcFace` | ## Responses ### 200 For each requested image type, response contains line in format: {imageType}: String (base64) Base64 representation of image. Additionally, if signature image is requested, response will contain an array of all signatures. ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/get/concatenated-images?id=%3Cid%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" \ -d '{ "images": [] }' ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/get/concatenated-images?id=%3Cid%3E", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, body: JSON.stringify({ "images": [] }), }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/get/concatenated-images?id=%3Cid%3E", headers=headers, json={ "images": [] }) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/get/concatenated-images?id=%3Cid%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{\n \"images\": []\n}")) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/get/concatenated-images?id=%3Cid%3E") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" req.body = '{ "images": [] }' res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/get/concatenated-images?id=%3Cid%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "images": [] }'); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json {} ``` --- - Path: `api-reference/get-conference-feedback` - URL: https://developer.incode.com/api-reference/get-conference-feedback/ - Markdown: https://developer.incode.com/api-reference/get-conference-feedback.md - Endpoint: `GET /omni/get/conference/feedback` # Fetch conference feedback `GET /omni/get/conference/feedback` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment This endpoint is used for fetching conference feedback for the interview/session. Works with Admin Token. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `id` | query | string | | ID of interview. If omitted the interview ID from token is used (current session) | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 conferenceFeedback: String. Feedback saved for interview. ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/get/conference/feedback?id=%3Cid%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/get/conference/feedback?id=%3Cid%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/get/conference/feedback?id=%3Cid%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/get/conference/feedback?id=%3Cid%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/get/conference/feedback?id=%3Cid%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/get/conference/feedback?id=%3Cid%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json {} ``` --- - Path: `api-reference/get-conference-notes` - URL: https://developer.incode.com/api-reference/get-conference-notes/ - Markdown: https://developer.incode.com/api-reference/get-conference-notes.md - Endpoint: `GET /omni/get/conference/notes` # Fetch notes `GET /omni/get/conference/notes` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment This endpoint is used for fetching conference notes for interview/session. Works with Admin Token. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `id` | query | string | | ID of interview. If omitted, the interview ID from teh token is used (current session) | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 notes: String. Notes saved for interview. ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/get/conference/notes?id=%3Cid%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/get/conference/notes?id=%3Cid%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/get/conference/notes?id=%3Cid%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/get/conference/notes?id=%3Cid%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/get/conference/notes?id=%3Cid%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/get/conference/notes?id=%3Cid%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json {} ``` --- - Path: `api-reference/get-conference-status` - URL: https://developer.incode.com/api-reference/get-conference-status/ - Markdown: https://developer.incode.com/api-reference/get-conference-status.md - Endpoint: `GET /omni/get/conference-status` # Fetch conference status `GET /omni/get/conference-status` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Returns data about conference session for given ID. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `interviewId` | query | string | | ID of onboarding for which data is requested. If not present, it will be extracted from the token. | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `conferenceStatus` | string | | Enum: `NO_CONFERENCE`, `APPROVED`, `REJECTED`, `ABANDONED`, `NEEDS_REVIEW`, `REJECTED_BY_RISK`, `COMPLETED` | | `executiveId` | string | | | | `conferenceStartTime` | integer (int64) | | UTC timestamp | | `conferenceEndTime` | integer (int64) | | UTC timestamp | | `conferenceDuration` | integer (int64) | | Conference duration in milliseconds. | | `conferenceTermAndConditionsAccepted` | boolean | | | | `creditBureauConsentGiven` | boolean | | | | `applicantDataConfirmed` | boolean | | | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/get/conference-status?interviewId=%3CinterviewId%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/get/conference-status?interviewId=%3CinterviewId%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/get/conference-status?interviewId=%3CinterviewId%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/get/conference-status?interviewId=%3CinterviewId%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/get/conference-status?interviewId=%3CinterviewId%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/get/conference-status?interviewId=%3CinterviewId%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "conferenceStatus": "NO_CONFERENCE", "executiveId": "string", "conferenceStartTime": 0, "conferenceEndTime": 0, "conferenceDuration": 0, "conferenceTermAndConditionsAccepted": true, "creditBureauConsentGiven": true, "applicantDataConfirmed": true } ``` --- - Path: `api-reference/get-contracts-links` - URL: https://developer.incode.com/api-reference/get-contracts-links/ - Markdown: https://developer.incode.com/api-reference/get-contracts-links.md - Endpoint: `GET /omni/get/contracts-links` # Get contracts links `GET /omni/get/contracts-links` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Fetches temporary link of the contracts uploaded for the current session. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `id` | query | string | | | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | | `additionalInformation` | object | | | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/get/contracts-links?id=%3Cid%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/get/contracts-links?id=%3Cid%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/get/contracts-links?id=%3Cid%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/get/contracts-links?id=%3Cid%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/get/contracts-links?id=%3Cid%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/get/contracts-links?id=%3Cid%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive", "additionalInformation": { "document ID1": "Temporary URL to uploaded document with ID1", "document ID2": "Temporary URL to uploaded document with ID2", "document ID3": "Temporary URL to uploaded document with ID3" } } ``` --- - Path: `api-reference/get-custom-fields` - URL: https://developer.incode.com/api-reference/get-custom-fields/ - Markdown: https://developer.incode.com/api-reference/get-custom-fields.md - Endpoint: `GET /omni/get/custom-fields` # Get custom fields `GET /omni/get/custom-fields` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment This endpoint is used for fetching custom fields for current session. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `customFields` | object | | Map. Map of custom fields with type that was inserted. | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/get/custom-fields \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/get/custom-fields", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/get/custom-fields", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/get/custom-fields")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/get/custom-fields") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/get/custom-fields"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "customFields": {} } ``` --- - Path: `api-reference/get-device-info` - URL: https://developer.incode.com/api-reference/get-device-info/ - Markdown: https://developer.incode.com/api-reference/get-device-info.md - Endpoint: `GET /omni/get/device-info` # Fetch device info `GET /omni/get/device-info` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Fetch information about device user was using during onboarding ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `id` | query | string | | Represents interview id for which device data are requested. If it is not present it will be read from token. | | `returnData` | query | boolean | | If it is set to true, string representation of map which contains all data that enters the hash will be returned. | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `ipAddress` | string | | IP address of the device from which onboarding is being executed. | | `hash` | string | | Hash is generated out of data specific to user device and browser: userAgent, webdriver, language, colorDepth, deviceMemory, hardwareConcurrency, screenResolution, availableScreenResolution, timezoneOffset, timezone, sessionStorage, localStorage, indexedDb, cpuClass, platform, plugins, canvas, webgl, webglVendorAndRenderer, adBlock, hasLiedLanguages, hasLiedResolution, hasLiedOs, hasLiedBrowser, touchSupport, fonts, audio. | | `deviceType` | string | | Device type Enum: `IOS`, `ANDROID`, `WEBAPP` | | `osVersion` | string | | | | `deviceModel` | string | | | | `sdkVersion` | string | | | | `browser` | string | | | | `hasLiedBrowser` | boolean | | | | `longitude` | number (float) | | User's geolocation longitude. | | `latitude` | number (float) | | User's geolocation latitude. | | `location` | string | | User's location at the moment of onboarding process. | | `getmAdminArea` | string | | State | | `getmSubAdminArea` | string | | County | | `getmLocality` | string | | City | | `getmSubLocality` | string | | Neighborhood, common name | | `getmThoroughfare` | string | | Street name. | | `getmSubThoroughfare` | string | | Number. | | `getmPostalCode` | string | | Zip code | | `getmCountryCode` | string | | Country code | | `getmCountryName` | string | | Country name | | `hostingApp` | string | | Hosting App | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/get/device-info?id=%3Cid%3E&returnData=%3CreturnData%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/get/device-info?id=%3Cid%3E&returnData=%3CreturnData%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/get/device-info?id=%3Cid%3E&returnData=%3CreturnData%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/get/device-info?id=%3Cid%3E&returnData=%3CreturnData%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/get/device-info?id=%3Cid%3E&returnData=%3CreturnData%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/get/device-info?id=%3Cid%3E&returnData=%3CreturnData%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "ipAddress": "string", "hash": "string", "deviceType": "IOS", "osVersion": "string", "deviceModel": "string", "sdkVersion": "string", "browser": "string", "hasLiedBrowser": true, "longitude": 0, "latitude": 0, "location": "string", "getmAdminArea": "CA", "getmSubAdminArea": "Santa Clara", "getmLocality": "string", "getmSubLocality": "Mission District", "getmThoroughfare": "string", "getmSubThoroughfare": "string", "getmPostalCode": 95014, "getmCountryCode": "US", "getmCountryName": "United States", "hostingApp": "Onboarding" } ``` --- - Path: `api-reference/get-email` - URL: https://developer.incode.com/api-reference/get-email/ - Markdown: https://developer.incode.com/api-reference/get-email.md - Endpoint: `GET /omni/get/email` # Get email `GET /omni/get/email` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Get email from interview previously added via [Add email](ref:addemail) endpoint ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `id` | query | string | | | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `email` | string | | | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/get/email?id=%3Cid%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/get/email?id=%3Cid%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/get/email?id=%3Cid%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/get/email?id=%3Cid%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/get/email?id=%3Cid%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/get/email?id=%3Cid%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "email": "string" } ``` --- - Path: `api-reference/get-fingerprints` - URL: https://developer.incode.com/api-reference/get-fingerprints/ - Markdown: https://developer.incode.com/api-reference/get-fingerprints.md - Endpoint: `GET /omni/get/fingerprints` # Get Fingerprints `GET /omni/get/fingerprints` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment This endpoint is used for fetching fingerprints for current session. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `type` | integer (int32) | | | | `fingerprints` | array[Fingerprint] | yes | | | `fingerprints.index` | integer (int32) | | | | `fingerprints.base64Fingerprint` | string | | | | `fingerprints.fingerprintMetadata` | FingerprintMetadata | | | | `fingerprints.fingerprintMetadata.device` | string | | | | `fingerprints.fingerprintMetadata.resolution` | string | | | | `fingerprints.fingerprintMetadata.qualityScore` | string | | | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/get/fingerprints \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/get/fingerprints", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/get/fingerprints", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/get/fingerprints")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/get/fingerprints") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/get/fingerprints"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "type": 0, "fingerprints": [ { "index": 0, "base64Fingerprint": "string", "fingerprintMetadata": { "device": "string", "resolution": "string", "qualityScore": "string" } } ] } ``` --- - Path: `api-reference/get-id-summary` - URL: https://developer.incode.com/api-reference/get-id-summary/ - Markdown: https://developer.incode.com/api-reference/get-id-summary.md - Endpoint: `GET /omni/get/id-summary` # Get ID Summary `GET /omni/get/id-summary` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Returns success information about addFront and addBack. Also returns onlyFront flag. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `id` | query | string | | Id of onboarding for which data are requested. If not present, it will be extracted from token. | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `onlyFront` | boolean | | | | `addFrontResult` | IdSummaryDocumentSideResult | | | | `addFrontResult.classification` | boolean | | | | `addFrontResult.readability` | boolean | | | | `addFrontResult.sharpness` | integer (int32) | | | | `addFrontResult.glare` | integer (int32) | | | | `addBackResult` | IdSummaryDocumentSideResult | | | | `addBackResult.classification` | boolean | | | | `addBackResult.readability` | boolean | | | | `addBackResult.sharpness` | integer (int32) | | | | `addBackResult.glare` | integer (int32) | | | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/get/id-summary?id=%3Cid%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/get/id-summary?id=%3Cid%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/get/id-summary?id=%3Cid%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/get/id-summary?id=%3Cid%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/get/id-summary?id=%3Cid%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/get/id-summary?id=%3Cid%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "onlyFront": true, "addFrontResult": { "classification": true, "readability": true, "sharpness": 0, "glare": 0 }, "addBackResult": { "classification": true, "readability": true, "sharpness": 0, "glare": 0 } } ``` --- - Path: `api-reference/get-images` - URL: https://developer.incode.com/api-reference/get-images/ - Markdown: https://developer.incode.com/api-reference/get-images.md - Endpoint: `POST /omni/get/images` # Fetch images `POST /omni/get/images` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Returns images for user ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `id` | query | string | | Id of onboarding for which images are requested. If not present, it will be extracted from token. | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `images` | array[string] | yes | Enum: `selfie`, `authenticationSelfie`, `sorSelfie`, `videoSelfie`, `externalFace`, `croppedFace`, `croppedAuthenticationSelfie`, `croppedFrameAnalysisSelfie`, `croppedExternalFace`, `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`, `w8Ben`, `w8BenE`, `faceRecordingFrame`, `signatureImageID`, `ghostSignatureImageID`, `ghostPortraitImageID`, `fingerprintImageID`, `documentNumberCropImageID`, `ineMexScan`, `originalNfcFace` | ## Responses ### 200 For each requested image type, response contains line in format: {imageType}: String (base64) Base64 representation of image. Additionally, if signature image is requested, response will contain an array of all signatures. ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/get/images?id=%3Cid%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" \ -d '{ "images": [] }' ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/get/images?id=%3Cid%3E", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, body: JSON.stringify({ "images": [] }), }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/get/images?id=%3Cid%3E", headers=headers, json={ "images": [] }) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/get/images?id=%3Cid%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{\n \"images\": []\n}")) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/get/images?id=%3Cid%3E") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" req.body = '{ "images": [] }' res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/get/images?id=%3Cid%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "images": [] }'); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json {} ``` --- - Path: `api-reference/get-images-second-id` - URL: https://developer.incode.com/api-reference/get-images-second-id/ - Markdown: https://developer.incode.com/api-reference/get-images-second-id.md - Endpoint: `POST /omni/get/images-second-id` # Fetch images second id `POST /omni/get/images-second-id` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Returns images for second id of user ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `id` | query | string | | Id of onboarding for which images are requested. If not present, it will be extracted from token. | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `images` | array[string] | yes | Enum: `selfie`, `authenticationSelfie`, `sorSelfie`, `videoSelfie`, `externalFace`, `croppedFace`, `croppedAuthenticationSelfie`, `croppedFrameAnalysisSelfie`, `croppedExternalFace`, `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`, `w8Ben`, `w8BenE`, `faceRecordingFrame`, `signatureImageID`, `ghostSignatureImageID`, `ghostPortraitImageID`, `fingerprintImageID`, `documentNumberCropImageID`, `ineMexScan`, `originalNfcFace` | ## Responses ### 200 For each requested image type, response contains line in format: {imageType}: String (base64) Base64 representation of image. Additionally, if signature image is requested, response will contain an array of all signatures. ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/get/images-second-id?id=%3Cid%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" \ -d '{ "images": [] }' ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/get/images-second-id?id=%3Cid%3E", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, body: JSON.stringify({ "images": [] }), }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/get/images-second-id?id=%3Cid%3E", headers=headers, json={ "images": [] }) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/get/images-second-id?id=%3Cid%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{\n \"images\": []\n}")) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/get/images-second-id?id=%3Cid%3E") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" req.body = '{ "images": [] }' res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/get/images-second-id?id=%3Cid%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "images": [] }'); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json {} ``` --- - Path: `api-reference/get-images-second-id-v2` - URL: https://developer.incode.com/api-reference/get-images-second-id-v2/ - Markdown: https://developer.incode.com/api-reference/get-images-second-id-v2.md - Endpoint: `POST /omni/get/images-second-id/v2` # Fetch image links for second id `POST /omni/get/images-second-id/v2` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Returns seconnd id images temporary links for requested images. Links are valid for one hour ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `id` | query | string | | | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `images` | array[string] | yes | Enum: `selfie`, `authenticationSelfie`, `sorSelfie`, `videoSelfie`, `externalFace`, `croppedFace`, `croppedAuthenticationSelfie`, `croppedFrameAnalysisSelfie`, `croppedExternalFace`, `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`, `w8Ben`, `w8BenE`, `faceRecordingFrame`, `signatureImageID`, `ghostSignatureImageID`, `ghostPortraitImageID`, `fingerprintImageID`, `documentNumberCropImageID`, `ineMexScan`, `originalNfcFace` | ## Responses ### 200 For each requested image type, response contains line in format: {imageType}: String (base64). Base64 representation of image. Additionally, if signature image is requested, response will contain an array of all signatures. ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/get/images-second-id/v2?id=%3Cid%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" \ -d '{ "images": [] }' ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/get/images-second-id/v2?id=%3Cid%3E", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, body: JSON.stringify({ "images": [] }), }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/get/images-second-id/v2?id=%3Cid%3E", headers=headers, json={ "images": [] }) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/get/images-second-id/v2?id=%3Cid%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{\n \"images\": []\n}")) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/get/images-second-id/v2?id=%3Cid%3E") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" req.body = '{ "images": [] }' res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/get/images-second-id/v2?id=%3Cid%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "images": [] }'); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json {} ``` --- - Path: `api-reference/get-images-v2` - URL: https://developer.incode.com/api-reference/get-images-v2/ - Markdown: https://developer.incode.com/api-reference/get-images-v2.md - Endpoint: `POST /omni/get/images/v2` # Fetch image links `POST /omni/get/images/v2` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Returns images temporary links for requested images. Links are valid for one hour ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `id` | query | string | | Id of onboarding for which images are requested. If not present, it will be extracted from token | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `images` | array[string] | yes | Enum: `selfie`, `authenticationSelfie`, `sorSelfie`, `videoSelfie`, `externalFace`, `croppedFace`, `croppedAuthenticationSelfie`, `croppedFrameAnalysisSelfie`, `croppedExternalFace`, `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`, `w8Ben`, `w8BenE`, `faceRecordingFrame`, `signatureImageID`, `ghostSignatureImageID`, `ghostPortraitImageID`, `fingerprintImageID`, `documentNumberCropImageID`, `ineMexScan`, `originalNfcFace` | ## Responses ### 200 For each requested image type, response contains line in format: {imageType}: String (base64). Base64 representation of image. Additionally, if signature image is requested, response will contain an array of all signatures. ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/get/images/v2?id=%3Cid%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" \ -d '{ "images": [] }' ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/get/images/v2?id=%3Cid%3E", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, body: JSON.stringify({ "images": [] }), }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/get/images/v2?id=%3Cid%3E", headers=headers, json={ "images": [] }) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/get/images/v2?id=%3Cid%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{\n \"images\": []\n}")) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/get/images/v2?id=%3Cid%3E") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" req.body = '{ "images": [] }' res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/get/images/v2?id=%3Cid%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "images": [] }'); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json {} ``` --- - Path: `api-reference/get-imss` - URL: https://developer.incode.com/api-reference/get-imss/ - Markdown: https://developer.incode.com/api-reference/get-imss.md - Endpoint: `GET /omni/get/imss` # Fetch IMSS labor history `GET /omni/get/imss` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Fetch user's labor history from IMSS. Interview id is extracted from jwt token. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `interviewId` | query | string | | | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `interviewId` | string | | | | `requestId` | string | | | | `workHistory` | WorkHistoryDto | | | | `workHistory.name` | string | | | | `workHistory.curp` | string | | | | `workHistory.apiKey` | string | | | | `workHistory.nss` | string | | | | `workHistory.quotedWeeks` | QuotedWeeksDto | | | | `workHistory.quotedWeeks.discountedWeeks` | integer (int32) | | | | `workHistory.quotedWeeks.listedWeeks` | integer (int32) | | | | `workHistory.quotedWeeks.reinstatedWeeks` | integer (int32) | | | | `workHistory.laborHistoryList` | array[LaborHistory] | | | | `workHistory.laborHistoryList.nombrePatron` | string | | | | `workHistory.laborHistoryList.entidadFederativa` | string | | | | `workHistory.laborHistoryList.fechaAlta` | string | | | | `workHistory.laborHistoryList.fechaBaja` | string | | | | `workHistory.laborHistoryList.salarioBaseCotizacion` | string | | | | `workHistory.laborHistoryList.registroPatronal` | string | | | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/get/imss?interviewId=%3CinterviewId%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/get/imss?interviewId=%3CinterviewId%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/get/imss?interviewId=%3CinterviewId%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/get/imss?interviewId=%3CinterviewId%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/get/imss?interviewId=%3CinterviewId%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/get/imss?interviewId=%3CinterviewId%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "interviewId": "string", "requestId": "string", "workHistory": { "name": "string", "curp": "string", "apiKey": "string", "nss": "string", "quotedWeeks": { "discountedWeeks": 0, "listedWeeks": 0, "reinstatedWeeks": 0 }, "laborHistoryList": [ { "nombrePatron": "string", "entidadFederativa": "string", "fechaAlta": "string", "fechaBaja": "string", "salarioBaseCotizacion": "string", "registroPatronal": "string" } ] } } ``` --- - Path: `api-reference/get-interviewer-info` - URL: https://developer.incode.com/api-reference/get-interviewer-info/ - Markdown: https://developer.incode.com/api-reference/get-interviewer-info.md - Endpoint: `GET /omni/get/interviewer-info` # Connect to conference call `GET /omni/get/interviewer-info` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Get interviewer name for given interview ID read from token. If the interviewer is not yet assigned to interview, null will be returned. This method also returns credentials for OpenTok session. It is recommended to call this method after [Get-user's-position](#/Conference/getQueueIndex) returns 0 in response. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `interviewerName` | string | | The name of the executive who is on a conference call with the user. | | `apiKey` | integer (int32) | | Used for establishing a conference connection via OpenTok. | | `interviewToken` | string | | Used for establishing a conference connection via OpenTok. | | `sessionId` | string | | Used for establishing a conference connection via OpenTok. | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/get/interviewer-info \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/get/interviewer-info", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/get/interviewer-info", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/get/interviewer-info")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/get/interviewer-info") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/get/interviewer-info"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "interviewerName": "string", "apiKey": 0, "interviewToken": "string", "sessionId": "string" } ``` --- - Path: `api-reference/get-ocr-data` - URL: https://developer.incode.com/api-reference/get-ocr-data/ - Markdown: https://developer.incode.com/api-reference/get-ocr-data.md - Endpoint: `GET /omni/get/ocr-data` # Fetch ocr data `GET /omni/get/ocr-data` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Returns data about user read from id and address statement. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `id` | query | string | | Id of onboarding for which data are requested. If not present, it will be extracted from token. | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `name` | NameBean | | | | `name.fullName` | string | | | | `name.fullNameNativeScript` | string | | | | `name.firstNameNativeScript` | string | | | | `name.paternalLastNameNativeScript` | string | | | | `name.maternalLastNameNativeScript` | string | | | | `name.machineReadableFullName` | string | | Full name from Barcode or MRZ | | `name.firstName` | string | | | | `name.middleName` | string | | | | `name.givenName` | string | | | | `name.givenNameMrz` | string | | | | `name.initials` | string | | Initials as returned by bank-ID schemes (e.g. iDIN) — the only given-name evidence they provide | | `name.nameSuffix` | string | | | | `name.paternalLastName` | string | | | | `name.maternalLastName` | string | | | | `name.lastNameMrz` | string | | | | `name.familyName` | string | | | | `address` | string | | Address as read from id. Address can have two or three lines. Lines are separated by \\n | | `addressFields` | AddressBean | | | | `addressFields.street` | string | | Street line in the way it is read from address string. | | `addressFields.streetName` | string | | Street name without exterior and interior numbers. | | `addressFields.colony` | string | | Colony line the way it is read from address string. (Not applicable for all countries) | | `addressFields.postalCode` | string | | Postal code in the way it is read from address string. | | `addressFields.city` | string | | City in the way it is read from address string. | | `addressFields.state` | string | | State in the way it is read from address string. | | `addressFields.stateName` | string | | Full StateName. | | `addressFields.district` | string | | District in the way it is read from address string. | | `addressFields.stateCode` | string | | State code if applicable. | | `addressFields.addressCountryCode` | string | | Address country code if applicable. | | `addressFields.label` | string | | Full address label. | | `addressFields.exteriorNumber` | string | | Exterior street number. | | `addressFields.interiorNumber` | string | | Interior street number. | | `addressFields.addressLine1` | string | | The primary line in the address that contains the most essential details for locating a place. | | `addressFields.streetType` | string | | Street type | | `fullAddress` | boolean | | This field is set to true if address from id is full (has three lines) or not (For Mexican Voter IDs only). | | `invalidAddress` | boolean | | This field checks for a valid street, numeric postal code with 5 digits, and that both colony and city have values. (Only checked for Mexican IDs) | | `checkedAddress` | string | | Address as obtained after processing with geocoder geolocation api. | | `checkedAddressBean` | AddressBean | | | | `checkedAddressBean.street` | string | | Street line in the way it is read from address string. | | `checkedAddressBean.streetName` | string | | Street name without exterior and interior numbers. | | `checkedAddressBean.colony` | string | | Colony line the way it is read from address string. (Not applicable for all countries) | | `checkedAddressBean.postalCode` | string | | Postal code in the way it is read from address string. | | `checkedAddressBean.city` | string | | City in the way it is read from address string. | | `checkedAddressBean.state` | string | | State in the way it is read from address string. | | `checkedAddressBean.stateName` | string | | Full StateName. | | `checkedAddressBean.district` | string | | District in the way it is read from address string. | | `checkedAddressBean.stateCode` | string | | State code if applicable. | | `checkedAddressBean.addressCountryCode` | string | | Address country code if applicable. | | `checkedAddressBean.label` | string | | Full address label. | | `checkedAddressBean.exteriorNumber` | string | | Exterior street number. | | `checkedAddressBean.interiorNumber` | string | | Interior street number. | | `checkedAddressBean.addressLine1` | string | | The primary line in the address that contains the most essential details for locating a place. | | `checkedAddressBean.streetType` | string | | Street type | | `exteriorNumber` | string | | Exterior street number. | | `interiorNumber` | string | | Interior street number. | | `addressFromStatement` | string | | Address as read from address statement. Lines are separated by \\n. | | `addressFieldsFromStatement` | AddressBean | | | | `addressFieldsFromStatement.street` | string | | Street line in the way it is read from address string. | | `addressFieldsFromStatement.streetName` | string | | Street name without exterior and interior numbers. | | `addressFieldsFromStatement.colony` | string | | Colony line the way it is read from address string. (Not applicable for all countries) | | `addressFieldsFromStatement.postalCode` | string | | Postal code in the way it is read from address string. | | `addressFieldsFromStatement.city` | string | | City in the way it is read from address string. | | `addressFieldsFromStatement.state` | string | | State in the way it is read from address string. | | `addressFieldsFromStatement.stateName` | string | | Full StateName. | | `addressFieldsFromStatement.district` | string | | District in the way it is read from address string. | | `addressFieldsFromStatement.stateCode` | string | | State code if applicable. | | `addressFieldsFromStatement.addressCountryCode` | string | | Address country code if applicable. | | `addressFieldsFromStatement.label` | string | | Full address label. | | `addressFieldsFromStatement.exteriorNumber` | string | | Exterior street number. | | `addressFieldsFromStatement.interiorNumber` | string | | Interior street number. | | `addressFieldsFromStatement.addressLine1` | string | | The primary line in the address that contains the most essential details for locating a place. | | `addressFieldsFromStatement.streetType` | string | | Street type | | `invalidAddressFromStatement` | boolean | | This field checks for a valid street, numeric postal code with 5 digits, and tha both colony and city have values. (Only checked for Mexican POA) | | `addressStatementEmissionDate` | integer (int64) | | Issue date of address statement. The value is presented in UTC milliseconds. | | `documentType` | string | | Type of address statement document. Possible values: - Mexico: liverpool, citibanamex, cfe, telcel, izzi, axtel, telmex, oapas, sacmex, opdm, naturgy, drenaje, totalplay, dhc, att, cea, smapa, megacable, jmas, amicsa, caev - Bolivia: cre - Uruguay: ute - Unknown document: otherPoa Enum: `aysa`, `edelap`, `edenor`, `edesur`, `epec`, `metrogas`, `a1`, `aggm`, `apg`, `energieAg`, `cre`, `eaab`, `enel`, `vanti`, `aforeAzteca`, `aforeBanorte`, `amd`, `amicsa`, `att`, `axtel`, `bancoppel`, `bancoAzteca`, `banorte`, `bbva`, `cab`, `caev`, `capa`, `cea`, `cfe`, `citibanamex`, `cmapa`, `cmapaGrande`, `cmapas`, `cmas`, `cmasBlue`, `comapa`, `comapaRed`, `coppel`, `dapa`, `dhc`, `drenaje`, `ecogas`, `engie`, `gasNatural`, `h`, `hsbc`, `inbursa`, `infonavit`, `interapas`, `isagas`, `izzi`, `jad`, `japam`, `japama`, `japami`, `japay`, `jiapaz`, `jmas`, `jras`, `jumapac`, `jumapam`, `lerdo`, `liverpool`, `mas`, `megacable`, `naturgy`, `oapas`, `odapas`, `ooapas`, `opdm`, `oroapa`, `sacmex`, `sacmexCdmx`, `santander`, `sapa`, `sapal`, `sapamuy`, `sapasa`, `sapasma`, `scotiabank`, `seapal`, `siapa`, `siapaTepic`, `simapag`, `simapas`, `simas`, `smapa`, `smapac`, `smapam`, `smapas`, `spectrum`, `stori`, `sura`, `tam`, `telcel`, `telmex`, `totalplay`, `veolia`, `victoria`, `wizz`, `asylumSeeker`, `refugeeId`, `refugeeStatus`, `ute`, `telkom`, `tmobile`, `verizon`, `xfinity`, `aforeCoppel`, `americanExpress`, `ap`, `telnor`, `wellsFargo`, `otherPoa` | | `addressStatementTimestamps` | array[AddressStatementDate] | | | | `addressStatementTimestamps.get_version` | integer (int64) | | | | `addressStatementTimestamps.dateType` | string | | Description of timestamp. | | `addressStatementTimestamps.addressStatementTimestamp` | integer (int64) | | UTC timestamp. | | `poaName` | string | | Extracted name from address statement. | | `typeOfId` | string | | Enum: `Unknown`, `Passport`, `Visa`, `DriversLicense`, `IdentificationCard`, `Permit`, `Currency`, `ResidenceDocument`, `TravelDocument`, `BirthCertificate`, `VehicleRegistration`, `Other`, `WeaponLicense`, `TribalIdentification`, `VoterIdentification`, `Military`, `TaxIdentification`, `FederalID`, `MedicalCard` | | `documentFrontSubtype` | string | | Additional info about ID type (front side) | | `documentBackSubtype` | string | | Additional info about ID type (back side) | | `issueFront` | integer (int32) | | Issue year (per classification model) of the ID (front side) | | `issueBack` | integer (int32) | | Issue year (per classification model) of the ID (back side) | | `birthDate` | integer (int64) | | Date of birth is presented in UTC milliseconds. | | `gender` | string | | Gender values are presented in English. "M" for male, "F" for female and "X" for non-binary. Enum: `M`, `F`, `X` | | `claveDeElector` | string | | Clave de elector as read from id. For Mexican IDs only. | | `curp` | string | | Curp as read form id. For Mexican IDs only. | | `numeroEmisionCredencial` | string | | Numero Emision Credencial as read from id. (For Mexican IDs only). | | `cic` | string | | Cic as read from id. (This field is read from back side of id; For Mexican IDs only). | | `ocr` | string | | Ocr as read from id. (This field is read from back side of id; For Mexican IDs only). | | `documentNumber` | string | | Document number. | | `documentNumberSource` | string | | Document number source. Enum: `FORM`, `OCR` | | `personalNumber` | string | | Personal number. | | `nationalNumber` | string | | National number. | | `refNumber` | string | | Document Reference Number. | | `familyNumber` | string | | Family or household registry number printed on the document. | | `taxIdNumber` | string | | Personal tax identification number. | | `nue` | string | | NUE number as read from id. (for Resident Cards) | | `externalId` | string | | External user id. | | `issuedAt` | string | | Date of issue UTC timestamp. | | `expireAt` | string | | Expiration date UTC timestamp. | | `expirationDate` | integer (int32) | | Expiration year of id. | | `issueDate` | integer (int32) | | Issue year of id. | | `registrationDate` | integer (int32) | | Registration date read from id. | | `dlClassDetails` | array[DLClassDetails] | | | | `dlClassDetails.dlClass` | string | | Driver's license class. | | `dlClassDetails.validFromDate` | integer (int64) | | DL class valid from UTC timestamp | | `dlClassDetails.validToDate` | integer (int64) | | DL class valid to UTC timestamp. | | `dlClassDetails.additionalCodes` | string | | Additional codes associated with DL class. | | `dlClassDetails.restrictions` | array[string] | | Restriction codes associated with DL class. | | `issuingCountry` | string | | Issuing country of document. | | `issuingState` | string | | Issuing state of document. | | `birthPlace` | string | | Birth place as read from id. | | `printingNumber` | string | | Printing number (número de impresión) printed below the barcode on Colombian IDs. | | `duplicateNumber` | string | | Number of duplicates (número de duplicados) printed below the barcode on Colombian IDs. | | `preparationNumber` | string | | Preparation number (número de preparación) printed below the barcode on Colombian IDs. | | `issuingAuthority` | string | | Issuing Authority as read from id. | | `height` | string | | Person's height as read from id. | | `weight` | string | | Person's weight. | | `eyeColor` | string | | Person's eye color. | | `hairColor` | string | | Person's hair color. | | `religion` | string | | Person's religion. | | `bloodType` | string | | Person's blood type. | | `maritalStatus` | string | | Person's marital status. | | `nationality` | string | | Person's nationality. | | `race` | string | | Person's race. | | `nationalityMrz` | string | | Person's nationality as it appears in MRZ (if present). | | `nationalityAlpha3` | string | | Person's nationality Alpha3 code format. Only for Brazilian IDs. | | `governmentComparisonResults` | GovernmentComparisonResults | | Government validation data. Only for supported government validation countries. | | `governmentComparisonResults.paternalLastNameValid` | boolean | | Indicates validity of person's paternal last name through government validation apis. | | `governmentComparisonResults.maternalLastNameValid` | boolean | | Indicates validity of person's maternal last name through government validation apis. | | `governmentComparisonResults.firstNameValid` | boolean | | Indicates validity of person's first name through government validation apis. | | `governmentComparisonResults.curpValid` | boolean | | Indicates CURP validity through RENAPO/CURP provider validation. | | `governmentComparisonResults.ineCurpValid` | boolean | | Indicates CURP validity through INE government validation (separate from RENAPO). | | `governmentComparisonResults.ocrValid` | boolean | | Indicates ocr validity through government validation apis. | | `governmentComparisonResults.claveDeElectorValid` | boolean | | Indicates "clave de elector" validity through government validation apis. | | `governmentComparisonResults.numeroEmisionCredencialValid` | boolean | | Indicates "numero emision credencial" validity through government validation apis. | | `governmentComparisonResults.registrationDateValid` | boolean | | Indicates registration date validity through government validation apis. | | `governmentComparisonResults.issueDateValid` | boolean | | Indicates issue date validity through government validation apis. | | `notExtracted` | integer (int32) | | Number of not extracted OCR fields. Only for Mexican IDs. | | `notExtractedDetails` | array[string] | | | | `classes` | string | | Person's driver licence classes. | | `cond` | string | | Person's driver licence conditions. | | `mentions` | string | | Person's driver licence mentions. | | `restrictions` | string | | Person's driver licence restrictions. | | `mrz1` | string | | First MRZ line. | | `mrz2` | string | | Second MRZ line. | | `mrz3` | string | | Third MRZ line. | | `fullNameMrz` | string | | Person's full name read from MRZ. | | `documentNumberCheckDigit` | string | | Document number check digit read from MRZ. | | `dateOfBirthCheckDigit` | string | | Date of birth check digit read from MRZ. | | `expirationDateCheckDigit` | string | | Expiration date check digit read from MRZ. | | `barcodeRawData` | string | | Full unformatted data read from 2D barcode. | | `qrFrontContents` | array[string] | | Raw QR code payloads read from the front of the document, unparsed. Omitted when the capture was redacted. | | `qrBackContents` | array[string] | | Raw QR code payloads read from the back of the document, unparsed. Omitted when the capture was redacted. | | `fathersName` | string | | Person's father's name. Only for Brazilian and Indian IDs. | | `mothersName` | string | | Person's mother's name. Only for Brazilian IDs. | | `fathersIdNumber` | string | | Person's father's Id Number. In the context of minors identity validation. | | `mothersIdNumber` | string | | Person's mother's Id Number. In the context of minors identity validation. | | `spouseName` | string | | Person's spouse's name. | | `federalRevenueNumber` | string | | Federal revenue number. Only for Brazilian IDs. | | `originDocumentId` | string | | Origin document ID. Only for Brazilian IDs. | | `driversLicenseCategory` | string | | Driver's licence category. Only for Brazilian IDs. | | `controlNumber` | string | | Control number. Only for Brazilian IDs. | | `renach` | string | | Renach. Only for Brazilian IDs. | | `additionalAttrs` | array[string] | | Additional document attributes. Enum: `DOCUMENTO_INFANTIL`, `IDADE_PRE_ESCOLAR`, `MENOR_DE_ANOS`, `NAO_ASSINA`, `EM_FASE_DE_ALFABETIZACAO`, `IMPOSSIBILITADO_DE_ASSINAR`, `LIMITED_TERM`, `FEDERAL_LIMITS_APPLY`, `PERMISO_PARA_TRABAJAR`, `EXTRANJERO`, `INDIA_DIGITAL_VID`, `VETERAN`, `MOTORCYCLE_LICENSE`, `NON_DOMICILED`, `COMMERCIAL_LICENSE`, `RESIDENTE`, `MIGRANTE`, `TEMPORAL`, `VISITANTE`, `TRAMITE`, `RUEX`, `INDIGENA`, `AFROMEXICANA`, `INDIA_DIGITAL_TAXID` | | `ocrDataConfidence` | OcrDataConfidence | | Structure containing ocr reliability confidence for each extracted ocr field. Confidence values are Floats between 0 and 1. | | `ocrDataConfidence.birthDateConfidence` | number (float) | | | | `ocrDataConfidence.nameConfidence` | number (float) | | | | `ocrDataConfidence.nameNativeScriptConfidence` | number (float) | | | | `ocrDataConfidence.firstNameNativeScriptConfidence` | number (float) | | | | `ocrDataConfidence.paternalLastNameNativeScriptConfidence` | number (float) | | | | `ocrDataConfidence.maternalLastNameNativeScriptConfidence` | number (float) | | | | `ocrDataConfidence.givenNameConfidence` | number (float) | | | | `ocrDataConfidence.firstNameConfidence` | number (float) | | | | `ocrDataConfidence.middleNameConfidence` | number (float) | | | | `ocrDataConfidence.nameSuffixConfidence` | number (float) | | | | `ocrDataConfidence.mothersSurnameConfidence` | number (float) | | | | `ocrDataConfidence.fathersSurnameConfidence` | number (float) | | | | `ocrDataConfidence.nickNameConfidence` | number (float) | | | | `ocrDataConfidence.fullNameMrzConfidence` | number (float) | | | | `ocrDataConfidence.mothersNameConfidence` | number (float) | | | | `ocrDataConfidence.fathersNameConfidence` | number (float) | | | | `ocrDataConfidence.mothersIdNumberConfidence` | number (float) | | | | `ocrDataConfidence.fathersIdNumberConfidence` | number (float) | | | | `ocrDataConfidence.spouseNameConfidence` | number (float) | | | | `ocrDataConfidence.birthNameConfidence` | number (float) | | | | `ocrDataConfidence.addressConfidence` | number (float) | | | | `ocrDataConfidence.streetConfidence` | number (float) | | | | `ocrDataConfidence.colonyConfidence` | number (float) | | | | `ocrDataConfidence.postalCodeConfidence` | number (float) | | | | `ocrDataConfidence.cityConfidence` | number (float) | | | | `ocrDataConfidence.stateConfidence` | number (float) | | | | `ocrDataConfidence.districtConfidence` | number (float) | | | | `ocrDataConfidence.stateCodeConfidence` | number (float) | | | | `ocrDataConfidence.countryCodeConfidence` | number (float) | | | | `ocrDataConfidence.genderConfidence` | number (float) | | | | `ocrDataConfidence.issueDateConfidence` | number (float) | | | | `ocrDataConfidence.expirationDateConfidence` | number (float) | | | | `ocrDataConfidence.issuedAtConfidence` | number (float) | | | | `ocrDataConfidence.expireAtConfidence` | number (float) | | | | `ocrDataConfidence.issuingAuthorityConfidence` | number (float) | | | | `ocrDataConfidence.mrz1Confidence` | number (float) | | | | `ocrDataConfidence.mrz2Confidence` | number (float) | | | | `ocrDataConfidence.mrz3Confidence` | number (float) | | | | `ocrDataConfidence.mrzFullConfidence` | number (float) | | | | `ocrDataConfidence.documentNumberConfidence` | number (float) | | | | `ocrDataConfidence.backNumberConfidence` | number (float) | | | | `ocrDataConfidence.personalNumberConfidence` | number (float) | | | | `ocrDataConfidence.nationalNumberConfidence` | number (float) | | | | `ocrDataConfidence.claveDeElectorConfidence` | number (float) | | | | `ocrDataConfidence.numeroEmisionCredencialConfidence` | number (float) | | | | `ocrDataConfidence.curpConfidence` | number (float) | | | | `ocrDataConfidence.nueConfidence` | number (float) | | | | `ocrDataConfidence.registrationDateConfidence` | number (float) | | | | `ocrDataConfidence.heightConfidence` | number (float) | | | | `ocrDataConfidence.birthPlaceConfidence` | number (float) | | | | `ocrDataConfidence.bloodTypeConfidence` | number (float) | | | | `ocrDataConfidence.eyeColorConfidence` | number (float) | | | | `ocrDataConfidence.classesConfidence` | number (float) | | | | `ocrDataConfidence.condConfidence` | number (float) | | | | `ocrDataConfidence.mentionsConfidence` | number (float) | | | | `ocrDataConfidence.refNumberConfidence` | number (float) | | | | `ocrDataConfidence.weightConfidence` | number (float) | | | | `ocrDataConfidence.hairConfidence` | number (float) | | | | `ocrDataConfidence.restrictionsConfidence` | number (float) | | | | `ocrDataConfidence.nationalityConfidence` | number (float) | | | | `ocrDataConfidence.nationalityMrzConfidence` | number (float) | | | | `ocrDataConfidence.nationalityAlpha3Confidence` | number (float) | | | | `ocrDataConfidence.maritalStatusConfidence` | number (float) | | | | `ocrDataConfidence.raceConfidence` | number (float) | | | | `ocrDataConfidence.taxIdNumberConfidence` | number (float) | | | | `ocrDataConfidence.jurisdictionCodeConfidence` | number (float) | | | | `additionalDocumentAttempts` | array[AdditionalDocumentAttemptDto] | | | | `additionalDocumentAttempts.status` | string | | Enum: `SUCCESS`, `VALIDATION_ERROR`, `FAIL` | | `additionalDocumentAttempts.attemptTimestamp` | integer (int64) | | | | `additionalDocumentAttempts.imagesUrl` | array[string] | | | | `additionalDocumentAttempts.attemptType` | string | | Enum: `POA`, `DOCUMENT_CAPTURE` | | `additionalDocumentAttempts.antiSpoofResult` | PoaAntiSpoofResult | | | | `additionalDocumentAttempts.antiSpoofResult.status` | string | | Enum: `PASS`, `FAIL`, `NOT_EXECUTED` | | `additionalDocumentAttempts.antiSpoofResult.kinds` | array[string] | | | | `additionalDocumentAttempts.antiSpoofResult.confidence` | number (float) | | | | `additionalDocumentAttempts.antiSpoofResult.details` | array[Detail] | | | | `additionalDocumentAttempts.antiSpoofResult.details.kind` | string | | | | `additionalDocumentAttempts.antiSpoofResult.details.error` | string | | | | `additionalDocumentAttempts.antiSpoofResult.details.loc` | string | | | | `additionalDocumentAttempts.antiSpoofResult.details.explanation` | string | | | | `additionalDocumentAttempts.documentType` | string | yes | | | `documentSubmissionMethod` | string | | Method used to submit the document. Enum: `CAPTURED_DOCUMENT`, `UPLOADED_FILE`, `IMPORTED_CREDENTIAL` | | `credentialsProvider` | string | | Credentials provider used when documentSubmissionMethod is IMPORTED_CREDENTIAL. Enum: `APPLE`, `GOOGLE`, `DIGILOCKER`, `SAMSUNG`, `DIGITAL_ID`, `NETHERLANDS_IDIN`, `FINNISH_TRUST_NETWORK` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/get/ocr-data?id=%3Cid%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/get/ocr-data?id=%3Cid%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/get/ocr-data?id=%3Cid%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/get/ocr-data?id=%3Cid%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/get/ocr-data?id=%3Cid%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/get/ocr-data?id=%3Cid%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "name": { "fullName": "string", "fullNameNativeScript": "string", "firstNameNativeScript": "string", "paternalLastNameNativeScript": "string", "maternalLastNameNativeScript": "string", "machineReadableFullName": "string", "firstName": "string", "middleName": "string", "givenName": "string", "givenNameMrz": "string", "initials": "string", "nameSuffix": "string", "paternalLastName": "string", "maternalLastName": "string", "lastNameMrz": "string", "familyName": "string" }, "address": "string", "addressFields": { "street": "string", "streetName": "string", "colony": "string", "postalCode": "string", "city": "string", "state": "string", "stateName": "string", "district": "string", "stateCode": "string", "addressCountryCode": "string", "label": "string", "exteriorNumber": "string", "interiorNumber": "string", "addressLine1": "string", "streetType": "string" }, "fullAddress": true, "invalidAddress": true, "checkedAddress": "string", "checkedAddressBean": { "street": "string", "streetName": "string", "colony": "string", "postalCode": "string", "city": "string", "state": "string", "stateName": "string", "district": "string", "stateCode": "string", "addressCountryCode": "string", "label": "string", "exteriorNumber": "string", "interiorNumber": "string", "addressLine1": "string", "streetType": "string" }, "exteriorNumber": "string", "interiorNumber": "string", "addressFromStatement": "string", "addressFieldsFromStatement": { "street": "string", "streetName": "string", "colony": "string", "postalCode": "string", "city": "string", "state": "string", "stateName": "string", "district": "string", "stateCode": "string", "addressCountryCode": "string", "label": "string", "exteriorNumber": "string", "interiorNumber": "string", "addressLine1": "string", "streetType": "string" }, "invalidAddressFromStatement": true, "addressStatementEmissionDate": 0, "documentType": "aysa", "addressStatementTimestamps": [ { "get_version": 0, "dateType": "string", "addressStatementTimestamp": 0 } ], "poaName": "string", "typeOfId": "Unknown", "documentFrontSubtype": "string", "documentBackSubtype": "string", "issueFront": 0, "issueBack": 0, "birthDate": 0, "gender": "M", "claveDeElector": "string", "curp": "string", "numeroEmisionCredencial": "string", "cic": "string", "ocr": "string", "documentNumber": "string", "documentNumberSource": "FORM", "personalNumber": "string", "nationalNumber": "string", "refNumber": "string", "familyNumber": "string", "taxIdNumber": "string", "nue": "string", "externalId": "string", "issuedAt": "string", "expireAt": "string", "expirationDate": 0, "issueDate": 0, "registrationDate": 0, "dlClassDetails": [ { "dlClass": "string", "validFromDate": 0, "validToDate": 0, "additionalCodes": "string", "restrictions": [ "string" ] } ], "issuingCountry": "string", "issuingState": "string", "birthPlace": "string", "printingNumber": "string", "duplicateNumber": "string", "preparationNumber": "string", "issuingAuthority": "string", "height": "string", "weight": "string", "eyeColor": "string", "hairColor": "string", "religion": "string", "bloodType": "string", "maritalStatus": "string", "nationality": "string", "race": "string", "nationalityMrz": "string", "nationalityAlpha3": "string", "governmentComparisonResults": { "paternalLastNameValid": true, "maternalLastNameValid": true, "firstNameValid": true, "curpValid": true, "ineCurpValid": true, "ocrValid": true, "claveDeElectorValid": true, "numeroEmisionCredencialValid": true, "registrationDateValid": true, "issueDateValid": true }, "notExtracted": 0, "notExtractedDetails": [ "string" ], "classes": "string", "cond": "string", "mentions": "string", "restrictions": "string", "mrz1": "string", "mrz2": "string", "mrz3": "string", "fullNameMrz": "string", "documentNumberCheckDigit": "string", "dateOfBirthCheckDigit": "string", "expirationDateCheckDigit": "string", "barcodeRawData": "string", "qrFrontContents": [ "string" ], "qrBackContents": [ "string" ], "fathersName": "string", "mothersName": "string", "fathersIdNumber": "string", "mothersIdNumber": "string", "spouseName": "string", "federalRevenueNumber": "string", "originDocumentId": "string", "driversLicenseCategory": "string", "controlNumber": "string", "renach": "string", "additionalAttrs": [ "DOCUMENTO_INFANTIL" ], "ocrDataConfidence": { "birthDateConfidence": 0, "nameConfidence": 0, "nameNativeScriptConfidence": 0, "firstNameNativeScriptConfidence": 0, "paternalLastNameNativeScriptConfidence": 0, "maternalLastNameNativeScriptConfidence": 0, "givenNameConfidence": 0, "firstNameConfidence": 0, "middleNameConfidence": 0, "nameSuffixConfidence": 0, "mothersSurnameConfidence": 0, "fathersSurnameConfidence": 0, "nickNameConfidence": 0, "fullNameMrzConfidence": 0, "mothersNameConfidence": 0, "fathersNameConfidence": 0, "mothersIdNumberConfidence": 0, "fathersIdNumberConfidence": 0, "spouseNameConfidence": 0, "birthNameConfidence": 0, "addressConfidence": 0, "streetConfidence": 0, "colonyConfidence": 0, "postalCodeConfidence": 0, "cityConfidence": 0, "stateConfidence": 0, "districtConfidence": 0, "stateCodeConfidence": 0, "countryCodeConfidence": 0, "genderConfidence": 0, "issueDateConfidence": 0, "expirationDateConfidence": 0, "issuedAtConfidence": 0, "expireAtConfidence": 0, "issuingAuthorityConfidence": 0, "mrz1Confidence": 0, "mrz2Confidence": 0, "mrz3Confidence": 0, "mrzFullConfidence": 0, "documentNumberConfidence": 0, "backNumberConfidence": 0, "personalNumberConfidence": 0, "nationalNumberConfidence": 0, "claveDeElectorConfidence": 0, "numeroEmisionCredencialConfidence": 0, "curpConfidence": 0, "nueConfidence": 0, "registrationDateConfidence": 0, "heightConfidence": 0, "birthPlaceConfidence": 0, "bloodTypeConfidence": 0, "eyeColorConfidence": 0, "classesConfidence": 0, "condConfidence": 0, "mentionsConfidence": 0, "refNumberConfidence": 0, "weightConfidence": 0, "hairConfidence": 0, "restrictionsConfidence": 0, "nationalityConfidence": 0, "nationalityMrzConfidence": 0, "nationalityAlpha3Confidence": 0, "maritalStatusConfidence": 0, "raceConfidence": 0, "taxIdNumberConfidence": 0, "jurisdictionCodeConfidence": 0 }, "additionalDocumentAttempts": [ { "status": "SUCCESS", "attemptTimestamp": 0, "imagesUrl": [ "string" ], "attemptType": "POA", "antiSpoofResult": { "status": "PASS", "kinds": [ "string" ], "confidence": 0, "details": [ { "kind": "string", "error": "string", "loc": "string", "explanation": "string" } ] }, "documentType": "string" } ], "documentSubmissionMethod": "CAPTURED_DOCUMENT", "credentialsProvider": "APPLE" } ``` --- - Path: `api-reference/get-ocr-data-second-id` - URL: https://developer.incode.com/api-reference/get-ocr-data-second-id/ - Markdown: https://developer.incode.com/api-reference/get-ocr-data-second-id.md - Endpoint: `GET /omni/get/ocr-data-second-id` # Fetch ocr data for second id `GET /omni/get/ocr-data-second-id` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Returns data about user read from the second id. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `id` | query | string | | Id of onboarding for which data are requested. If not present, it will be extracted from token. | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `name` | NameBean | | | | `name.fullName` | string | | | | `name.fullNameNativeScript` | string | | | | `name.firstNameNativeScript` | string | | | | `name.paternalLastNameNativeScript` | string | | | | `name.maternalLastNameNativeScript` | string | | | | `name.machineReadableFullName` | string | | Full name from Barcode or MRZ | | `name.firstName` | string | | | | `name.middleName` | string | | | | `name.givenName` | string | | | | `name.givenNameMrz` | string | | | | `name.initials` | string | | Initials as returned by bank-ID schemes (e.g. iDIN) — the only given-name evidence they provide | | `name.nameSuffix` | string | | | | `name.paternalLastName` | string | | | | `name.maternalLastName` | string | | | | `name.lastNameMrz` | string | | | | `name.familyName` | string | | | | `address` | string | | Address as read from id. Address can have two or three lines. Lines are separated by \\n | | `addressFields` | AddressBean | | | | `addressFields.street` | string | | Street line in the way it is read from address string. | | `addressFields.streetName` | string | | Street name without exterior and interior numbers. | | `addressFields.colony` | string | | Colony line the way it is read from address string. (Not applicable for all countries) | | `addressFields.postalCode` | string | | Postal code in the way it is read from address string. | | `addressFields.city` | string | | City in the way it is read from address string. | | `addressFields.state` | string | | State in the way it is read from address string. | | `addressFields.stateName` | string | | Full StateName. | | `addressFields.district` | string | | District in the way it is read from address string. | | `addressFields.stateCode` | string | | State code if applicable. | | `addressFields.addressCountryCode` | string | | Address country code if applicable. | | `addressFields.label` | string | | Full address label. | | `addressFields.exteriorNumber` | string | | Exterior street number. | | `addressFields.interiorNumber` | string | | Interior street number. | | `addressFields.addressLine1` | string | | The primary line in the address that contains the most essential details for locating a place. | | `addressFields.streetType` | string | | Street type | | `fullAddress` | boolean | | This field is set to true if address from id is full (has three lines) or not (For Mexican Voter IDs only). | | `invalidAddress` | boolean | | This field checks for a valid street, numeric postal code with 5 digits, and that both colony and city have values. (Only checked for Mexican IDs) | | `checkedAddress` | string | | Address as obtained after processing with geocoder geolocation api. | | `checkedAddressBean` | AddressBean | | | | `checkedAddressBean.street` | string | | Street line in the way it is read from address string. | | `checkedAddressBean.streetName` | string | | Street name without exterior and interior numbers. | | `checkedAddressBean.colony` | string | | Colony line the way it is read from address string. (Not applicable for all countries) | | `checkedAddressBean.postalCode` | string | | Postal code in the way it is read from address string. | | `checkedAddressBean.city` | string | | City in the way it is read from address string. | | `checkedAddressBean.state` | string | | State in the way it is read from address string. | | `checkedAddressBean.stateName` | string | | Full StateName. | | `checkedAddressBean.district` | string | | District in the way it is read from address string. | | `checkedAddressBean.stateCode` | string | | State code if applicable. | | `checkedAddressBean.addressCountryCode` | string | | Address country code if applicable. | | `checkedAddressBean.label` | string | | Full address label. | | `checkedAddressBean.exteriorNumber` | string | | Exterior street number. | | `checkedAddressBean.interiorNumber` | string | | Interior street number. | | `checkedAddressBean.addressLine1` | string | | The primary line in the address that contains the most essential details for locating a place. | | `checkedAddressBean.streetType` | string | | Street type | | `exteriorNumber` | string | | Exterior street number. | | `interiorNumber` | string | | Interior street number. | | `addressFromStatement` | string | | Address as read from address statement. Lines are separated by \\n. | | `addressFieldsFromStatement` | AddressBean | | | | `addressFieldsFromStatement.street` | string | | Street line in the way it is read from address string. | | `addressFieldsFromStatement.streetName` | string | | Street name without exterior and interior numbers. | | `addressFieldsFromStatement.colony` | string | | Colony line the way it is read from address string. (Not applicable for all countries) | | `addressFieldsFromStatement.postalCode` | string | | Postal code in the way it is read from address string. | | `addressFieldsFromStatement.city` | string | | City in the way it is read from address string. | | `addressFieldsFromStatement.state` | string | | State in the way it is read from address string. | | `addressFieldsFromStatement.stateName` | string | | Full StateName. | | `addressFieldsFromStatement.district` | string | | District in the way it is read from address string. | | `addressFieldsFromStatement.stateCode` | string | | State code if applicable. | | `addressFieldsFromStatement.addressCountryCode` | string | | Address country code if applicable. | | `addressFieldsFromStatement.label` | string | | Full address label. | | `addressFieldsFromStatement.exteriorNumber` | string | | Exterior street number. | | `addressFieldsFromStatement.interiorNumber` | string | | Interior street number. | | `addressFieldsFromStatement.addressLine1` | string | | The primary line in the address that contains the most essential details for locating a place. | | `addressFieldsFromStatement.streetType` | string | | Street type | | `invalidAddressFromStatement` | boolean | | This field checks for a valid street, numeric postal code with 5 digits, and tha both colony and city have values. (Only checked for Mexican POA) | | `addressStatementEmissionDate` | integer (int64) | | Issue date of address statement. The value is presented in UTC milliseconds. | | `documentType` | string | | Type of address statement document. Possible values: - Mexico: liverpool, citibanamex, cfe, telcel, izzi, axtel, telmex, oapas, sacmex, opdm, naturgy, drenaje, totalplay, dhc, att, cea, smapa, megacable, jmas, amicsa, caev - Bolivia: cre - Uruguay: ute - Unknown document: otherPoa Enum: `aysa`, `edelap`, `edenor`, `edesur`, `epec`, `metrogas`, `a1`, `aggm`, `apg`, `energieAg`, `cre`, `eaab`, `enel`, `vanti`, `aforeAzteca`, `aforeBanorte`, `amd`, `amicsa`, `att`, `axtel`, `bancoppel`, `bancoAzteca`, `banorte`, `bbva`, `cab`, `caev`, `capa`, `cea`, `cfe`, `citibanamex`, `cmapa`, `cmapaGrande`, `cmapas`, `cmas`, `cmasBlue`, `comapa`, `comapaRed`, `coppel`, `dapa`, `dhc`, `drenaje`, `ecogas`, `engie`, `gasNatural`, `h`, `hsbc`, `inbursa`, `infonavit`, `interapas`, `isagas`, `izzi`, `jad`, `japam`, `japama`, `japami`, `japay`, `jiapaz`, `jmas`, `jras`, `jumapac`, `jumapam`, `lerdo`, `liverpool`, `mas`, `megacable`, `naturgy`, `oapas`, `odapas`, `ooapas`, `opdm`, `oroapa`, `sacmex`, `sacmexCdmx`, `santander`, `sapa`, `sapal`, `sapamuy`, `sapasa`, `sapasma`, `scotiabank`, `seapal`, `siapa`, `siapaTepic`, `simapag`, `simapas`, `simas`, `smapa`, `smapac`, `smapam`, `smapas`, `spectrum`, `stori`, `sura`, `tam`, `telcel`, `telmex`, `totalplay`, `veolia`, `victoria`, `wizz`, `asylumSeeker`, `refugeeId`, `refugeeStatus`, `ute`, `telkom`, `tmobile`, `verizon`, `xfinity`, `aforeCoppel`, `americanExpress`, `ap`, `telnor`, `wellsFargo`, `otherPoa` | | `addressStatementTimestamps` | array[AddressStatementDate] | | | | `addressStatementTimestamps.get_version` | integer (int64) | | | | `addressStatementTimestamps.dateType` | string | | Description of timestamp. | | `addressStatementTimestamps.addressStatementTimestamp` | integer (int64) | | UTC timestamp. | | `poaName` | string | | Extracted name from address statement. | | `typeOfId` | string | | Enum: `Unknown`, `Passport`, `Visa`, `DriversLicense`, `IdentificationCard`, `Permit`, `Currency`, `ResidenceDocument`, `TravelDocument`, `BirthCertificate`, `VehicleRegistration`, `Other`, `WeaponLicense`, `TribalIdentification`, `VoterIdentification`, `Military`, `TaxIdentification`, `FederalID`, `MedicalCard` | | `documentFrontSubtype` | string | | Additional info about ID type (front side) | | `documentBackSubtype` | string | | Additional info about ID type (back side) | | `issueFront` | integer (int32) | | Issue year (per classification model) of the ID (front side) | | `issueBack` | integer (int32) | | Issue year (per classification model) of the ID (back side) | | `birthDate` | integer (int64) | | Date of birth is presented in UTC milliseconds. | | `gender` | string | | Gender values are presented in English. "M" for male, "F" for female and "X" for non-binary. Enum: `M`, `F`, `X` | | `claveDeElector` | string | | Clave de elector as read from id. For Mexican IDs only. | | `curp` | string | | Curp as read form id. For Mexican IDs only. | | `numeroEmisionCredencial` | string | | Numero Emision Credencial as read from id. (For Mexican IDs only). | | `cic` | string | | Cic as read from id. (This field is read from back side of id; For Mexican IDs only). | | `ocr` | string | | Ocr as read from id. (This field is read from back side of id; For Mexican IDs only). | | `documentNumber` | string | | Document number. | | `documentNumberSource` | string | | Document number source. Enum: `FORM`, `OCR` | | `personalNumber` | string | | Personal number. | | `nationalNumber` | string | | National number. | | `refNumber` | string | | Document Reference Number. | | `familyNumber` | string | | Family or household registry number printed on the document. | | `taxIdNumber` | string | | Personal tax identification number. | | `nue` | string | | NUE number as read from id. (for Resident Cards) | | `externalId` | string | | External user id. | | `issuedAt` | string | | Date of issue UTC timestamp. | | `expireAt` | string | | Expiration date UTC timestamp. | | `expirationDate` | integer (int32) | | Expiration year of id. | | `issueDate` | integer (int32) | | Issue year of id. | | `registrationDate` | integer (int32) | | Registration date read from id. | | `dlClassDetails` | array[DLClassDetails] | | | | `dlClassDetails.dlClass` | string | | Driver's license class. | | `dlClassDetails.validFromDate` | integer (int64) | | DL class valid from UTC timestamp | | `dlClassDetails.validToDate` | integer (int64) | | DL class valid to UTC timestamp. | | `dlClassDetails.additionalCodes` | string | | Additional codes associated with DL class. | | `dlClassDetails.restrictions` | array[string] | | Restriction codes associated with DL class. | | `issuingCountry` | string | | Issuing country of document. | | `issuingState` | string | | Issuing state of document. | | `birthPlace` | string | | Birth place as read from id. | | `printingNumber` | string | | Printing number (número de impresión) printed below the barcode on Colombian IDs. | | `duplicateNumber` | string | | Number of duplicates (número de duplicados) printed below the barcode on Colombian IDs. | | `preparationNumber` | string | | Preparation number (número de preparación) printed below the barcode on Colombian IDs. | | `issuingAuthority` | string | | Issuing Authority as read from id. | | `height` | string | | Person's height as read from id. | | `weight` | string | | Person's weight. | | `eyeColor` | string | | Person's eye color. | | `hairColor` | string | | Person's hair color. | | `religion` | string | | Person's religion. | | `bloodType` | string | | Person's blood type. | | `maritalStatus` | string | | Person's marital status. | | `nationality` | string | | Person's nationality. | | `race` | string | | Person's race. | | `nationalityMrz` | string | | Person's nationality as it appears in MRZ (if present). | | `nationalityAlpha3` | string | | Person's nationality Alpha3 code format. Only for Brazilian IDs. | | `governmentComparisonResults` | GovernmentComparisonResults | | Government validation data. Only for supported government validation countries. | | `governmentComparisonResults.paternalLastNameValid` | boolean | | Indicates validity of person's paternal last name through government validation apis. | | `governmentComparisonResults.maternalLastNameValid` | boolean | | Indicates validity of person's maternal last name through government validation apis. | | `governmentComparisonResults.firstNameValid` | boolean | | Indicates validity of person's first name through government validation apis. | | `governmentComparisonResults.curpValid` | boolean | | Indicates CURP validity through RENAPO/CURP provider validation. | | `governmentComparisonResults.ineCurpValid` | boolean | | Indicates CURP validity through INE government validation (separate from RENAPO). | | `governmentComparisonResults.ocrValid` | boolean | | Indicates ocr validity through government validation apis. | | `governmentComparisonResults.claveDeElectorValid` | boolean | | Indicates "clave de elector" validity through government validation apis. | | `governmentComparisonResults.numeroEmisionCredencialValid` | boolean | | Indicates "numero emision credencial" validity through government validation apis. | | `governmentComparisonResults.registrationDateValid` | boolean | | Indicates registration date validity through government validation apis. | | `governmentComparisonResults.issueDateValid` | boolean | | Indicates issue date validity through government validation apis. | | `notExtracted` | integer (int32) | | Number of not extracted OCR fields. Only for Mexican IDs. | | `notExtractedDetails` | array[string] | | | | `classes` | string | | Person's driver licence classes. | | `cond` | string | | Person's driver licence conditions. | | `mentions` | string | | Person's driver licence mentions. | | `restrictions` | string | | Person's driver licence restrictions. | | `mrz1` | string | | First MRZ line. | | `mrz2` | string | | Second MRZ line. | | `mrz3` | string | | Third MRZ line. | | `fullNameMrz` | string | | Person's full name read from MRZ. | | `documentNumberCheckDigit` | string | | Document number check digit read from MRZ. | | `dateOfBirthCheckDigit` | string | | Date of birth check digit read from MRZ. | | `expirationDateCheckDigit` | string | | Expiration date check digit read from MRZ. | | `barcodeRawData` | string | | Full unformatted data read from 2D barcode. | | `qrFrontContents` | array[string] | | Raw QR code payloads read from the front of the document, unparsed. Omitted when the capture was redacted. | | `qrBackContents` | array[string] | | Raw QR code payloads read from the back of the document, unparsed. Omitted when the capture was redacted. | | `fathersName` | string | | Person's father's name. Only for Brazilian and Indian IDs. | | `mothersName` | string | | Person's mother's name. Only for Brazilian IDs. | | `fathersIdNumber` | string | | Person's father's Id Number. In the context of minors identity validation. | | `mothersIdNumber` | string | | Person's mother's Id Number. In the context of minors identity validation. | | `spouseName` | string | | Person's spouse's name. | | `federalRevenueNumber` | string | | Federal revenue number. Only for Brazilian IDs. | | `originDocumentId` | string | | Origin document ID. Only for Brazilian IDs. | | `driversLicenseCategory` | string | | Driver's licence category. Only for Brazilian IDs. | | `controlNumber` | string | | Control number. Only for Brazilian IDs. | | `renach` | string | | Renach. Only for Brazilian IDs. | | `additionalAttrs` | array[string] | | Additional document attributes. Enum: `DOCUMENTO_INFANTIL`, `IDADE_PRE_ESCOLAR`, `MENOR_DE_ANOS`, `NAO_ASSINA`, `EM_FASE_DE_ALFABETIZACAO`, `IMPOSSIBILITADO_DE_ASSINAR`, `LIMITED_TERM`, `FEDERAL_LIMITS_APPLY`, `PERMISO_PARA_TRABAJAR`, `EXTRANJERO`, `INDIA_DIGITAL_VID`, `VETERAN`, `MOTORCYCLE_LICENSE`, `NON_DOMICILED`, `COMMERCIAL_LICENSE`, `RESIDENTE`, `MIGRANTE`, `TEMPORAL`, `VISITANTE`, `TRAMITE`, `RUEX`, `INDIGENA`, `AFROMEXICANA`, `INDIA_DIGITAL_TAXID` | | `ocrDataConfidence` | OcrDataConfidence | | Structure containing ocr reliability confidence for each extracted ocr field. Confidence values are Floats between 0 and 1. | | `ocrDataConfidence.birthDateConfidence` | number (float) | | | | `ocrDataConfidence.nameConfidence` | number (float) | | | | `ocrDataConfidence.nameNativeScriptConfidence` | number (float) | | | | `ocrDataConfidence.firstNameNativeScriptConfidence` | number (float) | | | | `ocrDataConfidence.paternalLastNameNativeScriptConfidence` | number (float) | | | | `ocrDataConfidence.maternalLastNameNativeScriptConfidence` | number (float) | | | | `ocrDataConfidence.givenNameConfidence` | number (float) | | | | `ocrDataConfidence.firstNameConfidence` | number (float) | | | | `ocrDataConfidence.middleNameConfidence` | number (float) | | | | `ocrDataConfidence.nameSuffixConfidence` | number (float) | | | | `ocrDataConfidence.mothersSurnameConfidence` | number (float) | | | | `ocrDataConfidence.fathersSurnameConfidence` | number (float) | | | | `ocrDataConfidence.nickNameConfidence` | number (float) | | | | `ocrDataConfidence.fullNameMrzConfidence` | number (float) | | | | `ocrDataConfidence.mothersNameConfidence` | number (float) | | | | `ocrDataConfidence.fathersNameConfidence` | number (float) | | | | `ocrDataConfidence.mothersIdNumberConfidence` | number (float) | | | | `ocrDataConfidence.fathersIdNumberConfidence` | number (float) | | | | `ocrDataConfidence.spouseNameConfidence` | number (float) | | | | `ocrDataConfidence.birthNameConfidence` | number (float) | | | | `ocrDataConfidence.addressConfidence` | number (float) | | | | `ocrDataConfidence.streetConfidence` | number (float) | | | | `ocrDataConfidence.colonyConfidence` | number (float) | | | | `ocrDataConfidence.postalCodeConfidence` | number (float) | | | | `ocrDataConfidence.cityConfidence` | number (float) | | | | `ocrDataConfidence.stateConfidence` | number (float) | | | | `ocrDataConfidence.districtConfidence` | number (float) | | | | `ocrDataConfidence.stateCodeConfidence` | number (float) | | | | `ocrDataConfidence.countryCodeConfidence` | number (float) | | | | `ocrDataConfidence.genderConfidence` | number (float) | | | | `ocrDataConfidence.issueDateConfidence` | number (float) | | | | `ocrDataConfidence.expirationDateConfidence` | number (float) | | | | `ocrDataConfidence.issuedAtConfidence` | number (float) | | | | `ocrDataConfidence.expireAtConfidence` | number (float) | | | | `ocrDataConfidence.issuingAuthorityConfidence` | number (float) | | | | `ocrDataConfidence.mrz1Confidence` | number (float) | | | | `ocrDataConfidence.mrz2Confidence` | number (float) | | | | `ocrDataConfidence.mrz3Confidence` | number (float) | | | | `ocrDataConfidence.mrzFullConfidence` | number (float) | | | | `ocrDataConfidence.documentNumberConfidence` | number (float) | | | | `ocrDataConfidence.backNumberConfidence` | number (float) | | | | `ocrDataConfidence.personalNumberConfidence` | number (float) | | | | `ocrDataConfidence.nationalNumberConfidence` | number (float) | | | | `ocrDataConfidence.claveDeElectorConfidence` | number (float) | | | | `ocrDataConfidence.numeroEmisionCredencialConfidence` | number (float) | | | | `ocrDataConfidence.curpConfidence` | number (float) | | | | `ocrDataConfidence.nueConfidence` | number (float) | | | | `ocrDataConfidence.registrationDateConfidence` | number (float) | | | | `ocrDataConfidence.heightConfidence` | number (float) | | | | `ocrDataConfidence.birthPlaceConfidence` | number (float) | | | | `ocrDataConfidence.bloodTypeConfidence` | number (float) | | | | `ocrDataConfidence.eyeColorConfidence` | number (float) | | | | `ocrDataConfidence.classesConfidence` | number (float) | | | | `ocrDataConfidence.condConfidence` | number (float) | | | | `ocrDataConfidence.mentionsConfidence` | number (float) | | | | `ocrDataConfidence.refNumberConfidence` | number (float) | | | | `ocrDataConfidence.weightConfidence` | number (float) | | | | `ocrDataConfidence.hairConfidence` | number (float) | | | | `ocrDataConfidence.restrictionsConfidence` | number (float) | | | | `ocrDataConfidence.nationalityConfidence` | number (float) | | | | `ocrDataConfidence.nationalityMrzConfidence` | number (float) | | | | `ocrDataConfidence.nationalityAlpha3Confidence` | number (float) | | | | `ocrDataConfidence.maritalStatusConfidence` | number (float) | | | | `ocrDataConfidence.raceConfidence` | number (float) | | | | `ocrDataConfidence.taxIdNumberConfidence` | number (float) | | | | `ocrDataConfidence.jurisdictionCodeConfidence` | number (float) | | | | `additionalDocumentAttempts` | array[AdditionalDocumentAttemptDto] | | | | `additionalDocumentAttempts.status` | string | | Enum: `SUCCESS`, `VALIDATION_ERROR`, `FAIL` | | `additionalDocumentAttempts.attemptTimestamp` | integer (int64) | | | | `additionalDocumentAttempts.imagesUrl` | array[string] | | | | `additionalDocumentAttempts.attemptType` | string | | Enum: `POA`, `DOCUMENT_CAPTURE` | | `additionalDocumentAttempts.antiSpoofResult` | PoaAntiSpoofResult | | | | `additionalDocumentAttempts.antiSpoofResult.status` | string | | Enum: `PASS`, `FAIL`, `NOT_EXECUTED` | | `additionalDocumentAttempts.antiSpoofResult.kinds` | array[string] | | | | `additionalDocumentAttempts.antiSpoofResult.confidence` | number (float) | | | | `additionalDocumentAttempts.antiSpoofResult.details` | array[Detail] | | | | `additionalDocumentAttempts.antiSpoofResult.details.kind` | string | | | | `additionalDocumentAttempts.antiSpoofResult.details.error` | string | | | | `additionalDocumentAttempts.antiSpoofResult.details.loc` | string | | | | `additionalDocumentAttempts.antiSpoofResult.details.explanation` | string | | | | `additionalDocumentAttempts.documentType` | string | yes | | | `documentSubmissionMethod` | string | | Method used to submit the document. Enum: `CAPTURED_DOCUMENT`, `UPLOADED_FILE`, `IMPORTED_CREDENTIAL` | | `credentialsProvider` | string | | Credentials provider used when documentSubmissionMethod is IMPORTED_CREDENTIAL. Enum: `APPLE`, `GOOGLE`, `DIGILOCKER`, `SAMSUNG`, `DIGITAL_ID`, `NETHERLANDS_IDIN`, `FINNISH_TRUST_NETWORK` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/get/ocr-data-second-id?id=%3Cid%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/get/ocr-data-second-id?id=%3Cid%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/get/ocr-data-second-id?id=%3Cid%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/get/ocr-data-second-id?id=%3Cid%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/get/ocr-data-second-id?id=%3Cid%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/get/ocr-data-second-id?id=%3Cid%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "name": { "fullName": "string", "fullNameNativeScript": "string", "firstNameNativeScript": "string", "paternalLastNameNativeScript": "string", "maternalLastNameNativeScript": "string", "machineReadableFullName": "string", "firstName": "string", "middleName": "string", "givenName": "string", "givenNameMrz": "string", "initials": "string", "nameSuffix": "string", "paternalLastName": "string", "maternalLastName": "string", "lastNameMrz": "string", "familyName": "string" }, "address": "string", "addressFields": { "street": "string", "streetName": "string", "colony": "string", "postalCode": "string", "city": "string", "state": "string", "stateName": "string", "district": "string", "stateCode": "string", "addressCountryCode": "string", "label": "string", "exteriorNumber": "string", "interiorNumber": "string", "addressLine1": "string", "streetType": "string" }, "fullAddress": true, "invalidAddress": true, "checkedAddress": "string", "checkedAddressBean": { "street": "string", "streetName": "string", "colony": "string", "postalCode": "string", "city": "string", "state": "string", "stateName": "string", "district": "string", "stateCode": "string", "addressCountryCode": "string", "label": "string", "exteriorNumber": "string", "interiorNumber": "string", "addressLine1": "string", "streetType": "string" }, "exteriorNumber": "string", "interiorNumber": "string", "addressFromStatement": "string", "addressFieldsFromStatement": { "street": "string", "streetName": "string", "colony": "string", "postalCode": "string", "city": "string", "state": "string", "stateName": "string", "district": "string", "stateCode": "string", "addressCountryCode": "string", "label": "string", "exteriorNumber": "string", "interiorNumber": "string", "addressLine1": "string", "streetType": "string" }, "invalidAddressFromStatement": true, "addressStatementEmissionDate": 0, "documentType": "aysa", "addressStatementTimestamps": [ { "get_version": 0, "dateType": "string", "addressStatementTimestamp": 0 } ], "poaName": "string", "typeOfId": "Unknown", "documentFrontSubtype": "string", "documentBackSubtype": "string", "issueFront": 0, "issueBack": 0, "birthDate": 0, "gender": "M", "claveDeElector": "string", "curp": "string", "numeroEmisionCredencial": "string", "cic": "string", "ocr": "string", "documentNumber": "string", "documentNumberSource": "FORM", "personalNumber": "string", "nationalNumber": "string", "refNumber": "string", "familyNumber": "string", "taxIdNumber": "string", "nue": "string", "externalId": "string", "issuedAt": "string", "expireAt": "string", "expirationDate": 0, "issueDate": 0, "registrationDate": 0, "dlClassDetails": [ { "dlClass": "string", "validFromDate": 0, "validToDate": 0, "additionalCodes": "string", "restrictions": [ "string" ] } ], "issuingCountry": "string", "issuingState": "string", "birthPlace": "string", "printingNumber": "string", "duplicateNumber": "string", "preparationNumber": "string", "issuingAuthority": "string", "height": "string", "weight": "string", "eyeColor": "string", "hairColor": "string", "religion": "string", "bloodType": "string", "maritalStatus": "string", "nationality": "string", "race": "string", "nationalityMrz": "string", "nationalityAlpha3": "string", "governmentComparisonResults": { "paternalLastNameValid": true, "maternalLastNameValid": true, "firstNameValid": true, "curpValid": true, "ineCurpValid": true, "ocrValid": true, "claveDeElectorValid": true, "numeroEmisionCredencialValid": true, "registrationDateValid": true, "issueDateValid": true }, "notExtracted": 0, "notExtractedDetails": [ "string" ], "classes": "string", "cond": "string", "mentions": "string", "restrictions": "string", "mrz1": "string", "mrz2": "string", "mrz3": "string", "fullNameMrz": "string", "documentNumberCheckDigit": "string", "dateOfBirthCheckDigit": "string", "expirationDateCheckDigit": "string", "barcodeRawData": "string", "qrFrontContents": [ "string" ], "qrBackContents": [ "string" ], "fathersName": "string", "mothersName": "string", "fathersIdNumber": "string", "mothersIdNumber": "string", "spouseName": "string", "federalRevenueNumber": "string", "originDocumentId": "string", "driversLicenseCategory": "string", "controlNumber": "string", "renach": "string", "additionalAttrs": [ "DOCUMENTO_INFANTIL" ], "ocrDataConfidence": { "birthDateConfidence": 0, "nameConfidence": 0, "nameNativeScriptConfidence": 0, "firstNameNativeScriptConfidence": 0, "paternalLastNameNativeScriptConfidence": 0, "maternalLastNameNativeScriptConfidence": 0, "givenNameConfidence": 0, "firstNameConfidence": 0, "middleNameConfidence": 0, "nameSuffixConfidence": 0, "mothersSurnameConfidence": 0, "fathersSurnameConfidence": 0, "nickNameConfidence": 0, "fullNameMrzConfidence": 0, "mothersNameConfidence": 0, "fathersNameConfidence": 0, "mothersIdNumberConfidence": 0, "fathersIdNumberConfidence": 0, "spouseNameConfidence": 0, "birthNameConfidence": 0, "addressConfidence": 0, "streetConfidence": 0, "colonyConfidence": 0, "postalCodeConfidence": 0, "cityConfidence": 0, "stateConfidence": 0, "districtConfidence": 0, "stateCodeConfidence": 0, "countryCodeConfidence": 0, "genderConfidence": 0, "issueDateConfidence": 0, "expirationDateConfidence": 0, "issuedAtConfidence": 0, "expireAtConfidence": 0, "issuingAuthorityConfidence": 0, "mrz1Confidence": 0, "mrz2Confidence": 0, "mrz3Confidence": 0, "mrzFullConfidence": 0, "documentNumberConfidence": 0, "backNumberConfidence": 0, "personalNumberConfidence": 0, "nationalNumberConfidence": 0, "claveDeElectorConfidence": 0, "numeroEmisionCredencialConfidence": 0, "curpConfidence": 0, "nueConfidence": 0, "registrationDateConfidence": 0, "heightConfidence": 0, "birthPlaceConfidence": 0, "bloodTypeConfidence": 0, "eyeColorConfidence": 0, "classesConfidence": 0, "condConfidence": 0, "mentionsConfidence": 0, "refNumberConfidence": 0, "weightConfidence": 0, "hairConfidence": 0, "restrictionsConfidence": 0, "nationalityConfidence": 0, "nationalityMrzConfidence": 0, "nationalityAlpha3Confidence": 0, "maritalStatusConfidence": 0, "raceConfidence": 0, "taxIdNumberConfidence": 0, "jurisdictionCodeConfidence": 0 }, "additionalDocumentAttempts": [ { "status": "SUCCESS", "attemptTimestamp": 0, "imagesUrl": [ "string" ], "attemptType": "POA", "antiSpoofResult": { "status": "PASS", "kinds": [ "string" ], "confidence": 0, "details": [ { "kind": "string", "error": "string", "loc": "string", "explanation": "string" } ] }, "documentType": "string" } ], "documentSubmissionMethod": "CAPTURED_DOCUMENT", "credentialsProvider": "APPLE" } ``` --- - Path: `api-reference/get-ocr-data-v2` - URL: https://developer.incode.com/api-reference/get-ocr-data-v2/ - Markdown: https://developer.incode.com/api-reference/get-ocr-data-v2.md - Endpoint: `GET /omni/get/ocr-data/v2` # Fetch ocr data v2 `GET /omni/get/ocr-data/v2` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Returns data about user read from id and address statement wrapped in ocrData object. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `id` | query | string | | Id of onboarding for which data are requested. If not present, it will be extracted from token. | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `ocrData` | OcrDataResponse | | | | `ocrData.name` | NameBean | | | | `ocrData.name.fullName` | string | | | | `ocrData.name.fullNameNativeScript` | string | | | | `ocrData.name.firstNameNativeScript` | string | | | | `ocrData.name.paternalLastNameNativeScript` | string | | | | `ocrData.name.maternalLastNameNativeScript` | string | | | | `ocrData.name.machineReadableFullName` | string | | Full name from Barcode or MRZ | | `ocrData.name.firstName` | string | | | | `ocrData.name.middleName` | string | | | | `ocrData.name.givenName` | string | | | | `ocrData.name.givenNameMrz` | string | | | | `ocrData.name.initials` | string | | Initials as returned by bank-ID schemes (e.g. iDIN) — the only given-name evidence they provide | | `ocrData.name.nameSuffix` | string | | | | `ocrData.name.paternalLastName` | string | | | | `ocrData.name.maternalLastName` | string | | | | `ocrData.name.lastNameMrz` | string | | | | `ocrData.name.familyName` | string | | | | `ocrData.address` | string | | Address as read from id. Address can have two or three lines. Lines are separated by \\n | | `ocrData.addressFields` | AddressBean | | | | `ocrData.addressFields.street` | string | | Street line in the way it is read from address string. | | `ocrData.addressFields.streetName` | string | | Street name without exterior and interior numbers. | | `ocrData.addressFields.colony` | string | | Colony line the way it is read from address string. (Not applicable for all countries) | | `ocrData.addressFields.postalCode` | string | | Postal code in the way it is read from address string. | | `ocrData.addressFields.city` | string | | City in the way it is read from address string. | | `ocrData.addressFields.state` | string | | State in the way it is read from address string. | | `ocrData.addressFields.stateName` | string | | Full StateName. | | `ocrData.addressFields.district` | string | | District in the way it is read from address string. | | `ocrData.addressFields.stateCode` | string | | State code if applicable. | | `ocrData.addressFields.addressCountryCode` | string | | Address country code if applicable. | | `ocrData.addressFields.label` | string | | Full address label. | | `ocrData.addressFields.exteriorNumber` | string | | Exterior street number. | | `ocrData.addressFields.interiorNumber` | string | | Interior street number. | | `ocrData.addressFields.addressLine1` | string | | The primary line in the address that contains the most essential details for locating a place. | | `ocrData.addressFields.streetType` | string | | Street type | | `ocrData.fullAddress` | boolean | | This field is set to true if address from id is full (has three lines) or not (For Mexican Voter IDs only). | | `ocrData.invalidAddress` | boolean | | This field checks for a valid street, numeric postal code with 5 digits, and that both colony and city have values. (Only checked for Mexican IDs) | | `ocrData.checkedAddress` | string | | Address as obtained after processing with geocoder geolocation api. | | `ocrData.checkedAddressBean` | AddressBean | | | | `ocrData.checkedAddressBean.street` | string | | Street line in the way it is read from address string. | | `ocrData.checkedAddressBean.streetName` | string | | Street name without exterior and interior numbers. | | `ocrData.checkedAddressBean.colony` | string | | Colony line the way it is read from address string. (Not applicable for all countries) | | `ocrData.checkedAddressBean.postalCode` | string | | Postal code in the way it is read from address string. | | `ocrData.checkedAddressBean.city` | string | | City in the way it is read from address string. | | `ocrData.checkedAddressBean.state` | string | | State in the way it is read from address string. | | `ocrData.checkedAddressBean.stateName` | string | | Full StateName. | | `ocrData.checkedAddressBean.district` | string | | District in the way it is read from address string. | | `ocrData.checkedAddressBean.stateCode` | string | | State code if applicable. | | `ocrData.checkedAddressBean.addressCountryCode` | string | | Address country code if applicable. | | `ocrData.checkedAddressBean.label` | string | | Full address label. | | `ocrData.checkedAddressBean.exteriorNumber` | string | | Exterior street number. | | `ocrData.checkedAddressBean.interiorNumber` | string | | Interior street number. | | `ocrData.checkedAddressBean.addressLine1` | string | | The primary line in the address that contains the most essential details for locating a place. | | `ocrData.checkedAddressBean.streetType` | string | | Street type | | `ocrData.exteriorNumber` | string | | Exterior street number. | | `ocrData.interiorNumber` | string | | Interior street number. | | `ocrData.addressFromStatement` | string | | Address as read from address statement. Lines are separated by \\n. | | `ocrData.addressFieldsFromStatement` | AddressBean | | | | `ocrData.addressFieldsFromStatement.street` | string | | Street line in the way it is read from address string. | | `ocrData.addressFieldsFromStatement.streetName` | string | | Street name without exterior and interior numbers. | | `ocrData.addressFieldsFromStatement.colony` | string | | Colony line the way it is read from address string. (Not applicable for all countries) | | `ocrData.addressFieldsFromStatement.postalCode` | string | | Postal code in the way it is read from address string. | | `ocrData.addressFieldsFromStatement.city` | string | | City in the way it is read from address string. | | `ocrData.addressFieldsFromStatement.state` | string | | State in the way it is read from address string. | | `ocrData.addressFieldsFromStatement.stateName` | string | | Full StateName. | | `ocrData.addressFieldsFromStatement.district` | string | | District in the way it is read from address string. | | `ocrData.addressFieldsFromStatement.stateCode` | string | | State code if applicable. | | `ocrData.addressFieldsFromStatement.addressCountryCode` | string | | Address country code if applicable. | | `ocrData.addressFieldsFromStatement.label` | string | | Full address label. | | `ocrData.addressFieldsFromStatement.exteriorNumber` | string | | Exterior street number. | | `ocrData.addressFieldsFromStatement.interiorNumber` | string | | Interior street number. | | `ocrData.addressFieldsFromStatement.addressLine1` | string | | The primary line in the address that contains the most essential details for locating a place. | | `ocrData.addressFieldsFromStatement.streetType` | string | | Street type | | `ocrData.invalidAddressFromStatement` | boolean | | This field checks for a valid street, numeric postal code with 5 digits, and tha both colony and city have values. (Only checked for Mexican POA) | | `ocrData.addressStatementEmissionDate` | integer (int64) | | Issue date of address statement. The value is presented in UTC milliseconds. | | `ocrData.documentType` | string | | Type of address statement document. Possible values: - Mexico: liverpool, citibanamex, cfe, telcel, izzi, axtel, telmex, oapas, sacmex, opdm, naturgy, drenaje, totalplay, dhc, att, cea, smapa, megacable, jmas, amicsa, caev - Bolivia: cre - Uruguay: ute - Unknown document: otherPoa Enum: `aysa`, `edelap`, `edenor`, `edesur`, `epec`, `metrogas`, `a1`, `aggm`, `apg`, `energieAg`, `cre`, `eaab`, `enel`, `vanti`, `aforeAzteca`, `aforeBanorte`, `amd`, `amicsa`, `att`, `axtel`, `bancoppel`, `bancoAzteca`, `banorte`, `bbva`, `cab`, `caev`, `capa`, `cea`, `cfe`, `citibanamex`, `cmapa`, `cmapaGrande`, `cmapas`, `cmas`, `cmasBlue`, `comapa`, `comapaRed`, `coppel`, `dapa`, `dhc`, `drenaje`, `ecogas`, `engie`, `gasNatural`, `h`, `hsbc`, `inbursa`, `infonavit`, `interapas`, `isagas`, `izzi`, `jad`, `japam`, `japama`, `japami`, `japay`, `jiapaz`, `jmas`, `jras`, `jumapac`, `jumapam`, `lerdo`, `liverpool`, `mas`, `megacable`, `naturgy`, `oapas`, `odapas`, `ooapas`, `opdm`, `oroapa`, `sacmex`, `sacmexCdmx`, `santander`, `sapa`, `sapal`, `sapamuy`, `sapasa`, `sapasma`, `scotiabank`, `seapal`, `siapa`, `siapaTepic`, `simapag`, `simapas`, `simas`, `smapa`, `smapac`, `smapam`, `smapas`, `spectrum`, `stori`, `sura`, `tam`, `telcel`, `telmex`, `totalplay`, `veolia`, `victoria`, `wizz`, `asylumSeeker`, `refugeeId`, `refugeeStatus`, `ute`, `telkom`, `tmobile`, `verizon`, `xfinity`, `aforeCoppel`, `americanExpress`, `ap`, `telnor`, `wellsFargo`, `otherPoa` | | `ocrData.addressStatementTimestamps` | array[AddressStatementDate] | | | | `ocrData.addressStatementTimestamps.get_version` | integer (int64) | | | | `ocrData.addressStatementTimestamps.dateType` | string | | Description of timestamp. | | `ocrData.addressStatementTimestamps.addressStatementTimestamp` | integer (int64) | | UTC timestamp. | | `ocrData.poaName` | string | | Extracted name from address statement. | | `ocrData.typeOfId` | string | | Enum: `Unknown`, `Passport`, `Visa`, `DriversLicense`, `IdentificationCard`, `Permit`, `Currency`, `ResidenceDocument`, `TravelDocument`, `BirthCertificate`, `VehicleRegistration`, `Other`, `WeaponLicense`, `TribalIdentification`, `VoterIdentification`, `Military`, `TaxIdentification`, `FederalID`, `MedicalCard` | | `ocrData.documentFrontSubtype` | string | | Additional info about ID type (front side) | | `ocrData.documentBackSubtype` | string | | Additional info about ID type (back side) | | `ocrData.issueFront` | integer (int32) | | Issue year (per classification model) of the ID (front side) | | `ocrData.issueBack` | integer (int32) | | Issue year (per classification model) of the ID (back side) | | `ocrData.birthDate` | integer (int64) | | Date of birth is presented in UTC milliseconds. | | `ocrData.gender` | string | | Gender values are presented in English. "M" for male, "F" for female and "X" for non-binary. Enum: `M`, `F`, `X` | | `ocrData.claveDeElector` | string | | Clave de elector as read from id. For Mexican IDs only. | | `ocrData.curp` | string | | Curp as read form id. For Mexican IDs only. | | `ocrData.numeroEmisionCredencial` | string | | Numero Emision Credencial as read from id. (For Mexican IDs only). | | `ocrData.cic` | string | | Cic as read from id. (This field is read from back side of id; For Mexican IDs only). | | `ocrData.ocr` | string | | Ocr as read from id. (This field is read from back side of id; For Mexican IDs only). | | `ocrData.documentNumber` | string | | Document number. | | `ocrData.documentNumberSource` | string | | Document number source. Enum: `FORM`, `OCR` | | `ocrData.personalNumber` | string | | Personal number. | | `ocrData.nationalNumber` | string | | National number. | | `ocrData.refNumber` | string | | Document Reference Number. | | `ocrData.familyNumber` | string | | Family or household registry number printed on the document. | | `ocrData.taxIdNumber` | string | | Personal tax identification number. | | `ocrData.nue` | string | | NUE number as read from id. (for Resident Cards) | | `ocrData.externalId` | string | | External user id. | | `ocrData.issuedAt` | string | | Date of issue UTC timestamp. | | `ocrData.expireAt` | string | | Expiration date UTC timestamp. | | `ocrData.expirationDate` | integer (int32) | | Expiration year of id. | | `ocrData.issueDate` | integer (int32) | | Issue year of id. | | `ocrData.registrationDate` | integer (int32) | | Registration date read from id. | | `ocrData.dlClassDetails` | array[DLClassDetails] | | | | `ocrData.dlClassDetails.dlClass` | string | | Driver's license class. | | `ocrData.dlClassDetails.validFromDate` | integer (int64) | | DL class valid from UTC timestamp | | `ocrData.dlClassDetails.validToDate` | integer (int64) | | DL class valid to UTC timestamp. | | `ocrData.dlClassDetails.additionalCodes` | string | | Additional codes associated with DL class. | | `ocrData.dlClassDetails.restrictions` | array[string] | | Restriction codes associated with DL class. | | `ocrData.issuingCountry` | string | | Issuing country of document. | | `ocrData.issuingState` | string | | Issuing state of document. | | `ocrData.birthPlace` | string | | Birth place as read from id. | | `ocrData.printingNumber` | string | | Printing number (número de impresión) printed below the barcode on Colombian IDs. | | `ocrData.duplicateNumber` | string | | Number of duplicates (número de duplicados) printed below the barcode on Colombian IDs. | | `ocrData.preparationNumber` | string | | Preparation number (número de preparación) printed below the barcode on Colombian IDs. | | `ocrData.issuingAuthority` | string | | Issuing Authority as read from id. | | `ocrData.height` | string | | Person's height as read from id. | | `ocrData.weight` | string | | Person's weight. | | `ocrData.eyeColor` | string | | Person's eye color. | | `ocrData.hairColor` | string | | Person's hair color. | | `ocrData.religion` | string | | Person's religion. | | `ocrData.bloodType` | string | | Person's blood type. | | `ocrData.maritalStatus` | string | | Person's marital status. | | `ocrData.nationality` | string | | Person's nationality. | | `ocrData.race` | string | | Person's race. | | `ocrData.nationalityMrz` | string | | Person's nationality as it appears in MRZ (if present). | | `ocrData.nationalityAlpha3` | string | | Person's nationality Alpha3 code format. Only for Brazilian IDs. | | `ocrData.governmentComparisonResults` | GovernmentComparisonResults | | Government validation data. Only for supported government validation countries. | | `ocrData.governmentComparisonResults.paternalLastNameValid` | boolean | | Indicates validity of person's paternal last name through government validation apis. | | `ocrData.governmentComparisonResults.maternalLastNameValid` | boolean | | Indicates validity of person's maternal last name through government validation apis. | | `ocrData.governmentComparisonResults.firstNameValid` | boolean | | Indicates validity of person's first name through government validation apis. | | `ocrData.governmentComparisonResults.curpValid` | boolean | | Indicates CURP validity through RENAPO/CURP provider validation. | | `ocrData.governmentComparisonResults.ineCurpValid` | boolean | | Indicates CURP validity through INE government validation (separate from RENAPO). | | `ocrData.governmentComparisonResults.ocrValid` | boolean | | Indicates ocr validity through government validation apis. | | `ocrData.governmentComparisonResults.claveDeElectorValid` | boolean | | Indicates "clave de elector" validity through government validation apis. | | `ocrData.governmentComparisonResults.numeroEmisionCredencialValid` | boolean | | Indicates "numero emision credencial" validity through government validation apis. | | `ocrData.governmentComparisonResults.registrationDateValid` | boolean | | Indicates registration date validity through government validation apis. | | `ocrData.governmentComparisonResults.issueDateValid` | boolean | | Indicates issue date validity through government validation apis. | | `ocrData.notExtracted` | integer (int32) | | Number of not extracted OCR fields. Only for Mexican IDs. | | `ocrData.notExtractedDetails` | array[string] | | | | `ocrData.classes` | string | | Person's driver licence classes. | | `ocrData.cond` | string | | Person's driver licence conditions. | | `ocrData.mentions` | string | | Person's driver licence mentions. | | `ocrData.restrictions` | string | | Person's driver licence restrictions. | | `ocrData.mrz1` | string | | First MRZ line. | | `ocrData.mrz2` | string | | Second MRZ line. | | `ocrData.mrz3` | string | | Third MRZ line. | | `ocrData.fullNameMrz` | string | | Person's full name read from MRZ. | | `ocrData.documentNumberCheckDigit` | string | | Document number check digit read from MRZ. | | `ocrData.dateOfBirthCheckDigit` | string | | Date of birth check digit read from MRZ. | | `ocrData.expirationDateCheckDigit` | string | | Expiration date check digit read from MRZ. | | `ocrData.barcodeRawData` | string | | Full unformatted data read from 2D barcode. | | `ocrData.qrFrontContents` | array[string] | | Raw QR code payloads read from the front of the document, unparsed. Omitted when the capture was redacted. | | `ocrData.qrBackContents` | array[string] | | Raw QR code payloads read from the back of the document, unparsed. Omitted when the capture was redacted. | | `ocrData.fathersName` | string | | Person's father's name. Only for Brazilian and Indian IDs. | | `ocrData.mothersName` | string | | Person's mother's name. Only for Brazilian IDs. | | `ocrData.fathersIdNumber` | string | | Person's father's Id Number. In the context of minors identity validation. | | `ocrData.mothersIdNumber` | string | | Person's mother's Id Number. In the context of minors identity validation. | | `ocrData.spouseName` | string | | Person's spouse's name. | | `ocrData.federalRevenueNumber` | string | | Federal revenue number. Only for Brazilian IDs. | | `ocrData.originDocumentId` | string | | Origin document ID. Only for Brazilian IDs. | | `ocrData.driversLicenseCategory` | string | | Driver's licence category. Only for Brazilian IDs. | | `ocrData.controlNumber` | string | | Control number. Only for Brazilian IDs. | | `ocrData.renach` | string | | Renach. Only for Brazilian IDs. | | `ocrData.additionalAttrs` | array[string] | | Additional document attributes. Enum: `DOCUMENTO_INFANTIL`, `IDADE_PRE_ESCOLAR`, `MENOR_DE_ANOS`, `NAO_ASSINA`, `EM_FASE_DE_ALFABETIZACAO`, `IMPOSSIBILITADO_DE_ASSINAR`, `LIMITED_TERM`, `FEDERAL_LIMITS_APPLY`, `PERMISO_PARA_TRABAJAR`, `EXTRANJERO`, `INDIA_DIGITAL_VID`, `VETERAN`, `MOTORCYCLE_LICENSE`, `NON_DOMICILED`, `COMMERCIAL_LICENSE`, `RESIDENTE`, `MIGRANTE`, `TEMPORAL`, `VISITANTE`, `TRAMITE`, `RUEX`, `INDIGENA`, `AFROMEXICANA`, `INDIA_DIGITAL_TAXID` | | `ocrData.ocrDataConfidence` | OcrDataConfidence | | Structure containing ocr reliability confidence for each extracted ocr field. Confidence values are Floats between 0 and 1. | | `ocrData.ocrDataConfidence.birthDateConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.nameConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.nameNativeScriptConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.firstNameNativeScriptConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.paternalLastNameNativeScriptConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.maternalLastNameNativeScriptConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.givenNameConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.firstNameConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.middleNameConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.nameSuffixConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.mothersSurnameConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.fathersSurnameConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.nickNameConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.fullNameMrzConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.mothersNameConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.fathersNameConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.mothersIdNumberConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.fathersIdNumberConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.spouseNameConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.birthNameConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.addressConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.streetConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.colonyConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.postalCodeConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.cityConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.stateConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.districtConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.stateCodeConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.countryCodeConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.genderConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.issueDateConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.expirationDateConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.issuedAtConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.expireAtConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.issuingAuthorityConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.mrz1Confidence` | number (float) | | | | `ocrData.ocrDataConfidence.mrz2Confidence` | number (float) | | | | `ocrData.ocrDataConfidence.mrz3Confidence` | number (float) | | | | `ocrData.ocrDataConfidence.mrzFullConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.documentNumberConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.backNumberConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.personalNumberConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.nationalNumberConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.claveDeElectorConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.numeroEmisionCredencialConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.curpConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.nueConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.registrationDateConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.heightConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.birthPlaceConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.bloodTypeConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.eyeColorConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.classesConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.condConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.mentionsConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.refNumberConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.weightConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.hairConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.restrictionsConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.nationalityConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.nationalityMrzConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.nationalityAlpha3Confidence` | number (float) | | | | `ocrData.ocrDataConfidence.maritalStatusConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.raceConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.taxIdNumberConfidence` | number (float) | | | | `ocrData.ocrDataConfidence.jurisdictionCodeConfidence` | number (float) | | | | `ocrData.additionalDocumentAttempts` | array[AdditionalDocumentAttemptDto] | | | | `ocrData.additionalDocumentAttempts.status` | string | | Enum: `SUCCESS`, `VALIDATION_ERROR`, `FAIL` | | `ocrData.additionalDocumentAttempts.attemptTimestamp` | integer (int64) | | | | `ocrData.additionalDocumentAttempts.imagesUrl` | array[string] | | | | `ocrData.additionalDocumentAttempts.attemptType` | string | | Enum: `POA`, `DOCUMENT_CAPTURE` | | `ocrData.additionalDocumentAttempts.antiSpoofResult` | PoaAntiSpoofResult | | | | `ocrData.additionalDocumentAttempts.antiSpoofResult.status` | string | | Enum: `PASS`, `FAIL`, `NOT_EXECUTED` | | `ocrData.additionalDocumentAttempts.antiSpoofResult.kinds` | array[string] | | | | `ocrData.additionalDocumentAttempts.antiSpoofResult.confidence` | number (float) | | | | `ocrData.additionalDocumentAttempts.antiSpoofResult.details` | array[Detail] | | | | `ocrData.additionalDocumentAttempts.antiSpoofResult.details.kind` | string | | | | `ocrData.additionalDocumentAttempts.antiSpoofResult.details.error` | string | | | | `ocrData.additionalDocumentAttempts.antiSpoofResult.details.loc` | string | | | | `ocrData.additionalDocumentAttempts.antiSpoofResult.details.explanation` | string | | | | `ocrData.additionalDocumentAttempts.documentType` | string | yes | | | `ocrData.documentSubmissionMethod` | string | | Method used to submit the document. Enum: `CAPTURED_DOCUMENT`, `UPLOADED_FILE`, `IMPORTED_CREDENTIAL` | | `ocrData.credentialsProvider` | string | | Credentials provider used when documentSubmissionMethod is IMPORTED_CREDENTIAL. Enum: `APPLE`, `GOOGLE`, `DIGILOCKER`, `SAMSUNG`, `DIGITAL_ID`, `NETHERLANDS_IDIN`, `FINNISH_TRUST_NETWORK` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/get/ocr-data/v2?id=%3Cid%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/get/ocr-data/v2?id=%3Cid%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/get/ocr-data/v2?id=%3Cid%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/get/ocr-data/v2?id=%3Cid%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/get/ocr-data/v2?id=%3Cid%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/get/ocr-data/v2?id=%3Cid%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "ocrData": { "name": { "fullName": "string", "fullNameNativeScript": "string", "firstNameNativeScript": "string", "paternalLastNameNativeScript": "string", "maternalLastNameNativeScript": "string", "machineReadableFullName": "string", "firstName": "string", "middleName": "string", "givenName": "string", "givenNameMrz": "string", "initials": "string", "nameSuffix": "string", "paternalLastName": "string", "maternalLastName": "string", "lastNameMrz": "string", "familyName": "string" }, "address": "string", "addressFields": { "street": "string", "streetName": "string", "colony": "string", "postalCode": "string", "city": "string", "state": "string", "stateName": "string", "district": "string", "stateCode": "string", "addressCountryCode": "string", "label": "string", "exteriorNumber": "string", "interiorNumber": "string", "addressLine1": "string", "streetType": "string" }, "fullAddress": true, "invalidAddress": true, "checkedAddress": "string", "checkedAddressBean": { "street": "string", "streetName": "string", "colony": "string", "postalCode": "string", "city": "string", "state": "string", "stateName": "string", "district": "string", "stateCode": "string", "addressCountryCode": "string", "label": "string", "exteriorNumber": "string", "interiorNumber": "string", "addressLine1": "string", "streetType": "string" }, "exteriorNumber": "string", "interiorNumber": "string", "addressFromStatement": "string", "addressFieldsFromStatement": { "street": "string", "streetName": "string", "colony": "string", "postalCode": "string", "city": "string", "state": "string", "stateName": "string", "district": "string", "stateCode": "string", "addressCountryCode": "string", "label": "string", "exteriorNumber": "string", "interiorNumber": "string", "addressLine1": "string", "streetType": "string" }, "invalidAddressFromStatement": true, "addressStatementEmissionDate": 0, "documentType": "aysa", "addressStatementTimestamps": [ { "get_version": 0, "dateType": "string", "addressStatementTimestamp": 0 } ], "poaName": "string", "typeOfId": "Unknown", "documentFrontSubtype": "string", "documentBackSubtype": "string", "issueFront": 0, "issueBack": 0, "birthDate": 0, "gender": "M", "claveDeElector": "string", "curp": "string", "numeroEmisionCredencial": "string", "cic": "string", "ocr": "string", "documentNumber": "string", "documentNumberSource": "FORM", "personalNumber": "string", "nationalNumber": "string", "refNumber": "string", "familyNumber": "string", "taxIdNumber": "string", "nue": "string", "externalId": "string", "issuedAt": "string", "expireAt": "string", "expirationDate": 0, "issueDate": 0, "registrationDate": 0, "dlClassDetails": [ { "dlClass": "string", "validFromDate": 0, "validToDate": 0, "additionalCodes": "string", "restrictions": [ "string" ] } ], "issuingCountry": "string", "issuingState": "string", "birthPlace": "string", "printingNumber": "string", "duplicateNumber": "string", "preparationNumber": "string", "issuingAuthority": "string", "height": "string", "weight": "string", "eyeColor": "string", "hairColor": "string", "religion": "string", "bloodType": "string", "maritalStatus": "string", "nationality": "string", "race": "string", "nationalityMrz": "string", "nationalityAlpha3": "string", "governmentComparisonResults": { "paternalLastNameValid": true, "maternalLastNameValid": true, "firstNameValid": true, "curpValid": true, "ineCurpValid": true, "ocrValid": true, "claveDeElectorValid": true, "numeroEmisionCredencialValid": true, "registrationDateValid": true, "issueDateValid": true }, "notExtracted": 0, "notExtractedDetails": [ "string" ], "classes": "string", "cond": "string", "mentions": "string", "restrictions": "string", "mrz1": "string", "mrz2": "string", "mrz3": "string", "fullNameMrz": "string", "documentNumberCheckDigit": "string", "dateOfBirthCheckDigit": "string", "expirationDateCheckDigit": "string", "barcodeRawData": "string", "qrFrontContents": [ "string" ], "qrBackContents": [ "string" ], "fathersName": "string", "mothersName": "string", "fathersIdNumber": "string", "mothersIdNumber": "string", "spouseName": "string", "federalRevenueNumber": "string", "originDocumentId": "string", "driversLicenseCategory": "string", "controlNumber": "string", "renach": "string", "additionalAttrs": [ "DOCUMENTO_INFANTIL" ], "ocrDataConfidence": { "birthDateConfidence": 0, "nameConfidence": 0, "nameNativeScriptConfidence": 0, "firstNameNativeScriptConfidence": 0, "paternalLastNameNativeScriptConfidence": 0, "maternalLastNameNativeScriptConfidence": 0, "givenNameConfidence": 0, "firstNameConfidence": 0, "middleNameConfidence": 0, "nameSuffixConfidence": 0, "mothersSurnameConfidence": 0, "fathersSurnameConfidence": 0, "nickNameConfidence": 0, "fullNameMrzConfidence": 0, "mothersNameConfidence": 0, "fathersNameConfidence": 0, "mothersIdNumberConfidence": 0, "fathersIdNumberConfidence": 0, "spouseNameConfidence": 0, "birthNameConfidence": 0, "addressConfidence": 0, "streetConfidence": 0, "colonyConfidence": 0, "postalCodeConfidence": 0, "cityConfidence": 0, "stateConfidence": 0, "districtConfidence": 0, "stateCodeConfidence": 0, "countryCodeConfidence": 0, "genderConfidence": 0, "issueDateConfidence": 0, "expirationDateConfidence": 0, "issuedAtConfidence": 0, "expireAtConfidence": 0, "issuingAuthorityConfidence": 0, "mrz1Confidence": 0, "mrz2Confidence": 0, "mrz3Confidence": 0, "mrzFullConfidence": 0, "documentNumberConfidence": 0, "backNumberConfidence": 0, "personalNumberConfidence": 0, "nationalNumberConfidence": 0, "claveDeElectorConfidence": 0, "numeroEmisionCredencialConfidence": 0, "curpConfidence": 0, "nueConfidence": 0, "registrationDateConfidence": 0, "heightConfidence": 0, "birthPlaceConfidence": 0, "bloodTypeConfidence": 0, "eyeColorConfidence": 0, "classesConfidence": 0, "condConfidence": 0, "mentionsConfidence": 0, "refNumberConfidence": 0, "weightConfidence": 0, "hairConfidence": 0, "restrictionsConfidence": 0, "nationalityConfidence": 0, "nationalityMrzConfidence": 0, "nationalityAlpha3Confidence": 0, "maritalStatusConfidence": 0, "raceConfidence": 0, "taxIdNumberConfidence": 0, "jurisdictionCodeConfidence": 0 }, "additionalDocumentAttempts": [ { "status": "SUCCESS", "attemptTimestamp": 0, "imagesUrl": [ "string" ], "attemptType": "POA", "antiSpoofResult": { "status": "PASS", "kinds": [ "string" ], "confidence": 0, "details": [ { "kind": null, "error": null, "loc": null, "explanation": null } ] }, "documentType": "string" } ], "documentSubmissionMethod": "CAPTURED_DOCUMENT", "credentialsProvider": "APPLE" } } ``` --- - Path: `api-reference/get-onboarding-status` - URL: https://developer.incode.com/api-reference/get-onboarding-status/ - Markdown: https://developer.incode.com/api-reference/get-onboarding-status.md - Endpoint: `GET /omni/get/onboarding/status` # Fetch onboarding status `GET /omni/get/onboarding/status` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Check the status of onboarding session. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `id` | query | string | | Represents interview id for which status is requested. If it is not present it will be read from token. | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 onboardingStatus: String. A flag indicating current status of onboarding session. Possible values: - ID_VALIDATION_FINISHED - User finished with capturing of ID, - POST_PROCESSING_FINISHED - ID postprocessing finished on server, - FACE_VALIDATION_FINISHED - User finished with selfie capture, - ONBOARDING_FINISHED - User finished onboarding process, - MANUAL_REVIEW_APPROVED - Session that was in Needs Review state, manually approved by Executive, - MANUAL_REVIEW_REJECTED - Session that was in Needs Review state, manually rejected by Executive, - UNKNOWN - Unable to determine status of onboarding session - user still didn't start onboarding or user is still in the process of capturing ID. ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/get/onboarding/status?id=%3Cid%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/get/onboarding/status?id=%3Cid%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/get/onboarding/status?id=%3Cid%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/get/onboarding/status?id=%3Cid%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/get/onboarding/status?id=%3Cid%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/get/onboarding/status?id=%3Cid%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json {} ``` --- - Path: `api-reference/get-phone` - URL: https://developer.incode.com/api-reference/get-phone/ - Markdown: https://developer.incode.com/api-reference/get-phone.md - Endpoint: `GET /omni/get/phone` # Get phone `GET /omni/get/phone` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment > **Deprecated** — this endpoint is marked deprecated in the Omni API specification. Get the phone previously added to the interview. Deprecated, use GET /phone instead. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `id` | query | string | | | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `phone` | string | | | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/get/phone?id=%3Cid%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/get/phone?id=%3Cid%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/get/phone?id=%3Cid%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/get/phone?id=%3Cid%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/get/phone?id=%3Cid%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/get/phone?id=%3Cid%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "phone": "string" } ``` --- - Path: `api-reference/get-postprocess-isfinished` - URL: https://developer.incode.com/api-reference/get-postprocess-isfinished/ - Markdown: https://developer.incode.com/api-reference/get-postprocess-isfinished.md - Endpoint: `GET /omni/get/postprocess/isfinished` # Fetch processing status `GET /omni/get/postprocess/isfinished` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Check if session processing is done. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 finished: Boolean. A flag stating if processing is done or not. ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/get/postprocess/isfinished \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/get/postprocess/isfinished", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/get/postprocess/isfinished", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/get/postprocess/isfinished")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/get/postprocess/isfinished") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/get/postprocess/isfinished"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json {} ``` --- - Path: `api-reference/get-process-batch-status` - URL: https://developer.incode.com/api-reference/get-process-batch-status/ - Markdown: https://developer.incode.com/api-reference/get-process-batch-status.md - Endpoint: `GET /omni/get/process-batch-status` # Get batch processing status `GET /omni/get/process-batch-status` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Returns the status of the [/omni/process/batch](#/Onboarding/processBatch) progress ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/get/process-batch-status \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/get/process-batch-status", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/get/process-batch-status", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/get/process-batch-status")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/get/process-batch-status") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/get/process-batch-status"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json {} ``` --- - Path: `api-reference/get-questionandanswer` - URL: https://developer.incode.com/api-reference/get-questionandanswer/ - Markdown: https://developer.incode.com/api-reference/get-questionandanswer.md - Endpoint: `GET /omni/get/questionAndAnswer` # Fetch random questions and answers for video selfie `GET /omni/get/questionAndAnswer` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Fetch a number random questions and answers for video selfie for given apiKey. If there are no defined QA pairs for the apiKey, a random QA pair is returned from the default set. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `numberOfQuestions` | query | integer (int32) | yes | Number of questions to be returned to client | | `returnVoiceConsentQuestion` | query | boolean | | Flag stating if voice consent question should be included in response Default: `false` | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `questionAndAnswers` | array[QuestionAndAnswerWithId] | | | | `questionAndAnswers.id` | string | | ID of the given Question-Answer pair. | | `questionAndAnswers.question` | string | | Random question to be shown in video selfie. | | `questionAndAnswers.answer` | string | | Corresponding answer to the question. | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/get/questionAndAnswer?numberOfQuestions=%3CnumberOfQuestions%3E&returnVoiceConsentQuestion=false \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/get/questionAndAnswer?numberOfQuestions=%3CnumberOfQuestions%3E&returnVoiceConsentQuestion=false", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/get/questionAndAnswer?numberOfQuestions=%3CnumberOfQuestions%3E&returnVoiceConsentQuestion=false", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/get/questionAndAnswer?numberOfQuestions=%3CnumberOfQuestions%3E&returnVoiceConsentQuestion=false")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/get/questionAndAnswer?numberOfQuestions=%3CnumberOfQuestions%3E&returnVoiceConsentQuestion=false") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/get/questionAndAnswer?numberOfQuestions=%3CnumberOfQuestions%3E&returnVoiceConsentQuestion=false"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "questionAndAnswers": [ { "id": "string", "question": "string", "answer": "string" } ] } ``` --- - Path: `api-reference/get-raw-idv-results` - URL: https://developer.incode.com/api-reference/get-raw-idv-results/ - Markdown: https://developer.incode.com/api-reference/get-raw-idv-results.md - Endpoint: `GET /omni/get/raw-idv-results` # Fetch raw IDV results `GET /omni/get/raw-idv-results` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Returns raw id-validation-service check results with original naming preserved (no mapping to user-service key constants, no threshold-binarization), plus the raw checkFraudRisk result. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `id` | query | string | | Id of interview for which raw IDV results are requested. If not present, it will be extracted from token. | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `checkResults` | array[RawIdvCheckResultDto] | | Raw id-validation-service check results. Empty when id-validation-service was not invoked for the interview. | | `checkResults.name` | string | | Original id-validation-service check name, e.g. checkIdFaceTamper, checkIdScreenLiveness, deep_fraud. | | `checkResults.severity` | string | | Check severity: low / medium / high. Enum: `low`, `medium`, `high` | | `checkResults.version` | string | | Model version that produced the result. | | `checkResults.result` | number (float) | | Raw confidence/result value, Float in [0, 1]. Nullable when the check did not run. | | `fraudRisk` | FraudRiskDto | | Raw checkFraudRisk result. Null when no FraudRisk was produced for the interview. | | `fraudRisk.name` | string | | Check name, always checkFraudRisk. | | `fraudRisk.severity` | string | | Check severity: low / medium / high. Enum: `LOW`, `MEDIUM`, `HIGH` | | `fraudRisk.version` | string | | Model version that produced the result. | | `fraudRisk.result` | number | | Raw fraud-risk result value (full precision). | | `fraudRisk.responseText` | string | | Free-text explanation returned by the fraud-risk model. | | `fraudRisk.responseCategory` | string | | Response category returned by the fraud-risk model. | | `fraudRisk.topNFraudFeatures` | array[string] | | Top N features that contributed towards a fraud classification. | | `fraudRisk.topNLegitFeatures` | array[string] | | Top N features that contributed towards a legitimate classification. | | `fraudRisk.topNFraudCodes` | array[string] | | Raw stable feature codes for topNFraudFeatures (same order), as sent by the model. | | `fraudRisk.topNLegitCodes` | array[string] | | Raw stable feature codes for topNLegitFeatures (same order), as sent by the model. | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/get/raw-idv-results?id=%3Cid%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/get/raw-idv-results?id=%3Cid%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/get/raw-idv-results?id=%3Cid%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/get/raw-idv-results?id=%3Cid%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/get/raw-idv-results?id=%3Cid%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/get/raw-idv-results?id=%3Cid%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "checkResults": [ { "name": "string", "severity": "low", "version": "string", "result": 0 } ], "fraudRisk": { "name": "string", "severity": "LOW", "version": "string", "result": 0, "responseText": "string", "responseCategory": "string", "topNFraudFeatures": [ "string" ], "topNLegitFeatures": [ "string" ], "topNFraudCodes": [ "string" ], "topNLegitCodes": [ "string" ] } } ``` --- - Path: `api-reference/get-score` - URL: https://developer.incode.com/api-reference/get-score/ - Markdown: https://developer.incode.com/api-reference/get-score.md - Endpoint: `GET /omni/get/score` # Fetch scores `GET /omni/get/score` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Get id validation, liveness and face recognition results for given interviewId. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `id` | query | string | | Id of onboarding for which score is requests. If not present, it will be extracted from token. | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `authentication` | AuthenticationDto | | The result of authentication containing overall score and list of executed checks. | | `authentication.overall` | ResultBean | | Composite result for authentication score. | | `authentication.overall.value` | string | | | | `authentication.overall.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `authentication.identityId` | string | | | | `authentication.appliedRule` | AppliedFlowRule | | Specific rule from rule engine | | `authentication.appliedRule.name` | string | | Name of the rule. | | `authentication.appliedRule.expression` | string | | A logical expression of the rule. | | `authentication.appliedRule.ruleType` | string | | Enum: `idValidation`, `secondIdValidation`, `faceValidation`, `liveness`, `deepsight`, `eKyc`, `videoselfie`, `faceAuthentication`, `total`, `phoneRisk`, `emailRisk`, `governmentValidation` | | `authentication.appliedRule.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `idValidation` | IdValidation | | Id validation of its overall score and two lists of executed tests and checks | | `idValidation.photoSecurityAndQuality` | array[IdResultBean] | | | | `idValidation.photoSecurityAndQuality.value` | string | | | | `idValidation.photoSecurityAndQuality.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `idValidation.photoSecurityAndQuality.key` | string | | | | `idValidation.idSpecific` | array[IdResultBean] | | | | `idValidation.idSpecific.value` | string | | | | `idValidation.idSpecific.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `idValidation.idSpecific.key` | string | | | | `idValidation.customFields` | array[IdResultBean] | | | | `idValidation.customFields.value` | string | | | | `idValidation.customFields.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `idValidation.customFields.key` | string | | | | `idValidation.appliedRule` | AppliedFlowRule | | Specific rule from rule engine | | `idValidation.appliedRule.name` | string | | Name of the rule. | | `idValidation.appliedRule.expression` | string | | A logical expression of the rule. | | `idValidation.appliedRule.ruleType` | string | | Enum: `idValidation`, `secondIdValidation`, `faceValidation`, `liveness`, `deepsight`, `eKyc`, `videoselfie`, `faceAuthentication`, `total`, `phoneRisk`, `emailRisk`, `governmentValidation` | | `idValidation.appliedRule.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `idValidation.overall` | ResultBean | | | | `idValidation.overall.value` | string | | | | `idValidation.overall.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `antifraud` | AntifraudScoreValidation | | The result of antifraud check where we compare the current interview with existing interviews and customers and detect anomalies than could be signs of fraud | | `antifraud.overall` | ResultBean | | | | `antifraud.overall.value` | string | | | | `antifraud.overall.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `secondIdValidation` | IdValidation | | Same as idValidation only applicable if onboarding is configured to capture a second id | | `secondIdValidation.photoSecurityAndQuality` | array[IdResultBean] | | | | `secondIdValidation.photoSecurityAndQuality.value` | string | | | | `secondIdValidation.photoSecurityAndQuality.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `secondIdValidation.photoSecurityAndQuality.key` | string | | | | `secondIdValidation.idSpecific` | array[IdResultBean] | | | | `secondIdValidation.idSpecific.value` | string | | | | `secondIdValidation.idSpecific.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `secondIdValidation.idSpecific.key` | string | | | | `secondIdValidation.customFields` | array[IdResultBean] | | | | `secondIdValidation.customFields.value` | string | | | | `secondIdValidation.customFields.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `secondIdValidation.customFields.key` | string | | | | `secondIdValidation.appliedRule` | AppliedFlowRule | | Specific rule from rule engine | | `secondIdValidation.appliedRule.name` | string | | Name of the rule. | | `secondIdValidation.appliedRule.expression` | string | | A logical expression of the rule. | | `secondIdValidation.appliedRule.ruleType` | string | | Enum: `idValidation`, `secondIdValidation`, `faceValidation`, `liveness`, `deepsight`, `eKyc`, `videoselfie`, `faceAuthentication`, `total`, `phoneRisk`, `emailRisk`, `governmentValidation` | | `secondIdValidation.appliedRule.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `secondIdValidation.overall` | ResultBean | | | | `secondIdValidation.overall.value` | string | | | | `secondIdValidation.overall.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `liveness` | LivenessDto | | | | `liveness.hasHeadCover` | ResultBean | | Returns flag if the hat/cap is detected on the image. Only if hats detected option is configured | | `liveness.hasHeadCover.value` | string | | | | `liveness.hasHeadCover.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `liveness.hasClosedEyes` | ResultBean | | Returns flag if closed eyes is detected on the image. Only if hats detected option is configured | | `liveness.hasClosedEyes.value` | string | | | | `liveness.hasClosedEyes.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `liveness.physicalAttack` | ResultBean | | Returns flag if physical attack is detected. Only if this option is configured | | `liveness.physicalAttack.value` | string | | | | `liveness.physicalAttack.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `liveness.digitalAttack` | ResultBean | | Returns flag if digital attack is detected. Only if this option is configured | | `liveness.digitalAttack.value` | string | | | | `liveness.digitalAttack.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `liveness.evasionAttack` | ResultBean | | Returns flag if evasion attack is detected. Only if this option is configured | | `liveness.evasionAttack.value` | string | | | | `liveness.evasionAttack.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `liveness.deepfakeAttack` | ResultBean | | Returns flag if deepfake attack is detected. Only if digital attack is configured | | `liveness.deepfakeAttack.value` | string | | | | `liveness.deepfakeAttack.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `liveness.digitalManipulationAttack` | ResultBean | | Returns flag if digital manipulation attack is detected. Only if digital attack is configured | | `liveness.digitalManipulationAttack.value` | string | | | | `liveness.digitalManipulationAttack.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `liveness.appliedRule` | AppliedFlowRule | | Information about applied rule | | `liveness.appliedRule.name` | string | | Name of the rule. | | `liveness.appliedRule.expression` | string | | A logical expression of the rule. | | `liveness.appliedRule.ruleType` | string | | Enum: `idValidation`, `secondIdValidation`, `faceValidation`, `liveness`, `deepsight`, `eKyc`, `videoselfie`, `faceAuthentication`, `total`, `phoneRisk`, `emailRisk`, `governmentValidation` | | `liveness.appliedRule.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `liveness.spoofDetectionMethod` | string | | Information about method used Enum: `SF`, `SF_MM`, `SF_MM_V` | | `liveness.overall` | ResultBean | | Composite result for liveness score. | | `liveness.overall.value` | string | | | | `liveness.overall.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `liveness.livenessScore` | ResultBean | | Returns flag if physical attack is detected. Only if this option is configured. Deprecated, use 'physicalAttack' instead. | | `liveness.livenessScore.value` | string | | | | `liveness.livenessScore.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `deepsight` | DeepsightScoreDto | | | | `deepsight.multimodalIntelligence` | MultimodalIntelligenceDto | | | | `deepsight.multimodalIntelligence.physicalAttack` | ResultBean | | | | `deepsight.multimodalIntelligence.physicalAttack.value` | string | | | | `deepsight.multimodalIntelligence.physicalAttack.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `deepsight.multimodalIntelligence.digitalAttack` | ResultBean | | | | `deepsight.multimodalIntelligence.digitalAttack.value` | string | | | | `deepsight.multimodalIntelligence.digitalAttack.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `deepsight.multimodalIntelligence.deepfakeAttack` | ResultBean | | | | `deepsight.multimodalIntelligence.deepfakeAttack.value` | string | | | | `deepsight.multimodalIntelligence.deepfakeAttack.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `deepsight.multimodalIntelligence.digitalManipulationAttack` | ResultBean | | | | `deepsight.multimodalIntelligence.digitalManipulationAttack.value` | string | | | | `deepsight.multimodalIntelligence.digitalManipulationAttack.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `deepsight.multimodalIntelligence.evasionAttack` | ResultBean | | | | `deepsight.multimodalIntelligence.evasionAttack.value` | string | | | | `deepsight.multimodalIntelligence.evasionAttack.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `deepsight.multimodalIntelligence.spoofDetectionMethod` | string | | Enum: `SF`, `SF_MM`, `SF_MM_V` | | `deepsight.multimodalIntelligence.faceExplanation` | SpoofResultExplanationDto | | | | `deepsight.multimodalIntelligence.faceExplanation.description` | string | | | | `deepsight.multimodalIntelligence.faceExplanation.keywords` | SpoofDetectionExplanationKeywordsDto | | | | `deepsight.multimodalIntelligence.faceExplanation.keywords.category` | string | | | | `deepsight.multimodalIntelligence.faceExplanation.keywords.isDepthFlat` | boolean | | | | `deepsight.multimodalIntelligence.faceExplanation.keywords.isVideoCorrupted` | boolean | | | | `deepsight.multimodalIntelligence.faceOverall` | ResultBean | | | | `deepsight.multimodalIntelligence.faceOverall.value` | string | | | | `deepsight.multimodalIntelligence.faceOverall.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `deepsight.multimodalIntelligence.aiGeneratedDocument` | ResultBean | | | | `deepsight.multimodalIntelligence.aiGeneratedDocument.value` | string | | | | `deepsight.multimodalIntelligence.aiGeneratedDocument.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `deepsight.multimodalIntelligence.visualAnomaly` | ResultBean | | | | `deepsight.multimodalIntelligence.visualAnomaly.value` | string | | | | `deepsight.multimodalIntelligence.visualAnomaly.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `deepsight.multimodalIntelligence.documentOverall` | ResultBean | | | | `deepsight.multimodalIntelligence.documentOverall.value` | string | | | | `deepsight.multimodalIntelligence.documentOverall.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `deepsight.multimodalIntelligence.overall` | ResultBean | | | | `deepsight.multimodalIntelligence.overall.value` | string | | | | `deepsight.multimodalIntelligence.overall.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `deepsight.deviceTrust` | DeviceTrustScoreDto | | | | `deepsight.deviceTrust.overall` | ResultBean | | | | `deepsight.deviceTrust.overall.value` | string | | | | `deepsight.deviceTrust.overall.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `deepsight.behavioralTrust` | BehavioralTrustScoreDto | | | | `deepsight.behavioralTrust.overall` | ResultBean | | | | `deepsight.behavioralTrust.overall.value` | string | | | | `deepsight.behavioralTrust.overall.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `deepsight.cameraTrust` | CameraTrustScoreDto | | | | `deepsight.cameraTrust.overall` | ResultBean | | | | `deepsight.cameraTrust.overall.value` | string | | | | `deepsight.cameraTrust.overall.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `deepsight.overall` | ResultBean | | | | `deepsight.overall.value` | string | | | | `deepsight.overall.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `deepsight.appliedRule` | AppliedFlowRule | | Specific rule from rule engine | | `deepsight.appliedRule.name` | string | | Name of the rule. | | `deepsight.appliedRule.expression` | string | | A logical expression of the rule. | | `deepsight.appliedRule.ruleType` | string | | Enum: `idValidation`, `secondIdValidation`, `faceValidation`, `liveness`, `deepsight`, `eKyc`, `videoselfie`, `faceAuthentication`, `total`, `phoneRisk`, `emailRisk`, `governmentValidation` | | `deepsight.appliedRule.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `faceCaptureAssessment` | FaceCaptureAssessmentScoreDto | | | | `faceCaptureAssessment.faceAttributes` | FaceAttributesScoreDto | | Contains face attributes | | `faceCaptureAssessment.faceAttributes.maskCheck` | ResultBean | | Shows info if the user was wearing a mask during selfie capture | | `faceCaptureAssessment.faceAttributes.maskCheck.value` | string | | | | `faceCaptureAssessment.faceAttributes.maskCheck.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `faceCaptureAssessment.faceAttributes.lensesCheck` | ResultBean | | Shows info if the user was wearing lenses during selfie capture | | `faceCaptureAssessment.faceAttributes.lensesCheck.value` | string | | | | `faceCaptureAssessment.faceAttributes.lensesCheck.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `faceCaptureAssessment.faceAttributes.hasHeadCover` | ResultBean | | Returns flag if the hat/cap is detected on the image. Only if hats detected option is configured | | `faceCaptureAssessment.faceAttributes.hasHeadCover.value` | string | | | | `faceCaptureAssessment.faceAttributes.hasHeadCover.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `faceCaptureAssessment.faceAttributes.hasClosedEyes` | ResultBean | | Returns flag if closed eyes is detected on the image. Only if hats detected option is configured | | `faceCaptureAssessment.faceAttributes.hasClosedEyes.value` | string | | | | `faceCaptureAssessment.faceAttributes.hasClosedEyes.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `faceCaptureAssessment.faceAttributes.faceOcclusion` | ResultBean | | Returns flag if captured face is occluded on the image. Only if hats detected option is configured | | `faceCaptureAssessment.faceAttributes.faceOcclusion.value` | string | | | | `faceCaptureAssessment.faceAttributes.faceOcclusion.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `faceCaptureAssessment.qualityChecks` | QualityChecksScoreDto | | Contains quality checks | | `faceCaptureAssessment.qualityChecks.faceBrightness` | ResultBean | | Shows status of brightness during selfie capture | | `faceCaptureAssessment.qualityChecks.faceBrightness.value` | string | | | | `faceCaptureAssessment.qualityChecks.faceBrightness.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `faceCaptureAssessment.qualityChecks.imageQuality` | ResultBean | | Shows status of image quality check | | `faceCaptureAssessment.qualityChecks.imageQuality.value` | string | | | | `faceCaptureAssessment.qualityChecks.imageQuality.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `faceRecognition` | FaceRecognitionDto | | | | `faceRecognition.existingUser` | boolean | | Flag indicating if a user is already enrolled | | `faceRecognition.customerId` | string | | Id of enrolled user | | `faceRecognition.existingInterviewId` | string | | Session ID, in case the user is approved in another session | | `faceRecognition.existingExternalId` | string | | External ID, in case the user is approved in another session | | `faceRecognition.maskCheck` | ResultBean | | Shows info if the user was wearing a mask during selfie capture | | `faceRecognition.maskCheck.value` | string | | | | `faceRecognition.maskCheck.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `faceRecognition.lensesCheck` | ResultBean | | Shows info if the user was wearing lenses during selfie capture | | `faceRecognition.lensesCheck.value` | string | | | | `faceRecognition.lensesCheck.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `faceRecognition.faceBrightness` | ResultBean | | Shows status and level of brightness during selfie capture | | `faceRecognition.faceBrightness.value` | string | | | | `faceRecognition.faceBrightness.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `faceRecognition.imageQuality` | ResultBean | | Shows image quality during selfie capture | | `faceRecognition.imageQuality.value` | string | | | | `faceRecognition.imageQuality.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `faceRecognition.nameMatch` | ResultBean | | Shows if the name matches the previously used (only in case the user is already approved in another session) | | `faceRecognition.nameMatch.value` | string | | | | `faceRecognition.nameMatch.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `faceRecognition.appliedRule` | AppliedFlowRuleDto | | Specific rule from rule engine for faceValidation | | `faceRecognition.appliedRule.name` | string | | Name of the rule. | | `faceRecognition.appliedRule.expression` | string | | A logical expression of the rule. | | `faceRecognition.appliedRule.ruleType` | string | | Enum: `idValidation`, `secondIdValidation`, `faceValidation`, `liveness`, `deepsight`, `eKyc`, `videoselfie`, `faceAuthentication`, `total`, `phoneRisk`, `emailRisk`, `governmentValidation` | | `faceRecognition.appliedRule.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `faceRecognition.overall` | ResultBean | | Shows how much face from ID matches the selfie | | `faceRecognition.overall.value` | string | | | | `faceRecognition.overall.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `faceRecognition.hasHeadCover` | ResultBean | | Returns flag if the hat/cap is detected on the image. Only if hats detected option is configured | | `faceRecognition.hasHeadCover.value` | string | | | | `faceRecognition.hasHeadCover.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `faceRecognition.hasClosedEyes` | ResultBean | | Returns flag if closed eyes is detected on the image. Only if hats detected option is configured | | `faceRecognition.hasClosedEyes.value` | string | | | | `faceRecognition.hasClosedEyes.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `faceRecognition.faceOcclusion` | ResultBean | | Returns flag if captured face is occluded on the image. Only if hats detected option is configured | | `faceRecognition.faceOcclusion.value` | string | | | | `faceRecognition.faceOcclusion.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `faceRecognitionSecondId` | FaceRecognitionDto | | Same as faceRecognition only applicable if onboarding is configured to capture a second id | | `faceRecognitionSecondId.existingUser` | boolean | | Flag indicating if a user is already enrolled | | `faceRecognitionSecondId.customerId` | string | | Id of enrolled user | | `faceRecognitionSecondId.existingInterviewId` | string | | Session ID, in case the user is approved in another session | | `faceRecognitionSecondId.existingExternalId` | string | | External ID, in case the user is approved in another session | | `faceRecognitionSecondId.maskCheck` | ResultBean | | Shows info if the user was wearing a mask during selfie capture | | `faceRecognitionSecondId.maskCheck.value` | string | | | | `faceRecognitionSecondId.maskCheck.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `faceRecognitionSecondId.lensesCheck` | ResultBean | | Shows info if the user was wearing lenses during selfie capture | | `faceRecognitionSecondId.lensesCheck.value` | string | | | | `faceRecognitionSecondId.lensesCheck.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `faceRecognitionSecondId.faceBrightness` | ResultBean | | Shows status and level of brightness during selfie capture | | `faceRecognitionSecondId.faceBrightness.value` | string | | | | `faceRecognitionSecondId.faceBrightness.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `faceRecognitionSecondId.imageQuality` | ResultBean | | Shows image quality during selfie capture | | `faceRecognitionSecondId.imageQuality.value` | string | | | | `faceRecognitionSecondId.imageQuality.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `faceRecognitionSecondId.nameMatch` | ResultBean | | Shows if the name matches the previously used (only in case the user is already approved in another session) | | `faceRecognitionSecondId.nameMatch.value` | string | | | | `faceRecognitionSecondId.nameMatch.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `faceRecognitionSecondId.appliedRule` | AppliedFlowRuleDto | | Specific rule from rule engine for faceValidation | | `faceRecognitionSecondId.appliedRule.name` | string | | Name of the rule. | | `faceRecognitionSecondId.appliedRule.expression` | string | | A logical expression of the rule. | | `faceRecognitionSecondId.appliedRule.ruleType` | string | | Enum: `idValidation`, `secondIdValidation`, `faceValidation`, `liveness`, `deepsight`, `eKyc`, `videoselfie`, `faceAuthentication`, `total`, `phoneRisk`, `emailRisk`, `governmentValidation` | | `faceRecognitionSecondId.appliedRule.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `faceRecognitionSecondId.overall` | ResultBean | | Shows how much face from ID matches the selfie | | `faceRecognitionSecondId.overall.value` | string | | | | `faceRecognitionSecondId.overall.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `faceRecognitionSecondId.hasHeadCover` | ResultBean | | Returns flag if the hat/cap is detected on the image. Only if hats detected option is configured | | `faceRecognitionSecondId.hasHeadCover.value` | string | | | | `faceRecognitionSecondId.hasHeadCover.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `faceRecognitionSecondId.hasClosedEyes` | ResultBean | | Returns flag if closed eyes is detected on the image. Only if hats detected option is configured | | `faceRecognitionSecondId.hasClosedEyes.value` | string | | | | `faceRecognitionSecondId.hasClosedEyes.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `faceRecognitionSecondId.faceOcclusion` | ResultBean | | Returns flag if captured face is occluded on the image. Only if hats detected option is configured | | `faceRecognitionSecondId.faceOcclusion.value` | string | | | | `faceRecognitionSecondId.faceOcclusion.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `externalFaceMatchScore` | ExternalFaceMatchScoreDto | | The result of external face match containing overall score and list of executed checks | | `externalFaceMatchScore.faceMaskCheck` | ResultBean | | Shows if mask is detected on the external face | | `externalFaceMatchScore.faceMaskCheck.value` | string | | | | `externalFaceMatchScore.faceMaskCheck.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `externalFaceMatchScore.lensesCheck` | ResultBean | | Shows if lenses are detected on the external face | | `externalFaceMatchScore.lensesCheck.value` | string | | | | `externalFaceMatchScore.lensesCheck.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `externalFaceMatchScore.headCoverCheck` | ResultBean | | Shows info if head cover was detected on the external face | | `externalFaceMatchScore.headCoverCheck.value` | string | | | | `externalFaceMatchScore.headCoverCheck.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `externalFaceMatchScore.closedEyeCheck` | ResultBean | | Shows info if closed eyes are detected on the external face | | `externalFaceMatchScore.closedEyeCheck.value` | string | | | | `externalFaceMatchScore.closedEyeCheck.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `externalFaceMatchScore.imageQualityCheck` | ResultBean | | Shows image quality of external face | | `externalFaceMatchScore.imageQualityCheck.value` | string | | | | `externalFaceMatchScore.imageQualityCheck.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `externalFaceMatchScore.faceOccluded` | ResultBean | | Returns flag if external face is occluded on the image | | `externalFaceMatchScore.faceOccluded.value` | string | | | | `externalFaceMatchScore.faceOccluded.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `externalFaceMatchScore.vsIdMatch` | ResultBean | | Shows how much face from ID matches the external face | | `externalFaceMatchScore.vsIdMatch.value` | string | | | | `externalFaceMatchScore.vsIdMatch.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `externalFaceMatchScore.vsSelfieMatch` | ResultBean | | Shows how much selfie matches the external face | | `externalFaceMatchScore.vsSelfieMatch.value` | string | | | | `externalFaceMatchScore.vsSelfieMatch.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `externalFaceMatchScore.overall` | ResultBean | | Composite result for external face match score | | `externalFaceMatchScore.overall.value` | string | | | | `externalFaceMatchScore.overall.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `governmentValidation` | GovernmentValidation | | - recognitionConfidence: Only present in case face validation is performed as a part of government check - fingerprintConfidence: Only present in case fingerprint validation is performed as a part of government check - minimumPassingFingerprints: Only present in case fingerprint validation is performed. Maps to configured number of minimum fingerprints configured at the time of score calculation. - validationStatus: Possible values: processingIne, ok, validationError, ineConnectionError, ineInfrastructureError, moduleNotSupported, missingDocumentId, missingSelfie, userNotFound, userNotFoundInIneDb, notEnoughData, livenessFail, ineNotCurrent, ineReportedLost, ineReportedStolen, ineSignaturError, transactionLimitReached, geographicRegionNotSupported Key-value mapping: - -1: processingIne - 0: ok - 1: validationError - 2: ineConnectionError - 3: ineInfrastructureError - 4: moduleNotSupported - 5: missingDocumentId - 6: missingSelfie - 7: userNotFound - 8: userNotFoundInIneDb - 9: notEnoughData - 10: livenessFail - 11: ineNotCurrent - 12: ineReportedLost - 13: ineReportedStolen - 14: ineSignaturError - 99: geographicRegionNotSupported - 205: transactionLimitReached - ocrValidation: List of value, status, key objects. Not all of the following keys are always present: issueDate firstName, maternalLastName, paternalLastName, ocr, personalId, electorsKey, emissionNumber, registrationDate - ocrValidationOverall: Composite result for ocrValidation score - credentialStatus: List of value, status, key objects carrying issuing-authority verdicts about the credential itself, e.g. nonCommercialDriverLicenseStatus, indefiniteExpiration. Informational only - these never affect the government validation score or overall status. An entry is present only when the check was requested; status OK means confirmed, FAIL refuted, UNKNOWN the authority did not report it. - validationSource: Where the validated identity data came from: ID_CAPTURE (captured ID on the session), REQUEST_BODY (data sent in the government validation request) or KYX_PREFILL (eKYC pre-fill). Absent for sessions validated before it was recorded or through the legacy government validation module. - registryData: Values the government source holds for the person (taxIdNumber). Present only when the latest attempt of the provider shown in "provider" reported at least one value. Informational only - never affects the government validation score or overall status. - overall | | `governmentValidation.recognitionConfidence` | ResultBean | | | | `governmentValidation.recognitionConfidence.value` | string | | | | `governmentValidation.recognitionConfidence.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `governmentValidation.fingerprintConfidence` | ResultBean | | | | `governmentValidation.fingerprintConfidence.value` | string | | | | `governmentValidation.fingerprintConfidence.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `governmentValidation.minimumPassingFingerprints` | integer (int32) | | | | `governmentValidation.validationStatus` | IdResultBean | | | | `governmentValidation.validationStatus.value` | string | | | | `governmentValidation.validationStatus.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `governmentValidation.validationStatus.key` | string | | | | `governmentValidation.ocrValidation` | array[IdResultBean] | | | | `governmentValidation.ocrValidation.value` | string | | | | `governmentValidation.ocrValidation.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `governmentValidation.ocrValidation.key` | string | | | | `governmentValidation.credentialStatus` | array[IdResultBean] | | | | `governmentValidation.credentialStatus.value` | string | | | | `governmentValidation.credentialStatus.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `governmentValidation.credentialStatus.key` | string | | | | `governmentValidation.registryData` | GovernmentRegistryData | | Values the government source holds for the person, under provider-neutral names so the same field reads the same across providers. Present only when the provider shown in "provider" reported at least one value. | | `governmentValidation.registryData.taxIdNumber` | string | | Tax identification number the government source holds for the person: Argentina CUIL from RENAPER_PREMIUM and MM_ARGENTINA_RENAPER_EXTENDED. | | `governmentValidation.ocrValidationOverall` | ResultBean | | | | `governmentValidation.ocrValidationOverall.value` | string | | | | `governmentValidation.ocrValidationOverall.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `governmentValidation.overall` | ResultBean | | | | `governmentValidation.overall.value` | string | | | | `governmentValidation.overall.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `governmentValidation.provider` | string | | | | `governmentValidation.validationSource` | string | | Enum: `ID_CAPTURE`, `REQUEST_BODY`, `KYX_PREFILL` | | `governmentValidation.appliedRule` | AppliedFlowRule | | Specific rule from rule engine | | `governmentValidation.appliedRule.name` | string | | Name of the rule. | | `governmentValidation.appliedRule.expression` | string | | A logical expression of the rule. | | `governmentValidation.appliedRule.ruleType` | string | | Enum: `idValidation`, `secondIdValidation`, `faceValidation`, `liveness`, `deepsight`, `eKyc`, `videoselfie`, `faceAuthentication`, `total`, `phoneRisk`, `emailRisk`, `governmentValidation` | | `governmentValidation.appliedRule.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `videoConference` | VideoSelfie | | - speechTranscript: Extracted text from speech, during video recording - videoSelfieLiveness: Shows liveness confidence that the person is real based on video conference - videoSelfieFaceRecognition: Shows how much face from id matches the video conference capture - speechRecognition: This shows how much the recognized speech matches the expected result - score: Overall video recording score | | `videoConference.speechTranscript` | string | | | | `videoConference.speechTranscriptWhisper` | string | | | | `videoConference.videoSelfieLiveness` | ResultBean | | | | `videoConference.videoSelfieLiveness.value` | string | | | | `videoConference.videoSelfieLiveness.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `videoConference.videoSelfieFaceRecognition` | ResultBean | | | | `videoConference.videoSelfieFaceRecognition.value` | string | | | | `videoConference.videoSelfieFaceRecognition.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `videoConference.speechRecognition` | ResultBean | | | | `videoConference.speechRecognition.value` | string | | | | `videoConference.speechRecognition.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `videoConference.score` | ResultBean | | | | `videoConference.score.value` | string | | | | `videoConference.score.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `videoConference.appliedRule` | AppliedFlowRule | | Specific rule from rule engine | | `videoConference.appliedRule.name` | string | | Name of the rule. | | `videoConference.appliedRule.expression` | string | | A logical expression of the rule. | | `videoConference.appliedRule.ruleType` | string | | Enum: `idValidation`, `secondIdValidation`, `faceValidation`, `liveness`, `deepsight`, `eKyc`, `videoselfie`, `faceAuthentication`, `total`, `phoneRisk`, `emailRisk`, `governmentValidation` | | `videoConference.appliedRule.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `curpVerification` | CurpResponse | | Only for Mex documents, in case CURP validation was performed | | `curpVerification.success` | boolean | | Flag indicating request passed successfully. | | `curpVerification.curp` | string | | Curp | | `curpVerification.sex` | string | | Sex Enum: `Mujer`, `Hombre`, `X` | | `curpVerification.nationality` | string | | Nationality | | `curpVerification.result` | string | | | | `curpVerification.transactionId` | string | | | | `curpVerification.renapo_valid` | boolean | | Flag indicating if CURP validation passed - tipoError present in response | | `curpVerification.names` | string | | Names | | `curpVerification.paternal_surname` | string | | Paternal surname | | `curpVerification.mothers_maiden_name` | string | | Mother maiden name | | `curpVerification.birthdate` | string | | Birth Date in format DD/MM/YYYY | | `curpVerification.entity_birth` | string | | Birth State | | `curpVerification.probation_document` | string | | Probation Document | | `curpVerification.probation_document_data` | object | | Key/Value structure. All keys are type of string. Available Key values: - anioReg - foja - tomo - libro - numActa - CRIP - numEntidadReg - cveMunicipioReg - NumRegExtranjeros - FolioCarta - cveEntidadNac - cveEntidadEmisora | | `curpVerification.status_curp` | string | | Status Curp | | `curpVerification.deceasedStatus` | string | | Deceased Status | | `ineScrapingValidation` | IneResult | | Only for Mex documents in case INE scraping was performed | | `ineScrapingValidation.get_version` | integer (int64) | | | | `ineScrapingValidation.scrapingStatus` | string | | Scraping status Enum: `IN_PROGRESS`, `FINISHED`, `ERROR` | | `ineScrapingValidation.success` | boolean | | Flag indicating if the process finished successfully. | | `ineScrapingValidation.result` | string | | Result Enum: `success`, `error` | | `ineScrapingValidation.resultDetails` | string | | | | `ineScrapingValidation.screenshotUrl` | string | | | | `ineScrapingValidation.cic` | string | | Cic value. | | `ineScrapingValidation.claveElector` | string | | Clave de elector. | | `ineScrapingValidation.numeroEmision` | string | | Emission number. | | `ineScrapingValidation.ocr` | string | | Ocr number. | | `ineScrapingValidation.anioRegistro` | string | | Registration year. | | `ineScrapingValidation.anioEmision` | string | | Emission year. | | `idOcrConfidence` | IdOcrConfidence | | Confidence level for read ocr data from ID | | `idOcrConfidence.overallConfidence` | ResultBean | | | | `idOcrConfidence.overallConfidence.value` | string | | | | `idOcrConfidence.overallConfidence.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `idOcrConfidenceSecondId` | IdOcrConfidence | | Same as idOcrConfidence only applicable if onboarding is configured to capture a second id | | `idOcrConfidenceSecondId.overallConfidence` | ResultBean | | | | `idOcrConfidenceSecondId.overallConfidence.value` | string | | | | `idOcrConfidenceSecondId.overallConfidence.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `incodeWatchlistScore` | IncodeWatchlistScore | | Incode watchlist score | | `incodeWatchlistScore.watchlistScore` | ResultBean | | | | `incodeWatchlistScore.watchlistScore.value` | string | | | | `incodeWatchlistScore.watchlistScore.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `incodeWatchlistScore.dataMatches` | array[string] | | | | `incodeWatchlistScore.incodeWatchlistId` | string | | | | `retryInfo` | RetryInfo | | Info about failed onboarding attempts (only if 'Onboarding flow attempts' > 0 in ID Capture module) | | `retryInfo.failedAttemptsCounter` | object | | Object with counter of failed attempts per step | | `retryInfo.stepsToRetry` | array[string] | | Enum: `frontId`, `backId`, `selfie`, `poa`, `governmentValidation` | | `documentOnEdgeInfo` | DocumentOnEdgeInfo | | Info about image alignment characteristic (if is on the image edge) | | `documentOnEdgeInfo.frontDocumentIsOnTheEdge` | boolean | | | | `documentOnEdgeInfo.backDocumentIsOnTheEdge` | boolean | | | | `appliedRule` | AppliedFlowRule | | Specific rule from rule engine for total | | `appliedRule.name` | string | | Name of the rule. | | `appliedRule.expression` | string | | A logical expression of the rule. | | `appliedRule.ruleType` | string | | Enum: `idValidation`, `secondIdValidation`, `faceValidation`, `liveness`, `deepsight`, `eKyc`, `videoselfie`, `faceAuthentication`, `total`, `phoneRisk`, `emailRisk`, `governmentValidation` | | `appliedRule.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `needsReviewReason` | string | | In case the overall score status is MANUAL (Needs Review), returns reason Enum: `MANUAL_CAPTURE`, `RULE_APPLIED`, `OLD_ID`, `FLOW_CONFIGURATION`, `FRONT_ID_CAPTURE_ATTEMPTS`, `BACK_ID_CAPTURE_ATTEMPTS`, `SELFIE_CAPTURE_ATTEMPTS`, `ANTIFRAUD`, `MISSING_DEPTH_DATA`, `CUSTOM` | | `sessionRecording` | SessionRecording | | | | `sessionRecording.mergedRecordingQualityChecks` | SessionRecordingQualityChecksScore | | | | `sessionRecording.mergedRecordingQualityChecks.fileIsPresent` | string | | Enum: `PRESENT`, `NOT_PRESENT`, `UNKNOWN` | | `sessionRecording.mergedRecordingQualityChecks.hasVideo` | string | | Enum: `YES`, `NO`, `UNKNOWN` | | `sessionRecording.mergedRecordingQualityChecks.hasAudio` | string | | Enum: `YES`, `NO`, `UNKNOWN` | | `sessionRecording.mergedRecordingQualityChecks.fileNotEmpty` | string | | Enum: `NOT_EMPTY`, `EMPTY`, `UNKNOWN` | | `sessionRecording.mergedRecordingQualityChecks.recordingQuality` | ResultBean | | | | `sessionRecording.mergedRecordingQualityChecks.recordingQuality.value` | string | | | | `sessionRecording.mergedRecordingQualityChecks.recordingQuality.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `trustGraph` | TrustGraph | | Analysis of trust relationships and signals detected during onboarding, such as connections between devices and identities, used to assess the overall trustworthiness of the onboarding attempt. | | `trustGraph.riskResults` | TrustGraphRiskResults | | | | `trustGraph.riskResults.overall` | ResultBean | | | | `trustGraph.riskResults.overall.value` | string | | | | `trustGraph.riskResults.overall.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `trustGraph.riskResults.reasonCategoryScores` | object | | | | `identityCrosscheck` | IdentityCrosscheck | | Simple identity crosscheck that compare names and dates of birth from different sources | | `identityCrosscheck.overall` | ResultBean | | Overall validation result | | `identityCrosscheck.overall.value` | string | | | | `identityCrosscheck.overall.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `identityCrosscheck.checks` | object | | Individual validation checks | | `identityCrosscheck.riskLevel` | string | | Risk level assessment | | `invoiceValidation` | Invoice | | Analysis of invoice data | | `invoiceValidation.overall` | ResultBean | | | | `invoiceValidation.overall.value` | string | | | | `invoiceValidation.overall.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `invoiceValidation.checks` | object | | | | `idValidationDeepCheck` | IdValidationDeepCheckScore | | Asynchronous secondary ID validation deep check | | `idValidationDeepCheck.overall` | ResultBean | | | | `idValidationDeepCheck.overall.value` | string | | | | `idValidationDeepCheck.overall.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `autopilot` | AutopilotDto | | Autopilot is a machine learning based score | | `autopilot.overall` | ResultBean | | | | `autopilot.overall.value` | string | | | | `autopilot.overall.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `autopilot.failedFeatures` | array[string] | | Deprecated; use failedFeatureDetails. | | `autopilot.legitFeatures` | array[string] | | Deprecated; use legitFeatureDetails. | | `autopilot.failedFeatureDetails` | array[AutopilotFeatureDetail] | | | | `autopilot.failedFeatureDetails.code` | string | | | | `autopilot.failedFeatureDetails.description` | string | | | | `autopilot.legitFeatureDetails` | array[AutopilotFeatureDetail] | | | | `autopilot.legitFeatureDetails.code` | string | | | | `autopilot.legitFeatureDetails.description` | string | | | | `autopilot.responseText` | string | | | | `autopilot.responseCategory` | string | | | | `overall` | ResultBean | | Composite result for previous sections | | `overall.value` | string | | | | `overall.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ### 403 Forbidden - Score retrieval is disabled for this organization for session users. Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/get/score?id=%3Cid%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/get/score?id=%3Cid%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/get/score?id=%3Cid%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/get/score?id=%3Cid%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/get/score?id=%3Cid%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/get/score?id=%3Cid%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "authentication": { "overall": { "value": "string", "status": "OK" }, "identityId": "string", "appliedRule": { "name": "string", "expression": "string", "ruleType": "idValidation", "status": "OK" } }, "idValidation": { "photoSecurityAndQuality": [ { "value": "string", "status": "OK", "key": "string" } ], "idSpecific": [ { "value": "string", "status": "OK", "key": "string" } ], "customFields": [ { "value": "string", "status": "OK", "key": "string" } ], "appliedRule": { "name": "string", "expression": "string", "ruleType": "idValidation", "status": "OK" }, "overall": { "value": "string", "status": "OK" } }, "antifraud": { "overall": { "value": "string", "status": "OK" } }, "secondIdValidation": { "photoSecurityAndQuality": [ { "value": "string", "status": "OK", "key": "string" } ], "idSpecific": [ { "value": "string", "status": "OK", "key": "string" } ], "customFields": [ { "value": "string", "status": "OK", "key": "string" } ], "appliedRule": { "name": "string", "expression": "string", "ruleType": "idValidation", "status": "OK" }, "overall": { "value": "string", "status": "OK" } }, "liveness": { "hasHeadCover": { "value": "string", "status": "OK" }, "hasClosedEyes": { "value": "string", "status": "OK" }, "physicalAttack": { "value": "string", "status": "OK" }, "digitalAttack": { "value": "string", "status": "OK" }, "evasionAttack": { "value": "string", "status": "OK" }, "deepfakeAttack": { "value": "string", "status": "OK" }, "digitalManipulationAttack": { "value": "string", "status": "OK" }, "appliedRule": { "name": "string", "expression": "string", "ruleType": "idValidation", "status": "OK" }, "spoofDetectionMethod": "SF", "overall": { "value": "string", "status": "OK" }, "livenessScore": { "value": "string", "status": "OK" } }, "deepsight": { "multimodalIntelligence": { "physicalAttack": { "value": "string", "status": "OK" }, "digitalAttack": { "value": "string", "status": "OK" }, "deepfakeAttack": { "value": "string", "status": "OK" }, "digitalManipulationAttack": { "value": "string", "status": "OK" }, "evasionAttack": { "value": "string", "status": "OK" }, "spoofDetectionMethod": "SF", "faceExplanation": { "description": "string", "keywords": { "category": "string", "isDepthFlat": true, "isVideoCorrupted": true } }, "faceOverall": { "value": "string", "status": "OK" }, "aiGeneratedDocument": { "value": "string", "status": "OK" }, "visualAnomaly": { "value": "string", "status": "OK" }, "documentOverall": { "value": "string", "status": "OK" }, "overall": { "value": "string", "status": "OK" } }, "deviceTrust": { "overall": { "value": "string", "status": "OK" } }, "behavioralTrust": { "overall": { "value": "string", "status": "OK" } }, "cameraTrust": { "overall": { "value": "string", "status": "OK" } }, "overall": { "value": "string", "status": "OK" }, "appliedRule": { "name": "string", "expression": "string", "ruleType": "idValidation", "status": "OK" } }, "faceCaptureAssessment": { "faceAttributes": { "maskCheck": { "value": "string", "status": "OK" }, "lensesCheck": { "value": "string", "status": "OK" }, "hasHeadCover": { "value": "string", "status": "OK" }, "hasClosedEyes": { "value": "string", "status": "OK" }, "faceOcclusion": { "value": "string", "status": "OK" } }, "qualityChecks": { "faceBrightness": { "value": "string", "status": "OK" }, "imageQuality": { "value": "string", "status": "OK" } } }, "faceRecognition": { "existingUser": true, "customerId": "string", "existingInterviewId": "string", "existingExternalId": "string", "maskCheck": { "value": "string", "status": "OK" }, "lensesCheck": { "value": "string", "status": "OK" }, "faceBrightness": { "value": "string", "status": "OK" }, "imageQuality": { "value": "string", "status": "OK" }, "nameMatch": { "value": "string", "status": "OK" }, "appliedRule": { "name": "string", "expression": "string", "ruleType": "idValidation", "status": "OK" }, "overall": { "value": "string", "status": "OK" }, "hasHeadCover": { "value": "string", "status": "OK" }, "hasClosedEyes": { "value": "string", "status": "OK" }, "faceOcclusion": { "value": "string", "status": "OK" } }, "faceRecognitionSecondId": { "existingUser": true, "customerId": "string", "existingInterviewId": "string", "existingExternalId": "string", "maskCheck": { "value": "string", "status": "OK" }, "lensesCheck": { "value": "string", "status": "OK" }, "faceBrightness": { "value": "string", "status": "OK" }, "imageQuality": { "value": "string", "status": "OK" }, "nameMatch": { "value": "string", "status": "OK" }, "appliedRule": { "name": "string", "expression": "string", "ruleType": "idValidation", "status": "OK" }, "overall": { "value": "string", "status": "OK" }, "hasHeadCover": { "value": "string", "status": "OK" }, "hasClosedEyes": { "value": "string", "status": "OK" }, "faceOcclusion": { "value": "string", "status": "OK" } }, "externalFaceMatchScore": { "faceMaskCheck": { "value": "string", "status": "OK" }, "lensesCheck": { "value": "string", "status": "OK" }, "headCoverCheck": { "value": "string", "status": "OK" }, "closedEyeCheck": { "value": "string", "status": "OK" }, "imageQualityCheck": { "value": "string", "status": "OK" }, "faceOccluded": { "value": "string", "status": "OK" }, "vsIdMatch": { "value": "string", "status": "OK" }, "vsSelfieMatch": { "value": "string", "status": "OK" }, "overall": { "value": "string", "status": "OK" } }, "governmentValidation": { "recognitionConfidence": { "value": "string", "status": "OK" }, "fingerprintConfidence": { "value": "string", "status": "OK" }, "minimumPassingFingerprints": 0, "validationStatus": { "value": "string", "status": "OK", "key": "string" }, "ocrValidation": [ { "value": "string", "status": "OK", "key": "string" } ], "credentialStatus": [ { "value": "string", "status": "OK", "key": "string" } ], "registryData": { "taxIdNumber": 20123456785 }, "ocrValidationOverall": { "value": "string", "status": "OK" }, "overall": { "value": "string", "status": "OK" }, "provider": "string", "validationSource": "ID_CAPTURE", "appliedRule": { "name": "string", "expression": "string", "ruleType": "idValidation", "status": "OK" } }, "videoConference": { "speechTranscript": "string", "speechTranscriptWhisper": "string", "videoSelfieLiveness": { "value": "string", "status": "OK" }, "videoSelfieFaceRecognition": { "value": "string", "status": "OK" }, "speechRecognition": { "value": "string", "status": "OK" }, "score": { "value": "string", "status": "OK" }, "appliedRule": { "name": "string", "expression": "string", "ruleType": "idValidation", "status": "OK" } }, "curpVerification": { "success": true, "curp": "string", "sex": "Mujer", "nationality": "string", "result": "string", "transactionId": "string", "renapo_valid": true, "names": "string", "paternal_surname": "string", "mothers_maiden_name": "string", "birthdate": "string", "entity_birth": "string", "probation_document": "string", "probation_document_data": {}, "status_curp": "string", "deceasedStatus": "string" }, "ineScrapingValidation": { "get_version": 0, "scrapingStatus": "IN_PROGRESS", "success": true, "result": "success", "resultDetails": "string", "screenshotUrl": "string", "cic": "string", "claveElector": "string", "numeroEmision": "string", "ocr": "string", "anioRegistro": "string", "anioEmision": "string" }, "idOcrConfidence": { "overallConfidence": { "value": "string", "status": "OK" } }, "idOcrConfidenceSecondId": { "overallConfidence": { "value": "string", "status": "OK" } }, "incodeWatchlistScore": { "watchlistScore": { "value": "string", "status": "OK" }, "dataMatches": [ "string" ], "incodeWatchlistId": "string" }, "retryInfo": { "failedAttemptsCounter": {}, "stepsToRetry": [ "frontId" ] }, "documentOnEdgeInfo": { "frontDocumentIsOnTheEdge": true, "backDocumentIsOnTheEdge": true }, "appliedRule": { "name": "string", "expression": "string", "ruleType": "idValidation", "status": "OK" }, "needsReviewReason": "MANUAL_CAPTURE", "sessionRecording": { "mergedRecordingQualityChecks": { "fileIsPresent": "PRESENT", "hasVideo": "YES", "hasAudio": "YES", "fileNotEmpty": "NOT_EMPTY", "recordingQuality": { "value": "string", "status": "OK" } } }, "trustGraph": { "riskResults": { "overall": { "value": "string", "status": "OK" }, "reasonCategoryScores": {} } }, "identityCrosscheck": { "overall": { "value": "string", "status": "OK" }, "checks": {}, "riskLevel": "LOW" }, "invoiceValidation": { "overall": { "value": "string", "status": "OK" }, "checks": {} }, "idValidationDeepCheck": { "overall": { "value": "string", "status": "OK" } }, "autopilot": { "overall": { "value": "string", "status": "OK" }, "failedFeatures": [ "string" ], "legitFeatures": [ "string" ], "failedFeatureDetails": [ { "code": "string", "description": "string" } ], "legitFeatureDetails": [ { "code": "string", "description": "string" } ], "responseText": "string", "responseCategory": "string" }, "overall": { "value": "string", "status": "OK" } } ``` --- - Path: `api-reference/get-signed-contracts-links` - URL: https://developer.incode.com/api-reference/get-signed-contracts-links/ - Markdown: https://developer.incode.com/api-reference/get-signed-contracts-links.md - Endpoint: `GET /omni/get/signed-contracts-links` # Get signed contracts links `GET /omni/get/signed-contracts-links` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Fetches temporary link of the signed contracts uploaded for the current session. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `id` | query | string | | | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | | `additionalInformation` | object | | | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/get/signed-contracts-links?id=%3Cid%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/get/signed-contracts-links?id=%3Cid%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/get/signed-contracts-links?id=%3Cid%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/get/signed-contracts-links?id=%3Cid%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/get/signed-contracts-links?id=%3Cid%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/get/signed-contracts-links?id=%3Cid%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive", "additionalInformation": { "document ID1": "Temporary URL to signed document with ID1", "document ID2": "Temporary URL to signed document with ID2", "document ID3": "Temporary URL to signed document with ID3" } } ``` --- - Path: `api-reference/get-signing-ceremony-url` - URL: https://developer.incode.com/api-reference/get-signing-ceremony-url/ - Markdown: https://developer.incode.com/api-reference/get-signing-ceremony-url.md - Endpoint: `GET /omni/get/signing-ceremony-url` # Get signing ceremony URL `GET /omni/get/signing-ceremony-url` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Fetches signing ceremony URL for the current session. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `id` | query | string | | | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `signingCeremonyUrl` | string | | | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/get/signing-ceremony-url?id=%3Cid%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/get/signing-ceremony-url?id=%3Cid%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/get/signing-ceremony-url?id=%3Cid%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/get/signing-ceremony-url?id=%3Cid%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/get/signing-ceremony-url?id=%3Cid%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/get/signing-ceremony-url?id=%3Cid%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "signingCeremonyUrl": "https://exaple.com" } ``` --- - Path: `api-reference/get-user-consent` - URL: https://developer.incode.com/api-reference/get-user-consent/ - Markdown: https://developer.incode.com/api-reference/get-user-consent.md - Endpoint: `GET /omni/get/user-consent` # Get user consent `GET /omni/get/user-consent` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Fetches user consent with title, content and status from session. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `id` | query | string | | Session id | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | | `title` | string | | Title of the consent. | | `content` | string | | Text content. | | `status` | boolean | | Status | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/get/user-consent?id=%3Cid%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/get/user-consent?id=%3Cid%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/get/user-consent?id=%3Cid%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/get/user-consent?id=%3Cid%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/get/user-consent?id=%3Cid%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/get/user-consent?id=%3Cid%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive", "title": "string", "content": "string", "status": true } ``` --- - Path: `api-reference/getevents` - URL: https://developer.incode.com/api-reference/getevents/ - Markdown: https://developer.incode.com/api-reference/getevents.md - Endpoint: `GET /omni/interview-events` # Fetch interview events `GET /omni/interview-events` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Returns the list of all events for given interview ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `interviewId` | query | string | yes | | | `offset` | query | integer (int32) | | Default: `0` | | `limit` | query | integer (int32) | | Default: `100` | | `codes` | query | array[string] | | | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `events` | array[InterviewEventDto] | | | | `events.id` | string | | | | `events.code` | string | | | | `events.timestamp` | integer (int64) | | | | `events.clientTimestamp` | integer (int64) | | | | `events.module` | string | | | | `events.screen` | string | | | | `events.assetUrl` | string | | | | `events.videoUrl` | string | | | | `events.payload` | object | | | | `more` | boolean | | | | `interviewTotalTimeMillis` | integer (int64) | | | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/interview-events?interviewId=%3CinterviewId%3E&offset=0&limit=100&codes=%3Ccodes%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/interview-events?interviewId=%3CinterviewId%3E&offset=0&limit=100&codes=%3Ccodes%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/interview-events?interviewId=%3CinterviewId%3E&offset=0&limit=100&codes=%3Ccodes%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/interview-events?interviewId=%3CinterviewId%3E&offset=0&limit=100&codes=%3Ccodes%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/interview-events?interviewId=%3CinterviewId%3E&offset=0&limit=100&codes=%3Ccodes%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/interview-events?interviewId=%3CinterviewId%3E&offset=0&limit=100&codes=%3Ccodes%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "events": [ { "id": "string", "code": "string", "timestamp": 0, "clientTimestamp": 0, "module": "string", "screen": "string", "assetUrl": "string", "videoUrl": "string", "payload": {} } ], "more": true, "interviewTotalTimeMillis": 0 } ``` --- - Path: `api-reference/identity-crosscheck` - URL: https://developer.incode.com/api-reference/identity-crosscheck/ - Markdown: https://developer.incode.com/api-reference/identity-crosscheck.md - Endpoint: `POST /omni/identity-crosscheck` # Identity cross-check comparing account creation data with IDV data `POST /omni/identity-crosscheck` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Cross-checks name and date of birth from account creation against data extracted during IDV. Compares the provided data with OCR-extracted data and returns validation score with risk assessment. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `interviewId` | query | string | | | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `name` | string | yes | Full name from account creation | | `dateOfBirth` | string | yes | Date of birth in YYYY-MM-DD format | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `sessionId` | string | | Session ID that was cross-checked | | `score` | IdentityCrosscheck | | Identity cross-check score results | | `score.overall` | ResultBean | | Overall validation result | | `score.overall.value` | string | | | | `score.overall.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `score.checks` | object | | Individual validation checks | | `score.riskLevel` | string | | Risk level assessment | | `success` | boolean | | Success indicator | | `errorMessage` | string | | Error message if cross-check failed | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ### 404 Session or IDV data not found Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/identity-crosscheck?interviewId=%3CinterviewId%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" \ -d '{ "name": "", "dateOfBirth": "" }' ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/identity-crosscheck?interviewId=%3CinterviewId%3E", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, body: JSON.stringify({ "name": "", "dateOfBirth": "" }), }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/identity-crosscheck?interviewId=%3CinterviewId%3E", headers=headers, json={ "name": "", "dateOfBirth": "" }) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/identity-crosscheck?interviewId=%3CinterviewId%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{\n \"name\": \"\",\n \"dateOfBirth\": \"\"\n}")) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/identity-crosscheck?interviewId=%3CinterviewId%3E") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" req.body = '{ "name": "", "dateOfBirth": "" }' res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/identity-crosscheck?interviewId=%3CinterviewId%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "name": "", "dateOfBirth": "" }'); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "sessionId": "64a7b8c9d1e2f3g4h5i6j7k8", "score": { "overall": { "value": "string", "status": "OK" }, "checks": {}, "riskLevel": "LOW" }, "success": true, "errorMessage": "IDV data not found for session" } ``` --- - Path: `api-reference/identity-reuse-documents` - URL: https://developer.incode.com/api-reference/identity-reuse-documents/ - Markdown: https://developer.incode.com/api-reference/identity-reuse-documents.md - Endpoint: `GET /omni/identity-reuse/documents` # Get identity reuse documents `GET /omni/identity-reuse/documents` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Returns all found identity documents across all candidate identities ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `documents` | array[IdentityReuseDocumentDto] | | | | `documents.documentId` | string | | | | `documents.type` | string | | | | `documents.countryCode` | string | | | | `documents.documentNumber` | string | | | | `documents.validatedAt` | string (date-time) | | | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/identity-reuse/documents \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/identity-reuse/documents", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/identity-reuse/documents", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/identity-reuse/documents")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/identity-reuse/documents") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/identity-reuse/documents"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "documents": [ { "documentId": "string", "type": "string", "countryCode": "string", "documentNumber": "string", "validatedAt": "string" } ] } ``` --- - Path: `api-reference/identity-reuse-submit` - URL: https://developer.incode.com/api-reference/identity-reuse-submit/ - Markdown: https://developer.incode.com/api-reference/identity-reuse-submit.md - Endpoint: `POST /omni/identity-reuse/submit` # Submit identity reuse decision `POST /omni/identity-reuse/submit` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Accepts or declines reuse of a previously verified identity, on another organization. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `documentId` | string | | | | `accepted` | boolean | | | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/identity-reuse/submit \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/identity-reuse/submit", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/identity-reuse/submit", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/identity-reuse/submit")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/identity-reuse/submit") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/identity-reuse/submit"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/identity-sessionids` - URL: https://developer.incode.com/api-reference/identity-sessionids/ - Markdown: https://developer.incode.com/api-reference/identity-sessionids.md - Endpoint: `GET /omni/identity/{customerId}/sessionIds` # Fetch all passed onboardings ids for the same person `GET /omni/identity/{customerId}/sessionIds` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Get all passed onboardings ids for the same person ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `customerId` | path | string | yes | | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `sessionIds` | array[string] | | | | `count` | integer (int32) | | | | `initialSessionId` | string | | | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/identity/%3CcustomerId%3E/sessionIds \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/identity/%3CcustomerId%3E/sessionIds", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/identity/%3CcustomerId%3E/sessionIds", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/identity/%3CcustomerId%3E/sessionIds")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/identity/%3CcustomerId%3E/sessionIds") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/identity/%3CcustomerId%3E/sessionIds"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "sessionIds": [ "string" ], "count": 0, "initialSessionId": "string" } ``` --- - Path: `api-reference/identity-sessions` - URL: https://developer.incode.com/api-reference/identity-sessions/ - Markdown: https://developer.incode.com/api-reference/identity-sessions.md - Endpoint: `GET /omni/identity/{customerId}/sessions` # Fetch all passed onboardings for the same person `GET /omni/identity/{customerId}/sessions` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Get all passed onboardings for the same person ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `customerId` | path | string | yes | | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/identity/%3CcustomerId%3E/sessions \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/identity/%3CcustomerId%3E/sessions", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/identity/%3CcustomerId%3E/sessions", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/identity/%3CcustomerId%3E/sessions")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/identity/%3CcustomerId%3E/sessions") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/identity/%3CcustomerId%3E/sessions"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json [ { "get_version": 0, "secondDocumentInterviewId": "string", "parentInterviewId": "string", "name": "string", "fullNameMrz": "string", "displayName": "string", "phone": "string", "birthDate": "string", "address": "string", "location": "string", "longitude": 0, "latitude": 0, "gender": "string", "typeOfId": "string", "externalId": "string", "flowWalletAddress": "string", "email": "string", "mrz1": "string", "mrz2": "string", "mrz3": "string", "street": "string", "colony": "string", "postalCode": "string", "city": "string", "state": "string", "stateCode": "string", "countryCode": "string", "cic": "string", "ocr": "string", "claveDeElector": "string", "numeroEmisionCredencial": "string", "personalNumber": "string", "nationalNumber": "string", "personalIdNumber": "string", "taxIdNumber": "string", "issueFront": 0, "issueBack": 0, "issuingCountry": "string", "registrationDate": 0, "documentId": "string", "deviceType": "IOS", "height": "string", "birthPlace": "string", "bloodType": "string", "curp": "string", "recognitionConfidence": 0, "nfcRecognitionConfidence": { "nfcVsSelfieConfidence": 0, "nfcVsSelfieLogConfidence": 0, "nfcVsIdConfidence": 0, "nfcVsIdLogConfidence": 0 }, "spoofConfidence": 0, "idValidationScore": "string", "tamperedConfidence": 0, "tamperedModelVersion": "string", "fakeIdConfidence": 0, "retouchFrontConfidence": 0, "frontClassification": "Unknown", "backClassification": "Unknown", "frontIdFaceCount": 0, "manualIdCheckNeeded": true, "manualSelfieCheckNeeded": true, "frontSharpness": 0, "frontGlare": 0, "frontHorizontalResolution": 0, "frontShadowConfidence": 0, "frontPerFieldReadability": 0, "backSharpness": 0, "backGlare": 0, "backHorizontalResolution": 0, "backShadowConfidence": 0, "backPerFieldReadability": 0, "issueDate": 0, "expirationDate": 0, "qr": true, "manualCorrectionBy": "string", "waitingTime": 0, "logRecognitionConfidence": 0, "readabilityConfidence": 0, "frontSeccion": "string", "printingNumber": "string", "duplicateNumber": "string", "preparationNumber": "string", "confSelfieConfidence": 0, "confSelfieLogConfidence": 0, "confFrontIDConfidence": 0, "confFrontIDLogConfidence": 0, "notes": "string", "tags": [ "string" ], "croppedIDFaceRef": "string", "croppedNfcFaceRef": "string", "fullFrameFrontIDRef": "string", "fullFrameBackIDRef": "string", "croppedFrontIDRef": "string", "croppedBackIDRef": "string", "croppedFaceRef": "string", "confSelfieRef": "string", "confFrontIDRef": "string", "confBackIDRef": "string", "additionalNames": [ { "refNumber": 0, "name": "string" } ], "additionalAttrs": [ "DOCUMENTO_INFANTIL" ], "additionalTimestamps": [ { "dateType": "string", "timestamp": 0 } ], "religion": "string", "customFields": [ { "key": "string", "value": "string" } ], "customFieldsValid": [ { "key": "string", "value": true } ], "expirationDateCheckDigit": "string", "streetName": "string", "exteriorNumber": "string", "interiorNumber": "string", "district": "string", "addressCountryCode": "string", "issuerCode": "string", "redirectionUrl": "string", "maritalStatus": "string", "race": "string", "notExtractedDetails": [ "string" ], "issuingAuthority": "string", "qrContents": [ "string" ], "qrFrontContents": [ "string" ], "qrBackContents": [ "string" ], "conferenceFeedback": "string", "barcodeRawData": "string", "nameParsed": true, "backClassificationFailReason": "UNKNOWN_DOCUMENT_TYPE", "nameBean": { "fullName": "string", "fullNameNativeScript": "string", "firstNameNativeScript": "string", "paternalLastNameNativeScript": "string", "maternalLastNameNativeScript": "string", "machineReadableFullName": "string", "firstName": "string", "middleName": "string", "givenName": "string", "givenNameMrz": "string", "initials": "string", "nameSuffix": "string", "paternalLastName": "string", "maternalLastName": "string", "lastNameMrz": "string", "familyName": "string" }, "backTypeOfId": "string", "documentFrontSubtype": "string", "documentFrontState": "string", "documentBackSubtype": "string", "documentBackState": "string", "documentNumberCheckDigit": "string", "dateOfBirthCheckDigit": "string", "expireAt": "string", "issuedAt": "string", "issuingCountryBack": "string", "finishStatus": true, "videoSelfieTypeOfIdMatch": true, "videoSelfieBackTypeOfIdMatch": true, "videoSelfieFaceMatched": true, "videoSelfieNameOcrMatched": true, "videoSelfieBacksideOcrMatched": true, "videoSelfieVoiceConsentFaceMatched": true, "vendorValidationScore": 0, "videoSelfieRecognitionConfidence": 0, "videoSelfieLogRecognitionConfidence": 0, "videoSelfieSpoofConfidence": 0, "paperConfidence": 0, "screenConfidence": 0, "screenModelVersion": "string", "paperModelVersion": "string", "idAlterationConfidence": 0, "frontClassificationFailReason": "UNKNOWN_DOCUMENT_TYPE", "frontCroppingError": "ID_IS_CUT", "backCroppingError": "ID_IS_CUT", "frontSharpnessSource": "ML_BACKEND", "frontGlareSource": "ML_BACKEND", "backSharpnessSource": "ML_BACKEND", "backGlareSource": "ML_BACKEND", "isRealId": true, "barcodeMeta": { "ecLevel": 0, "noSegments": 0, "segmentWidth": 0, "corners": [ { "x": 0, "y": 0 } ], "cornersFullFrame": [ { "x": 0, "y": 0 } ], "rawBytes": "string", "pdf417RowNumber": 0, "pdf417ColumnNumber": 0, "pdf417CodewordLengthMin": 0, "pdf417CodewordLengthMax": 0, "pdf417CorrectedErrorsCount": 0 }, "barcodeReader": "string", "barcodeSignatureVerified": true, "fullFrameFrontIDRefs": [ { "imageRef": "string", "timestamp": 0, "exifMetadata": { "timestampOriginal": 0, "software": "string" } } ], "fullFrameBackIDRefs": [ { "imageRef": "string", "timestamp": 0, "exifMetadata": { "timestampOriginal": 0, "software": "string" } } ], "refCroppedFrontIDRef": "string", "refCroppedBackIDRef": "string", "croppedOriginalFrontIDRef": "string", "croppedOriginalBackIDRef": "string", "voiceConsentSelfieRefs": [ { "imageRef": "string", "timestamp": 0, "confidence": 0, "threshold": 0 } ], "voiceConsentSelfieRef": "string", "originalNfcFaceRef": "string", "confPoaRef": "string", "idSegmentImagesRefs": {}, "ocrResultsId": "string", "interviewerId": "string", "interviewerName": "string", "interviewSessionId": "string", "interviewCode": "string", "oldInterviewId": "string", "externalCustomerId": "string", "nue": "string", "nss": "string", "sessionStatus": "Alive", "closedAt": 0, "deletedAt": 0, "speechOpentokSessionId": "string", "speechOpentokArchiveId": "string", "speechOffset": 0, "language": "string", "signingCeremonyUrl": "string", "videoSelfieFileIsPresent": "PRESENT", "videoSelfieHasVideo": "YES", "videoSelfieHasAudio": "YES", "videoSelfieFileNotEmpty": "NOT_EMPTY", "videoWidth": 0, "videoHeight": 0, "videoBitRate": 0, "videoDuration": 0, "videoQuality": true, "speechTranscript": "string", "speechTranscriptWhisper": "string", "processSpeechResultWhisper": true, "processSpeechResult": true, "processSpeechResultGoogleLLM": true, "sessionRecordingRefs": {}, "additionalDocumentAttempts": [ { "documentType": "ASYLUM_SEEKER", "format": "IMAGE", "status": "SUCCESS", "attemptTimestamp": 0, "classificationConfidence": 0, "image": { "imageRef": "string", "timestamp": 0, "exifMetadata": { "timestampOriginal": 0, "software": "string" } }, "multiPageDocImages": [ { "imageRef": "string", "timestamp": 0, "exifMetadata": { "timestampOriginal": null, "software": null } } ], "attemptType": "POA", "antiSpoofResult": { "status": "PASS", "kinds": [ "string" ], "confidence": 0, "details": [ { "kind": null, "error": null, "loc": null, "explanation": null } ] }, "firstName": "string", "lastName": "string", "countryOfOrigin": "string", "dateOfBirth": 0, "expiryDate": 0, "issueDate": 0, "gender": "MALE", "nationality": "string", "placeOfIssue": "string", "referenceNumber": "string", "residentialAddressLines": [ "string" ] } ], "poaName": "string", "proofOfAddress": "string", "proofOfAddressScore": 0, "addressStatementTimestamp": 0, "addressStatementTimestamps": [ { "get_version": 0, "dateType": "string", "addressStatementTimestamp": 0 } ], "documentType": "aysa", "poaFields": { "street": "string", "streetName": "string", "colony": "string", "postalCode": "string", "city": "string", "state": "string", "stateName": "string", "district": "string", "stateCode": "string", "addressCountryCode": "string", "label": "string", "exteriorNumber": "string", "interiorNumber": "string", "addressLine1": "string", "streetType": "string" }, "poaSuccessfullyClassified": true, "fullAddress": true, "checkedAddress": "string", "checkedAddressBean": { "street": "string", "streetName": "string", "colony": "string", "postalCode": "string", "city": "string", "state": "string", "stateName": "string", "district": "string", "stateCode": "string", "addressCountryCode": "string", "label": "string", "exteriorNumber": "string", "interiorNumber": "string", "addressLine1": "string", "streetType": "string" }, "classifier": "INCODE", "bankLoginSuccess": true, "governmentRecognitionConfidence": 0, "governmentRecognitionConfidence2": 0, "governmentFingerprintConfidence": { "finger1": 0, "finger2": 0, "finger3": 0, "finger4": 0, "finger5": 0, "finger6": 0, "finger7": 0, "finger8": 0, "finger9": 0, "finger10": 0 }, "governmentValidationStatus": "PROCESSING", "governmentRecognitionThreshold": 0, "registralSituation": { "tipoSituacionRegistral": "string", "tipoReporteRoboExtravio": "string" }, "curpCecobanValidation": { "returnCode": "string", "description": "string", "uniquePopulationRegistrationKeyMatch": true }, "ineTransactionId": "string", "existingUser": true, "nameMatched": true, "existingInterviewId": "string", "existingExternalId": "string", "customerId": "string", "parentCustomerId": "string", "incodeIdCustomer": "string", "faceAuthCustomerId": "string", "incodeIdConsentGiven": true, "onlyFront": true, "onlyBack": true, "forceBackForDob": true, "hasNfcChip": true, "barcodeCapture": true, "usSmartCapture": true, "alignment": true, "frontAlignment": true, "frontAlignmentForced": true, "backAlignmentForced": true, "alreadyApprovedCustomerConfidence": 0, "punchedHolesConfidence": 0, "fakeIdInternalConfidence": 0, "mandatoryConsentGiven": true, "frontDocumentIsOnTheEdge": true, "backDocumentIsOnTheEdge": true, "backAlignment": true, "surveyData": "string", "frontIdAttempts": 0, "backIdAttempts": 0, "selfieAttempts": 0, "authenticationAttempts": 0, "onboardingAttempts": 0, "sessionContinuationCount": 0, "failedAttemptsCounter": {}, "idValidationFinished": true, "faceValidationFinished": true, "idFaceExtractionSkipped": true, "faceMatchingType": "selfieVsId", "partialOnboarding": true, "frontCaptureRedacted": true, "backCaptureRedacted": true, "multipleDocumentsInFrame": true, "callbackUrl": "string", "governmentValidationFinished": true, "conferenceStatus": "NO_CONFERENCE", "termsAccepted": true, "creditBureauConsentGiven": true, "applicantDataConfirmed": true, "configurationId": "string", "configurationName": "string", "configurationVersion": 0, "flowType": "configuration", "queueName": "string", "gdcAddressScore": "FullMatch", "gdcIdentityScore": "FullMatch", "subscribedToWatchlistUpdates": true, "onboardingStatus": "UNKNOWN", "deletedWithMode": "BIOMETRICS", "retentionRegion": { "ipRegion": "string", "ocrRegion": "string" }, "onboardingCompleteTimestamp": 0, "sessionExpiredAt": 0, "loginHint": "string", "authUuid": "string", "integrationReference": "string", "validationArchiveRef": "string", "validationArchiveNom151": "string", "selfieRef": "string", "selfieRefs": [ { "imageRef": "string", "timestamp": 0, "exifMetadata": { "timestampOriginal": 0, "software": "string" } } ], "sorSelfieRef": "string", "videoSelfieRef": "string", "documentRef": "string", "documentRefs": [ { "imageRef": "string", "timestamp": 0, "exifMetadata": { "timestampOriginal": 0, "software": "string" } } ], "signatureRef": "string", "initialsRef": "string", "secondIdRef": "string", "thirdIdRef": "string", "medicalDocImgRef": "string", "videoSelfieCompareIDRef": "string", "videoSelfieCompareOcrRef": "string", "videoSelfieCompareBackIDRef": "string", "videoSelfieCompareBackOcrRef": "string", "otherDocument1Ref": "string", "otherDocument2Ref": "string", "otherDocument3Ref": "string", "paymentProofRef": "string", "consentRef": "string", "renaperCroppedRef": "string", "signatureRefs": [ { "imageRef": "string", "signatureType": "string" } ], "initialsRefs": [ { "imageRef": "string", "signatureType": "string" } ], "contractRefs": [ "string" ], "signedContractRefs": [ "string" ], "governmentValidationProvider": "QUERTIUM", "governmentValidationWorkflow": "string", "governmentValidationShadowMode": true, "governmentValid": true, "governmentValidationResponse": {}, "governmentValidationRequest": {}, "paternalLastNameValid": true, "maternalLastNameValid": true, "firstNameValid": true, "middleNameValid": true, "suffixNameValid": true, "fullNameValid": true, "curpValid": true, "ineCurpValid": true, "curpValidationResponse": { "success": true, "curp": "string", "sex": "Mujer", "nationality": "string", "result": "string", "transactionId": "string", "renapo_valid": true, "names": "string", "paternal_surname": "string", "mothers_maiden_name": "string", "birthdate": "string", "entity_birth": "string", "probation_document": "string", "probation_document_data": {}, "status_curp": "string", "deceasedStatus": "string" }, "curpDataMatch": true, "renapoCurp": "string", "ineScrapingValid": true, "ineValidationResponse": { "get_version": 0, "scrapingStatus": "IN_PROGRESS", "success": true, "result": "success", "resultDetails": "string", "screenshotUrl": "string", "cic": "string", "claveElector": "string", "numeroEmision": "string", "ocr": "string", "anioRegistro": "string", "anioEmision": "string" }, "fiscalQrUrlResponse": { "success": true, "sessionStatus": "Alive", "rfc": "string", "curp": "string", "name": "string", "firstLastName": "string", "secondLastName": "string", "birthdate": "string", "denomination": "string", "regime": "string", "constitutionDate": "string", "operationStartDate": "string", "personStatus": "string", "lastSituationChangeDate": "string", "state": "string", "delegation": "string", "colony": "string", "streetType": "string", "streetName": "string", "extNumber": "string", "intNumber": "string", "postalCode": "string", "email": "string", "al": "string", "fiscalRegime": "string", "fiscalStartDate": "string", "error": "string", "result": "string" }, "ocrValid": true, "claveDeElectorValid": true, "numeroEmisionCredencialValid": true, "registrationDateValid": true, "issueDateValid": true, "birthDateValid": true, "documentNumberValid": true, "sexValid": true, "heightValid": true, "weightValid": true, "eyeColorValid": true, "addressValid": true, "addressLine2Valid": true, "cityValid": true, "stateCodeValid": true, "zipCodeValid": true, "genderValid": true, "personalNumberValid": true, "placeOfBirthValid": true, "expirationDateValid": true, "totalScore": 0, "livenessScore": 0, "faceRecognitionScore": 0, "incodeIdValidationScore": 0, "idOcrValidationScore": 0, "governmentScore": 0, "videoConferenceScore": 0, "totalScoreStatus": "OK", "livenessScoreStatus": "OK", "faceRecognitionScoreStatus": "OK", "incodeIdValidationScoreStatus": "OK", "idOcrValidationScoreStatus": "OK", "governmentScoreStatus": "OK", "videoConferenceStatus": "OK", "customWatchlistModuleEnabled": true, "incodeWatchlistScore": 0, "watchlistDataMatches": [ "string" ], "incodeWatchlistId": "string", "externalVerificationRequest": { "plugins": [ "string" ], "source": "US_DRIVERS_LICENSE_1", "fullName": "string", "firstName": "string", "middleName": "string", "surName": "string", "email": "string", "street": "string", "houseNo": "string", "postalCode": "string", "countryCode": "string", "phone": "string", "state": "string", "city": "string", "ssn": "string", "dateOfBirth": "string", "ipAddress": "string", "taxIdStatus": "string", "nationality": "string", "dlNumber": "string", "dlExpireAt": "string", "dlState": "string", "last4SSN": "string", "idNumber": "string", "panNumber": "string" }, "premiumExternalVerification": { "level": "string", "verifications": {}, "income": { "status": "string", "range": "string" }, "employment": { "status": "string", "type": "string", "sector": "string" }, "reasonCodes": [ { "key": "string", "reasonCodes": [ { "reasonCode": null, "description": null } ] } ], "additionalVerificationInfo": { "creditFileDetails": { "creditFileNumber": "string", "creditFileCreationDate": "string" } } }, "externalVerificationThirdPartyRequest": {}, "externalVerificationThirdPartyResponse": {}, "businessVerificationRequest": { "plugins": [ "string" ], "businessName": "string", "addressLine1": "string", "street": "string", "houseNo": "string", "addressLine2": "string", "city": "string", "state": "string", "postalCode": "string", "country": "US", "taxId": "string", "uboNames": [ "string" ], "directors": [ "string" ] }, "businessVerification": { "businessName": "string", "businessClassification": "string", "addressVerification": "string", "cityVerification": "string", "postalCodeVerification": "string", "stateVerification": "string", "addressPropertyType": "string", "addressDeliverability": "string", "tinVerification": "string", "uboNameMatch": "string", "registrationStatus": "Active", "entityType": { "entityType": "string" }, "verificationMessages": { "tinVerificationMessage": "string" }, "uboNameVerificationResults": [ { "name": "string", "uboNameMatch": "string", "matchId": "string", "ownershipPercentage": "string" } ], "directorsVerificationResults": [ { "name": "string", "uboNameMatch": "string", "matchId": "string", "ownershipPercentage": "string" } ], "people": [ { "name": "string", "titles": [ { "title": null } ], "memberType": "string" } ] }, "bavHolders": [ { "holder": "string", "id": "string", "balance": 0, "currency": "string", "address": "string", "timestamp": 0 } ], "bavLinkId": "string", "bavNumberOfRetries": 0, "rfc": "string", "rfcValidationResponse": { "validRFC": true, "status": "string", "message": "string", "rfcType": "string", "messageCode": "string", "errorMessage": "string", "rfcMessageCode": "RFC_VALID" }, "federalRevenueNumber": "string", "mothersName": "string", "mothersIdNumber": "string", "originDocumentId": "string", "fathersName": "string", "fathersIdNumber": "string", "spouseName": "string", "driversLicenseCategory": "string", "controlNumber": "string", "renach": "string", "eyeColor": "string", "classes": "string", "cond": "string", "mentions": "string", "refNumber": "string", "familyNumber": "string", "restrictions": "string", "weight": "string", "hairColor": "string", "nationality": "string", "nationalityMrz": "string", "nationalityAlpha3": "string", "jurisdictionCode": "string", "medicalOcrData": [ { "key": "string", "value": {} } ], "interviewRejected": true, "approvalSource": "AUTOAPPROVE", "manualReviewStatus": "UNSET", "manualReviewReasons": [ "string" ], "manualReviewComment": "string", "faceLenses": true, "hasFaceClosedEyes": true, "hasFaceHeadCover": true, "hasFaceMask": true, "faceIsBright": true, "faceAge": 0, "hasVideoSelfieLenses": true, "hasVideoSelfieClosedEyes": true, "hasVideoSelfieHeadCover": true, "hasVideoSelfieMask": true, "digitalAttack": true, "digitalAttackSeverity": "ultra low", "digitalAttackVersion": "string", "evasionAttack": true, "evasionAttackSeverity": "ultra low", "evasionAttackVersion": "string", "spoofDetectionResult": { "overallConfidence": 0, "isSpoof": true, "status": "passed", "physicalAttack": { "confidence": 0, "isSpoof": true, "status": "passed", "severity": "ultra low", "version": "string", "checkName": "physicalAttack", "reason": "FACE_CROPPING_FAILURE" }, "digitalAttack": { "confidence": 0, "isSpoof": true, "status": "passed", "severity": "ultra low", "version": "string", "checkName": "physicalAttack", "reason": "FACE_CROPPING_FAILURE" }, "evasionAttack": { "confidence": 0, "isSpoof": true, "status": "passed", "severity": "ultra low", "version": "string", "checkName": "physicalAttack", "reason": "FACE_CROPPING_FAILURE" }, "motionAttack": { "confidence": 0, "isSpoof": true, "status": "passed", "severity": "ultra low", "version": "string", "checkName": "physicalAttack", "reason": "FACE_CROPPING_FAILURE" }, "deepfakeAttack": { "confidence": 0, "isSpoof": true, "status": "passed", "severity": "ultra low", "version": "string", "checkName": "physicalAttack", "reason": "FACE_CROPPING_FAILURE" }, "digitalManipulationAttack": { "confidence": 0, "isSpoof": true, "status": "passed", "severity": "ultra low", "version": "string", "checkName": "physicalAttack", "reason": "FACE_CROPPING_FAILURE" }, "mediaQualityResults": [ { "modality": "depth", "name": "depthQuality", "result": "passed", "parameters": "string" } ], "options": { "cameraFacingMode": "FRONTAL", "source": "MOBILE", "enforceQSV": true, "strictVideoChecks": true }, "method": "SINGLE_FRAME", "explanation": { "description": "string", "keywords": { "category": "string", "isDepthFlat": true, "isVideoCorrupted": true } }, "spoofDetectionErrorDetails": { "error": "BAD_REQUEST", "detailMessage": "string" } }, "faceCaptureAttemptId": "string", "faceCaptureRecordingAttemptId": "string", "videoSelfieCaptureAttemptId": "string", "authenticationAttemptId": "string", "onboardingAttemptId": "string", "frontIdCaptureMetadata": { "timestamp": 0, "sdkPlatform": "WEBAPP", "sdkVersion": "string", "callerId": "string", "device": { "kind": "MOBILE", "model": "string", "os": "string", "osVersion": "string", "screenDimensions": { "width": 0, "height": 0 }, "numTouchPoints": 0, "fingerprintHash": "string", "ip": "string", "backgroundMode": true, "hookDetected": true, "emulatorDetected": true, "rootDetected": true, "virtualEnvironmentDetected": true, "jailbreakDetectionDisabled": true }, "browser": { "userAgent": "string", "getUserMediaAvailability": { "webkit": true, "mozilla": true, "opera": true, "microsoft": true }, "webglFingerprint": "string", "inspectorOpened": true, "isMockedBrowser": true }, "camera": { "facingMode": "FRONTAL", "settings": {}, "capabilities": {}, "labels": [ "string" ] }, "iad": { "isDeepsightEnabled": true, "deepsightLiveness": "SINGLE_FRAME", "zoomCheck": "PASS", "exposureCompensationCheck": "PASS", "cctCheck": "PASS", "genericCheck": "PASS", "mobileTemporalCheck": "PASS", "contrastSharpnessSaturationCheck": "PASS", "frontBackCameraCheck": "PASS", "frameDuplicationCheck": "PASS", "exposureCheck": "PASS", "replayAttackCheck": "PASS", "environmentIntegrityCheck": "PASS", "extendedDeviceAndBrowserClassificationData": {}, "deviceEmulationCheck": "PASS", "contrastSharpnessSaturationData": { "initialValues": { "contrast": 0, "sharpness": 0, "saturation": 0, "metrics": 0, "isTimeoutReached": true, "framePixelDelta": 0 }, "appliedValues": [ { "contrast": null, "sharpness": null, "saturation": null, "metrics": null, "isTimeoutReached": null, "framePixelDelta": null } ] }, "genericInjectionData": { "streamInitializationTime": [ 0 ], "timeToFirstFrame": [ 0 ], "appliedConstraints": {}, "isTimeoutReached": true, "sitAborted": true, "warmInitializationTime": 0 }, "iosInjectionData": { "createStreamTime": [ 0 ], "frameStats": [ { "frameCount": null, "isBlack": null, "isUnique": null, "timestamp": null, "updatedPercentage": null } ], "appliedConstraints": {}, "isTimeoutReached": true }, "cctInjectionData": { "initialCct": 0, "minColorTemperatureParameters": [ { "value": null, "applicationTime": null, "appliedConstraints": null, "isTimeoutReached": null, "framePixelDelta": null } ], "maxColorTemperatureParameters": [ { "value": null, "applicationTime": null, "appliedConstraints": null, "isTimeoutReached": null, "framePixelDelta": null } ] }, "androidInjectionData": { "constraintsApplicationTime": [ 0 ], "appliedConstraints": [ {} ] }, "frontBackCameraData": { "cameraCheckData": [ { "type": null, "isAvailable": null, "faceDetected": null, "idDetected": null, "isTimeoutReached": null } ], "phashMinRotHamming": 0, "colorHistChiSqr": 0, "noiseMaeRatio": 0, "noiseDistroChiSqr": 0, "initialFrameCount": 0, "oppositeFrameCount": 0, "oppositeWithinPhashHammingMean": 0, "oppositeWithinPhashHammingMax": 0, "oppositeWithinNoiseMaeStdev": 0, "oppositeWithinBrightnessStdev": 0, "crossPhashHammingMean": 0, "crossPhashHammingMin": 0, "crossPhashHammingMax": 0, "crossColorHistChiSqrMean": 0, "crossNoiseMaeDelta": 0, "crossNoiseDistroChiSqrMean": 0, "crossBrightnessDelta": 0, "initialSceneFeatures": [ 0 ], "oppositeSceneFeatures": [ 0 ], "crossSceneFeatureDeltas": [ 0 ], "oppositeTemporalKurtosis": 0, "oppositeTemporalKsToGaussian": 0, "oppositeTemporalLevelsRatio": 0, "oppositeTemporalVarianceMean": 0, "oppositeTemporalVarianceStdev": 0, "initialDeviceId": "string", "oppositeDeviceId": "string", "initialGroupId": "string", "oppositeGroupId": "string", "initialFacingMode": "string", "oppositeFacingMode": "string", "initialWidth": 0, "initialHeight": 0, "oppositeWidth": 0, "oppositeHeight": 0, "initialFrameRate": 0, "oppositeFrameRate": 0, "deviceIdsDiffer": true, "groupIdsMatch": true, "experimentIncomplete": true }, "frameDuplicationData": { "validDuplicateCount": 0, "invalidDuplicateCount": 0, "continuousValidDuplicateCount": 0, "continuousInvalidDuplicateCount": 0, "isTimeoutReached": true, "initialDuplicateFramesDetected": true, "initialOpenCaptureDuplicateFramesDetected": true, "invalidInitialDuplicateFramesDetected": true, "continuousDuplicateFramesDetected": true, "numInitialDuplicateInstances": 0, "numInitialOpenCaptureDuplicateInstances": 0, "numInvalidInitialDuplicateInstances": 0, "numContinuousDuplicateInstances": 0, "preCaptureTotalFrames": 0, "preCaptureUniqueHashes": 0, "preCaptureMaxConsecutiveRun": 0, "preCaptureMaxOccurrenceCount": 0, "preCaptureMaxOccurrencePercentage": 0, "frameStats": [ { "frameCount": null, "isBlack": null, "isUnique": null, "timestamp": null, "updatedPercentage": null } ], "perPhaseStats": [ { "invalidDuplicateCount": null, "totalFrames": null, "uniqueHashes": null, "maxOccurrencePercentage": null } ] }, "zoomData": { "initialConstraints": {}, "initialZoom": 0, "maxZoomParameters": [ { "applicationTime": null, "appliedConstraints": null, "appliedZoom": null, "isTimeoutReached": null } ], "minZoomParameters": [ { "applicationTime": null, "appliedConstraints": null, "appliedZoom": null, "isTimeoutReached": null } ], "zoomInconsistencyDetected": true }, "exposureData": { "exposureParams": [ [] ], "frames": [ [] ], "sessionDiagnostics": [ { "exposureSupported": null, "exposureApplyConstraintError": null, "exposureApplyConstraintTimeout": null, "invalidTrackStateDetected": null, "exposureInconsistencyDetected": null, "interruptedCapture": null, "cameraCaptureStatus": null, "exposureMinDelay": null, "exposureInitialDelay": null, "baselineBrightness": null } ] }, "replayAttackData": { "collisionCount": 0, "isTimeoutReached": true, "intraSessionLoop": true, "intraSessionLookahead": true, "interSessionLookahead": true, "totalFrames": 0, "uniqueHashes": 0, "maxConsecutiveRun": 0, "maxOccurrenceCount": 0, "storedSessionsCount": 0, "storedHashesCount": 0, "storedSessionSizes": [ 0 ], "intraIncodeSessionLoop": true, "interIncodeSessionLoop": true }, "environmentIntegrity": { "rootDetected": true, "storageTamperingDetected": true, "environmentHookingDetected": true, "wasmTamperingDetected": true, "challengeInterruptionDetected": true, "debugModeDetected": true, "rootDetectionLevel": 0 }, "isMotionEnabled": true, "sensorDataReference": "string" }, "behavior": { "detectionValuesDeviation": "PASS", "monotonicBorder": "PASS", "motionStatus": "PASS" }, "captureMode": "AUTO", "hasDepth": true, "expectedDepth": true, "mediaInfo": { "videoChecksum": "string" }, "clientLogs": "string" }, "backIdCaptureMetadata": { "timestamp": 0, "sdkPlatform": "WEBAPP", "sdkVersion": "string", "callerId": "string", "device": { "kind": "MOBILE", "model": "string", "os": "string", "osVersion": "string", "screenDimensions": { "width": 0, "height": 0 }, "numTouchPoints": 0, "fingerprintHash": "string", "ip": "string", "backgroundMode": true, "hookDetected": true, "emulatorDetected": true, "rootDetected": true, "virtualEnvironmentDetected": true, "jailbreakDetectionDisabled": true }, "browser": { "userAgent": "string", "getUserMediaAvailability": { "webkit": true, "mozilla": true, "opera": true, "microsoft": true }, "webglFingerprint": "string", "inspectorOpened": true, "isMockedBrowser": true }, "camera": { "facingMode": "FRONTAL", "settings": {}, "capabilities": {}, "labels": [ "string" ] }, "iad": { "isDeepsightEnabled": true, "deepsightLiveness": "SINGLE_FRAME", "zoomCheck": "PASS", "exposureCompensationCheck": "PASS", "cctCheck": "PASS", "genericCheck": "PASS", "mobileTemporalCheck": "PASS", "contrastSharpnessSaturationCheck": "PASS", "frontBackCameraCheck": "PASS", "frameDuplicationCheck": "PASS", "exposureCheck": "PASS", "replayAttackCheck": "PASS", "environmentIntegrityCheck": "PASS", "extendedDeviceAndBrowserClassificationData": {}, "deviceEmulationCheck": "PASS", "contrastSharpnessSaturationData": { "initialValues": { "contrast": 0, "sharpness": 0, "saturation": 0, "metrics": 0, "isTimeoutReached": true, "framePixelDelta": 0 }, "appliedValues": [ { "contrast": null, "sharpness": null, "saturation": null, "metrics": null, "isTimeoutReached": null, "framePixelDelta": null } ] }, "genericInjectionData": { "streamInitializationTime": [ 0 ], "timeToFirstFrame": [ 0 ], "appliedConstraints": {}, "isTimeoutReached": true, "sitAborted": true, "warmInitializationTime": 0 }, "iosInjectionData": { "createStreamTime": [ 0 ], "frameStats": [ { "frameCount": null, "isBlack": null, "isUnique": null, "timestamp": null, "updatedPercentage": null } ], "appliedConstraints": {}, "isTimeoutReached": true }, "cctInjectionData": { "initialCct": 0, "minColorTemperatureParameters": [ { "value": null, "applicationTime": null, "appliedConstraints": null, "isTimeoutReached": null, "framePixelDelta": null } ], "maxColorTemperatureParameters": [ { "value": null, "applicationTime": null, "appliedConstraints": null, "isTimeoutReached": null, "framePixelDelta": null } ] }, "androidInjectionData": { "constraintsApplicationTime": [ 0 ], "appliedConstraints": [ {} ] }, "frontBackCameraData": { "cameraCheckData": [ { "type": null, "isAvailable": null, "faceDetected": null, "idDetected": null, "isTimeoutReached": null } ], "phashMinRotHamming": 0, "colorHistChiSqr": 0, "noiseMaeRatio": 0, "noiseDistroChiSqr": 0, "initialFrameCount": 0, "oppositeFrameCount": 0, "oppositeWithinPhashHammingMean": 0, "oppositeWithinPhashHammingMax": 0, "oppositeWithinNoiseMaeStdev": 0, "oppositeWithinBrightnessStdev": 0, "crossPhashHammingMean": 0, "crossPhashHammingMin": 0, "crossPhashHammingMax": 0, "crossColorHistChiSqrMean": 0, "crossNoiseMaeDelta": 0, "crossNoiseDistroChiSqrMean": 0, "crossBrightnessDelta": 0, "initialSceneFeatures": [ 0 ], "oppositeSceneFeatures": [ 0 ], "crossSceneFeatureDeltas": [ 0 ], "oppositeTemporalKurtosis": 0, "oppositeTemporalKsToGaussian": 0, "oppositeTemporalLevelsRatio": 0, "oppositeTemporalVarianceMean": 0, "oppositeTemporalVarianceStdev": 0, "initialDeviceId": "string", "oppositeDeviceId": "string", "initialGroupId": "string", "oppositeGroupId": "string", "initialFacingMode": "string", "oppositeFacingMode": "string", "initialWidth": 0, "initialHeight": 0, "oppositeWidth": 0, "oppositeHeight": 0, "initialFrameRate": 0, "oppositeFrameRate": 0, "deviceIdsDiffer": true, "groupIdsMatch": true, "experimentIncomplete": true }, "frameDuplicationData": { "validDuplicateCount": 0, "invalidDuplicateCount": 0, "continuousValidDuplicateCount": 0, "continuousInvalidDuplicateCount": 0, "isTimeoutReached": true, "initialDuplicateFramesDetected": true, "initialOpenCaptureDuplicateFramesDetected": true, "invalidInitialDuplicateFramesDetected": true, "continuousDuplicateFramesDetected": true, "numInitialDuplicateInstances": 0, "numInitialOpenCaptureDuplicateInstances": 0, "numInvalidInitialDuplicateInstances": 0, "numContinuousDuplicateInstances": 0, "preCaptureTotalFrames": 0, "preCaptureUniqueHashes": 0, "preCaptureMaxConsecutiveRun": 0, "preCaptureMaxOccurrenceCount": 0, "preCaptureMaxOccurrencePercentage": 0, "frameStats": [ { "frameCount": null, "isBlack": null, "isUnique": null, "timestamp": null, "updatedPercentage": null } ], "perPhaseStats": [ { "invalidDuplicateCount": null, "totalFrames": null, "uniqueHashes": null, "maxOccurrencePercentage": null } ] }, "zoomData": { "initialConstraints": {}, "initialZoom": 0, "maxZoomParameters": [ { "applicationTime": null, "appliedConstraints": null, "appliedZoom": null, "isTimeoutReached": null } ], "minZoomParameters": [ { "applicationTime": null, "appliedConstraints": null, "appliedZoom": null, "isTimeoutReached": null } ], "zoomInconsistencyDetected": true }, "exposureData": { "exposureParams": [ [] ], "frames": [ [] ], "sessionDiagnostics": [ { "exposureSupported": null, "exposureApplyConstraintError": null, "exposureApplyConstraintTimeout": null, "invalidTrackStateDetected": null, "exposureInconsistencyDetected": null, "interruptedCapture": null, "cameraCaptureStatus": null, "exposureMinDelay": null, "exposureInitialDelay": null, "baselineBrightness": null } ] }, "replayAttackData": { "collisionCount": 0, "isTimeoutReached": true, "intraSessionLoop": true, "intraSessionLookahead": true, "interSessionLookahead": true, "totalFrames": 0, "uniqueHashes": 0, "maxConsecutiveRun": 0, "maxOccurrenceCount": 0, "storedSessionsCount": 0, "storedHashesCount": 0, "storedSessionSizes": [ 0 ], "intraIncodeSessionLoop": true, "interIncodeSessionLoop": true }, "environmentIntegrity": { "rootDetected": true, "storageTamperingDetected": true, "environmentHookingDetected": true, "wasmTamperingDetected": true, "challengeInterruptionDetected": true, "debugModeDetected": true, "rootDetectionLevel": 0 }, "isMotionEnabled": true, "sensorDataReference": "string" }, "behavior": { "detectionValuesDeviation": "PASS", "monotonicBorder": "PASS", "motionStatus": "PASS" }, "captureMode": "AUTO", "hasDepth": true, "expectedDepth": true, "mediaInfo": { "videoChecksum": "string" }, "clientLogs": "string" }, "ocrDataConfidence": { "birthDateConfidence": 0, "nameConfidence": 0, "nameNativeScriptConfidence": 0, "firstNameNativeScriptConfidence": 0, "paternalLastNameNativeScriptConfidence": 0, "maternalLastNameNativeScriptConfidence": 0, "givenNameConfidence": 0, "firstNameConfidence": 0, "middleNameConfidence": 0, "nameSuffixConfidence": 0, "mothersSurnameConfidence": 0, "fathersSurnameConfidence": 0, "nickNameConfidence": 0, "fullNameMrzConfidence": 0, "mothersNameConfidence": 0, "fathersNameConfidence": 0, "mothersIdNumberConfidence": 0, "fathersIdNumberConfidence": 0, "spouseNameConfidence": 0, "birthNameConfidence": 0, "addressConfidence": 0, "streetConfidence": 0, "colonyConfidence": 0, "postalCodeConfidence": 0, "cityConfidence": 0, "stateConfidence": 0, "districtConfidence": 0, "stateCodeConfidence": 0, "countryCodeConfidence": 0, "genderConfidence": 0, "issueDateConfidence": 0, "expirationDateConfidence": 0, "issuedAtConfidence": 0, "expireAtConfidence": 0, "issuingAuthorityConfidence": 0, "mrz1Confidence": 0, "mrz2Confidence": 0, "mrz3Confidence": 0, "mrzFullConfidence": 0, "documentNumberConfidence": 0, "backNumberConfidence": 0, "personalNumberConfidence": 0, "nationalNumberConfidence": 0, "claveDeElectorConfidence": 0, "numeroEmisionCredencialConfidence": 0, "curpConfidence": 0, "nueConfidence": 0, "registrationDateConfidence": 0, "heightConfidence": 0, "birthPlaceConfidence": 0, "bloodTypeConfidence": 0, "eyeColorConfidence": 0, "classesConfidence": 0, "condConfidence": 0, "mentionsConfidence": 0, "refNumberConfidence": 0, "weightConfidence": 0, "hairConfidence": 0, "restrictionsConfidence": 0, "nationalityConfidence": 0, "nationalityMrzConfidence": 0, "nationalityAlpha3Confidence": 0, "maritalStatusConfidence": 0, "raceConfidence": 0, "taxIdNumberConfidence": 0, "jurisdictionCodeConfidence": 0 }, "userConsentTitle": "string", "userConsentText": "string", "userConsentStatus": true, "mlConsentStatus": true, "signedConsents": [ { "consentType": "ML", "regulationType": "US", "signed": true, "consentId": "string", "signedTime": 0 } ], "frontIdCaptureType": "AUTO", "backIdCaptureType": "AUTO", "selfieCaptureType": "AUTO", "omniVersion": "string", "clientId": "string", "scoresInfoId": "string", "shadowScoresInfoId": "string", "idAlreadyUsed": true, "idAlreadyUsedInterviewId": "string", "appliedTotalRule": { "name": "string", "expression": "string", "ruleType": "idValidation", "status": "OK", "triggered": true }, "needsReviewReason": "MANUAL_CAPTURE", "documentSubmissionMethod": "CAPTURED_DOCUMENT", "credentialsProvider": "APPLE", "formName": "string", "formFirstName": "string", "formLastName": "string", "formCpf": "string", "documentNumberSource": "FORM", "antifraudResult": { "originalStatus": "FAILED", "resolved": true, "resolvedReason": "string" }, "scannerSignals": { "b900InkCheck": true, "uvDullnessFront": true, "uvDullnessBack": true, "motionDetectionFront": true, "motionDetectionBack": true }, "elUnsignedDocuments": [ { "uuid": "string", "s3location": "string", "createdTime": 0, "documentName": "string" } ], "elSignedDocuments": [ { "uuid": "string", "s3location": "string", "createdTime": 0, "signerKeyName": "string", "externalFileId": "string", "qesAttemptId": "string" } ], "elSignedSignerKeyName": "string", "otpPhoneVerified": true, "otpEmailVerified": true, "tamperedSeverity": "low", "paperSeverity": "low", "screenSeverity": "low", "idAlterationModelVersion": "string", "idAlterationSeverity": "low", "fontAlterationConfidence": 0, "fontAlterationModelVersion": "string", "fontAlterationSeverity": "low", "punchedHolesModelVersion": "string", "punchedHolesSeverity": "low", "idLaminationModelVersion": "string", "idLaminationSeverity": "low", "idLaminationConfidence": 0, "idDamageDetectionModelVersion": "string", "idDamageDetectionSeverity": "low", "idDamageDetectionConfidence": 0, "aiGeneratedDocumentSeverity": "low", "aiGeneratedDocumentModelVersion": "string", "aiGeneratedDocumentConfidence": 0, "documentVisualAnomalySeverity": "low", "documentVisualAnomalyModelVersion": "string", "documentVisualAnomalyConfidence": 0, "fakeIdSeverity": "low", "fakeIdModelVersion": "string", "fakeIdInternalSeverity": "low", "fakeIdInternalModelVersion": "string", "batchId": "string", "tamperedConfidenceCorrected": 0, "fakeIdConfidenceCorrected": 0, "paperConfidenceCorrected": 0, "screenConfidenceCorrected": 0, "faceSpoofCorrected": true, "faceMismatchCorrected": true, "labelingComplete": true, "personalIdentificationNumberProvider": "UNKNOWN", "ineReferenceId": "string", "isReportedAsFraud": true, "fraudCandidateId": "string", "cleanedExceptAuthData": true, "isPartOfExperimentGroup": true, "featureGates": {}, "userProvidedName": "string", "userProvidedBirthDate": "string", "paperFrontConfidence": 0, "paperFrontModelVersion": "string", "screenFrontConfidence": 0, "screenFrontModelVersion": "string", "paperBackConfidence": 0, "paperBackModelVersion": "string", "screenBackConfidence": 0, "screenBackModelVersion": "string", "paperFrontConfidenceCorrected": 0, "screenFrontConfidenceCorrected": 0, "paperBackConfidenceCorrected": 0, "screenBackConfidenceCorrected": 0, "idAlterationFrontConfidence": 0, "idAlterationBackConfidence": 0, "frontPunchedHoles": { "confidence": 0 }, "backPunchedHoles": { "confidence": 0 }, "faceBrightness": 0, "dlClassRestrictions": [ { "dlClass": "string", "raw": "string", "fullRaw": "string", "baseCode": "string", "subCode": "string", "payload": [ "string" ] } ], "idValidationDeepCheck": true, "acuantId": "string", "mAdminArea": "string", "mSubAdminArea": "string", "mLocality": "string", "mSubLocality": "string", "mThoroughfare": "string", "mSubThoroughfare": "string", "mPostalCode": "string", "mCountryCode": "string", "mCountryName": "string", "gWatchlistType": "person", "gWatchlistShareUrl": "string", "gWatchlistMatchStatus": "no_match", "gWatchlistRiskLevel": "low", "gWatchlistTotalHits": 0, "gWatchlistTotalMatches": 0, "gWatchlistSanctionsMatchScore": 0, "gWatchlistWarningMatchScore": 0 } ] ``` --- - Path: `api-reference/interview` - URL: https://developer.incode.com/api-reference/interview/ - Markdown: https://developer.incode.com/api-reference/interview.md - Endpoint: `DELETE /omni/interview` # Delete PII data for single onboarding session. `DELETE /omni/interview` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Delete all PII data for onboarding sessions by given array of interview ids. Note: Works with Admin Token.Please, bear in mind that usage of this API endpoint for deletion of Customer Data will mean that Incode will no longer have access to it nor will be able to review or analyze any issue related to deleted Customer Data. After deletion, as Incode will not be able to retrieve the deleted Customer Data, any potential claims related to such data will be waived by Customer. Finally, for clarity purposes, Incode may continue to process information derived from Customer Data that has been deidentified, anonymized, and/or aggregated such that the data is no longer considered Personal Data under applicable Data Protection Laws and in a manner that does not identify individuals or Customer to improve its services and defend its legitimate interests. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `interviewId` | query | string | yes | Specify which interview. | | `keepCustomer` | query | boolean | | True or false. Indicates whether to keep idenity of the customer or not. Default is false(which means session and customer identity both will be deleted). | | `sendNotification` | query | boolean | | Flag to send a notification about a change interview status | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X DELETE https://demo-api.incodesmile.com/omni/interview?interviewId=%3CinterviewId%3E&keepCustomer=%3CkeepCustomer%3E&sendNotification=%3CsendNotification%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/interview?interviewId=%3CinterviewId%3E&keepCustomer=%3CkeepCustomer%3E&sendNotification=%3CsendNotification%3E", { method: "DELETE", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.delete("https://demo-api.incodesmile.com/omni/interview?interviewId=%3CinterviewId%3E&keepCustomer=%3CkeepCustomer%3E&sendNotification=%3CsendNotification%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/interview?interviewId=%3CinterviewId%3E&keepCustomer=%3CkeepCustomer%3E&sendNotification=%3CsendNotification%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("DELETE", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/interview?interviewId=%3CinterviewId%3E&keepCustomer=%3CkeepCustomer%3E&sendNotification=%3CsendNotification%3E") req = Net::HTTP::Delete.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/interview?interviewId=%3CinterviewId%3E&keepCustomer=%3CkeepCustomer%3E&sendNotification=%3CsendNotification%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/interview-events-dictionary` - URL: https://developer.incode.com/api-reference/interview-events-dictionary/ - Markdown: https://developer.incode.com/api-reference/interview-events-dictionary.md - Endpoint: `GET /omni/interview-events/dictionary` # Fetch interview event dictionary `GET /omni/interview-events/dictionary` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Returns the list of all existing interview event types ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/interview-events/dictionary \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/interview-events/dictionary", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/interview-events/dictionary", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/interview-events/dictionary")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/interview-events/dictionary") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/interview-events/dictionary"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json [ { "code": "string", "sender": "BACKEND", "description": "string", "locales": [ { "locale": "string", "name": "string" } ] } ] ``` --- - Path: `api-reference/interviews` - URL: https://developer.incode.com/api-reference/interviews/ - Markdown: https://developer.incode.com/api-reference/interviews.md - Endpoint: `DELETE /omni/interviews` # Delete PII data for multiple onboarding sessions with multiple options. `DELETE /omni/interviews` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Delete all PII data for onboarding sessions by given array of interview ids. Note: Works with Admin Token.Please, bear in mind that usage of this API endpoint for deletion of Customer Data will mean that Incode will no longer have access to it nor will be able to review or analyze any issue related to deleted Customer Data. After deletion, as Incode will not be able to retrieve the deleted Customer Data, any potential claims related to such data will be waived by Customer. Finally, for clarity purposes, Incode may continue to process information derived from Customer Data that has been deidentified, anonymized, and/or aggregated such that the data is no longer considered Personal Data under applicable Data Protection Laws and in a manner that does not identify individuals or Customer to improve its services and defend its legitimate interests. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `filter` | DeleteInterviewsFilterDto | yes | Filter for cleaning interview | | `filter.ids` | array[string] | | List of identifiers interviews | | `filter.flowId` | string | | Flow id, if passed, then delete all interviews related to this flow | | `filter.externalId` | string | | Specify which external-id. | | `filter.externalCustomerId` | string | | Specify which external-customer-id. | | `filter.lastActiveDate` | string (date-time) | | To delete all interviews active before this date | | `config` | DeleteInterviewsConfigDto | | Configuration for cleaning interview | | `config.deletePiiDataOnly` | boolean | | Boolean, optional. Flag indicating if this is partial delete, where only PII fields should be removed. Default is true. Note: False is allowed to be used only if this organization has the required setting. Default: `true` | | `config.deletionMode` | string | | Specifies the type of deletion to perform. Enum: `BIOMETRICS`, `PII`, `FULL` | | `config.sendNotification` | boolean | | Flag indicating to send a notification about a change interview status Default: `false` | | `config.relatedEntitiesToKeep` | array[string] | | List of related entities to be saved. Works only when deletePiiDataOnly=true Enum: `identities`, `faceTemplates`, `images`, `stats`, `chats`, `deviceFingerPrints` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | | `taskId` | string | | | | `statusUri` | string | | | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X DELETE https://demo-api.incodesmile.com/omni/interviews \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/interviews", { method: "DELETE", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.delete("https://demo-api.incodesmile.com/omni/interviews", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/interviews")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("DELETE", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/interviews") req = Net::HTTP::Delete.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/interviews"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive", "taskId": "string", "statusUri": "string" } ``` --- - Path: `api-reference/kyb` - URL: https://developer.incode.com/api-reference/kyb/ - Markdown: https://developer.incode.com/api-reference/kyb.md - Endpoint: `POST /omni/kyb` # EkybChecks Modular Business Verification `POST /omni/kyb` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Composable KYB endpoint. Clients specify which modules they need and Incode routes to the correct vendor for the country. Available modules: identity, address, statusEntityType, personAssociation, webPresence, websiteAnalysis, industryInfo, financialIntelligence, groupStructure. Every response carries a referenceId, and every run ends with one EKYB_CHECKS_RESULT webhook carrying the final result (also pollable at GET /omni/verification/async/{referenceId}). webPresence/websiteAnalysis/industryInfo/financialIntelligence may not finish within the synchronous response's wait budget; those are listed in pendingModules and the webhook follows once they resolve. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `plugins` | array[string] | | | | `country` | string | yes | ISO 3166-1 alpha-2 country code | | `taxId` | string | | Tax ID or company registration number | | `businessName` | string | | Registered legal name of the business | | `street` | string | | Street address | | `city` | string | | City | | `state` | string | | State / province | | `postalCode` | string | | Postal code / ZIP | | `personNames` | array[string] | | Names of persons to verify association with the business (PERSON_ASSOCIATION module). Each name is matched against the business officer/director registry; one result per name is returned. | | `website` | string | | Business website URL | | `alternativeNames` | array[string] | | Alternative or trade names for the business | | `phoneNumber` | string | | Business phone number | | `email` | string | | Business email address | | `modules` | array[string] | | Enum: `identity`, `address`, `statusEntityType`, `personAssociation`, `webPresence`, `websiteAnalysis`, `industryInfo`, `financialIntelligence`, `groupStructure` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `identity` | IdentityModuleResult | | | | `identity.taxId` | string | | Enum: `verified`, `approximateMatch`, `unverified`, `notFound` | | `identity.name` | string | | Enum: `verified`, `approximateMatch`, `unverified`, `notFound` | | `identity.registryName` | string | | | | `identity.registryNames` | array[string] | | | | `identity.tinMatchType` | string | | | | `identity.tinMatchMessage` | string | | | | `identity.error` | EkybChecksError | | | | `identity.error.status` | string | | Enum: `verified`, `approximateMatch`, `unverified`, `notFound` | | `identity.error.message` | string | | | | `address` | AddressModuleResult | | | | `address.addressVerification` | string | | Enum: `verified`, `approximateMatch`, `unverified`, `notFound` | | `address.registryAddress` | string | | | | `address.registryAddresses` | array[string] | | | | `address.officeType` | string | | | | `address.otherAddresses` | array[OtherAddress] | | | | `address.otherAddresses.address` | string | | | | `address.otherAddresses.type` | string | | | | `address.error` | EkybChecksError | | | | `address.error.status` | string | | Enum: `verified`, `approximateMatch`, `unverified`, `notFound` | | `address.error.message` | string | | | | `statusEntityType` | StatusEntityTypeModuleResult | | | | `statusEntityType.registrationStatus` | string | | | | `statusEntityType.entityType` | string | | | | `statusEntityType.incorporationDate` | string | | | | `statusEntityType.companySize` | string | | | | `statusEntityType.otherInfo` | OtherInfo | | | | `statusEntityType.otherInfo.vatNo` | string | | | | `statusEntityType.otherInfo.otherNames` | array[OtherName] | | | | `statusEntityType.otherInfo.otherNames.name` | string | | | | `statusEntityType.otherInfo.otherNames.businessNameType` | string | | | | `statusEntityType.otherInfo.leiNumber` | string | | | | `statusEntityType.otherInfo.panNumber` | string | | | | `statusEntityType.otherInfo.panName` | string | | | | `statusEntityType.otherInfo.allGSTINs` | array[Gstin] | | | | `statusEntityType.otherInfo.allGSTINs.gstin` | string | | | | `statusEntityType.otherInfo.allGSTINs.state` | string | | | | `statusEntityType.otherInfo.allGSTINs.status` | string | | | | `statusEntityType.error` | EkybChecksError | | | | `statusEntityType.error.status` | string | | Enum: `verified`, `approximateMatch`, `unverified`, `notFound` | | `statusEntityType.error.message` | string | | | | `personAssociation` | PersonAssociationModuleResult | | | | `personAssociation.personMatches` | array[EkybChecksPersonMatch] | | | | `personAssociation.personMatches.checkedName` | string | | | | `personAssociation.personMatches.status` | string | | Enum: `verified`, `approximateMatch`, `unverified`, `notFound` | | `personAssociation.personMatches.matchedName` | string | | | | `personAssociation.personMatches.matchedPerson` | EkybChecksPersonResult | | | | `personAssociation.personMatches.matchedPerson.name` | string | | | | `personAssociation.personMatches.matchedPerson.titles` | array[string] | | | | `personAssociation.personMatches.matchedPerson.percentSharesHeld` | number (double) | | | | `personAssociation.people` | array[EkybChecksPersonResult] | | | | `personAssociation.people.name` | string | | | | `personAssociation.people.titles` | array[string] | | | | `personAssociation.people.percentSharesHeld` | number (double) | | | | `personAssociation.error` | EkybChecksError | | | | `personAssociation.error.status` | string | | Enum: `verified`, `approximateMatch`, `unverified`, `notFound` | | `personAssociation.error.message` | string | | | | `webPresence` | WebPresenceModuleResult | | | | `webPresence.socialProfiles` | array[SocialProfile] | | | | `webPresence.socialProfiles.platform` | string | | | | `webPresence.socialProfiles.username` | string | | | | `webPresence.socialProfiles.url` | string | | | | `webPresence.socialProfiles.confidence` | string | | | | `webPresence.socialProfiles.followers` | integer (int64) | | | | `webPresence.socialProfiles.bio` | string | | | | `webPresence.socialProfiles.businessWebsite` | string | | | | `webPresence.socialProfiles.verified` | boolean | | | | `webPresence.websites` | array[string] | | | | `webPresence.phoneNumbers` | array[string] | | | | `webPresence.emailAddresses` | array[string] | | | | `webPresence.error` | EkybChecksError | | | | `webPresence.error.status` | string | | Enum: `verified`, `approximateMatch`, `unverified`, `notFound` | | `webPresence.error.message` | string | | | | `websiteAnalysis` | WebsiteAnalysisModuleResult | | | | `websiteAnalysis.url` | string | | | | `websiteAnalysis.domainAgeMonths` | integer (int32) | | | | `websiteAnalysis.domainCreatedAt` | string | | | | `websiteAnalysis.domainExpiresAt` | string | | | | `websiteAnalysis.registrar` | string | | | | `websiteAnalysis.parked` | boolean | | | | `websiteAnalysis.buildStatus` | string | | | | `websiteAnalysis.ssl` | Ssl | | | | `websiteAnalysis.ssl.isValid` | boolean | | | | `websiteAnalysis.ssl.issuer` | string | | | | `websiteAnalysis.ssl.certificateType` | string | | | | `websiteAnalysis.ssl.tlsVersion` | string | | | | `websiteAnalysis.ssl.expiryDate` | string | | | | `websiteAnalysis.ssl.daysUntilExpiry` | integer (int32) | | | | `websiteAnalysis.ssl.isWildcard` | boolean | | | | `websiteAnalysis.ssl.isSelfSigned` | boolean | | | | `websiteAnalysis.ssl.isRevoked` | boolean | | | | `websiteAnalysis.structureMetrics` | StructureMetrics | | | | `websiteAnalysis.structureMetrics.depth` | string | | | | `websiteAnalysis.structureMetrics.breadth` | string | | | | `websiteAnalysis.error` | EkybChecksError | | | | `websiteAnalysis.error.status` | string | | Enum: `verified`, `approximateMatch`, `unverified`, `notFound` | | `websiteAnalysis.error.message` | string | | | | `industryInfo` | IndustryInfoModuleResult | | | | `industryInfo.naicsCode` | string | | | | `industryInfo.title` | string | | | | `industryInfo.accuracy` | number (double) | | | | `industryInfo.riskLevel` | string | | | | `industryInfo.industryCode` | string | | | | `industryInfo.classification` | string | | | | `industryInfo.industryDesc` | string | | | | `industryInfo.activityDesc` | string | | | | `industryInfo.error` | EkybChecksError | | | | `industryInfo.error.status` | string | | Enum: `verified`, `approximateMatch`, `unverified`, `notFound` | | `industryInfo.error.message` | string | | | | `financialIntelligence` | FinancialIntelligenceModuleResult | | | | `financialIntelligence.liens` | array[Lien] | | | | `financialIntelligence.liens.filingNumber` | string | | | | `financialIntelligence.liens.filingType` | string | | | | `financialIntelligence.liens.filingDate` | string | | | | `financialIntelligence.liens.status` | string | | | | `financialIntelligence.liens.lienAmount` | number (double) | | | | `financialIntelligence.liens.matchLevel` | string | | | | `financialIntelligence.litigation` | array[Litigation] | | | | `financialIntelligence.litigation.docketNumber` | string | | | | `financialIntelligence.litigation.court` | string | | | | `financialIntelligence.litigation.state` | string | | | | `financialIntelligence.litigation.title` | string | | | | `financialIntelligence.litigation.caseType` | string | | | | `financialIntelligence.litigation.dateFiled` | string | | | | `financialIntelligence.litigation.matchLevel` | string | | | | `financialIntelligence.litigation.riskLevel` | string | | | | `financialIntelligence.bankruptcy` | array[Bankruptcy] | | | | `financialIntelligence.bankruptcy.bankruptcyType` | string | | | | `financialIntelligence.bankruptcy.docketNumber` | string | | | | `financialIntelligence.bankruptcy.court` | string | | | | `financialIntelligence.bankruptcy.title` | string | | | | `financialIntelligence.bankruptcy.dateFiled` | string | | | | `financialIntelligence.bankruptcy.riskLevel` | string | | | | `financialIntelligence.bankruptcy.matchLevel` | string | | | | `financialIntelligence.creditRating` | string | | | | `financialIntelligence.creditRatingDescription` | string | | | | `financialIntelligence.creditLimit` | Amount | | | | `financialIntelligence.creditLimit.currency` | string | | | | `financialIntelligence.creditLimit.value` | number (double) | | | | `financialIntelligence.probabilityOfDefault` | number (double) | | | | `financialIntelligence.turnover` | Turnover | | | | `financialIntelligence.turnover.currency` | string | | | | `financialIntelligence.turnover.value` | number (double) | | | | `financialIntelligence.turnover.range` | string | | | | `financialIntelligence.employeeCount` | string | | | | `financialIntelligence.negativeInformation` | object | | | | `financialIntelligence.error` | EkybChecksError | | | | `financialIntelligence.error.status` | string | | Enum: `verified`, `approximateMatch`, `unverified`, `notFound` | | `financialIntelligence.error.message` | string | | | | `groupStructure` | GroupStructureModuleResult | | | | `groupStructure.ultimateParent` | GroupCompany | | | | `groupStructure.ultimateParent.name` | string | | | | `groupStructure.ultimateParent.country` | string | | | | `groupStructure.ultimateParent.status` | string | | | | `groupStructure.ultimateParent.registrationNumber` | string | | | | `groupStructure.ultimateParent.level` | string | | | | `groupStructure.immediateParent` | GroupCompany | | | | `groupStructure.immediateParent.name` | string | | | | `groupStructure.immediateParent.country` | string | | | | `groupStructure.immediateParent.status` | string | | | | `groupStructure.immediateParent.registrationNumber` | string | | | | `groupStructure.immediateParent.level` | string | | | | `groupStructure.subsidiaryCompanies` | array[GroupCompany] | | | | `groupStructure.subsidiaryCompanies.name` | string | | | | `groupStructure.subsidiaryCompanies.country` | string | | | | `groupStructure.subsidiaryCompanies.status` | string | | | | `groupStructure.subsidiaryCompanies.registrationNumber` | string | | | | `groupStructure.subsidiaryCompanies.level` | string | | | | `groupStructure.affiliatedCompanies` | array[GroupCompany] | | | | `groupStructure.affiliatedCompanies.name` | string | | | | `groupStructure.affiliatedCompanies.country` | string | | | | `groupStructure.affiliatedCompanies.status` | string | | | | `groupStructure.affiliatedCompanies.registrationNumber` | string | | | | `groupStructure.affiliatedCompanies.level` | string | | | | `groupStructure.relatedEntities` | array[GroupCompany] | | | | `groupStructure.relatedEntities.name` | string | | | | `groupStructure.relatedEntities.country` | string | | | | `groupStructure.relatedEntities.status` | string | | | | `groupStructure.relatedEntities.registrationNumber` | string | | | | `groupStructure.relatedEntities.level` | string | | | | `groupStructure.error` | EkybChecksError | | | | `groupStructure.error.status` | string | | Enum: `verified`, `approximateMatch`, `unverified`, `notFound` | | `groupStructure.error.message` | string | | | | `scores` | array[EkybChecksScore] | | | | `scores.type` | string | | | | `scores.score` | number (double) | | | | `scores.rating` | string | | | | `pendingModules` | array[string] | | Enum: `identity`, `address`, `statusEntityType`, `personAssociation`, `webPresence`, `websiteAnalysis`, `industryInfo`, `financialIntelligence`, `groupStructure` | | `referenceId` | string | | | | `empty` | boolean | | | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/kyb \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" \ -d '{ "country": "" }' ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/kyb", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, body: JSON.stringify({ "country": "" }), }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/kyb", headers=headers, json={ "country": "" }) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/kyb")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{\n \"country\": \"\"\n}")) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/kyb") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" req.body = '{ "country": "" }' res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/kyb"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "country": "" }'); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "identity": { "taxId": "verified", "name": "verified", "registryName": "string", "registryNames": [ "string" ], "tinMatchType": "string", "tinMatchMessage": "string", "error": { "status": "verified", "message": "string" } }, "address": { "addressVerification": "verified", "registryAddress": "string", "registryAddresses": [ "string" ], "officeType": "string", "otherAddresses": [ { "address": "string", "type": "string" } ], "error": { "status": "verified", "message": "string" } }, "statusEntityType": { "registrationStatus": "string", "entityType": "string", "incorporationDate": "string", "companySize": "string", "otherInfo": { "vatNo": "string", "otherNames": [ { "name": "string", "businessNameType": "string" } ], "leiNumber": "string", "panNumber": "string", "panName": "string", "allGSTINs": [ { "gstin": "string", "state": "string", "status": "string" } ] }, "error": { "status": "verified", "message": "string" } }, "personAssociation": { "personMatches": [ { "checkedName": "string", "status": "verified", "matchedName": "string", "matchedPerson": { "name": "string", "titles": [ "string" ], "percentSharesHeld": 0 } } ], "people": [ { "name": "string", "titles": [ "string" ], "percentSharesHeld": 0 } ], "error": { "status": "verified", "message": "string" } }, "webPresence": { "socialProfiles": [ { "platform": "string", "username": "string", "url": "string", "confidence": "string", "followers": 0, "bio": "string", "businessWebsite": "string", "verified": true } ], "websites": [ "string" ], "phoneNumbers": [ "string" ], "emailAddresses": [ "string" ], "error": { "status": "verified", "message": "string" } }, "websiteAnalysis": { "url": "string", "domainAgeMonths": 0, "domainCreatedAt": "string", "domainExpiresAt": "string", "registrar": "string", "parked": true, "buildStatus": "string", "ssl": { "isValid": true, "issuer": "string", "certificateType": "string", "tlsVersion": "string", "expiryDate": "string", "daysUntilExpiry": 0, "isWildcard": true, "isSelfSigned": true, "isRevoked": true }, "structureMetrics": { "depth": "string", "breadth": "string" }, "error": { "status": "verified", "message": "string" } }, "industryInfo": { "naicsCode": "string", "title": "string", "accuracy": 0, "riskLevel": "string", "industryCode": "string", "classification": "string", "industryDesc": "string", "activityDesc": "string", "error": { "status": "verified", "message": "string" } }, "financialIntelligence": { "liens": [ { "filingNumber": "string", "filingType": "string", "filingDate": "string", "status": "string", "lienAmount": 0, "matchLevel": "string" } ], "litigation": [ { "docketNumber": "string", "court": "string", "state": "string", "title": "string", "caseType": "string", "dateFiled": "string", "matchLevel": "string", "riskLevel": "string" } ], "bankruptcy": [ { "bankruptcyType": "string", "docketNumber": "string", "court": "string", "title": "string", "dateFiled": "string", "riskLevel": "string", "matchLevel": "string" } ], "creditRating": "string", "creditRatingDescription": "string", "creditLimit": { "currency": "string", "value": 0 }, "probabilityOfDefault": 0, "turnover": { "currency": "string", "value": 0, "range": "string" }, "employeeCount": "string", "negativeInformation": {}, "error": { "status": "verified", "message": "string" } }, "groupStructure": { "ultimateParent": { "name": "string", "country": "string", "status": "string", "registrationNumber": "string", "level": "string" }, "immediateParent": { "name": "string", "country": "string", "status": "string", "registrationNumber": "string", "level": "string" }, "subsidiaryCompanies": [ { "name": "string", "country": "string", "status": "string", "registrationNumber": "string", "level": "string" } ], "affiliatedCompanies": [ { "name": "string", "country": "string", "status": "string", "registrationNumber": "string", "level": "string" } ], "relatedEntities": [ { "name": "string", "country": "string", "status": "string", "registrationNumber": "string", "level": "string" } ], "error": { "status": "verified", "message": "string" } }, "scores": [ { "type": "string", "score": 0, "rating": "string" } ], "pendingModules": [ "identity" ], "referenceId": "string", "empty": true } ``` --- - Path: `api-reference/onboarding-authentications-authenticate` - URL: https://developer.incode.com/api-reference/onboarding-authentications-authenticate/ - Markdown: https://developer.incode.com/api-reference/onboarding-authentications-authenticate.md - Endpoint: `POST /omni/onboarding-authentications/authenticate` # Authentication with face/selfie image `POST /omni/onboarding-authentications/authenticate` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Authenticate user by comparing base64 image from request and user's existing face template. In case of One to one authentication, user is first found in DB by hint from request. At least one of criteria parameter must be sent in request. In case of One to N authentication, hint is not used. In case face doesn't match error response is returned. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `base64Image` | string | yes | Image of user's face represented in base64. | | `faceCoordinates` | FaceCoordinatesDto | | Face coordinates | | `faceCoordinates.leftEyeX` | number (float) | yes | Left eye coordinates for X | | `faceCoordinates.leftEyeY` | number (float) | yes | Left eye coordinates for Y | | `faceCoordinates.rightEyeX` | number (float) | yes | Right eye coordinates for X | | `faceCoordinates.rightEyeY` | number (float) | yes | Right eye coordinates for Y | | `faceCoordinates.mouthX` | number (float) | | Left mouth coordinates for X. Note: the field is deprecated, use leftMouthX instead | | `faceCoordinates.leftMouthX` | number (float) | | Left mouth coordinates for X | | `faceCoordinates.mouthY` | number (float) | | Left mouth coordinates for Y. Note: the field is deprecated, use leftMouthY instead | | `faceCoordinates.leftMouthY` | number (float) | | Left mouth coordinates for Y | | `faceCoordinates.rightMouthX` | number (float) | yes | Right mouth coordinates for X | | `faceCoordinates.rightMouthY` | number (float) | yes | Right mouth coordinates for Y | | `faceCoordinates.noseTipX` | number (float) | yes | Nose coordinates for X | | `faceCoordinates.noseTipY` | number (float) | yes | Nose coordinates for Y | | `faceCoordinates.x` | number (float) | yes | X coordinate of face rectangle. | | `faceCoordinates.y` | number (float) | yes | Y coordinate of face rectangle. | | `faceCoordinates.width` | number (float) | yes | Width of face rectangle. | | `faceCoordinates.height` | number (float) | yes | Height of face rectangle. | | `hint` | string | | Customer hint. Possible hints are: customer id, email, phone number... | | `recordingId` | string | | Id of recording used in spoof detection. | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `overallStatus` | string | | Authentication status: FAIL/PASS. Enum: `PASS`, `FAIL` | | `captureAttemptsLimit` | CaptureAttemptsLimitDto | | Checked only if configured in the session flow. Shows remaining number of attempts, and maximum number of attempts allowed. | | `captureAttemptsLimit.max` | integer (int32) | | Maximum number of attempts to capture a photo. | | `captureAttemptsLimit.remaining` | integer (int32) | | Number of remaining attempts to capture a photo. | | `candidate` | string | | Id of matched candidate. | | `error` | OnboardingAuthenticationErrorDto | | Error name and description pair. Possible error names are: INACTIVE_SESSION, NONEXISTENT_CUSTOMER, LENSES_DETECTED, FACE_MASK_DETECTED, HEAD_COVER_DETECTED, CLOSED_EYES_DETECTED, FACE_TOO_DARK, SPOOF_ATTEMPT_DETECTED, USER_IS_NOT_RECOGNIZED, SELFIE_IMAGE_LOW_QUALITY, MULTIPLE_FACES_DETECTED, HINT_NOT_PROVIDED, FACE_NOT_FOUND, FACE_CROPPING_FAILED, FACE_TOO_SMALL, FACE_TOO_BLURRY, BAD_PHOTO_QUALITY, PROCESSING_ERROR, BAD_REQUEST | | `error.name` | string | | | | `error.message` | string | | | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/onboarding-authentications/authenticate \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" \ -d '{ "base64Image": "", "faceCoordinates": { "leftEyeX": "", "leftEyeY": "", "rightEyeX": "", "rightEyeY": "", "rightMouthX": "", "rightMouthY": "", "noseTipX": "", "noseTipY": "", "x": "", "y": "", "width": "", "height": "" } }' ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/onboarding-authentications/authenticate", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, body: JSON.stringify({ "base64Image": "", "faceCoordinates": { "leftEyeX": "", "leftEyeY": "", "rightEyeX": "", "rightEyeY": "", "rightMouthX": "", "rightMouthY": "", "noseTipX": "", "noseTipY": "", "x": "", "y": "", "width": "", "height": "" } }), }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/onboarding-authentications/authenticate", headers=headers, json={ "base64Image": "", "faceCoordinates": { "leftEyeX": "", "leftEyeY": "", "rightEyeX": "", "rightEyeY": "", "rightMouthX": "", "rightMouthY": "", "noseTipX": "", "noseTipY": "", "x": "", "y": "", "width": "", "height": "" } }) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/onboarding-authentications/authenticate")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{\n \"base64Image\": \"\",\n \"faceCoordinates\": {\n \"leftEyeX\": \"\",\n \"leftEyeY\": \"\",\n \"rightEyeX\": \"\",\n \"rightEyeY\": \"\",\n \"rightMouthX\": \"\",\n \"rightMouthY\": \"\",\n \"noseTipX\": \"\",\n \"noseTipY\": \"\",\n \"x\": \"\",\n \"y\": \"\",\n \"width\": \"\",\n \"height\": \"\"\n }\n}")) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/onboarding-authentications/authenticate") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" req.body = '{ "base64Image": "", "faceCoordinates": { "leftEyeX": "", "leftEyeY": "", "rightEyeX": "", "rightEyeY": "", "rightMouthX": "", "rightMouthY": "", "noseTipX": "", "noseTipY": "", "x": "", "y": "", "width": "", "height": "" } }' res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/onboarding-authentications/authenticate"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "base64Image": "", "faceCoordinates": { "leftEyeX": "", "leftEyeY": "", "rightEyeX": "", "rightEyeY": "", "rightMouthX": "", "rightMouthY": "", "noseTipX": "", "noseTipY": "", "x": "", "y": "", "width": "", "height": "" } }'); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "overallStatus": "PASS", "captureAttemptsLimit": { "max": 0, "remaining": 0 }, "candidate": "string", "error": { "name": "string", "message": "string" } } ``` --- - Path: `api-reference/onboarding-authentications-authenticate-third-party` - URL: https://developer.incode.com/api-reference/onboarding-authentications-authenticate-third-party/ - Markdown: https://developer.incode.com/api-reference/onboarding-authentications-authenticate-third-party.md - Endpoint: `POST /omni/onboarding-authentications/authenticate/third-party` # Authentication with face/selfie image `POST /omni/onboarding-authentications/authenticate/third-party` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Authenticate user by comparing base64 image from request and user's existing face template. In case of One to one authentication, user is first found in DB by hint from request. At least one of criteria parameter must be sent in request. In case of One to N authentication, hint is not used. In case face doesn't match error response is returned. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `base64Image` | string | yes | Image of user's face represented in base64. | | `faceCoordinates` | FaceCoordinatesDto | | Face coordinates | | `faceCoordinates.leftEyeX` | number (float) | yes | Left eye coordinates for X | | `faceCoordinates.leftEyeY` | number (float) | yes | Left eye coordinates for Y | | `faceCoordinates.rightEyeX` | number (float) | yes | Right eye coordinates for X | | `faceCoordinates.rightEyeY` | number (float) | yes | Right eye coordinates for Y | | `faceCoordinates.mouthX` | number (float) | | Left mouth coordinates for X. Note: the field is deprecated, use leftMouthX instead | | `faceCoordinates.leftMouthX` | number (float) | | Left mouth coordinates for X | | `faceCoordinates.mouthY` | number (float) | | Left mouth coordinates for Y. Note: the field is deprecated, use leftMouthY instead | | `faceCoordinates.leftMouthY` | number (float) | | Left mouth coordinates for Y | | `faceCoordinates.rightMouthX` | number (float) | yes | Right mouth coordinates for X | | `faceCoordinates.rightMouthY` | number (float) | yes | Right mouth coordinates for Y | | `faceCoordinates.noseTipX` | number (float) | yes | Nose coordinates for X | | `faceCoordinates.noseTipY` | number (float) | yes | Nose coordinates for Y | | `faceCoordinates.x` | number (float) | yes | X coordinate of face rectangle. | | `faceCoordinates.y` | number (float) | yes | Y coordinate of face rectangle. | | `faceCoordinates.width` | number (float) | yes | Width of face rectangle. | | `faceCoordinates.height` | number (float) | yes | Height of face rectangle. | | `hint` | string | | Customer hint. Possible hints are: customer id, email, phone number... | | `recordingId` | string | | Id of recording used in spoof detection. | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `overallStatus` | string | | Authentication status: FAIL/PASS. Enum: `PASS`, `FAIL` | | `captureAttemptsLimit` | CaptureAttemptsLimitDto | | Checked only if configured in the session flow. Shows remaining number of attempts, and maximum number of attempts allowed. | | `captureAttemptsLimit.max` | integer (int32) | | Maximum number of attempts to capture a photo. | | `captureAttemptsLimit.remaining` | integer (int32) | | Number of remaining attempts to capture a photo. | | `candidate` | string | | Id of matched candidate. | | `error` | OnboardingAuthenticationErrorDto | | Error name and description pair. Possible error names are: INACTIVE_SESSION, NONEXISTENT_CUSTOMER, LENSES_DETECTED, FACE_MASK_DETECTED, HEAD_COVER_DETECTED, CLOSED_EYES_DETECTED, FACE_TOO_DARK, SPOOF_ATTEMPT_DETECTED, USER_IS_NOT_RECOGNIZED, SELFIE_IMAGE_LOW_QUALITY, MULTIPLE_FACES_DETECTED, HINT_NOT_PROVIDED, FACE_NOT_FOUND, FACE_CROPPING_FAILED, FACE_TOO_SMALL, FACE_TOO_BLURRY, BAD_PHOTO_QUALITY, PROCESSING_ERROR, BAD_REQUEST | | `error.name` | string | | | | `error.message` | string | | | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/onboarding-authentications/authenticate/third-party \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" \ -d '{ "base64Image": "", "faceCoordinates": { "leftEyeX": "", "leftEyeY": "", "rightEyeX": "", "rightEyeY": "", "rightMouthX": "", "rightMouthY": "", "noseTipX": "", "noseTipY": "", "x": "", "y": "", "width": "", "height": "" } }' ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/onboarding-authentications/authenticate/third-party", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, body: JSON.stringify({ "base64Image": "", "faceCoordinates": { "leftEyeX": "", "leftEyeY": "", "rightEyeX": "", "rightEyeY": "", "rightMouthX": "", "rightMouthY": "", "noseTipX": "", "noseTipY": "", "x": "", "y": "", "width": "", "height": "" } }), }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/onboarding-authentications/authenticate/third-party", headers=headers, json={ "base64Image": "", "faceCoordinates": { "leftEyeX": "", "leftEyeY": "", "rightEyeX": "", "rightEyeY": "", "rightMouthX": "", "rightMouthY": "", "noseTipX": "", "noseTipY": "", "x": "", "y": "", "width": "", "height": "" } }) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/onboarding-authentications/authenticate/third-party")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{\n \"base64Image\": \"\",\n \"faceCoordinates\": {\n \"leftEyeX\": \"\",\n \"leftEyeY\": \"\",\n \"rightEyeX\": \"\",\n \"rightEyeY\": \"\",\n \"rightMouthX\": \"\",\n \"rightMouthY\": \"\",\n \"noseTipX\": \"\",\n \"noseTipY\": \"\",\n \"x\": \"\",\n \"y\": \"\",\n \"width\": \"\",\n \"height\": \"\"\n }\n}")) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/onboarding-authentications/authenticate/third-party") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" req.body = '{ "base64Image": "", "faceCoordinates": { "leftEyeX": "", "leftEyeY": "", "rightEyeX": "", "rightEyeY": "", "rightMouthX": "", "rightMouthY": "", "noseTipX": "", "noseTipY": "", "x": "", "y": "", "width": "", "height": "" } }' res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/onboarding-authentications/authenticate/third-party"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "base64Image": "", "faceCoordinates": { "leftEyeX": "", "leftEyeY": "", "rightEyeX": "", "rightEyeY": "", "rightMouthX": "", "rightMouthY": "", "noseTipX": "", "noseTipY": "", "x": "", "y": "", "width": "", "height": "" } }'); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "overallStatus": "PASS", "captureAttemptsLimit": { "max": 0, "remaining": 0 }, "candidate": "string", "error": { "name": "string", "message": "string" } } ``` --- - Path: `api-reference/onboarding-url` - URL: https://developer.incode.com/api-reference/onboarding-url/ - Markdown: https://developer.incode.com/api-reference/onboarding-url.md - Endpoint: `GET /omni/onboarding-url` # Fetch onboarding url `GET /omni/onboarding-url` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Fetch onboarding URL generated for specific user and specific flow. Only supply a `clientId`, if a redirect to mobile feature has been added to the flow configuration and SMS and desktop onboarding is needed. Alternatively, if only a QR code is needed, it's recommended to supply `clientId`, `components` and `tag` parameters. The alternative will return a highly performant app launcher screen when redirect to mobile has been ena bled. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `components` | query | string | | URL encode String Array of accepted string values Enum: `qr` | | `tag` | query | string | | Enum: `payments`, `verification` | | `shortUrl` | query | string | | Enum: `true`, `false` | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/onboarding-url?components=%3Ccomponents%3E&tag=%3Ctag%3E&shortUrl=%3CshortUrl%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/onboarding-url?components=%3Ccomponents%3E&tag=%3Ctag%3E&shortUrl=%3CshortUrl%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/onboarding-url?components=%3Ccomponents%3E&tag=%3Ctag%3E&shortUrl=%3CshortUrl%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/onboarding-url?components=%3Ccomponents%3E&tag=%3Ctag%3E&shortUrl=%3CshortUrl%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/onboarding-url?components=%3Ccomponents%3E&tag=%3Ctag%3E&shortUrl=%3CshortUrl%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/onboarding-url?components=%3Ccomponents%3E&tag=%3Ctag%3E&shortUrl=%3CshortUrl%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json {} ``` --- - Path: `api-reference/oneton-mfa` - URL: https://developer.incode.com/api-reference/oneton-mfa/ - Markdown: https://developer.incode.com/api-reference/oneton-mfa.md - Endpoint: `POST /omni/oneToN/mfa` # Perform MFA `POST /omni/oneToN/mfa` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment This method is used for confirming user identity by sending last four digits of his phone number. transactionId which was received in [/omni/oneToN/identify](#/Login/oneToNIdentify) response should be used. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `verificationCode` | string | | The last 4 digits of the user's phone number. | | `transactionId` | string | | Authentication identifier received in [/omni/oneToN/identify](#/Login/oneToNIdentify). | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `customerId` | string | | | | `token` | string | | | | `interviewId` | string | | | | `interviewToken` | string | | | | `transactionId` | string | | Authentication attempt identifier. | | `externalId` | string | | External ID of customer, provided by client on /omni/start call. | | `externalCustomerId` | string | | External ID of customer, provided by client on /omni/start call. | | `faceMatch` | boolean | | | | `spoofAttempt` | boolean | | Flag indicating if this was spoof attempt. | | `secondFactor` | boolean | | | | `children` | array[object] | | | | `spoofConfidence` | number (float) | | Score between 0 and 1 that indicates if an image is a spoof. Scores closer to 0 indicate a legitimate session with a live user, whereas scores closer to 1 indicate a higher probability that the provided image is spoofed and that the session may be fraudulent. | | `overallScore` | number (float) | | Overall score search, value form 0 to 100. | | `overallStatus` | string | | Overall status Enum: `PASS`, `FAIL` | | `deviceIPLocationData` | DeviceIPLocationDataDto | | | | `deviceIPLocationData.ipAddress` | string | | | | `deviceIPLocationData.ipCountry` | string | | | | `deviceIPLocationData.ipCity` | string | | | | `deviceIPLocationData.ipRegion` | string | | | ### 400 Custom error status: - 4004: Couldn't find record with verificationCode and transactionId Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/oneToN/mfa \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/oneToN/mfa", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/oneToN/mfa", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/oneToN/mfa")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/oneToN/mfa") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/oneToN/mfa"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "customerId": "6ea0859301170f0016fbd985", "token": "eyJhbGciOiJIUzI1NiJ9.eyJleHRlcm5hbFVzZXJJZCI6IjYx85Mjdh...", "interviewId": "6gdftr59301170f0011234567", "interviewToken": "eyJhbGciOiJIUzI1NiJ9.eyJleHR6IjYx85Mj6IjYx85Mjlcm...", "transactionId": "6128ca6c515d0e0013806d55", "externalId": "string", "externalCustomerId": "string", "faceMatch": true, "spoofAttempt": true, "secondFactor": true, "children": [ {} ], "spoofConfidence": 0, "overallScore": 0, "overallStatus": "PASS", "deviceIPLocationData": { "ipAddress": "string", "ipCountry": "string", "ipCity": "string", "ipRegion": "string" } } ``` --- - Path: `api-reference/phone` - URL: https://developer.incode.com/api-reference/phone/ - Markdown: https://developer.incode.com/api-reference/phone.md - Endpoint: `GET /omni/phone` # Get phone `GET /omni/phone` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Get the phone previously added to the interview. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `id` | query | string | | | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `phone` | string | | | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/phone?id=%3Cid%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/phone?id=%3Cid%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/phone?id=%3Cid%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/phone?id=%3Cid%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/phone?id=%3Cid%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/phone?id=%3Cid%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "phone": "string" } ``` --- - Path: `api-reference/phone-post` - URL: https://developer.incode.com/api-reference/phone-post/ - Markdown: https://developer.incode.com/api-reference/phone-post.md - Endpoint: `POST /omni/phone` # Add phone `POST /omni/phone` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Add phone to interview ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `phone` | string | | User's phone number. E.164 number convention. | | `optInGranted` | boolean | | Indicates whether opt-in is granted Default: `false` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | | `existingCustomer` | boolean | | Flag indicating if this user with given phone already exists in the system. | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/phone \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/phone", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/phone", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/phone")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/phone") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/phone"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive", "existingCustomer": true } ``` --- - Path: `api-reference/process-antifraud` - URL: https://developer.incode.com/api-reference/process-antifraud/ - Markdown: https://developer.incode.com/api-reference/process-antifraud.md - Endpoint: `GET /omni/process/antifraud` # Process Antifraud `GET /omni/process/antifraud` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment This endpoint should be called only after [process-id](ref:processid) and [process-face](ref:processface) both are over. This endpoint gives ability to compare current interview with existing interviews and customers and detect anomalies than could be signs of fraud. **Important: Calling this endpoint affects the total [score](ref:getscores).** ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `status` | string | | Enum: `FAILED`, `PASSED`, `NOT_EXECUTED`, `MANUAL_REVIEW` | | `stepName` | string | | Enum: `FuzzyFieldAntifraudExecutor`, `IdFaceAntifraudExecutor`, `SelfieFaceAntifraudExecutor`, `AttemptLimitAntifraudExecutor` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/process/antifraud \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/process/antifraud", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/process/antifraud", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/process/antifraud")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/process/antifraud") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/process/antifraud"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "status": "FAILED", "stepName": "FuzzyFieldAntifraudExecutor" } ``` --- - Path: `api-reference/process-approve` - URL: https://developer.incode.com/api-reference/process-approve/ - Markdown: https://developer.incode.com/api-reference/process-approve.md - Endpoint: `POST /omni/process/approve` # Approve customer `POST /omni/process/approve` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Approve customer for omnichannel program. Body is optional and used for auto approve when only specific features should be approved. It is not possible to approve twice the same user (e.g. with the same phone number). ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `interviewId` | query | string | | Session id for which approval is requested. | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `approveComponents` | array[string] | | | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | | `uuid` | string | | Id of newly created customer if approval was successful. | | `token` | string | | Access token to be used for newly created customer, in case approval was successful. | ### 400 Custom error status: - 4006: User with given phone already exists Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/process/approve?interviewId=%3CinterviewId%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/process/approve?interviewId=%3CinterviewId%3E", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/process/approve?interviewId=%3CinterviewId%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/process/approve?interviewId=%3CinterviewId%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/process/approve?interviewId=%3CinterviewId%3E") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/process/approve?interviewId=%3CinterviewId%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive", "uuid": "string", "token": "string" } ``` --- - Path: `api-reference/process-face` - URL: https://developer.incode.com/api-reference/process-face/ - Markdown: https://developer.incode.com/api-reference/process-face.md - Endpoint: `POST /omni/process/face` # Process face `POST /omni/process/face` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment **Note: This endpoint should be called only after [selfie](#/Onboarding/addFaceByThirdParty) and [front-id](#/Onboarding/addFrontIdV2) both are over.** It is validating user's selfie against photo from ID (1:1 recognition). Also, this call validates if user already exists in the system (1:N recognition). **It is highly recommended that before calling this process-face endpoint, one should first finish following endpoints: [add-front](#/Onboarding/addFrontIdV2), [add-back](#/Onboarding/addBackIdV2)(not required in case of passports), [process-id](#/Onboarding/processId) and [add-selfie](#/Onboarding/addFaceByThirdParty) in order to get complete result view based on id verification, face recognition and liveness.** ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `imageType` | query | string | | Enum: `selfie`, `videoSelfie` | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `confidence` | number (float) | yes | Value 0 means that selfie doesn't match face photo from ID. | | `existingUser` | boolean | yes | Flag indicating if this user already exists in the system. | | `existingInterviewId` | string | | Session id where user is approved previously (existingUser=true). | | `existingExternalId` | string | | In case the session does have an externalId which can be assigned at start call. | | `nameMatched` | boolean | | In case user is approved previously (existingUser=true), flag indicating if names are matching. | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/process/face?imageType=%3CimageType%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/process/face?imageType=%3CimageType%3E", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/process/face?imageType=%3CimageType%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/process/face?imageType=%3CimageType%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/process/face?imageType=%3CimageType%3E") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/process/face?imageType=%3CimageType%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "confidence": 0, "existingUser": true, "existingInterviewId": "string", "existingExternalId": "string", "nameMatched": true } ``` --- - Path: `api-reference/process-face-vs-second-id` - URL: https://developer.incode.com/api-reference/process-face-vs-second-id/ - Markdown: https://developer.incode.com/api-reference/process-face-vs-second-id.md - Endpoint: `POST /omni/process/face-vs-second-id` # Process face vs second id `POST /omni/process/face-vs-second-id` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment **Note**: This endpoint should be called only after [selfie](#/Onboarding/addFaceByThirdParty) and [front-second-id](#/Onboarding/addFrontSecondIdV2) both are over. It is validating user's selfie against photo from ID (1:1 recognition). Also, this call validates if user already exists in the system (1:N recognition). It is highly recommended that before calling this process-face endpoint, one should first finish following endpoints: [add-front-secondId](#/Onboarding/addFrontSecondIdV2), [add-back-secondId](#/Onboarding/addBackSecondIdV2) (not required in case of passports), [process-secondId](#/Onboarding/processSecondId) and [add-selfie](#/Onboarding/addFaceByThirdParty) in order to get complete result view based on id verification, face recognition and liveness. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `imageType` | query | string | | Enum: `selfie`, `videoSelfie` | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `confidence` | number (float) | yes | Value 0 means that selfie doesn't match face photo from ID. | | `existingUser` | boolean | yes | Flag indicating if this user already exists in the system. | | `existingInterviewId` | string | | Session id where user is approved previously (existingUser=true). | | `existingExternalId` | string | | In case the session does have an externalId which can be assigned at start call. | | `nameMatched` | boolean | | In case user is approved previously (existingUser=true), flag indicating if names are matching. | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/process/face-vs-second-id?imageType=%3CimageType%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/process/face-vs-second-id?imageType=%3CimageType%3E", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/process/face-vs-second-id?imageType=%3CimageType%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/process/face-vs-second-id?imageType=%3CimageType%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/process/face-vs-second-id?imageType=%3CimageType%3E") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/process/face-vs-second-id?imageType=%3CimageType%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "confidence": 0, "existingUser": true, "existingInterviewId": "string", "existingExternalId": "string", "nameMatched": true } ``` --- - Path: `api-reference/process-global-watchlist` - URL: https://developer.incode.com/api-reference/process-global-watchlist/ - Markdown: https://developer.incode.com/api-reference/process-global-watchlist.md - Endpoint: `POST /omni/process/global-watchlist` # Process global watchlist `POST /omni/process/global-watchlist` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment This endpoint processes a global watchlist search for an individual using the watchlist configuration defined in the flow (including settings for subscription to ongoing monitoring). It performs a comprehensive screening against global watchlists (sanctions, PEPs, adverse media) and saves the results for further processing. The endpoint returns a basic success/failure response. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `firstName` | string | | | | `surName` | string | | | | `birthYear` | integer (int32) | | Year of birth, if known | | `countryCodes` | array | | | | `watchlistTypes` | array | | | | `subscribe` | boolean | | Subscribes to updates on the watchlists to receive notification for updates on the search. | | `fuzziness` | number (float) | | Determines how closely the returned results must match the supplied name. | | `search_profile` | string | | Search profile set for the client to use specify what sources they will be searching against. | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/process/global-watchlist \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/process/global-watchlist", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/process/global-watchlist", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/process/global-watchlist")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/process/global-watchlist") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/process/global-watchlist"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/process-government-validation` - URL: https://developer.incode.com/api-reference/process-government-validation/ - Markdown: https://developer.incode.com/api-reference/process-government-validation.md - Endpoint: `POST /omni/process/government-validation` # Process government validation `POST /omni/process/government-validation` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment This endpoint reads the country code from the interview which can be set at the moment of calling the start endpoint or is updated based on the processed id. Request body can optionally contain data from id in JSON. If omitted, data from scanned ID is read. **Country codes**: **MEX**: Mexico - INE Validation. When government face validation is enabled this method compares the user's selfie against the image in the INE database. The method should be called after [add-face](/api-reference/add-face-third-party/) is over and one of ([process-id](/api-reference/process-id/) or [document-id](/api-reference/add-document-id/)) is over. Request parameters: - fallbackEnabled: Boolean, optional. If it is not sent, it will default to false. - scrapingMethod: Boolean, optional. If it is not sent, it will default to false. If parameter fallbackEnabled is true and there's some connection or infrastructure error with the INE service, validation by scraping will start. If parameter scrapingMethod is true, then direct connection to INE service won't be attempted and the scraping approach will be used instead. Request Body is optional - if not sent, data will be taken from the session: - ocr: String, mandatory for INE and IFE. - cic: String, mandatory for INE. - nombre: String, optional. - apellidoPaterno: String, optional. - apellidoMaterno: String, optional. - anioRegistro: String, optional. - anioEmision: String, optional. - numeroEmisionCredencial: String, mandatory for ife. - claveElector: String, mandatory for ife. - curp: String, optional. **COL**: Colombia - Registraduría Validation. Currently there's no option for face validation. Can validate registraduría or extranjería (foreign citizens living in colombia). **Note**: Government Validations for Colombia acquired via TusDatos Request Body is optional - if not sent data will be taken from the session: - idNumber: String, mandatory. - fechaEmision: String, mandatory when Nationality is not Columbia. Format dd/mm/yyyy - nombre: String, optional. - apellidoPaterno: String, optional. - apellidoMaterno: String, optional. **ARG**: Argentina - Renaper Validation. Currently there's no option for face validation. Request Body: - idNumber: String, mandatory. **PER**: Peru - Reniec Validation. Currently there's no option for face validation. Can validate Reniec. **Note**: Government Validations for Peru obtained by checking against TOC, a risk database. ID must include DNI in order to validate. Request Body is optional - if not sent data will be taken from the session. - idNumber: String, mandatory (corresponds to DNI number) - nombre: String, optional - if not provided ocrValidation for FistName will be UNKNOWN - apellidoPaterno: String, optional - if not provided ocrValidation for PaternalLastName will be UNKNOWN - apellidoMaterno: String, optional - if not provided ocrValidation for MaternalLastName will be UNKNOWN - birthDate: String, optional - if not provided ocrValidation for BirthDate will be UNKNOWN - gender: String, optional - if not provided ocrValidation for Gender will be UNKNOWN **CHL**: Chile - Sinacofi Validation. Currently there's no option for face validation. Can validate Sinacofi. **Note**: Government Validations for Chile obtained by checking against TOC, a risk database. ID must include DNI in order to validate. Request Body is optional - if not sent data will be taken from the session: - idNumber: String, mandatory (corresponds Serie) - personalNumber: String, mandatory (corresponds RUT/RUN) **AUS**: Australia - Government Validation for Passport and Driver License. Request Body is optional - if not sent data will be taken from the OCR. For Passport validation: - firstName: String, mandatory. - middleName: String, optional. - paternalLastName: String, mandatory. - cic: String, mandatory (corresponds to Passport number). - documentType: String, mandatory ("Passport"). - birthDate: String, mandatory. Format yyyy/MM/dd. - address: String, optional. For Driver License validation: - firstName: String, mandatory. - middleName: String, optional. - paternalLastName: String, mandatory. - documentType: String, mandatory ( com"DriversLicense"). - birthDate: String, mandatory. Format yyyy/MM/dd. - refNumber: String, mandatory (corresponds to Card number). - cic: String, mandatory (corresponds to License number). - issuerState: String, mandatory (e.g., "NSW"). - address: String, optional. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `fallbackEnabled` | query | boolean | | Default: `false` | | `scrapingMethod` | query | boolean | | Default: `false` | | `scrapingV2` | query | boolean | | Default: `false` | | `scrapingV3` | query | boolean | | Default: `false` | | `interviewId` | query | string | | | | `countryCode` | query | string | | | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `ocr` | string | | | | `cic` | string | | | | `nombre` | string | | | | `apellidoPaterno` | string | | | | `apellidoMaterno` | string | | | | `anioRegistro` | string | | | | `anioEmision` | string | | | | `numeroEmisionCredencial` | string | | | | `claveElector` | string | | | | `curp` | string | | | | `base64Image` | string | | | | `idNumber` | string | | | | `fechaEmision` | string | | | | `personalNumber` | string | | | | `birthDate` | string | | | | `gender` | string | | | | `birthPlace` | string | | | | `address` | string | | | | `addressLine2` | string | | | | `addressState` | string | | | | `latitude` | string | | | | `longitude` | string | | | | `macAddress` | string | | | | `ip` | string | | | | `osVersion` | string | | | | `applicationName` | string | | | | `sufix` | string | | | | `firstName` | string | | | | `givenName` | string | | | | `middleName` | string | | | | `maternalLastName` | string | | | | `paternalLastName` | string | | | | `documentType` | string | | Enum: `Unknown`, `Passport`, `Visa`, `DriversLicense`, `IdentificationCard`, `Permit`, `Currency`, `ResidenceDocument`, `TravelDocument`, `BirthCertificate`, `VehicleRegistration`, `Other`, `WeaponLicense`, `TribalIdentification`, `VoterIdentification`, `Military`, `TaxIdentification`, `FederalID`, `MedicalCard` | | `refNumber` | string | | | | `issuerState` | string | | | | `aamvaMessageDestination` | string | | | | `realIdConformantCode` | string | | | | `driverLicenseNonCommercialStatusCode` | string | | | | `documentTypeId` | integer (int32) | | | | `issuedAt` | string | | | | `documentNumber` | string | | | | `expireAt` | string | | | | `eyeColor` | string | | | | `height` | string | | | | `weight` | string | | | | `city` | string | | | | `postalCode` | string | | | | `email` | string | | | | `fullName` | string | | | | `nationality` | string | | | | `dateFormat` | string | | | | `fingerprintsData` | FingerprintsData | | | | `fingerprintsData.type` | integer (int32) | | | | `fingerprintsData.fingerprints` | array[Fingerprint] | yes | | | `fingerprintsData.fingerprints.index` | integer (int32) | | | | `fingerprintsData.fingerprints.base64Fingerprint` | string | | | | `fingerprintsData.fingerprints.fingerprintMetadata` | FingerprintMetadata | | | | `fingerprintsData.fingerprints.fingerprintMetadata.device` | string | | | | `fingerprintsData.fingerprints.fingerprintMetadata.resolution` | string | | | | `fingerprintsData.fingerprints.fingerprintMetadata.qualityScore` | string | | | ## Responses ### 200 Responses: **MEX**: - statusCode: Integer. Possible values: - OK (0, "ok"), - VALIDATION_ERROR (1, "validationError"), - INE_CONNECTION_ERROR (2, "ineConnectionError"), - INE_INFRASTRUCTURE_ERROR (3, "ineInfrastructureError"), - MODULE_NOT_SUPPORTED (4, "moduleNotSupported"), - MISSING_DOCUMENT_ID (5, "missingDocumentId"), - MISSING_SELFIE (6, "missingSelfie"), - USER_NOT_FOUND (7, "userNotFound"); - USER_NOT_FOUND_IN_INE_DB (8, "userNotFoundInIneDb"), - NOT_ENOUGH_DATA (9, "notEnoughData"), - LIVENESS_FAIL (10, "livenessFail") - INE_NOT_CURRENT (11, "ineNotCurrent") - INE_REPORTED_LOST (12, "ineReportedLost") - INE_REPORTED_STOLEN (13, "ineReportedStolen") - INE_SIGNATURE_ERROR (14, "ineSignaturError") - INE_NOT_VALID (15, "ineNotValid") - PROVIDER_UNAVAILABLE (98, "providerUnavailable"). Also returned for an INE-side service degradation (codigoRespuesta=0 with similitud1=null): the face comparison never produced a score, so recognitionConfidence stays null — distinct from a real face mismatch. In that case errorDescription identifies the cause. - COUNTRY_NOT_SUPPORTED (99, "countryNotSupported") - PROCESSING_INE (-1, "processingIne"). It only applies for Listas Nominales (INE Scraping). - PROCESSING (-4, "processing") - CONNECTION_ERROR (17, "connectionError") - INFRASTRUCTURE_ERROR (18, "infrastructureError") - TRANSACTION_LIMIT_REACHED (205, "transactionLimitReached") - valid: Boolean. Flag stating if request processed successfully. - registralSituation: Structure with following fields: - tipoSituacionRegistral: String. Possible values: [ VIGENTE, NO_VIGENTE, DATOS_NO_ENCONTRADOS ] - tipoReporteRoboExtravio: String, optional. Possible values: [ null, REPORTE_DE_EXTRAVIO, REPORTE_DE_ROBO, REPORTE_DE_ROBO_TEMPORAL, REPORTE_DE_EXTRAVIO_TEMPORAL ] - governmentValidation: Structure with following fields: - validationStatus: Structure with following fields: - value: Look statusCode - status: Look statusCode - key: - ok: when value OK - error: when value VALIDATION_ERROR, INE_INFRASTRUCTURE_ERROR, USER_NOT_FOUND_IN_INE_DB, INE_NOT_CURRENT, INE_REPORTED_LOST, INE_REPORTED_STOLEN, USER_NOT_FOUND, TRANSACTION_LIMIT_REACHED - unknown: otherwise - ocrValidation: Array of structure with following fields: - value: Possible values - true false empty - status: Possible values - OK FAIL UNKNOWN - key: Possible values - issueDate firstName maternalLastName paternalLastName ocr personalId electorsKey emissionNumber registrationDate - ocrValidationOverall: Structure with following fields: - value: Calculated value based on Ocr Validation between 0 and 100 - status: OK or FAIL based on calculation - overall: Same as ocrValidationOverall - ocrData: Look at fetch-OCR - deviceInfo: Look at fetch-deviceInfo - ineTransactionId: String **COL**: - statusCode: 0 - OK, other not OK* - governmentValidation - consists of the following fields: - validationStatus - following values: - OK (0, "ok"), - VALIDATION_ERROR (1, "validationError"), - CONNECTION_ERROR (17, "connectionError"), - USER_NOT_FOUND (7, "userNotFound"), - NOT_ENOUGH_DATA (9, "notEnoughData") - ocrValidation: Array of structure with following fields: - value: Possible values - true false empty - status: Possible values - OK FAIL UNKNOWN - key: Possible values - firstName maternalLastName paternalLastName ocr birthDate gender - governmentValidationResponse (DEPRECATED): - COL1: "governmentValidationResponse": { "codError": "0", "contract_id": 111, "departamentoExpedicion": "ATLANTICO", "descripcionEstado": "VIGENTE", "estadoCedula": "0", "fechaExpedicion": "31/12/1990", "fechaHoraConsulta": "2025-03-12 20:32:29", "municipioExpedicion": "BARRANQUILLA", "nuip": "000000000", "particula": "DE", "primerApellido": "Perez", "primerNombre": "Jose", "segundoApellido": "Perez", "segundoNombre": "Juan" } - COL2: "governmentValidationResponse": { "data": { "anio_resolucion": 0, "codigo_error_datos_cedula": 0, "codigo_respuesta": "", "departamento_expedicion": "ATLANTICO", "descripcion_estado": "Vigente", "estado_cedula": 0, "fecha_expedicion": "Mon, 31 Dec 1990 00:00:00 GMT", "informacion_adicional": "", "municipio_expedicion": "BARRANQUILLA", "nombre_completo": "Jose Juan Perez Perez", "nuip": 000000000, "numero_resolucion": 0, "particula": "DE", "primer_apellido": "Perez", "primer_nombre": "Jose", "segundo_apellido": "Perez", "segundo_nombre": "Juan" } } - ocrValidationOverall: - ocrValidationOverall: 100 - 15 each fail or unknown ocrValidation - status: ocrValidationOverall > 55 => OK, else FAIL - overall: same as ocrValidationOverall **ARG**: - statusCode: Integer. Value 0 means verification Ok. - governmentValidation - consists of following fieds: - validationStatus - following values: - OK (0, "ok") - FACE_COMPARISON_FAILED (207, "faceComparisonFailed") - PROCESSING (-4, "processing") - PROVIDER_NOT_CONFIGURED (96, "providerNotConfigured") - PROVIDER_UNAVAILABLE (98, "providerUnavailable") - USER_NOT_FOUND (7, "userNotFound") - VALIDATION_ERROR (1, "validationError") - NO_INFORMATION (204, "noInformation") **PER**: - statusCode: 0 - OK, other not OK - governmentValidation - consists of following fieds: - validationStatus - following values: - OK (0, "ok"), - VALIDATION_ERROR (1, "validationError"), - INE_CONNECTION_ERROR (2, "ineConnectionError"), - USER_NOT_FOUND (7, "userNotFound"), - NOT_ENOUGH_DATA (9, "notEnoughData") - ocrValidation: Array of structure with following fields: - value: Possible values - true false empty - status: Possible values - OK FAIL UNKNOWN - key: Possible values - documentNumber firstName maternalLastName paternalLastName ocr birthDate gender - governmentValidationResponse: Response received from external source (see example) - ocrValidationOverall: - ocrValidationOverall: 100 - 15*each fail or unknown ocrValidation - status: ocrValidationOverall > 55 => OK, else FAIL - overall: same as ocrValidationOverall **CHL**: - statusCode: 0 - OK, other not OK - governmentValidation - consists of following fieds: - validationStatus - following values: - OK (0, "ok"), - VALIDATION_ERROR (1, "validationError"), - INE_CONNECTION_ERROR (2, "ineConnectionError"), - USER_NOT_FOUND (7, "userNotFound"), - NOT_ENOUGH_DATA (9, "notEnoughData") - ocrValidation: Array of structure with following fields: - value: Possible values - true false empty - status: Possible values - OK FAIL UNKNOWN - key: Possible values - documentNumber firstName maternalLastName paternalLastName ocr birthDate gender - governmentValidationResponse: Response received from external source (see example) - ocrValidationOverall: - ocrValidationOverall: 100 - 15*each fail or unknown ocrValidation - status: ocrValidationOverall > 55 => OK, else FAIL - overall: same as ocrValidationOverall **AUS**: - statusCode: 0 - OK, other not OK - valid: Boolean. Flag stating if request processed successfully. - governmentValidation - consists of following fields: - validationStatus - following values: - OK (0, "ok"), - USER_NOT_FOUND (7, "userNotFound"), - NOT_ENOUGH_DATA (9, "notEnoughData"), - CONNECTION_ERROR (17, "connectionError") - ocrValidation: Array of structure with following fields: - value: Possible values - true false - status: Possible values - OK FAIL - key: Possible values - documentNumber firstName paternalLastName birthDate expirationDate issueDate - ocrValidationOverall: - value: Calculated value between 0 and 100 - status: OK or FAIL based on calculation - overall: Same as ocrValidationOverall - errorDescription: String. Present only in error responses with values like "userNotFound", "notEnoughData", "connectionError" **BRA**: - statusCode: 0 - OK, other not OK. Always mirrors validationStatus and is independent of the overall score. - valid: Boolean. True when validationStatus is OK (statusCode 0), i.e. CPF found. Note this tracks validationStatus, NOT the overall score: an OCR-field mismatch or a SERPRO_FACE face mismatch can leave valid=true while overall is FAIL. - governmentValidation - consists of following fields: - validationStatus - following values: - OK (0, "ok"): CPF found, data and/or face matched - VALIDATION_ERROR (1, "validationError") - MODULE_NOT_SUPPORTED (4, "moduleNotSupported") - MISSING_SELFIE (6, "missingSelfie"): required for SERPRO_FACE - USER_NOT_FOUND (7, "userNotFound"): CPF not found, or face not matched - CPF_NUMBER_INVALID_OR_MISSING (16, "cpfNumberInvalidOrMissing") - CONNECTION_ERROR (17, "connectionError") - PROVIDER_NOT_CONFIGURED (96, "providerNotConfigured") - PROVIDER_UNAVAILABLE (98, "providerUnavailable") - GEOGRAPHIC_REGION_NOT_SUPPORTED (99, "geographicRegionNotSupported") - recognitionConfidence: Present when government face validation is attempted (e.g. SERPRO_FACE). - value: "100.0" when face matched, "0.0" when no match or face not in SERPRO DB - status: OK when matched, FAIL otherwise - ocrValidation: Array of structure with following fields (present for both SERPRO and SERPRO_FACE when validationStatus is OK): - value: Possible values - true false - status: Possible values - OK FAIL UNKNOWN - key: Possible values - documentNumber fullName birthDate Note: fullName is derived from firstName, paternalLastName, and maternalLastName, which all map to the same SERPRO nome field and always share the same status. - ocrValidationOverall: - value: Calculated value between 0 and 100 - status: OK or FAIL based on calculation - overall: Equals ocrValidationOverall for SERPRO. For SERPRO_FACE the face recognitionConfidence can override it (e.g. face not in DB / not matched drives overall to 0.0 FAIL even when ocrValidationOverall is OK). - errorDescription: String. Present only in error responses Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `valid` | boolean | | | | `statusCode` | integer (int32) | | | | `governmentValidation` | GovernmentValidation | | - recognitionConfidence: Present when government face validation is attempted (e.g. SERPRO_FACE). - value: "100.0" when face matched, "0.0" when no match or face not in SERPRO DB - status: OK when face matched, FAIL when no match or face not in SERPRO DB - validationStatus: Key-value mapping: - OK (0, "ok"): CPF found, data and/or face matched - VALIDATION_ERROR (1, "validationError") - MODULE_NOT_SUPPORTED (4, "moduleNotSupported") - MISSING_SELFIE (6, "missingSelfie"): selfie required for SERPRO_FACE - USER_NOT_FOUND (7, "userNotFound"): CPF not found in government DB, or face not matched - CPF_NUMBER_INVALID_OR_MISSING (16, "cpfNumberInvalidOrMissing") - CONNECTION_ERROR (17, "connectionError") - PROVIDER_NOT_CONFIGURED (96, "providerNotConfigured") - PROVIDER_UNAVAILABLE (98, "providerUnavailable") - GEOGRAPHIC_REGION_NOT_SUPPORTED (99, "geographicRegionNotSupported") - ocrValidation: List of value/status/key objects. Keys present for Brazil: - documentNumber: CPF validity check - fullName: name match (derived from firstName, paternalLastName, maternalLastName — all map to the same SERPRO nome field and always share the same status) - birthDate: date of birth match Not all keys are always present. - ocrValidationOverall: Composite result for ocrValidation score - overall: Equals ocrValidationOverall for SERPRO; for SERPRO_FACE the face recognitionConfidence can override it (e.g. face not in DB / not matched drives overall to 0.0 FAIL even when ocrValidationOverall is OK) | | `governmentValidation.recognitionConfidence` | ResultBean | | | | `governmentValidation.recognitionConfidence.value` | string | | | | `governmentValidation.recognitionConfidence.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `governmentValidation.fingerprintConfidence` | ResultBean | | | | `governmentValidation.fingerprintConfidence.value` | string | | | | `governmentValidation.fingerprintConfidence.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `governmentValidation.minimumPassingFingerprints` | integer (int32) | | | | `governmentValidation.validationStatus` | IdResultBean | | | | `governmentValidation.validationStatus.value` | string | | | | `governmentValidation.validationStatus.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `governmentValidation.validationStatus.key` | string | | | | `governmentValidation.ocrValidation` | array[IdResultBean] | | | | `governmentValidation.ocrValidation.value` | string | | | | `governmentValidation.ocrValidation.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `governmentValidation.ocrValidation.key` | string | | | | `governmentValidation.credentialStatus` | array[IdResultBean] | | | | `governmentValidation.credentialStatus.value` | string | | | | `governmentValidation.credentialStatus.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `governmentValidation.credentialStatus.key` | string | | | | `governmentValidation.registryData` | GovernmentRegistryData | | Values the government source holds for the person, under provider-neutral names so the same field reads the same across providers. Present only when the provider shown in "provider" reported at least one value. | | `governmentValidation.registryData.taxIdNumber` | string | | Tax identification number the government source holds for the person: Argentina CUIL from RENAPER_PREMIUM and MM_ARGENTINA_RENAPER_EXTENDED. | | `governmentValidation.ocrValidationOverall` | ResultBean | | | | `governmentValidation.ocrValidationOverall.value` | string | | | | `governmentValidation.ocrValidationOverall.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `governmentValidation.overall` | ResultBean | | | | `governmentValidation.overall.value` | string | | | | `governmentValidation.overall.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `governmentValidation.provider` | string | | | | `governmentValidation.validationSource` | string | | Enum: `ID_CAPTURE`, `REQUEST_BODY`, `KYX_PREFILL` | | `governmentValidation.appliedRule` | AppliedFlowRule | | Specific rule from rule engine | | `governmentValidation.appliedRule.name` | string | | Name of the rule. | | `governmentValidation.appliedRule.expression` | string | | A logical expression of the rule. | | `governmentValidation.appliedRule.ruleType` | string | | Enum: `idValidation`, `secondIdValidation`, `faceValidation`, `liveness`, `deepsight`, `eKyc`, `videoselfie`, `faceAuthentication`, `total`, `phoneRisk`, `emailRisk`, `governmentValidation` | | `governmentValidation.appliedRule.status` | string | | Enum: `OK`, `WARN`, `FAIL`, `UNKNOWN`, `MANUAL`, `MANUAL_OK`, `MANUAL_FAIL`, `MANUAL_PENDING` | | `errorDescription` | string | | | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ### 409 Another government-validation request is already in progress for this interview. Wait for it to finish instead of retrying immediately. Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/process/government-validation?fallbackEnabled=false&scrapingMethod=false&scrapingV2=false&scrapingV3=false&interviewId=%3CinterviewId%3E&countryCode=%3CcountryCode%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/process/government-validation?fallbackEnabled=false&scrapingMethod=false&scrapingV2=false&scrapingV3=false&interviewId=%3CinterviewId%3E&countryCode=%3CcountryCode%3E", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/process/government-validation?fallbackEnabled=false&scrapingMethod=false&scrapingV2=false&scrapingV3=false&interviewId=%3CinterviewId%3E&countryCode=%3CcountryCode%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/process/government-validation?fallbackEnabled=false&scrapingMethod=false&scrapingV2=false&scrapingV3=false&interviewId=%3CinterviewId%3E&countryCode=%3CcountryCode%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/process/government-validation?fallbackEnabled=false&scrapingMethod=false&scrapingV2=false&scrapingV3=false&interviewId=%3CinterviewId%3E&countryCode=%3CcountryCode%3E") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/process/government-validation?fallbackEnabled=false&scrapingMethod=false&scrapingV2=false&scrapingV3=false&interviewId=%3CinterviewId%3E&countryCode=%3CcountryCode%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "valid": true, "statusCode": 0, "registralSituation": { "tipoSituacionRegistral": "string", "tipoReporteRoboExtravio": "string" }, "governmentValidation": { "recognitionConfidence": { "value": "string", "status": "OK" }, "validationStatus": { "value": "string", "status": "OK", "key": "string" }, "ocrValidation": [ { "value": "string", "status": "OK", "key": "string" } ], "ocrValidationOverall": { "value": "string", "status": "OK" }, "overall": { "value": "string", "status": "OK" } }, "curpCecobanValidation": { "returnCode": "string", "description": "string", "uniquePopulationRegistrationKeyMatch": true }, "customFields": { "additionalProp": "string" }, "ocrData": { "name": { "fullName": "string", "fullNameNativeScript": "string", "machineReadableFullName": "string", "firstName": "string", "middleName": "string", "givenName": "string", "givenNameMrz": "string", "nameSuffix": "string", "paternalLastName": "string", "maternalLastName": "string", "lastNameMrz": "string" }, "address": "string", "addressFields": { "street": "string", "colony": "string", "postalCode": "string", "city": "string", "state": "string", "stateName": "string", "district": "string", "stateCode": "string", "addressCountryCode": "string", "label": "string" }, "fullAddress": true, "invalidAddress": true, "checkedAddress": "string", "checkedAddressBean": { "street": "string", "colony": "string", "postalCode": "string", "city": "string", "state": "string", "stateName": "string", "district": "string", "stateCode": "string", "addressCountryCode": "string", "label": "string" }, "exteriorNumber": "string", "interiorNumber": "string", "addressFromStatement": "string", "addressFieldsFromStatement": { "street": "string", "colony": "string", "postalCode": "string", "city": "string", "state": "string", "stateName": "string", "district": "string", "stateCode": "string", "addressCountryCode": "string", "label": "string" }, "invalidAddressFromStatement": true, "addressStatementEmissionDate": 0, "documentType": "a1", "addressStatementTimestamps": [ { "dateType": "string", "addressStatementTimestamp": 0 } ], "poaName": "string", "typeOfId": "string", "documentFrontSubtype": "string", "documentBackSubtype": "string", "birthDate": 0, "gender": "M", "claveDeElector": "string", "curp": "string", "numeroEmisionCredencial": "string", "cic": "string", "ocr": "string", "documentNumber": "string", "documentNumberSource": "FORM", "personalNumber": "string", "nationalNumber": "string", "refNumber": "string", "taxIdNumber": "string", "nue": "string", "externalId": "string", "issuedAt": "string", "expireAt": "string", "expirationDate": 0, "issueDate": 0, "registrationDate": 0, "dlClassDetails": [ { "dlClass": "string", "validFromDate": 0, "validToDate": 0, "additionalCodes": "string" } ], "issuingCountry": "string", "issuingState": "string", "birthPlace": "string", "issuingAuthority": "string", "height": "string", "weight": "string", "eyeColor": "string", "hairColor": "string", "bloodType": "string", "maritalStatus": "string", "nationality": "string", "race": "string", "nationalityMrz": "string", "nationalityAlpha3": "string", "governmentComparisonResults": { "paternalLastNameValid": true, "maternalLastNameValid": true, "firstNameValid": true, "curpValid": true, "ocrValid": true, "claveDeElectorValid": true, "numeroEmisionCredencialValid": true, "registrationDateValid": true, "issueDateValid": true }, "notExtracted": 0, "notExtractedDetails": [ "string" ], "classes": "string", "cond": "string", "mentions": "string", "restrictions": "string", "mrz1": "string", "mrz2": "string", "mrz3": "string", "fullNameMrz": "string", "documentNumberCheckDigit": "string", "dateOfBirthCheckDigit": "string", "expirationDateCheckDigit": "string", "barcodeRawData": "string", "fathersName": "string", "mothersName": "string", "spouseName": "string", "federalRevenueNumber": "string", "originDocumentId": "string", "driversLicenseCategory": "string", "controlNumber": "string", "renach": "string", "additionalAttrs": [ "DOCUMENTO_INFANTIL" ], "ocrDataConfidence": { "birthDateConfidence": 0, "nameConfidence": 0, "nameNativeScriptConfidence": 0, "givenNameConfidence": 0, "firstNameConfidence": 0, "middleNameConfidence": 0, "nameSuffixConfidence": 0, "mothersSurnameConfidence": 0, "fathersSurnameConfidence": 0, "nickNameConfidence": 0, "fullNameMrzConfidence": 0, "mothersNameConfidence": 0, "fathersNameConfidence": 0, "spouseNameConfidence": 0, "addressConfidence": 0, "streetConfidence": 0, "colonyConfidence": 0, "postalCodeConfidence": 0, "cityConfidence": 0, "stateConfidence": 0, "districtConfidence": 0, "stateCodeConfidence": 0, "countryCodeConfidence": 0, "genderConfidence": 0, "issueDateConfidence": 0, "expirationDateConfidence": 0, "issuedAtConfidence": 0, "expireAtConfidence": 0, "issuingAuthorityConfidence": 0, "mrz1Confidence": 0, "mrz2Confidence": 0, "mrz3Confidence": 0, "mrzFullConfidence": 0, "documentNumberConfidence": 0, "backNumberConfidence": 0, "personalNumberConfidence": 0, "nationalNumberConfidence": 0, "claveDeElectorConfidence": 0, "numeroEmisionCredencialConfidence": 0, "curpConfidence": 0, "nueConfidence": 0, "registrationDateConfidence": 0, "heightConfidence": 0, "birthPlaceConfidence": 0, "bloodTypeConfidence": 0, "eyeColorConfidence": 0, "classesConfidence": 0, "condConfidence": 0, "mentionsConfidence": 0, "refNumberConfidence": 0, "weightConfidence": 0, "hairConfidence": 0, "restrictionsConfidence": 0, "nationalityConfidence": 0, "nationalityMrzConfidence": 0, "maritalStatusConfidence": 0, "raceConfidence": 0, "taxIdNumberConfidence": 0, "jurisdictionCodeConfidence": 0 }, "additionalDocumentAttempts": [ { "status": "SUCCESS", "attemptTimestamp": 0, "documentType": "string", "firstName": "string", "lastName": "string", "countryOfOrigin": "string", "dateOfBirth": 0, "expiryDate": 0, "issueDate": 0, "gender": "MALE", "nationality": "string", "placeOfIssue": "string", "referenceNumber": "string", "residentialAddressLines": [ "string" ] }, { "status": "SUCCESS", "attemptTimestamp": 0, "documentType": "string", "fullName": "string", "address": "string", "accountNumber": "string", "bankName": "string", "documentDate": "string" }, { "status": "SUCCESS", "attemptTimestamp": 0, "documentType": "string", "fullName": "string", "curpNumber": "string", "registrationDate": 0, "registrationEntity": "string", "idNumber": "string" }, { "status": "SUCCESS", "attemptTimestamp": 0, "documentType": "string", "fullName": "string", "address": "string", "issueDate": 0 }, { "status": "SUCCESS", "attemptTimestamp": 0, "documentType": "string", "rfcNumber": "string", "corporateName": "string", "fullName": "string", "declarationType": "string", "fiscalYear": 0, "submissionDate": 0, "hasIncomeStatement": true, "hasFinancialPositionStatement": true, "totalIncome": 0, "capitalFromContributions": 0, "capitalFromCapitalization": 0, "accumulatedLosses": 0, "currentYearLosses": 0, "accumulatedProfits": 0, "currentYearProfits": 0, "amountToPay": 0, "amountDue": 0, "operationNumber": "string" }, { "status": "SUCCESS", "attemptTimestamp": 0, "documentType": "string", "issueDate": 0, "rfcNumber": "string", "corporateName": "string", "fullName": "string", "registryStatus": "string", "addressComponents": { "street": "string", "colony": "string", "postalCode": "string", "city": "string", "state": "string", "stateName": "string", "district": "string", "stateCode": "string", "addressCountryCode": "string", "label": "string" }, "economicActivities": [ { "title": "string", "percentage": 0, "startDate": 0, "endDate": 0 } ], "regimes": [ { "title": "string", "startDate": 0, "endDate": 0 } ], "barcodes": [ { "format": "string", "contentType": "string", "text": "string", "error": "string" } ] }, { "status": "SUCCESS", "attemptTimestamp": 0, "documentType": "string", "name": "string", "address": "string", "timestamp": 0, "addressStatementTimestamps": [ { "dateType": "string", "addressStatementTimestamp": 0 } ], "issuer": "a1", "addressComponents": { "street": "string", "colony": "string", "postalCode": "string", "city": "string", "state": "string", "stateName": "string", "district": "string", "stateCode": "string", "addressCountryCode": "string", "label": "string" } }, { "status": "SUCCESS", "attemptTimestamp": 0, "documentType": "string", "firstNames": "string", "lastName": "string", "gender": "MALE", "countryOfBirth": "string", "dateOfBirth": 0, "nationality": "string", "maritalStatus": "string", "issueDate": 0, "expiryDate": 0, "idNumber": "string" }, { "status": "SUCCESS", "attemptTimestamp": 0, "documentType": "string", "fullName": "string", "gender": "MALE", "dateOfBirth": 0, "issueDate": 0, "countryOfBirth": "string", "nationality": "string", "maritalStatus": "string", "documentNumber": "string" }, { "status": "SUCCESS", "attemptTimestamp": 0, "documentType": "string", "fullName": "string", "rfcNumber": "string", "idCIF": "string" }, { "status": "SUCCESS", "attemptTimestamp": 0, "documentType": "string" }, { "status": "SUCCESS", "attemptTimestamp": 0, "documentType": "string", "fullName": "string", "address": "string", "addressList": [ "string" ], "registrationNumber": "string", "v5cNumber": "string", "referenceNumber": "string" } ] }, "deviceInfo": { "ipAddress": "string", "hash": "string", "deviceType": "IOS", "osVersion": "string", "deviceModel": "string", "sdkVersion": "string", "browser": "string", "hasLiedBrowser": true, "longitude": 0, "latitude": 0, "location": "string", "getmAdminArea": "CA", "getmSubAdminArea": "Santa Clara", "getmLocality": "string", "getmSubLocality": "Mission District", "getmThoroughfare": "string", "getmSubThoroughfare": "string", "getmPostalCode": 95014, "getmCountryCode": "US", "getmCountryName": "United States", "hostingApp": "Onboarding" }, "ineTransactionId": "string", "errorDescription": "string", "fallbackCalled": true } ``` --- - Path: `api-reference/process-id` - URL: https://developer.incode.com/api-reference/process-id/ - Markdown: https://developer.incode.com/api-reference/process-id.md - Endpoint: `POST /omni/process/id` # Process Id `POST /omni/process/id` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment **Note**:This endpoint should be called only after the [front-side](#/Onboarding/addFrontIdV2) and [back-side](#/Onboarding/addBackIdV2) is over. And in case of passports or only front sided documents, only [front-side](#/Onboarding/addFrontIdV2) should be over. Incode validations and ocr parsing are processed during this endpoint. To fetch ocr data call [Fetch-OCR](#/Onboarding/getOcrData). Once this is called, user is no longer able to upload ID (front or back side). ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `queueName` | query | string | | The name of the queue, user is entering in case conference call will be used. If not set, default queue will be used Enum: `aristotle`, `buddha`, `confucius`, `diogenes` | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | | `isDocumentExpired` | boolean | | Flag indicating if the document is expired. | ### 400 Custom error statuses: - 4085: ID image is too small. The message contains the received dimensions and the required minimum (the smallest image side must be at least 200 px). - 6000: Processing error (generic failure during ID processing) Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/process/id?queueName=%3CqueueName%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/process/id?queueName=%3CqueueName%3E", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/process/id?queueName=%3CqueueName%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/process/id?queueName=%3CqueueName%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/process/id?queueName=%3CqueueName%3E") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/process/id?queueName=%3CqueueName%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive", "isDocumentExpired": true } ``` --- - Path: `api-reference/process-imss` - URL: https://developer.incode.com/api-reference/process-imss/ - Markdown: https://developer.incode.com/api-reference/process-imss.md - Endpoint: `POST /omni/process/imss` # Process IMSS `POST /omni/process/imss` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Trigger fetching of work history for curp. This will notify the results to the configured [Work History Webhook](doc:work-history-webhook). ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `curp` | string | | If not specified it will use one from interview | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/process/imss \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/process/imss", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/process/imss", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/process/imss")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/process/imss") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/process/imss"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/process-payment-proof` - URL: https://developer.incode.com/api-reference/process-payment-proof/ - Markdown: https://developer.incode.com/api-reference/process-payment-proof.md - Endpoint: `POST /omni/process/payment-proof` # Process payment proof `POST /omni/process/payment-proof` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment **Note**: This endpoint should be called once the Qr-code is executed. It will fetch info from add qr code text call and validate payment proof fields rfc issuer, rfc receiver and fiscal invoice and return response. It will also call the configured [Payment Proof Webhook](doc:payment-proof-webhook). ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | | `requestId` | string | | Id associated with request | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/process/payment-proof \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/process/payment-proof", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/process/payment-proof", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/process/payment-proof")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/process/payment-proof") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/process/payment-proof"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive", "requestId": "string" } ``` --- - Path: `api-reference/process-second-id` - URL: https://developer.incode.com/api-reference/process-second-id/ - Markdown: https://developer.incode.com/api-reference/process-second-id.md - Endpoint: `POST /omni/process/second-id` # Process Second Id `POST /omni/process/second-id` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment **Note**: This endpoint should be called only after the upload of [front-side-secondId](#/Onboarding/addFrontSecondIdV2) and [back-side-secondId](#/Onboarding/addBackSecondIdV2) is over. And in case of passports or only front sided documents, only [front-side-secondId](#/Onboarding/addFrontSecondIdV2) should be over. Incode validations and ocr parsing are processed during this endpoint. To fetch ocr data call [Fetch-SecondId_OCR](#/Onboarding/getOcrDataSecondId). Parameter queueName is needed so it can be determined in which queue interview should go. Once this is called, user is no longer able to upload ID (front or back side). ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `queueName` | query | string | | The name of the queue, user is entering in case conference call will be used. If not set, default queue will be used. Enum: `aristotle`, `buddha`, `confucius`, `diogenes` | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | | `isDocumentExpired` | boolean | | Flag indicating if the document is expired. | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/process/second-id?queueName=%3CqueueName%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/process/second-id?queueName=%3CqueueName%3E", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/process/second-id?queueName=%3CqueueName%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/process/second-id?queueName=%3CqueueName%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/process/second-id?queueName=%3CqueueName%3E") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/process/second-id?queueName=%3CqueueName%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive", "isDocumentExpired": true } ``` --- - Path: `api-reference/process-watchlist` - URL: https://developer.incode.com/api-reference/process-watchlist/ - Markdown: https://developer.incode.com/api-reference/process-watchlist.md - Endpoint: `POST /omni/process/watchlist` # Process custom watchlist `POST /omni/process/watchlist` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment This endpoint fetches data (photo, email, phone, document number) from onboarding session and tries to find a match in custom watchlist database. If a match on the watchlist is found, then the score influence is calculated based on the number of matched fields. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `id` | query | string | | Id of onboarding session. If not present, it will be extracted from token. | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | | `match` | boolean | | Flag indicating if a match in the watchlist has been found. | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/process/watchlist?id=%3Cid%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/process/watchlist?id=%3Cid%3E", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/process/watchlist?id=%3Cid%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/process/watchlist?id=%3Cid%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/process/watchlist?id=%3Cid%3E") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/process/watchlist?id=%3Cid%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive", "match": true } ``` --- - Path: `api-reference/qr-refresh` - URL: https://developer.incode.com/api-reference/qr-refresh/ - Markdown: https://developer.incode.com/api-reference/qr-refresh.md - Endpoint: `POST /omni/qr/refresh` # Refresh QR code value `POST /omni/qr/refresh` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Refresh UUID for already started onboarding with /omni/onboarding-url. Returns null if not started before this call or if start expired. Returned UUID is short lived (15sec) and should be refreshed in constant periods (5sec). ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `onboardingId` | string | | | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | | `urlUuid` | string | | Short-lived uuid for validation | ### 400 Custom error statuses: - 4026: Invalid uuid parameter Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/qr/refresh \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/qr/refresh", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/qr/refresh", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/qr/refresh")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/qr/refresh") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/qr/refresh"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive", "urlUuid": "string" } ``` --- - Path: `api-reference/qr-validate` - URL: https://developer.incode.com/api-reference/qr-validate/ - Markdown: https://developer.incode.com/api-reference/qr-validate.md - Endpoint: `POST /omni/qr/validate` # Validate QR code uuid `POST /omni/qr/validate` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Check if provided UUID value is still valid for Interview ID. If valid, response will contain UUID that is stored on Onboarding cache and have default TTL of 15min If not valid, response will contain error details ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `urlUuid` | string | | | | `onboardingId` | string | | | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | | `urlUuid` | string | | Short-lived uuid for validation | ### 400 Custom error statuses: - 4026: Invalid uuid parameter - 4081: Invalid parameters for validation Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/qr/validate \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/qr/validate", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/qr/validate", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/qr/validate")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/qr/validate") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/qr/validate"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive", "urlUuid": "string" } ``` --- - Path: `api-reference/queue-conference-add` - URL: https://developer.incode.com/api-reference/queue-conference-add/ - Markdown: https://developer.incode.com/api-reference/queue-conference-add.md - Endpoint: `PUT /omni/queue/conference/add` # Add user to queue `PUT /omni/queue/conference/add` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment When data collection is over, users can be added to the queue for joining conference calls with an executive. The average time for before user joins to conference is given in response. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `queueName` | query | string | | The name of the queue, user is entering in case a conference call will be used. If not set, default queue will be used. Possible values: aristotle, buddha, confucius, diogenes. Same value for queueName needs to be used across all requests in one onboarding session. | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `interviewCode` | string | | Interview code received in response of [start](#/Onboarding/startInterview) call. | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | | `waitingTimeInSeconds` | integer (int64) | | Average waiting time before user joins conference call. | ### 400 Custom error status: - 4014: Invalid interview code Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X PUT https://demo-api.incodesmile.com/omni/queue/conference/add?queueName=%3CqueueName%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/queue/conference/add?queueName=%3CqueueName%3E", { method: "PUT", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.put("https://demo-api.incodesmile.com/omni/queue/conference/add?queueName=%3CqueueName%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/queue/conference/add?queueName=%3CqueueName%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("PUT", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/queue/conference/add?queueName=%3CqueueName%3E") req = Net::HTTP::Put.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/queue/conference/add?queueName=%3CqueueName%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive", "waitingTimeInSeconds": 203 } ``` --- - Path: `api-reference/queue-conference-connection-details` - URL: https://developer.incode.com/api-reference/queue-conference-connection-details/ - Markdown: https://developer.incode.com/api-reference/queue-conference-connection-details.md - Endpoint: `GET /omni/queue/conference/connection-details` # Get connection details `GET /omni/queue/conference/connection-details` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment An executive can invite the user to join a conference if the connection is lost by sending uuid ID to user. Using this uuid connection details for that session can be fetched. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `uuid` | query | string | yes | | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `accessToken` | string | | Access token which needs to be forwarded in header X-Incode-Hardware-Id for future calls. Same purpose as token from [start](#/Onboarding/startInterview) | | `interviewerName` | string | | The name of the executive who is on conference call with the user. | | `sessionId` | string | | Used for establishing conference connection via OpenTok. | | `interviewToken` | string | | Used for establishing conference connection via OpenTok. | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/queue/conference/connection-details?uuid=%3Cuuid%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/queue/conference/connection-details?uuid=%3Cuuid%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/queue/conference/connection-details?uuid=%3Cuuid%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/queue/conference/connection-details?uuid=%3Cuuid%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/queue/conference/connection-details?uuid=%3Cuuid%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/queue/conference/connection-details?uuid=%3Cuuid%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "accessToken": "string", "interviewerName": "string", "sessionId": "string", "interviewToken": "string" } ``` --- - Path: `api-reference/queue-conference-disconnect` - URL: https://developer.incode.com/api-reference/queue-conference-disconnect/ - Markdown: https://developer.incode.com/api-reference/queue-conference-disconnect.md - Endpoint: `POST /omni/queue/conference/disconnect` # Disconnect user from the queue `POST /omni/queue/conference/disconnect` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Users can disconnect themselves while waiting in the queue at any time. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 success: flag indicating if user was successfully removed from the queue. False in the case the user not found in the queue, true otherwise Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/queue/conference/disconnect \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/queue/conference/disconnect", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/queue/conference/disconnect", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/queue/conference/disconnect")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/queue/conference/disconnect") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/queue/conference/disconnect"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/queue-conference-index` - URL: https://developer.incode.com/api-reference/queue-conference-index/ - Markdown: https://developer.incode.com/api-reference/queue-conference-index.md - Endpoint: `GET /omni/queue/conference/index` # Get user's position in queue `GET /omni/queue/conference/index` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Use this endpoint to check user's position in waiting queue. Once the index in the response is 0, users can connect to the conference call. Use endpoint Get position in queue. Once the index becomes 0, the customer can connect to the interview. Call [Connect](#/Conference/getInterviewerInfo) to fetch connection data. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `queueName` | query | string | | The name of the queue the user is entering in case a conference call will be used. If not set, the default queue will be used. Possible values: aristotle, buddha, confucius, diogenes. Same value for queueName needs to be used across all requests in one onboarding session. | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `index` | integer (int32) | | | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/queue/conference/index?queueName=%3CqueueName%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/queue/conference/index?queueName=%3CqueueName%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/queue/conference/index?queueName=%3CqueueName%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/queue/conference/index?queueName=%3CqueueName%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/queue/conference/index?queueName=%3CqueueName%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/queue/conference/index?queueName=%3CqueueName%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "index": 0 } ``` --- - Path: `api-reference/queue-conference-next` - URL: https://developer.incode.com/api-reference/queue-conference-next/ - Markdown: https://developer.incode.com/api-reference/queue-conference-next.md - Endpoint: `GET /omni/queue/conference/next` # Get next customer from the queue `GET /omni/queue/conference/next` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Fetch next customer from a conference queue. In case no customer in the queue, and empty body is returned. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `queueName` | query | string | | The name of the queue the user is entering in the case the conference call will be used. If not set, the default queue will be used. Same value for queueName needs to be used across all requests in one onboarding session. Enum: `aristotle`, `buddha`, `confucius`, `diogenes` | | `api-version` | header | string | yes | Default: `1.0` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `interviewId` | string | | ID of fetched interview. | | `apiKey` | integer (int32) | | OpenTok apiKey used for connection to video call. | | `interviewToken` | string | | OpenTok token used for connection to video call. | | `sessionId` | string | | OpenTok session id used for connection to video call. | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X GET https://demo-api.incodesmile.com/omni/queue/conference/next?queueName=%3CqueueName%3E \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/queue/conference/next?queueName=%3CqueueName%3E", { method: "GET", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", } res = requests.get("https://demo-api.incodesmile.com/omni/queue/conference/next?queueName=%3CqueueName%3E", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/queue/conference/next?queueName=%3CqueueName%3E")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/queue/conference/next?queueName=%3CqueueName%3E") req = Net::HTTP::Get.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/queue/conference/next?queueName=%3CqueueName%3E"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "interviewId": "string", "apiKey": 0, "interviewToken": "string", "sessionId": "string" } ``` --- - Path: `api-reference/record-start` - URL: https://developer.incode.com/api-reference/record-start/ - Markdown: https://developer.incode.com/api-reference/record-start.md - Endpoint: `POST /omni/record-start` # Start recording `POST /omni/record-start` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Start recording of the interview. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `interviewId` | string | | ID of interview for which recording is started. | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `opentokArchiveId` | string | | ID of created OpenTok archive. | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/record-start \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/record-start", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/record-start", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/record-start")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/record-start") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/record-start"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "opentokArchiveId": "string" } ``` --- - Path: `api-reference/record-stop` - URL: https://developer.incode.com/api-reference/record-stop/ - Markdown: https://developer.incode.com/api-reference/record-stop.md - Endpoint: `POST /omni/record-stop` # Stop recording `POST /omni/record-stop` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment Stop recording the interview. ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `opentokArchiveId` | string | | ID of OpenTok archive for which recording stop is requested. In case omitted, last created archive on given interview will be stopped. | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `success` | boolean | | Flag indicating request passed successfully. | | `sessionStatus` | string | | Session status Enum: `Alive`, `Closed`, `Deleted` | ### 400 Bad Request Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `timestamp` | integer (int64) | | UTC timestamp in milliseconds | | `status` | integer (int32) | | Custom error code or HTTP status code | | `error` | string | | HTTP status error | | `message` | string | | Custom error message | | `path` | string | | Endpoint path | | `details` | object | | Custom error details | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/record-stop \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" ``` ### Node ```js const res = await fetch("https://demo-api.incodesmile.com/omni/record-stop", { method: "POST", headers: { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", }, }); const data = await res.json(); ``` ### Python ```python import requests headers = { "x-api-key": "", "X-Incode-Hardware-Id": "", "api-version": "1.0", "Content-Type": "application/json", } res = requests.post("https://demo-api.incodesmile.com/omni/record-stop", headers=headers) data = res.json() ``` ### Java ```java HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://demo-api.incodesmile.com/omni/record-stop")) .header("x-api-key", "") .header("X-Incode-Hardware-Id", "") .header("api-version", "1.0") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse res = HttpClient.newHttpClient() .send(req, HttpResponse.BodyHandlers.ofString()); ``` ### Ruby ``` require "net/http" require "json" uri = URI("https://demo-api.incodesmile.com/omni/record-stop") req = Net::HTTP::Post.new(uri) req["x-api-key"] = "" req["X-Incode-Hardware-Id"] = "" req["api-version"] = "1.0" req["Content-Type"] = "application/json" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) } data = JSON.parse(res.body) ``` ### PHP ``` $ch = curl_init("https://demo-api.incodesmile.com/omni/record-stop"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "x-api-key: ", "X-Incode-Hardware-Id: ", "api-version: 1.0", "Content-Type: application/json", ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); ``` ### Example response ```json { "success": true, "sessionStatus": "Alive" } ``` --- - Path: `api-reference/recordings-import` - URL: https://developer.incode.com/api-reference/recordings-import/ - Markdown: https://developer.incode.com/api-reference/recordings-import.md - Endpoint: `POST /omni/recordings/import` # Import base64Video and return recordingId `POST /omni/recordings/import` Base URL: `https://demo-api.incodesmile.com` — Incode demo environment ## Path & query parameters | Name | In | Type | Required | Description | | --- | --- | --- | --- | --- | | `api-version` | header | string | yes | Default: `1.0` | ## Request body | Field | Type | Required | Description | | --- | --- | --- | --- | | `video` | string | yes | Video of capture attempt, represented in base64. | | `type` | string | | Type of recording that should be stored. Possible values: selfie, frontId, backId. Enum: `frontId`, `backId`, `merged`, `selfie`, `authenticationattempt`, `videoselfie` | ## Responses ### 200 OK Response body (`application/json`): | Field | Type | Required | Description | | --- | --- | --- | --- | | `recordingId` | string | | | ## Code samples Generated from this endpoint's method, path, and the conventional Incode headers. The base URL is the Incode demo environment; replace `` with a key for your region. ### cURL ```bash curl -X POST https://demo-api.incodesmile.com/omni/recordings/import \ -H "x-api-key: " \ -H "X-Incode-Hardware-Id: " \ -H "api-version: 1.0" \ -H "Content-Type: application/json" \ -d '{ "video": "