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

## Responses

### 200

OK

Response body (`application/json`):

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `ocrData` | object |  |  |
| `ocrData.name` | object |  |  |
| `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.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` | object |  |  |
| `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` | object |  |  |
| `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` | object |  |  |
| `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: `a1`, `aggm`, `apg`, `energieAg`, `cre`, `aforeAzteca`, `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`, `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.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.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` | object |  | 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.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. |
| `ocrData.ocrDataConfidence` | object |  | 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.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` |

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