{
    "openapi": "3.0.4",
    "info": { "title": "Document Verification API v3 (Self-Hosted)","description": "OpenAPI schema for the Document Verification API v3 (Self-Hosted)","version": "v3" },
    "paths": {
        "/api/v3/verify": {
            "post": {
                "summary": "Verify a document",
                "operationId": "v3_verify",
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "oneOf": [
                                    {
                                        "required": [ "imageFirstSide" ],
                                        "not": {
                                            "anyOf": [
                                                { "required": [ "imageSecondSide" ] },
                                                { "required": [ "imageBarcode" ]    }
                                            ]
                                        }
                                    },
                                    {
                                        "required": [ "imageFirstSide","imageSecondSide" ],
                                        "not": {
                                            "anyOf": [
                                                { "required": [ "imageBarcode" ] }
                                            ]
                                        }
                                    },
                                    { "required": [ "imageFirstSide","imageSecondSide","imageBarcode" ] }
                                ],
                                "properties": {
                                    "imageFirstSide": {
                                        "maxLength": 26214400,
                                        "type": "string",
                                        "description": "JPEG or PNG image, at most 25 MiB. Runtime validation also enforces decoded dimensions and aspect ratio.",
                                        "format": "binary"
                                    },
                                    "imageSecondSide": {
                                        "maxLength": 26214400,
                                        "type": "string",
                                        "description": "JPEG or PNG image, at most 25 MiB. Runtime validation also enforces decoded dimensions and aspect ratio.",
                                        "format": "binary"
                                    },
                                    "imageBarcode": {
                                        "maxLength": 26214400,
                                        "type": "string",
                                        "description": "JPEG or PNG image, at most 25 MiB. Runtime validation also enforces decoded dimensions and aspect ratio.",
                                        "format": "binary"
                                    },
                                    "traceId": { "maxLength": 256,"type": "string" },
                                    "configuration": {
                                        "allOf": [ { "$ref": "#/components/schemas/DocumentVerificationConfiguration" } ],
                                        "description": "Configuration object for the verification endpoint."
                                    }
                                },
                                "additionalProperties": false,
                                "description": "Supported image combinations are first side; first and second side; or first side, second side, and barcode."
                            },
                            "encoding": {
                                "imageFirstSide" : { "contentType": "image/jpeg, image/png" },
                                "imageSecondSide": { "contentType": "image/jpeg, image/png" },
                                "imageBarcode"   : { "contentType": "image/jpeg, image/png" },
                                "configuration"  : { "contentType": "application/json"      }
                            }
                        }
                    },
                    "required": true
                },
                "responses": {
                    "200": {
                        "description": "Document verification response",
                        "content": {
                            "application/json": { "schema": { "$ref": "#/components/schemas/DocumentVerificationResponse" } }
                        }
                    },
                    "400": {
                        "description": "Invalid request.",
                        "content": {
                            "application/json": {
                                "schema": { "$ref": "#/components/schemas/V3ValidationErrorResponse" },
                                "example": {
                                    "message": "Invalid parameter in request.",
                                    "errors": [
                                        {
                                            "code": "InvalidParameter",
                                            "path": "verification.settings.screenPresenceSensitivity",
                                            "reason": "This parameter is invalid for the V3 multipart request schema."
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Worker license authentication failed. Returns the documented JSON diagnostic body.",
                        "content": {
                            "application/json": {
                                "schema": { "$ref": "#/components/schemas/V3WorkerErrorResponse" },
                                "example": { "message": "License is locked or server permission is not granted.","reason": "Remote lock denied by the license server." }
                            }
                        }
                    },
                    "403": {
                        "description": "The active license does not allow document verification.",
                        "content": {
                            "application/json": {
                                "schema": { "$ref": "#/components/schemas/V3WorkerErrorResponse" },
                                "example": { "message": "The active license does not allow document verification.","reason": "The active license does not allow document verification." }
                            }
                        }
                    },
                    "413": {
                        "description": "Payload too large.",
                        "content": {
                            "application/json": { "schema": { "$ref": "#/components/schemas/V3ErrorResponse" },"example": { "message": "Payload too large." } }
                        }
                    },
                    "415": {
                        "description": "Unsupported media type.",
                        "content": {
                            "application/json": {
                                "schema": { "$ref": "#/components/schemas/V3ValidationErrorResponse" },
                                "example": {
                                    "message": "Unsupported media type.",
                                    "errors": [ { "code": "InvalidRequestFormat","path": "Content-Type","reason": "Content-Type must be multipart/form-data." } ]
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Server capacity is exhausted. Retry-After is returned. The memory-pressure limiter returns a JSON error body; the concurrency limiter can return an empty body.",
                        "headers": {
                            "Retry-After": { "description": "Suggested retry delay in seconds.","schema": { "type": "integer","format": "int32" } }
                        },
                        "content": {
                            "application/json": { "schema": { "$ref": "#/components/schemas/V3ErrorResponse" },"example": { "message": "Server is busy (memory pressure)." } }
                        }
                    },
                    "500": {
                        "description": "Internal server error. A server-model failure returns the mapped verification response; other failures return a generic error.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "oneOf": [ { "$ref": "#/components/schemas/V3ErrorResponse" },{ "$ref": "#/components/schemas/DocumentVerificationResponse" } ]
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "Worker is unavailable in a Self-Hosted deployment.",
                        "content": {
                            "application/json": {
                                "schema": { "$ref": "#/components/schemas/V3WorkerErrorResponse" },
                                "example": { "message": "Worker not ready. Check worker logs for details.","reason": "Required workers are not ready." }
                            }
                        }
                    },
                    "504": {
                        "description": "Request timed out.",
                        "content": {
                            "application/json": { "schema": { "$ref": "#/components/schemas/V3ErrorResponse" },"example": { "message": "Request timed out." } }
                        }
                    }
                }
            }
        },
        "/api/v3/extract": {
            "post": {
                "summary": "Extract document data",
                "operationId": "v3_extract",
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "type": "object",
                                "oneOf": [
                                    {
                                        "required": [ "imageFirstSide" ],
                                        "not": {
                                            "anyOf": [
                                                { "required": [ "imageSecondSide" ] },
                                                { "required": [ "imageBarcode" ]    }
                                            ]
                                        }
                                    },
                                    {
                                        "required": [ "imageFirstSide","imageSecondSide" ],
                                        "not": {
                                            "anyOf": [
                                                { "required": [ "imageBarcode" ] }
                                            ]
                                        }
                                    },
                                    {
                                        "required": [ "imageSecondSide" ],
                                        "not": {
                                            "anyOf": [
                                                { "required": [ "imageFirstSide" ] },
                                                { "required": [ "imageBarcode" ]   }
                                            ]
                                        }
                                    },
                                    { "required": [ "imageFirstSide","imageSecondSide","imageBarcode" ] }
                                ],
                                "properties": {
                                    "imageFirstSide": {
                                        "maxLength": 26214400,
                                        "type": "string",
                                        "description": "JPEG or PNG image, at most 25 MiB. Runtime validation also enforces decoded dimensions and aspect ratio.",
                                        "format": "binary"
                                    },
                                    "imageSecondSide": {
                                        "maxLength": 26214400,
                                        "type": "string",
                                        "description": "JPEG or PNG image, at most 25 MiB. Runtime validation also enforces decoded dimensions and aspect ratio.",
                                        "format": "binary"
                                    },
                                    "imageBarcode": {
                                        "maxLength": 26214400,
                                        "type": "string",
                                        "description": "JPEG or PNG image, at most 25 MiB. Runtime validation also enforces decoded dimensions and aspect ratio.",
                                        "format": "binary"
                                    },
                                    "traceId": { "maxLength": 256,"type": "string" },
                                    "configuration": {
                                        "allOf": [ { "$ref": "#/components/schemas/DocumentExtractionConfiguration" } ],
                                        "description": "Configuration object for the extraction endpoint."
                                    }
                                },
                                "additionalProperties": false,
                                "description": "At least one document-side image part must be provided. Use the barcode endpoint for barcode-only requests. When imageBarcode is provided, both imageFirstSide and imageSecondSide are required."
                            },
                            "encoding": {
                                "imageFirstSide" : { "contentType": "image/jpeg, image/png" },
                                "imageSecondSide": { "contentType": "image/jpeg, image/png" },
                                "imageBarcode"   : { "contentType": "image/jpeg, image/png" },
                                "configuration"  : { "contentType": "application/json"      }
                            }
                        }
                    },
                    "required": true
                },
                "responses": {
                    "200": {
                        "description": "Document extraction response",
                        "content": {
                            "application/json": { "schema": { "$ref": "#/components/schemas/ExtractionResponse" } }
                        }
                    },
                    "400": {
                        "description": "Invalid request.",
                        "content": {
                            "application/json": {
                                "schema": { "$ref": "#/components/schemas/V3ValidationErrorResponse" },
                                "example": {
                                    "message": "Invalid parameter in request.",
                                    "errors": [
                                        {
                                            "code": "InvalidParameter",
                                            "path": "verification.settings.screenPresenceSensitivity",
                                            "reason": "This parameter is invalid for the V3 multipart request schema."
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Worker license authentication failed. Returns the documented JSON diagnostic body.",
                        "content": {
                            "application/json": {
                                "schema": { "$ref": "#/components/schemas/V3WorkerErrorResponse" },
                                "example": { "message": "License is locked or server permission is not granted.","reason": "Remote lock denied by the license server." }
                            }
                        }
                    },
                    "413": {
                        "description": "Payload too large.",
                        "content": {
                            "application/json": { "schema": { "$ref": "#/components/schemas/V3ErrorResponse" },"example": { "message": "Payload too large." } }
                        }
                    },
                    "415": {
                        "description": "Unsupported media type.",
                        "content": {
                            "application/json": {
                                "schema": { "$ref": "#/components/schemas/V3ValidationErrorResponse" },
                                "example": {
                                    "message": "Unsupported media type.",
                                    "errors": [ { "code": "InvalidRequestFormat","path": "Content-Type","reason": "Content-Type must be multipart/form-data." } ]
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Server capacity is exhausted. Retry-After is returned. The memory-pressure limiter returns a JSON error body; the concurrency limiter can return an empty body.",
                        "headers": {
                            "Retry-After": { "description": "Suggested retry delay in seconds.","schema": { "type": "integer","format": "int32" } }
                        },
                        "content": {
                            "application/json": { "schema": { "$ref": "#/components/schemas/V3ErrorResponse" },"example": { "message": "Server is busy (memory pressure)." } }
                        }
                    },
                    "500": {
                        "description": "Internal server error.",
                        "content": {
                            "application/json": { "schema": { "$ref": "#/components/schemas/V3ErrorResponse" },"example": { "message": "Internal server error." } }
                        }
                    },
                    "503": {
                        "description": "Worker is unavailable in a Self-Hosted deployment.",
                        "content": {
                            "application/json": {
                                "schema": { "$ref": "#/components/schemas/V3WorkerErrorResponse" },
                                "example": { "message": "Worker not ready. Check worker logs for details.","reason": "Required workers are not ready." }
                            }
                        }
                    },
                    "504": {
                        "description": "Request timed out.",
                        "content": {
                            "application/json": { "schema": { "$ref": "#/components/schemas/V3ErrorResponse" },"example": { "message": "Request timed out." } }
                        }
                    }
                }
            }
        },
        "/api/v3/extract-barcode": {
            "post": {
                "summary": "Scan and parse a barcode",
                "operationId": "v3_extract_barcode",
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "required": [ "image" ],
                                "type": "object",
                                "properties": {
                                    "image": {
                                        "maxLength": 26214400,
                                        "type": "string",
                                        "description": "JPEG or PNG image, at most 25 MiB. Runtime validation also enforces decoded dimensions and aspect ratio.",
                                        "format": "binary"
                                    },
                                    "traceId": { "maxLength": 256,"type": "string" },
                                    "configuration": {
                                        "anyOf": [
                                            {
                                                "type": "object",
                                                "properties": { "extraction": { "$ref": "#/components/schemas/BarcodeExtractionConfiguration" } },
                                                "additionalProperties": false
                                            },
                                            {
                                                "maxLength": 1048576,
                                                "type": "string",
                                                "example": "{\"extraction\":{\"barcodeSettings\":{\"barcodeImageReturnEnabled\":false,\"pdf417ScanningEnabled\":true,\"qrScanningEnabled\":true,\"upceScanningEnabled\":false,\"upcaScanningEnabled\":false,\"code128ScanningEnabled\":false,\"code39ScanningEnabled\":false,\"ean8ScanningEnabled\":false,\"ean13ScanningEnabled\":false,\"itfScanningEnabled\":false,\"dataMatrixScanningEnabled\":false,\"aztecScanningEnabled\":false}}}"
                                            },
                                            { "maxLength": 1048576,"type": "string","description": "UTF-8 JSON file, at most 1 MiB.","format": "binary" }
                                        ],
                                        "description": "Typed JSON configuration supplied as an object, text form value, or UTF-8 JSON file part. Nested settings are accepted only through this part."
                                    }
                                },
                                "additionalProperties": false,
                                "description": "Only image is supported on the barcode endpoint."
                            },
                            "encoding": { "image": { "contentType": "image/jpeg, image/png" },"configuration": { "contentType": "application/json" } }
                        }
                    },
                    "required": true
                },
                "responses": {
                    "200": {
                        "description": "Barcode scanning response",
                        "content": {
                            "application/json": { "schema": { "$ref": "#/components/schemas/BarcodeResponse" } }
                        }
                    },
                    "400": {
                        "description": "Invalid request.",
                        "content": {
                            "application/json": {
                                "schema": { "$ref": "#/components/schemas/V3ValidationErrorResponse" },
                                "example": {
                                    "message": "Invalid parameter in request.",
                                    "errors": [
                                        {
                                            "code": "InvalidParameter",
                                            "path": "verification.settings.screenPresenceSensitivity",
                                            "reason": "This parameter is invalid for the V3 multipart request schema."
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Worker license authentication failed. Returns the documented JSON diagnostic body.",
                        "content": {
                            "application/json": {
                                "schema": { "$ref": "#/components/schemas/V3WorkerErrorResponse" },
                                "example": { "message": "License is locked or server permission is not granted.","reason": "Remote lock denied by the license server." }
                            }
                        }
                    },
                    "413": {
                        "description": "Payload too large.",
                        "content": {
                            "application/json": { "schema": { "$ref": "#/components/schemas/V3ErrorResponse" },"example": { "message": "Payload too large." } }
                        }
                    },
                    "415": {
                        "description": "Unsupported media type.",
                        "content": {
                            "application/json": {
                                "schema": { "$ref": "#/components/schemas/V3ValidationErrorResponse" },
                                "example": {
                                    "message": "Unsupported media type.",
                                    "errors": [ { "code": "InvalidRequestFormat","path": "Content-Type","reason": "Content-Type must be multipart/form-data." } ]
                                }
                            }
                        }
                    },
                    "429": {
                        "description": "Server capacity is exhausted. Retry-After is returned. The memory-pressure limiter returns a JSON error body; the concurrency limiter can return an empty body.",
                        "headers": {
                            "Retry-After": { "description": "Suggested retry delay in seconds.","schema": { "type": "integer","format": "int32" } }
                        },
                        "content": {
                            "application/json": { "schema": { "$ref": "#/components/schemas/V3ErrorResponse" },"example": { "message": "Server is busy (memory pressure)." } }
                        }
                    },
                    "500": {
                        "description": "Internal server error.",
                        "content": {
                            "application/json": { "schema": { "$ref": "#/components/schemas/V3ErrorResponse" },"example": { "message": "Internal server error." } }
                        }
                    },
                    "503": {
                        "description": "Worker is unavailable in a Self-Hosted deployment.",
                        "content": {
                            "application/json": {
                                "schema": { "$ref": "#/components/schemas/V3WorkerErrorResponse" },
                                "example": { "message": "Worker not ready. Check worker logs for details.","reason": "Required workers are not ready." }
                            }
                        }
                    },
                    "504": {
                        "description": "Request timed out.",
                        "content": {
                            "application/json": { "schema": { "$ref": "#/components/schemas/V3ErrorResponse" },"example": { "message": "Request timed out." } }
                        }
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "V3ValidationErrorCode": {
                "anyOf": [
                    { "enum": [ "InvalidParameter","InvalidParameterValue","InvalidParameterCombination","DuplicateParameter","InvalidRequestFormat" ],"type": "string" },
                    { "$ref": "#/components/schemas/OpenEnumValue" }
                ]
            },
            "V3ValidationError": {
                "required": [ "code","path","reason" ],
                "type": "object",
                "properties": {
                    "code": { "$ref": "#/components/schemas/V3ValidationErrorCode" },
                    "path": { "type": "string" },
                    "reason": { "type": "string" },
                    "relatedPaths": { "type": "array","items": { "type": "string" } }
                }
            },
            "V3ValidationErrorResponse": {
                "type": "object",
                "properties": {
                    "message": { "type": "string"                                                               },
                    "errors" : { "type": "array" ,"items": { "$ref": "#/components/schemas/V3ValidationError" } }
                }
            },
            "V3ErrorResponse": {
                "required": [ "message" ],
                "type": "object",
                "properties": { "message": { "type": "string" } }
            },
            "V3WorkerErrorResponse": {
                "required": [ "message","reason" ],
                "type": "object",
                "properties": { "message": { "type": "string" },"reason": { "type": "string" } }
            },
            "ExtractionPipelineStageStatus": {
                "anyOf": [
                    { "enum": [ "NotPerformed","Partial","Completed","Failed" ],"type": "string" },
                    { "$ref": "#/components/schemas/OpenEnumValue" }
                ]
            },
            "ExtractionPipelineStage": {
                "required": [ "status" ],
                "type": "object",
                "properties": { "status": { "$ref": "#/components/schemas/ExtractionPipelineStageStatus" } }
            },
            "VerificationPipelineStageStatus": {
                "anyOf": [
                    { "enum": [ "NotPerformed","Partial","Completed" ],"type": "string" },
                    { "$ref": "#/components/schemas/OpenEnumValue" }
                ]
            },
            "VerificationPipelineStage": {
                "required": [ "status" ],
                "type": "object",
                "properties": { "status": { "$ref": "#/components/schemas/VerificationPipelineStageStatus" } }
            },
            "Pipeline": {
                "required": [ "extraction","verification" ],
                "type": "object",
                "properties": { "extraction": { "$ref": "#/components/schemas/ExtractionPipelineStage" },"verification": { "$ref": "#/components/schemas/VerificationPipelineStage" } }
            },
            "ResponseMessage": {
                "required": [ "code","message" ],
                "type": "object",
                "properties": { "code": { "type": "string" },"message": { "type": "string" } }
            },
            "Verdict": {
                "anyOf": [
                    { "enum": [ "Unverifiable","Reject","Accept","Retry","Review" ],"type": "string" },
                    { "$ref": "#/components/schemas/OpenEnumValue" }
                ]
            },
            "TieredMultiSideCheck": {
                "allOf": [
                    { "$ref": "#/components/schemas/TieredCheck" },
                    {
                        "type": "object",
                        "properties": { "firstSide": { "$ref": "#/components/schemas/TieredCheck" },"secondSide": { "$ref": "#/components/schemas/TieredCheck" } }
                    }
                ]
            },
            "DataMatchChecks": {
                "allOf": [
                    { "$ref": "#/components/schemas/TieredCheck" },
                    {
                        "type": "object",
                        "properties": {
                            "firstNameCheck"                           : { "$ref": "#/components/schemas/Check" },
                            "lastNameCheck"                            : { "$ref": "#/components/schemas/Check" },
                            "fullNameCheck"                            : { "$ref": "#/components/schemas/Check" },
                            "additionalNameInformationCheck"           : { "$ref": "#/components/schemas/Check" },
                            "localizedNameCheck"                       : { "$ref": "#/components/schemas/Check" },
                            "fathersNameCheck"                         : { "$ref": "#/components/schemas/Check" },
                            "mothersNameCheck"                         : { "$ref": "#/components/schemas/Check" },
                            "addressCheck"                             : { "$ref": "#/components/schemas/Check" },
                            "additionalAddressInformationCheck"        : { "$ref": "#/components/schemas/Check" },
                            "additionalOptionalAddressInformationCheck": { "$ref": "#/components/schemas/Check" },
                            "placeOfBirthCheck"                        : { "$ref": "#/components/schemas/Check" },
                            "nationalityCheck"                         : { "$ref": "#/components/schemas/Check" },
                            "raceCheck"                                : { "$ref": "#/components/schemas/Check" },
                            "religionCheck"                            : { "$ref": "#/components/schemas/Check" },
                            "professionCheck"                          : { "$ref": "#/components/schemas/Check" },
                            "maritalStatusCheck"                       : { "$ref": "#/components/schemas/Check" },
                            "residentialStatusCheck"                   : { "$ref": "#/components/schemas/Check" },
                            "employerCheck"                            : { "$ref": "#/components/schemas/Check" },
                            "sexCheck"                                 : { "$ref": "#/components/schemas/Check" },
                            "dateOfBirthCheck"                         : { "$ref": "#/components/schemas/Check" },
                            "dateOfIssueCheck"                         : { "$ref": "#/components/schemas/Check" },
                            "dateOfExpiryCheck"                        : { "$ref": "#/components/schemas/Check" },
                            "documentNumberCheck"                      : { "$ref": "#/components/schemas/Check" },
                            "personalIdNumberCheck"                    : { "$ref": "#/components/schemas/Check" },
                            "documentAdditionalNumberCheck"            : { "$ref": "#/components/schemas/Check" },
                            "documentOptionalAdditionalNumberCheck"    : { "$ref": "#/components/schemas/Check" },
                            "additionalPersonalIdNumberCheck"          : { "$ref": "#/components/schemas/Check" },
                            "issuingAuthorityCheck"                    : { "$ref": "#/components/schemas/Check" }
                        }
                    }
                ]
            },
            "BarcodeAuthenticityChecks": {
                "allOf": [
                    { "$ref": "#/components/schemas/TieredCheck" },
                    {
                        "type": "object",
                        "properties": { "readCheck": { "$ref": "#/components/schemas/Check" },"contentCheck": { "$ref": "#/components/schemas/Check" } }
                    }
                ]
            },
            "DocumentLivenessChecks": {
                "allOf": [
                    { "$ref": "#/components/schemas/TieredCheck" },
                    {
                        "type": "object",
                        "properties": { "screenPresenceCheck": { "$ref": "#/components/schemas/TieredMultiSideCheck" },"photocopyCheck": { "$ref": "#/components/schemas/TieredMultiSideCheck" } }
                    }
                ]
            },
            "VisualChecks": {
                "allOf": [
                    { "$ref": "#/components/schemas/TieredCheck" },
                    {
                        "type": "object",
                        "properties": {
                            "portraitForgeryCheck" : { "$ref": "#/components/schemas/TieredCheck"          },
                            "securityFeaturesCheck": { "$ref": "#/components/schemas/Check"                },
                            "generativeAiCheck"    : { "$ref": "#/components/schemas/TieredMultiSideCheck" }
                        }
                    }
                ]
            },
            "PassesAtOrBelowSensitivity": {
                "anyOf": [
                    { "enum": [ "Level1","Level2","Level3","Level4","Level5","Level6","Level7","Level8","Level9","Level10","NotApplicable","None","Disabled" ],"type": "string" },
                    { "$ref": "#/components/schemas/OpenEnumValue" }
                ]
            },
            "TieredCheck": {
                "allOf": [
                    { "$ref": "#/components/schemas/Check" },
                    {
                        "required": [ "passesAtOrBelowSensitivity" ],
                        "type": "object",
                        "properties": { "passesAtOrBelowSensitivity": { "$ref": "#/components/schemas/PassesAtOrBelowSensitivity" } }
                    }
                ]
            },
            "MultiSideCheck": {
                "allOf": [
                    { "$ref": "#/components/schemas/Check" },
                    {
                        "type": "object",
                        "properties": { "firstSide": { "$ref": "#/components/schemas/Check" },"secondSide": { "$ref": "#/components/schemas/Check" } }
                    }
                ]
            },
            "DateLogicChecks": {
                "allOf": [
                    { "$ref": "#/components/schemas/Check" },
                    {
                        "type": "object",
                        "properties": {
                            "dateOfBirthBeforeDateOfIssueCheck" : { "$ref": "#/components/schemas/Check" },
                            "dateOfBirthBeforeDateOfExpiryCheck": { "$ref": "#/components/schemas/Check" },
                            "dateOfIssueBeforeDateOfExpiryCheck": { "$ref": "#/components/schemas/Check" },
                            "dateOfBirthInPastCheck"            : { "$ref": "#/components/schemas/Check" },
                            "dateOfIssueInPastCheck"            : { "$ref": "#/components/schemas/Check" }
                        }
                    }
                ]
            },
            "DataLogicChecks": {
                "allOf": [
                    { "$ref": "#/components/schemas/Check" },
                    {
                        "type": "object",
                        "properties": {
                            "dateLogicCheck"             : { "$ref": "#/components/schemas/DateLogicChecks" },
                            "documentNumberCheck"        : { "$ref": "#/components/schemas/Check"           },
                            "personalIdNumberCheck"      : { "$ref": "#/components/schemas/Check"           },
                            "documentDiscriminatorCheck" : { "$ref": "#/components/schemas/Check"           },
                            "customerIdNumberCheck"      : { "$ref": "#/components/schemas/Check"           },
                            "inventoryControlNumberCheck": { "$ref": "#/components/schemas/Check"           }
                        }
                    }
                ]
            },
            "DataFormatChecks": {
                "allOf": [
                    { "$ref": "#/components/schemas/Check" },
                    {
                        "type": "object",
                        "properties": {
                            "dateOfBirthCheck"                     : { "$ref": "#/components/schemas/Check" },
                            "dateOfExpiryCheck"                    : { "$ref": "#/components/schemas/Check" },
                            "dateOfIssueCheck"                     : { "$ref": "#/components/schemas/Check" },
                            "documentNumberCheck"                  : { "$ref": "#/components/schemas/Check" },
                            "documentAdditionalNumberCheck"        : { "$ref": "#/components/schemas/Check" },
                            "documentOptionalAdditionalNumberCheck": { "$ref": "#/components/schemas/Check" },
                            "personalIdNumberCheck"                : { "$ref": "#/components/schemas/Check" },
                            "additionalPersonalIdNumberCheck"      : { "$ref": "#/components/schemas/Check" },
                            "sexCheck"                             : { "$ref": "#/components/schemas/Check" },
                            "nationalityCheck"                     : { "$ref": "#/components/schemas/Check" },
                            "issuingAuthorityCheck"                : { "$ref": "#/components/schemas/Check" },
                            "maritalStatusCheck"                   : { "$ref": "#/components/schemas/Check" },
                            "religionCheck"                        : { "$ref": "#/components/schemas/Check" },
                            "classEffectiveDateCheck"              : { "$ref": "#/components/schemas/Check" },
                            "classExpiryDateCheck"                 : { "$ref": "#/components/schemas/Check" }
                        }
                    }
                ]
            },
            "MrzChecks": {
                "allOf": [
                    { "$ref": "#/components/schemas/Check" },
                    {
                        "type": "object",
                        "properties": { "parsedCheck": { "$ref": "#/components/schemas/Check" },"checkDigitsCheck": { "$ref": "#/components/schemas/Check" } }
                    }
                ]
            },
            "GenericDataCheck": {
                "allOf": [
                    { "$ref": "#/components/schemas/Check" },
                    {
                        "type": "object",
                        "properties": { "genericNumberCheck": { "$ref": "#/components/schemas/Check" },"genericStringCheck": { "$ref": "#/components/schemas/Check" } }
                    }
                ]
            },
            "DocumentValidityChecks": {
                "allOf": [
                    { "$ref": "#/components/schemas/Check" },
                    {
                        "type": "object",
                        "properties": { "expiredCheck": { "$ref": "#/components/schemas/Check" },"discontinuedDocumentCheck": { "$ref": "#/components/schemas/Check" } }
                    }
                ]
            },
            "CheckResult": {
                "anyOf": [
                    { "enum": [ "NotPerformed","Pass","Fail" ],"type": "string" },
                    { "$ref": "#/components/schemas/OpenEnumValue" }
                ]
            },
            "Check": {
                "required": [ "result" ],
                "type": "object",
                "properties": { "result": { "$ref": "#/components/schemas/CheckResult" } }
            },
            "ExtractedDataChecks": {
                "allOf": [
                    { "$ref": "#/components/schemas/Check" },
                    {
                        "type": "object",
                        "properties": {
                            "matchCheck"              : { "$ref": "#/components/schemas/DataMatchChecks"           },
                            "logicCheck"              : { "$ref": "#/components/schemas/DataLogicChecks"           },
                            "formatCheck"             : { "$ref": "#/components/schemas/DataFormatChecks"          },
                            "barcodeAuthenticityCheck": { "$ref": "#/components/schemas/BarcodeAuthenticityChecks" },
                            "mrzCheck"                : { "$ref": "#/components/schemas/MrzChecks"                 },
                            "genericDataCheck"        : { "$ref": "#/components/schemas/GenericDataCheck"          }
                        }
                    }
                ]
            },
            "DocumentChecks": {
                "type": "object",
                "properties": {
                    "extractedDataCheck"   : { "$ref": "#/components/schemas/ExtractedDataChecks"    },
                    "documentLivenessCheck": { "$ref": "#/components/schemas/DocumentLivenessChecks" },
                    "visualCheck"          : { "$ref": "#/components/schemas/VisualChecks"           },
                    "documentValidityCheck": { "$ref": "#/components/schemas/DocumentValidityChecks" }
                }
            },
            "VerificationResult": {
                "required": [ "failedChecks","verdict" ],
                "type": "object",
                "properties": {
                    "verdict": { "$ref": "#/components/schemas/Verdict" },
                    "failedChecks": { "type": "array","items": { "type": "string" } },
                    "checks": { "$ref": "#/components/schemas/DocumentChecks" }
                }
            },
            "ImageAssessment": {
                "type": "object",
                "properties": {
                    "imageQualityCheck"   : { "$ref": "#/components/schemas/Check"          },
                    "croppedDocumentCheck": { "$ref": "#/components/schemas/MultiSideCheck" },
                    "handPresenceCheck"   : { "$ref": "#/components/schemas/MultiSideCheck" }
                }
            },
            "ProcessingStatus": {
                "anyOf": [
                    {
                        "enum": [
                            "Success","DetectionFailed","ImagePreprocessingFailed","StabilityTestFailed","ScanningWrongSide","FieldIdentificationFailed","MandatoryFieldMissing",
                            "InvalidCharactersFound","ImageReturnFailed","BarcodeRecognitionFailed","MrzParsingFailed","UnsupportedDocument","AwaitingOtherSide","NotScanned",
                            "BarcodeDetectionFailed","MrzDetectionFailed","InputImageNotFocused","Canceled"
                        ],
                        "type": "string"
                    },
                    { "$ref": "#/components/schemas/OpenEnumValue" }
                ]
            },
            "VizResult": {
                "allOf": [ { "$ref": "#/components/schemas/ScanningDataResult" },{ "type": "object" } ]
            },
            "AlphabetString": {
                "type": "object",
                "properties": { "latin": { "type": "string" },"arabic": { "type": "string" },"cyrillic": { "type": "string" },"greek": { "type": "string" } }
            },
            "DateResult": {
                "type": "object",
                "properties": {
                    "day": { "type": "integer","format": "int32" },
                    "month": { "type": "integer","format": "int32" },
                    "year": { "type": "integer","format": "int32" },
                    "filledByDomainKnowledge": { "type": "boolean" },
                    "originalString": { "$ref": "#/components/schemas/AlphabetString" },
                    "successfullyParsed": { "type": "boolean" }
                }
            },
            "DependentInfo": {
                "type": "object",
                "properties": {
                    "dateOfBirth"   : { "$ref": "#/components/schemas/DateResult"     },
                    "documentNumber": { "$ref": "#/components/schemas/AlphabetString" },
                    "fullName"      : { "$ref": "#/components/schemas/AlphabetString" },
                    "sex"           : { "$ref": "#/components/schemas/AlphabetString" }
                }
            },
            "VehicleClassInfo": {
                "type": "object",
                "properties": {
                    "effectiveDate": { "$ref": "#/components/schemas/DateResult"     },
                    "expiryDate"   : { "$ref": "#/components/schemas/DateResult"     },
                    "vehicleClass" : { "$ref": "#/components/schemas/AlphabetString" }
                }
            },
            "DriverLicenceDetailedInfo": {
                "type": "object",
                "properties": {
                    "conditions": { "$ref": "#/components/schemas/AlphabetString" },
                    "endorsements": { "$ref": "#/components/schemas/AlphabetString" },
                    "restrictions": { "$ref": "#/components/schemas/AlphabetString" },
                    "vehicleClass": { "$ref": "#/components/schemas/AlphabetString" },
                    "vehicleClassesInfo": { "type": "array","items": { "$ref": "#/components/schemas/VehicleClassInfo" } }
                }
            },
            "ParentInfo": {
                "type": "object",
                "properties": {
                    "firstName": { "$ref": "#/components/schemas/AlphabetString" },
                    "lastName" : { "$ref": "#/components/schemas/AlphabetString" },
                    "fullName" : { "$ref": "#/components/schemas/AlphabetString" }
                }
            },
            "ScanningDataResult": {
                "type": "object",
                "properties": {
                    "additionalAddressInformation": { "$ref": "#/components/schemas/AlphabetString" },
                    "additionalNameInformation": { "$ref": "#/components/schemas/AlphabetString" },
                    "additionalOptionalAddressInformation": { "$ref": "#/components/schemas/AlphabetString" },
                    "additionalPersonalIdNumber": { "$ref": "#/components/schemas/AlphabetString" },
                    "address": { "$ref": "#/components/schemas/AlphabetString" },
                    "bloodType": { "$ref": "#/components/schemas/AlphabetString" },
                    "cardAccessNumber": { "$ref": "#/components/schemas/AlphabetString" },
                    "certificateNumber": { "$ref": "#/components/schemas/AlphabetString" },
                    "countryCode": { "$ref": "#/components/schemas/AlphabetString" },
                    "dateOfBirth": { "$ref": "#/components/schemas/DateResult" },
                    "dateOfEntry": { "$ref": "#/components/schemas/DateResult" },
                    "dateOfExpiry": { "$ref": "#/components/schemas/DateResult" },
                    "dateOfExpiryPermanent": { "type": "boolean" },
                    "dateOfIssue": { "$ref": "#/components/schemas/DateResult" },
                    "dependentsInfo": { "type": "array","items": { "$ref": "#/components/schemas/DependentInfo" } },
                    "documentAdditionalNumber": { "$ref": "#/components/schemas/AlphabetString" },
                    "documentNumber": { "$ref": "#/components/schemas/AlphabetString" },
                    "documentOptionalAdditionalNumber": { "$ref": "#/components/schemas/AlphabetString" },
                    "documentSubtype": { "$ref": "#/components/schemas/AlphabetString" },
                    "driverLicenseDetailedInfo": { "$ref": "#/components/schemas/DriverLicenceDetailedInfo" },
                    "effectiveDate": { "$ref": "#/components/schemas/DateResult" },
                    "eligibilityCategory": { "$ref": "#/components/schemas/AlphabetString" },
                    "employer": { "$ref": "#/components/schemas/AlphabetString" },
                    "ethnicity": { "$ref": "#/components/schemas/AlphabetString" },
                    "fathersName": { "$ref": "#/components/schemas/AlphabetString" },
                    "firstName": { "$ref": "#/components/schemas/AlphabetString" },
                    "fullName": { "$ref": "#/components/schemas/AlphabetString" },
                    "husbandName": { "$ref": "#/components/schemas/AlphabetString" },
                    "issuingAuthority": { "$ref": "#/components/schemas/AlphabetString" },
                    "lastName": { "$ref": "#/components/schemas/AlphabetString" },
                    "legalStatus": { "$ref": "#/components/schemas/AlphabetString" },
                    "localityCode": { "$ref": "#/components/schemas/AlphabetString" },
                    "localizedName": { "$ref": "#/components/schemas/AlphabetString" },
                    "maidenName": { "$ref": "#/components/schemas/AlphabetString" },
                    "manufacturingYear": { "$ref": "#/components/schemas/AlphabetString" },
                    "maritalStatus": { "$ref": "#/components/schemas/AlphabetString" },
                    "mothersName": { "$ref": "#/components/schemas/AlphabetString" },
                    "municipalityCode": { "$ref": "#/components/schemas/AlphabetString" },
                    "municipalityOfRegistration": { "$ref": "#/components/schemas/AlphabetString" },
                    "nationalInsuranceNumber": { "$ref": "#/components/schemas/AlphabetString" },
                    "nationality": { "$ref": "#/components/schemas/AlphabetString" },
                    "parentsInfo": { "type": "array","items": { "$ref": "#/components/schemas/ParentInfo" } },
                    "personalIdNumber": { "$ref": "#/components/schemas/AlphabetString" },
                    "placeOfBirth": { "$ref": "#/components/schemas/AlphabetString" },
                    "pollingStationCode": { "$ref": "#/components/schemas/AlphabetString" },
                    "profession": { "$ref": "#/components/schemas/AlphabetString" },
                    "race": { "$ref": "#/components/schemas/AlphabetString" },
                    "registrationCenterCode": { "$ref": "#/components/schemas/AlphabetString" },
                    "religion": { "$ref": "#/components/schemas/AlphabetString" },
                    "remarks": { "$ref": "#/components/schemas/AlphabetString" },
                    "residencePermitType": { "$ref": "#/components/schemas/AlphabetString" },
                    "residentialStatus": { "$ref": "#/components/schemas/AlphabetString" },
                    "sectionCode": { "$ref": "#/components/schemas/AlphabetString" },
                    "sex": { "$ref": "#/components/schemas/AlphabetString" },
                    "socialSecurityStatus": { "$ref": "#/components/schemas/AlphabetString" },
                    "specificDocumentValidity": { "$ref": "#/components/schemas/AlphabetString" },
                    "sponsor": { "$ref": "#/components/schemas/AlphabetString" },
                    "stateCode": { "$ref": "#/components/schemas/AlphabetString" },
                    "stateName": { "$ref": "#/components/schemas/AlphabetString" },
                    "vehicleOwner": { "$ref": "#/components/schemas/AlphabetString" },
                    "vehicleType": { "$ref": "#/components/schemas/AlphabetString" },
                    "visaType": { "$ref": "#/components/schemas/AlphabetString" },
                    "workRestriction": { "$ref": "#/components/schemas/AlphabetString" }
                }
            },
            "SimpleDateResult": {
                "type": "object",
                "properties": {
                    "day"                    : { "type": "integer","format": "int32" },
                    "month"                  : { "type": "integer","format": "int32" },
                    "year"                   : { "type": "integer","format": "int32" },
                    "filledByDomainKnowledge": { "type": "boolean"                   },
                    "originalString"         : { "type": "string"                    },
                    "successfullyParsed"     : { "type": "boolean"                   }
                }
            },
            "MrtdDocumentType": {
                "anyOf": [
                    {
                        "enum": [ "Unknown","IdentityCard","Passport","Visa","GreenCard","MysPassIMM13P","DriverLicense","InternalTravelDocument","BorderCrossingCard" ],
                        "type": "string"
                    },
                    { "$ref": "#/components/schemas/OpenEnumValue" }
                ]
            },
            "MrzResult": {
                "type": "object",
                "properties": {
                    "dateOfBirth": { "$ref": "#/components/schemas/SimpleDateResult" },
                    "dateOfExpiry": { "$ref": "#/components/schemas/SimpleDateResult" },
                    "documentCode": { "type": "string" },
                    "documentNumber": { "type": "string" },
                    "documentType": { "$ref": "#/components/schemas/MrtdDocumentType" },
                    "gender": { "type": "string" },
                    "issuer": { "type": "string" },
                    "issuerName": { "type": "string" },
                    "nationality": { "type": "string" },
                    "nationalityName": { "type": "string" },
                    "opt1": { "type": "string" },
                    "opt2": { "type": "string" },
                    "primaryId": { "type": "string" },
                    "rawMrzString": { "type": "string" },
                    "sanitizedDocumentCode": { "type": "string" },
                    "sanitizedDocumentNumber": { "type": "string" },
                    "sanitizedIssuer": { "type": "string" },
                    "sanitizedNationality": { "type": "string" },
                    "sanitizedOpt1": { "type": "string" },
                    "sanitizedOpt2": { "type": "string" },
                    "secondaryId": { "type": "string" },
                    "verified": { "type": "boolean" }
                }
            },
            "AddressDetailedInfo": {
                "type": "object",
                "properties": { "city": { "type": "string" },"jurisdiction": { "type": "string" },"postalCode": { "type": "string" },"street": { "type": "string" } }
            },
            "BarcodeData": {
                "type": "object",
                "properties": { "barcodeType": { "type": "string" },"uncertain": { "type": "boolean" },"rawData": { "type": "string" },"stringData": { "type": "string" } }
            },
            "BarcodeVehicleClassInfo": {
                "type": "object",
                "properties": {
                    "effectiveDate": { "$ref": "#/components/schemas/SimpleDateResult" },
                    "expiryDate": { "$ref": "#/components/schemas/SimpleDateResult" },
                    "vehicleClass": { "type": "string" }
                }
            },
            "BarcodeDriverLicenceDetailedInfo": {
                "type": "object",
                "properties": {
                    "conditions": { "type": "string" },
                    "endorsements": { "type": "string" },
                    "restrictions": { "type": "string" },
                    "vehicleClass": { "type": "string" },
                    "vehicleClassesInfo": { "type": "array","items": { "$ref": "#/components/schemas/BarcodeVehicleClassInfo" } }
                }
            },
            "BarcodeElementKey": {
                "anyOf": [
                    {
                        "enum": [
                            "DocumentType","StandardVersionNumber","CustomerFamilyName","CustomerFirstName","CustomerFullName","DateOfBirth","Sex","EyeColor","AddressStreet","AddressCity",
                            "AddressJurisdictionCode","AddressPostalCode","FullAddress","Height","HeightIn","HeightCm","CustomerMiddleName","HairColor","NameSuffix","AKAFullName",
                            "AKAFamilyName","AKAGivenName","AKASuffixName","WeightRange","WeightPounds","WeightKilograms","CustomerIdNumber","FamilyNameTruncation","FirstNameTruncation",
                            "MiddleNameTruncation","PlaceOfBirth","AddressStreet2","RaceEthnicity","NamePrefix","CountryIdentification","ResidenceStreetAddress","ResidenceStreetAddress2",
                            "ResidenceCity","ResidenceJurisdictionCode","ResidencePostalCode","ResidenceFullAddress","Under18","Under19","Under21","SocialSecurityNumber",
                            "AKASocialSecurityNumber","AKAMiddleName","AKAPrefixName","OrganDonor","Veteran","AKADateOfBirth","IssuerIdentificationNumber","DocumentExpirationDate",
                            "JurisdictionVersionNumber","JurisdictionVehicleClass","JurisdictionRestrictionCodes","JurisdictionEndorsementCodes","JurisdictionRestrictionCodeDescription",
                            "DocumentIssueDate","FederalCommercialVehicleCodes","IssuingJurisdiction","StandardVehicleClassification","IssuingJurisdictionName","StandardEndorsementCode",
                            "StandardRestrictionCode","JurisdictionVehicleClassificationDescription","JurisdictionEndorsmentCodeDescription","InventoryControlNumber","CardRevisionDate",
                            "DocumentDiscriminator","LimitedDurationDocument","AuditInformation","ComplianceType","IssueTimestamp","PermitExpirationDate","PermitIdentifier",
                            "PermitIssueDate","NumberOfDuplicates","HAZMATExpirationDate","MedicalIndicator","NonResident","UniqueCustomerId","DataDiscriminator","DocumentExpirationMonth",
                            "DocumentNonexpiring","SecurityVersion","SubFieldDesignator"
                        ],
                        "type": "string"
                    },
                    { "$ref": "#/components/schemas/OpenEnumValue" }
                ]
            },
            "BarcodeExtendedElement": {
                "required": [ "key","value" ],
                "type": "object",
                "properties": { "key": { "$ref": "#/components/schemas/BarcodeElementKey" },"value": { "type": "string" } }
            },
            "BarcodeResult": {
                "type": "object",
                "properties": {
                    "additionalNameInformation": { "type": "string" },
                    "address": { "type": "string" },
                    "addressDetailedInfo": { "$ref": "#/components/schemas/AddressDetailedInfo" },
                    "barcodeData": { "$ref": "#/components/schemas/BarcodeData" },
                    "dateOfBirth": { "$ref": "#/components/schemas/SimpleDateResult" },
                    "dateOfExpiry": { "$ref": "#/components/schemas/SimpleDateResult" },
                    "dateOfIssue": { "$ref": "#/components/schemas/SimpleDateResult" },
                    "documentAdditionalNumber": { "type": "string" },
                    "documentNumber": { "type": "string" },
                    "driverLicenseDetailedInfo": { "$ref": "#/components/schemas/BarcodeDriverLicenceDetailedInfo" },
                    "employer": { "type": "string" },
                    "extendedElements": { "type": "array","items": { "$ref": "#/components/schemas/BarcodeExtendedElement" } },
                    "firstName": { "type": "string" },
                    "fullName": { "type": "string" },
                    "issuingAuthority": { "type": "string" },
                    "lastName": { "type": "string" },
                    "maritalStatus": { "type": "string" },
                    "middleName": { "type": "string" },
                    "nationality": { "type": "string" },
                    "parsed": { "type": "boolean" },
                    "personalIdNumber": { "type": "string" },
                    "placeOfBirth": { "type": "string" },
                    "profession": { "type": "string" },
                    "race": { "type": "string" },
                    "religion": { "type": "string" },
                    "residentialStatus": { "type": "string" },
                    "sex": { "type": "string" }
                }
            },
            "SingleSideScanningResult": {
                "type": "object",
                "properties": {
                    "viz"    : { "$ref": "#/components/schemas/VizResult"     },
                    "mrz"    : { "$ref": "#/components/schemas/MrzResult"     },
                    "barcode": { "$ref": "#/components/schemas/BarcodeResult" }
                }
            },
            "ExtractionSubResults": {
                "type": "object",
                "properties": { "firstSide": { "$ref": "#/components/schemas/SingleSideScanningResult" },"secondSide": { "$ref": "#/components/schemas/SingleSideScanningResult" } }
            },
            "DocumentClassInfo": {
                "type": "object",
                "properties": {
                    "country"              : { "type": "string" },
                    "countryName"          : { "type": "string" },
                    "isoAlpha2CountryCode" : { "type": "string" },
                    "isoAlpha3CountryCode" : { "type": "string" },
                    "isoNumericCountryCode": { "type": "string" },
                    "region"               : { "type": "string" },
                    "type"                 : { "type": "string" }
                }
            },
            "ExtractionDataResult": {
                "allOf": [
                    { "$ref": "#/components/schemas/ScanningDataResult" },
                    {
                        "type": "object",
                        "properties": { "subResults": { "$ref": "#/components/schemas/ExtractionSubResults" },"documentClassInfo": { "$ref": "#/components/schemas/DocumentClassInfo" } }
                    }
                ]
            },
            "ImageAnalysisDetectionStatus": {
                "anyOf": [
                    { "enum": [ "NotAvailable","NotDetected","Detected" ],"type": "string" },
                    { "$ref": "#/components/schemas/OpenEnumValue" }
                ]
            },
            "FieldType": {
                "anyOf": [
                    {
                        "enum": [
                            "AdditionalAddressInformation","AdditionalNameInformation","AdditionalOptionalAddressInformation","AdditionalPersonalIdNumber","Address","BloodType",
                            "ClassEffectiveDate","ClassExpiryDate","Conditions","DateOfBirth","DateOfExpiry","DateOfIssue","DocumentAdditionalNumber","DocumentNumber",
                            "DocumentOptionalAdditionalNumber","Employer","Endorsements","FathersName","FirstName","FullName","IssuingAuthority","LastName","LicenceType","MaritalStatus",
                            "MothersName","Mrz","Nationality","PersonalIdNumber","PlaceOfBirth","Profession","Race","Religion","ResidentialStatus","Restrictions","Sex","Sponsor",
                            "VehicleClass","VisaType","CertificateNumber","CountryCode","DependentDateOfBirth","DependentDocumentNumber","DependentFullName","DependentSex",
                            "DocumentSubtype","EligibilityCategory","ManufacturingYear","NationalInsuranceNumber","Remarks","ResidencePermitType","SpecificDocumentValidity","VehicleOwner",
                            "VehicleType","LocalizedName","StateName","StateCode","SectionCode","RegistrationCenterCode","MaidenName","MunicipalityOfRegistration","LocalityCode",
                            "DateOfEntry","MunicipalityCode","PollingStationCode","EffectiveDate","ParentsLastName","WorkRestriction","ParentsFirstName","SocialSecurityStatus",
                            "LegalStatus","HusbandName","ParentFullName","Ethnicity","CardAccessNumber"
                        ],
                        "type": "string"
                    },
                    { "$ref": "#/components/schemas/OpenEnumValue" }
                ]
            },
            "ImageExtractionType": {
                "anyOf": [
                    { "enum": [ "Document","Face","Signature" ],"type": "string" },
                    { "$ref": "#/components/schemas/OpenEnumValue" }
                ]
            },
            "AdditionalProcessingInfo": {
                "type": "object",
                "properties": {
                    "processingStatus": { "$ref": "#/components/schemas/ProcessingStatus" },
                    "realIdDetectionStatus": { "$ref": "#/components/schemas/ImageAnalysisDetectionStatus" },
                    "missingMandatoryFields": { "type": "array","items": { "$ref": "#/components/schemas/FieldType" } },
                    "invalidCharacterFields": { "type": "array","items": { "$ref": "#/components/schemas/FieldType" } },
                    "extraPresentFields": { "type": "array","items": { "$ref": "#/components/schemas/FieldType" } },
                    "imageExtractionFailures": { "type": "array","items": { "$ref": "#/components/schemas/ImageExtractionType" } }
                }
            },
            "ExtractionAdditionalProcessingInfo": {
                "type": "object",
                "properties": { "firstSide": { "$ref": "#/components/schemas/AdditionalProcessingInfo" },"secondSide": { "$ref": "#/components/schemas/AdditionalProcessingInfo" } }
            },
            "ExtractionResult": {
                "required": [ "processingStatus","result" ],
                "type": "object",
                "properties": {
                    "processingStatus"        : { "$ref": "#/components/schemas/ProcessingStatus"                   },
                    "result"                  : { "$ref": "#/components/schemas/ExtractionDataResult"               },
                    "additionalProcessingInfo": { "$ref": "#/components/schemas/ExtractionAdditionalProcessingInfo" }
                }
            },
            "ExtractionImages": {
                "type": "object",
                "properties": {
                    "firstSideCropped" : { "type": "string" },
                    "secondSideCropped": { "type": "string" },
                    "face"             : { "type": "string" },
                    "signature"        : { "type": "string" },
                    "barcode"          : { "type": "string" }
                }
            },
            "DocumentVerificationPolicy": {
                "anyOf": [
                    { "enum": [ "HighConversion","Balanced","HighAssurance" ],"type": "string" },
                    { "$ref": "#/components/schemas/OpenEnumValue" }
                ]
            },
            "VerificationContext": {
                "anyOf": [
                    { "enum": [ "Remote","InPerson" ],"type": "string" },
                    { "$ref": "#/components/schemas/OpenEnumValue" }
                ]
            },
            "ReviewStrategy": {
                "anyOf": [
                    { "enum": [ "Never","RejectedAndAccepted","RejectedOnly","AcceptedOnly" ],"type": "string" },
                    { "$ref": "#/components/schemas/OpenEnumValue" }
                ]
            },
            "VerificationUseCase": {
                "type": "object",
                "properties": {
                    "verificationPolicy"  : { "$ref": "#/components/schemas/DocumentVerificationPolicy" },
                    "verificationContext" : { "$ref": "#/components/schemas/VerificationContext"        },
                    "manualReviewStrategy": { "$ref": "#/components/schemas/ReviewStrategy"             }
                },
                "description": "High-level verification use-case options."
            },
            "Sensitivity": {
                "anyOf": [
                    { "enum": [ "Level1","Level2","Level3","Level4","Level5","Level6","Level7","Level8","Level9","Level10","Disabled" ],"type": "string" },
                    { "$ref": "#/components/schemas/OpenEnumValue" }
                ]
            },
            "ImageQualityRetryPolicy": {
                "anyOf": [
                    { "enum": [ "NeverRetryBadQuality","RetryBadQualityAlways","RetryBadQualityForAcceptances","RetryBadQualityForRejections" ],"type": "string" },
                    { "$ref": "#/components/schemas/OpenEnumValue" }
                ]
            },
            "VerificationSettings": {
                "type": "object",
                "properties": {
                    "screenPresenceSensitivity": { "$ref": "#/components/schemas/Sensitivity" },
                    "photocopySensitivity": { "$ref": "#/components/schemas/Sensitivity" },
                    "barcodeAuthenticitySensitivity": { "$ref": "#/components/schemas/Sensitivity" },
                    "portraitForgerySensitivity": { "$ref": "#/components/schemas/Sensitivity" },
                    "dataMatchSensitivity": { "$ref": "#/components/schemas/Sensitivity" },
                    "generativeAiSensitivity": { "$ref": "#/components/schemas/Sensitivity" },
                    "imageQualityRetryPolicy": { "$ref": "#/components/schemas/ImageQualityRetryPolicy" },
                    "rejectExpiredDocuments": { "type": "boolean" },
                    "cropAffectsVerdict": { "type": "boolean" }
                },
                "description": "Per-check sensitivities and related verification toggles."
            },
            "VerificationConfigurationUsed": {
                "type": "object",
                "properties": { "useCase": { "$ref": "#/components/schemas/VerificationUseCase" },"settings": { "$ref": "#/components/schemas/VerificationSettings" } }
            },
            "RedactionMode": {
                "anyOf": [
                    { "enum": [ "None","ImageOnly","ResultFieldsOnly","FullResult" ],"type": "string" },
                    { "$ref": "#/components/schemas/OpenEnumValue" }
                ]
            },
            "RedactionSettings": {
                "type": "object",
                "properties": {
                    "globalMode": {
                        "allOf": [ { "$ref": "#/components/schemas/RedactionMode" } ],
                        "description": "Controls redaction of extracted images and result fields. When omitted, FullResult is used."
                    }
                }
            },
            "VerificationDocumentCaptureModuleSettings": {
                "type": "object",
                "properties": { "faceImageExtractionEnabled": { "type": "boolean" },"documentImageReturnEnabled": { "type": "boolean" } }
            },
            "VizModuleSettings": {
                "type": "object",
                "properties": { "signatureImageExtractionEnabled": { "type": "boolean" } }
            },
            "BarcodeModuleSettings": {
                "type": "object",
                "properties": { "barcodeImageReturnEnabled": { "type": "boolean" } }
            },
            "VerificationExtractionConfigurationUsed": {
                "type": "object",
                "properties": {
                    "redactionSettings"            : { "$ref": "#/components/schemas/RedactionSettings"                         },
                    "documentCaptureModuleSettings": { "$ref": "#/components/schemas/VerificationDocumentCaptureModuleSettings" },
                    "vizModuleSettings"            : { "$ref": "#/components/schemas/VizModuleSettings"                         },
                    "barcodeModuleSettings"        : { "$ref": "#/components/schemas/BarcodeModuleSettings"                     }
                }
            },
            "ImageAssessmentConfiguration": {
                "type": "object",
                "properties": {
                    "imageQualitySensitivity": {
                        "allOf": [ { "$ref": "#/components/schemas/Sensitivity" } ],
                        "description": "Single sensitivity applied uniformly to all image-quality dimensions. On /api/v3/verify, verificationPolicy may adjust the effective value."
                    }
                },
                "description": "Shared image-assessment settings for /api/v3/verify and /api/v3/extract."
            },
            "ConfigurationUsed": {
                "type": "object",
                "properties": {
                    "verification"   : { "$ref": "#/components/schemas/VerificationConfigurationUsed"           },
                    "extraction"     : { "$ref": "#/components/schemas/VerificationExtractionConfigurationUsed" },
                    "imageAssessment": { "$ref": "#/components/schemas/ImageAssessmentConfiguration"            }
                }
            },
            "RuntimeInformation": {
                "required": [ "blinkIdVerifyVersion","blinkIdVersion","elapsedMs","executionId","finishedOn","startedOn" ],
                "type": "object",
                "properties": {
                    "startedOn": { "type": "string","format": "date-time" },
                    "finishedOn": { "type": "string","format": "date-time" },
                    "elapsedMs": { "type": "integer","format": "int64" },
                    "blinkIdVersion": { "type": "string" },
                    "blinkIdVerifyVersion": { "type": "string" },
                    "blinkIdRecognizerVersion": { "type": "string" },
                    "blinkIdVerifyRecognizerVersion": { "type": "string" },
                    "recognitionPath": { "type": "string" },
                    "dockerImageTag": { "type": "string" },
                    "workerIndex": { "type": "integer","format": "int32" },
                    "apiImageTag": { "type": "string" },
                    "workerImageTag": { "type": "string" },
                    "traceId": { "type": "string" },
                    "executionId": { "type": "string" },
                    "cpus": { "type": "integer","format": "int32" },
                    "cpuType": { "type": "string" },
                    "ram": { "type": "integer","format": "int32" },
                    "workerCount": { "type": "integer","format": "int32" },
                    "inflightLimit": { "type": "integer","format": "int32" },
                    "internalQueueSize": { "type": "integer","format": "int32" },
                    "licenseExpiry": { "type": "string","format": "date-time" },
                    "licenseId": { "type": "string" }
                }
            },
            "DocumentVerificationResponse": {
                "required": [ "configurationUsed","extraction","imageAssessment","pipeline","runtime","verification" ],
                "type": "object",
                "properties": {
                    "pipeline": { "$ref": "#/components/schemas/Pipeline" },
                    "messages": { "type": "array","items": { "$ref": "#/components/schemas/ResponseMessage" } },
                    "verification": { "$ref": "#/components/schemas/VerificationResult" },
                    "imageAssessment": { "$ref": "#/components/schemas/ImageAssessment" },
                    "extraction": { "$ref": "#/components/schemas/ExtractionResult" },
                    "images": { "$ref": "#/components/schemas/ExtractionImages" },
                    "configurationUsed": { "$ref": "#/components/schemas/ConfigurationUsed" },
                    "runtime": { "$ref": "#/components/schemas/RuntimeInformation" }
                }
            },
            "VerificationConfiguration": {
                "type": "object",
                "properties": { "useCase": { "$ref": "#/components/schemas/VerificationUseCase" },"settings": { "$ref": "#/components/schemas/VerificationSettings" } },
                "additionalProperties": false
            },
            "VerificationExtractionConfiguration": {
                "type": "object",
                "properties": {
                    "redactionSettings"            : { "$ref": "#/components/schemas/RedactionSettings"                         },
                    "documentCaptureModuleSettings": { "$ref": "#/components/schemas/VerificationDocumentCaptureModuleSettings" },
                    "vizModuleSettings"            : { "$ref": "#/components/schemas/VizModuleSettings"                         },
                    "barcodeModuleSettings"        : { "$ref": "#/components/schemas/BarcodeModuleSettings"                     }
                },
                "additionalProperties": false
            },
            "DocumentVerificationConfiguration": {
                "type": "object",
                "properties": {
                    "verification"   : { "$ref": "#/components/schemas/VerificationConfiguration"           },
                    "extraction"     : { "$ref": "#/components/schemas/VerificationExtractionConfiguration" },
                    "imageAssessment": { "$ref": "#/components/schemas/ImageAssessmentConfiguration"        }
                },
                "additionalProperties": false,
                "description": "Configuration object accepted by /api/v3/verify. Supply as JSON text or a JSON file part named configuration.",
                "example": {
                    "verification": { "settings": { "screenPresenceSensitivity": "Level5" } },
                    "extraction": { "redactionSettings": { "globalMode": "FullResult" } },
                    "imageAssessment": { "imageQualitySensitivity": "Level5" }
                }
            },
            "ExtractionDocumentCaptureModuleSettings": {
                "type": "object",
                "properties": {
                    "faceImageExtractionEnabled"            : { "type": "boolean" },
                    "documentImageReturnEnabled"            : { "type": "boolean" },
                    "secondSideWithNoExtractableDataSkipped": { "type": "boolean" },
                    "passportDataPageScanOnly"              : { "type": "boolean" }
                },
                "additionalProperties": false
            },
            "ExtractionVizModuleSettings": {
                "type": "object",
                "properties": { "signatureImageExtractionEnabled": { "type": "boolean" },"characterValidationEnabled": { "type": "boolean" } },
                "additionalProperties": false
            },
            "ExtractionConfiguration": {
                "type": "object",
                "properties": {
                    "redactionSettings"            : { "$ref": "#/components/schemas/RedactionSettings"                       },
                    "documentCaptureModuleSettings": { "$ref": "#/components/schemas/ExtractionDocumentCaptureModuleSettings" },
                    "vizModuleSettings"            : { "$ref": "#/components/schemas/ExtractionVizModuleSettings"             },
                    "barcodeModuleSettings"        : { "$ref": "#/components/schemas/BarcodeModuleSettings"                   }
                },
                "additionalProperties": false
            },
            "DocumentExtractionConfiguration": {
                "type": "object",
                "properties": { "extraction": { "$ref": "#/components/schemas/ExtractionConfiguration" },"imageAssessment": { "$ref": "#/components/schemas/ImageAssessmentConfiguration" } },
                "additionalProperties": false,
                "description": "Configuration object accepted by /api/v3/extract. Verification settings are rejected on this endpoint.",
                "example": {
                    "extraction": { "redactionSettings": { "globalMode": "FullResult" } },
                    "imageAssessment": { "imageQualitySensitivity": "Level5" }
                }
            },
            "ExtractionConfigurationUsed": {
                "type": "object",
                "properties": {
                    "redactionSettings"            : { "$ref": "#/components/schemas/RedactionSettings"                       },
                    "documentCaptureModuleSettings": { "$ref": "#/components/schemas/ExtractionDocumentCaptureModuleSettings" },
                    "vizModuleSettings"            : { "$ref": "#/components/schemas/ExtractionVizModuleSettings"             },
                    "barcodeModuleSettings"        : { "$ref": "#/components/schemas/BarcodeModuleSettings"                   }
                }
            },
            "DocumentExtractionConfigurationUsed": {
                "type": "object",
                "properties": {
                    "extraction"     : { "$ref": "#/components/schemas/ExtractionConfigurationUsed"  },
                    "imageAssessment": { "$ref": "#/components/schemas/ImageAssessmentConfiguration" }
                }
            },
            "ExtractionResponse": {
                "required": [ "extraction","runtime" ],
                "type": "object",
                "properties": {
                    "imageAssessment"  : { "$ref": "#/components/schemas/ImageAssessment"                     },
                    "extraction"       : { "$ref": "#/components/schemas/ExtractionResult"                    },
                    "images"           : { "$ref": "#/components/schemas/ExtractionImages"                    },
                    "runtime"          : { "$ref": "#/components/schemas/RuntimeInformation"                  },
                    "configurationUsed": { "$ref": "#/components/schemas/DocumentExtractionConfigurationUsed" }
                }
            },
            "BarcodeExtractionDataResult": {
                "type": "object",
                "properties": { "barcode": { "$ref": "#/components/schemas/BarcodeResult" } }
            },
            "BarcodeExtractionResult": {
                "type": "object",
                "properties": { "processingStatus": { "$ref": "#/components/schemas/ProcessingStatus" },"result": { "$ref": "#/components/schemas/BarcodeExtractionDataResult" } }
            },
            "BarcodeSettingsUsed": {
                "type": "object",
                "properties": {
                    "barcodeImageReturnEnabled": { "type": "boolean" },
                    "pdf417ScanningEnabled"    : { "type": "boolean" },
                    "qrScanningEnabled"        : { "type": "boolean" },
                    "upceScanningEnabled"      : { "type": "boolean" },
                    "upcaScanningEnabled"      : { "type": "boolean" },
                    "code128ScanningEnabled"   : { "type": "boolean" },
                    "code39ScanningEnabled"    : { "type": "boolean" },
                    "ean8ScanningEnabled"      : { "type": "boolean" },
                    "ean13ScanningEnabled"     : { "type": "boolean" },
                    "itfScanningEnabled"       : { "type": "boolean" },
                    "dataMatrixScanningEnabled": { "type": "boolean" },
                    "aztecScanningEnabled"     : { "type": "boolean" }
                }
            },
            "BarcodeExtractionConfigurationUsed": {
                "type": "object",
                "properties": { "barcodeSettings": { "$ref": "#/components/schemas/BarcodeSettingsUsed" } }
            },
            "BarcodeDocumentConfigurationUsed": {
                "type": "object",
                "properties": { "extraction": { "$ref": "#/components/schemas/BarcodeExtractionConfigurationUsed" } }
            },
            "BarcodeResponse": {
                "required": [ "configurationUsed","runtime" ],
                "type": "object",
                "properties": {
                    "extraction"       : { "$ref": "#/components/schemas/BarcodeExtractionResult"          },
                    "images"           : { "$ref": "#/components/schemas/ExtractionImages"                 },
                    "configurationUsed": { "$ref": "#/components/schemas/BarcodeDocumentConfigurationUsed" },
                    "runtime"          : { "$ref": "#/components/schemas/RuntimeInformation"               }
                }
            },
            "BarcodeSettings": {
                "type": "object",
                "properties": {
                    "barcodeImageReturnEnabled": { "type": "boolean" },
                    "pdf417ScanningEnabled"    : { "type": "boolean" },
                    "qrScanningEnabled"        : { "type": "boolean" },
                    "upceScanningEnabled"      : { "type": "boolean" },
                    "upcaScanningEnabled"      : { "type": "boolean" },
                    "code128ScanningEnabled"   : { "type": "boolean" },
                    "code39ScanningEnabled"    : { "type": "boolean" },
                    "ean8ScanningEnabled"      : { "type": "boolean" },
                    "ean13ScanningEnabled"     : { "type": "boolean" },
                    "itfScanningEnabled"       : { "type": "boolean" },
                    "dataMatrixScanningEnabled": { "type": "boolean" },
                    "aztecScanningEnabled"     : { "type": "boolean" }
                },
                "additionalProperties": false
            },
            "BarcodeExtractionConfiguration": {
                "type": "object",
                "properties": { "barcodeSettings": { "$ref": "#/components/schemas/BarcodeSettings" } },
                "additionalProperties": false
            },
            "OpenEnumValue": {
                "type": "string",
                "description": "Known values are listed in the enum schema. Additional string values may be returned by future versions of the API and should be treated as unknown rather than invalid."
            }
        }
    }
}
