Skip to content

Handling Results

Getting Results

Text Values

To get values of text fields, invoke the textFieldValueByType method with the required arguments:

Argument Compulsory/optional Description
fieldType Compulsory The field logical type, one of the FieldType values. The enumeration contains identifiers determining the logical type of the text data obtained while reading MRZ, document filling fields, and barcodes.
lcid Optional The ID of language-culture to differentiate one field of the same type from another. Contains the LCID enumeration value.
source Optional Identifies the zone from which data should be extracted. Contains the ResultType enumeration value.
original Optional Checks which value to extract: modified or original.
// Get surname
var surname = await results.textFieldValueByTypeLcidSourceOriginal(FieldType.SURNAME, LCID.INDONESIAN, ResultType.VISUAL_OCR_EXTENDED, true);
// Get address
var address = await results.textFieldValueByTypeLcidSourceOriginal(FieldType.ADDRESS, LCID.LATIN, ResultType.BAR_CODES_TEXT_DATA, true);

You can also go through all instances of text fields and get the required information, for example:

for (var textField in results.textResult!.fields) {
  for (var value in textField.values) {
    print(textField.fieldName +
        ', value: ' +
        (value.value ?? "null") +
        ', source: ' +
        value.sourceType.toString());
  }
}

Graphic Values

To get values of graphic fields, invoke the graphicFieldImageByType method with the required arguments:

Argument Compulsory/optional Description
fieldType Compulsory The field logical type, one of the GraphicFieldType values. The enumeration contains identifiers determining the logical type of the graphic data obtained while reading the document filling fields or barcodes.
source Optional Identifies the zone from which data should be extracted. The ResultType enumeration contains possible values.
pageIndex Optional The index of the document page from which the result is received.
light Optional The light type, one of the Lights values. The enumeration contains a set of identifiers used for identifying the document reader possibilities, specifying lighting schemes for scanning, etc.
// Get document image from the first page with white light
await results.graphicFieldImageByTypeSourcePageIndexLight (GraphicFieldType.DOCUMENT_IMAGE, ResultType.RAW_IMAGE, 0, Lights.WHITE_FULL);
// Get document image from the first page with UV light
await results.graphicFieldImageByTypeSourcePageIndexLight(GraphicFieldType.DOCUMENT_IMAGE, ResultType.RAW_IMAGE, 0,Lights.UV);

Results Structure

Once the document processing is completed, the Results instance is received.

The result contains the following result types:

results
└── chipPage
└── overallResult
└── elapsedTime
└── elapsedTimeRFID
└── processingFinishedStatus
└── morePagesAvailable
└── rfidResult
└── graphicResult
└── textResult
└── documentPosition
└── barcodePosition
└── mrzPosition
└── imageQuality
└── documentType
└── rawResult
└── documentReaderNotification
└── rfidSessionData
└── authenticityResult
└── barcodeResult
Result type Description
documentType The document type result.
textResult The text result.
graphicResult The graphic result.
documentPosition The position of the found document.
barcodePosition The position of the found barcode.
mrzPosition The position of the MRZ area.
imageQuality The image quality result.
getOverallResult The summary of all results, one of the CheckResult enumeration values. If at least one result status is negative, the overall result is negative. DEPRECATED in DocumentReader 6.1 Use status.overallStatus instead.
authenticityResults The authenticity result.
rfidSessionData The result of work with the SDK within the context of the current communication session with an electronic document.
chipPage Indicates the presence and location of an RFID chip in a document. 0—no RFID chip; 1—the chip is located in the document data page; 2—the chip is located in the back page or inlay of the document. Requires Document Type recognition, otherwise returns 1 by default.
barcodeResult The barcode result.
morePagesAvailable Indicates if a document has more pages to be processed, for example, ID card's front and back side. Requires the Document Type recognition, otherwise it is 0 by default.
elapsedTime Time the document processing has taken, ms.
elapsedTimeRFID Time the RFID chip processing has taken, ms.
rawResult The result in the initial raw view. Its structure and parameters are described on the Response Schema.

Document Type Result

The DocumentType class contains the following parameters:

documentType
└── name
└── id
└── iCAOCode
└── fDSID
└── type
└── format
└── mrz
└── description
└── year
└── countryName
└── pageIndex
Parameter Description
name The document type name.
id The document type numeric code.
iCAOCode The document issuing country ICAO Code.
fDSID The array of IRS document identifiers.
type The document type, one of the DocType enumeration values.
format The document format, one of the DocFormat enumeration values.
mrz A flag for MRZ presence on the document.
description The document description text.
year The year the document was issued.
countryName The name of the country that issued the document.
pageIndex The index of the document page from which the result is received.

Text Result

The TextResult class contains the following parameters:

textResult
└── fields
|   └── fieldType
|   └── fieldName
|   └── lcid
|   └── lcidName
|   └── value
|   └── values
|   |   └── field
|   |   └── sourceType
|   |   └── value
|   |   └── originalValue
|   |   └── boundRect
|   |   └── rfidOrigin
|   |   └── pageIndex
|   |   └── probability
|   |   └── originalSymbols
|   |   |   └── code
|   |   |   └── rect
|   |   |   └── probability
|   └── status
|   └── comparisonList
|   |   └── sourceTypeLeft
|   |   └── sourceTypeRight
|   |   └── status
|   └── validityList
|   |   |   └── sourceType
|   |   |   └── status
|   └── comparisonStatus
|   └── validityStatus
└── status
└── availableSourceList
|   └── sourceType
|   └── source
|   └── validityStatus
└── comparisonStatus
└── validityStatus
Parameter Description
fields An array of textual results, list of text fields extracted from the document.
fieldType The field logical type, one of the FieldType values. Enumeration contains identifiers determining the logical type of the text data obtained while reading MRZ, document filling fields, and barcodes.
fieldName The title of the fieldType.
lcid The ID of language-culture to differentiate one field of the same type from another. The LCID enumeration contains available enumeration values.
lcidName The title of the lcid.
value The value obtained from the field.
values

An array of values:

  • field—the current text field.
  • sourceType—identifies the zone from which data was extracted. The ResultType enumeration contains enumeration values.
  • value—the obtained value.
  • originalValue—checks whether the value has been modified or not and returns the original value.
  • boundRect—the field rectangular area coordinates on the image. For the document filling fields reading, the result is located in VISUAL_OCR_EXTENDED (the ResultType enumeration).
  • rfidOrigin—the RFID origin data, only for the ‘RFID’ source.
  • pageIndex—an index of the document page whence the textual field was extracted.
  • probability—the textual field recognition probability (0 - 100, %).
  • originalSymbols—a list of all symbols for this value:

    • code—the ASCII code of symbol.
    • rect—the bounds result of the particular value.
    • probability—the symbol recognition probability (0–100, %).
status The textual field check result, one of CheckResult values.
comparisonList

The list of all comparison statuses for this field type:

  • sourceTypeLeft—the value’s origin source, one of ResultType values.
  • sourceTypeRight—the value’s origin source, one of ResultType values.
  • status—the status of field comparisons, one of the CheckResult enum values.
validityList

List of all validity statuses for this field type:

  • sourceType—the value’s origin source, one of ResultType values.
  • status—overall validity status of all text fields of this particular field, one of the CheckResult enum values.
comparisonStatus Comparison result of the field, one of the CheckResult enum values.
validityStatus Validity result of the field, one of the CheckResult enum values.
status Textual fields check result, one of the CheckResult enum values.
availableSourceList

The list of all available origin source with overall validity status of all text fields of a particular source type:

  • sourceType—the value’s origin source, one of ResultType values.
  • source—the value’s origin source string description.
  • validityStatus—overall validity status of all text fields of this source type, one of the CheckResult enum values.
comparisonStatus Comparison status of all text fields, one of the CheckResult enum values.
validityStatus Validity status of all text fields, one of the CheckResult enum values.

Graphic Result

The GraphicResult class contains the following parameters:

graphicResult
└── fields
|   └── sourceType
|   └── fieldType
|   └── fieldName
|   └── lightType
|   └── lightName
|   └── fieldRect
|   |   └── bottom
|   |   └── left
|   |   └── right
|   |   └── top
|   └── pageIndex
Parameter Description
sourceType Identifies zone whence data was extracted. ResultType class contains enumeration values
fieldType Field logical type, one of the GraphicFieldType values. Enumeration contains identifiers determining the logical type of the graphic data obtained while reading document filling fields or barcodes
getFieldName Title of the fieldType
light Indicates lightning scheme of the graphic field was taken in, one of Lights
getRect Field rectangular area coordinates on the image (for document filling fields reading results VISUAL_OCR_EXTENDED)
pageIndex Indicates an index of the document page, whence the result is received

Image Quality Group

The ImageQualityGroup class contains the following parameters:

imageQuality
└── count
└── result
└── imageQualityList
|   └── featureType
|   └── result
|   └── type
|   └── boundRects
Parameter Description
count The number of results in the list.
result The overall check result, one of the CheckResult enumeration values.
imageQualityList

The array of single check result pointers that contains:

Barcode Result

The BarcodeResult class contains the following parameters:

barcodeResult
└── fields
|   └── barcodeType
|   └── status
|   └── pdf417Info
|   |   └── errorLevel
|   |   └── columns
|   |   └── rows
|   └── data
|   └── pageIndex
Parameter Description
barcodeType The decoded barcode type, one of the BarcodeType enumeration values.
status The barcode reading result, one of the BarcodeResult enumeration values or another value, which is SDK internal error code.
pdf417Info

Information about the PDF417 barcode that includes the following parameters:

  • errorLevel—barcode error correction level
  • columns—number of columns in a barcode
  • rows—number of rows in a barcode
data The results of reading data from barcode modules.
pageIndex The index of the document page from which the result is received.

Document, MRZ, Barcode Position

The Position class contains the following parameters:

documentPosition / mrzPosition / barcodePosition
└── docFormat
└── width
└── height
└── angle
└── dpi
└── inverse
└── perspectiveTr
└── objArea
└── objIntAngleDev
└── resultStatus
└── center
|   └── x
|   └── y
└── leftTop
|   └── x
|   └── y
└── leftBottom
|   └── x
|   └── y
└── rightTop
|   └── x
|   └── y
└── rightBottom
|   └── x
|   └── y
└── pageIndex
Parameter Description
docFormat Document format, one of the DocFormat enumeration values
width Document width
height Document height
angle Document rotation angle
dpi Resolution in dots per inch
inverse Internal use parameter
perspectiveTr Internal use parameter
objArea Internal use parameter
objIntAngleDev Internal use parameter
resultStatus Internal use parameter, one of the CheckResult enumeration values
center Document center coordinates
leftTop Document left top corner coordinates
leftBottom Document left bottom corner coordinates
rightTop Document right top corner coordinates
rightBottom Document right bottom corner coordinates
pageIndex Index of the document page, whence the result is received

Status

The ResultsStatus class contains the following parameters:

status
└── overallStatus
└── optical
└── detailsOptical
|   └── overallStatus
|   └── mrz
|   └── text
|   └── docType
|   └── security
|   └── imageQA
|   └── expiry
|   └── vds
|   └── pagesCount
└── rfid
└── detailsRFID
|   └── overallStatus
|   └── AA
|   └── BAC
|   └── CA
|   └── PA
|   └── PACE
|   └── TA
└── portrait
└── stopList
Parameter Description
overallStatus The summary of all results. CheckResult.
optical The summary of all optical results. Same as detailsOptical.overallStatus. CheckResult.
detailsOptical The container for an optical related scanning statuses.
overallStatus The summary of all optical results. CheckResult.
mrz MRZ verification: values validity, dates, checkdigits verification. CheckResult.
text Text fields valitity: values validity for specific fields, cross-comparison of values from different sources, dates & checkdigits verification. CheckResult.
docType The check status if document type was recognized or not. CheckResult.
security The authenticity verification status. CheckResult.
imageQA The input images quality verification status. CheckResult.
expiry The document validity period verification status. CheckResult.
vds The Visible Digital Seal verification status. CheckResult.
pagesCount The number of scanned document pages, integer.
rfid The summary of all RFID results. Same as detailsRFID.overallStatus. CheckResult.
detailsRFID The container for the RFID related scanning statuses.
overallStatus The summary of all RFID results. CheckResult.
AA The active authentication status. CheckResult.
BAC The basics access control status. CheckResult.
CA The chip authentication status.CheckResult.
PA The passive authentication status. CheckResult.
PACE The password authenticated connection establishment status. CheckResult.
TA The terminal authentication status. CheckResult.
portrait The comparison status for portrait in the document against the live or external image. CheckResult.
stopList The verification status for the document data against the database. CheckResult.

Authenticity Result

The AuthenticityResult class contains the following parameters:

authenticityResult
└── status
└── checks
|   └── type
|   └── typeName
|   └── status
|   └── elements
|   |   └── status
|   |   └── elementType
|   |   └── elementTypeName
|   |   └── elementDiagnose
|   |   └── elementDiagnoseName
|   └── pageIndex
Parameter Description
checks Stores the result of document authenticity check using the images for different lighting schemes
type Type of the performed check, one of Authenticity enumeration values
elementType Element type, one of the SecurityFeatureType enumeration values
elementDiagnose Element diagnose, one of the CheckDiagnose enumeration values
pageIndex Index of the document page, whence the result is received
getStatus Overall check result, one of the CheckResult enumeration values

RFID Result

The RFIDSessionData class contains the following parameters:

rfidSessionData
└── accessControls
|   └── activeOptionIdx
|   └── notifications
|   └── status
|   └── type
└── applications
|   └── applicationID
|   └── dataHashAlgorithm
|   └── files
|   |   └── fileData
|   |   |   └── data
|   |   |   └── length
|   |   |   └── status
|   |   |   └── type
|   |   └── fileID
|   |   └── notifications
|   |   └── pAStatus
|   |   └── readingStatus
|   |   └── readingTime
|   |   └── type
|   |   └── docFieldsText
|   |   └── docFieldsGraphics
|   |   └── docFieldsOriginals
|   |   └── certificates
|   |   |   └── securityObject
|   |   |   |   └── data
|   |   |   |   └── length
|   └── status
|   └── type
|   └── unicodeVersion
|   └── version
└── securityObjects
|   └── fileReference
|   └── objectType
|   └── version
|   └── signerInfos
|   |   └── dataToHash
|   |   └── digestAlgorithm
|   |   └── paStatus
|   |   └── signatureAlgorithm
|   |   └── version
|   |   └── issuer
|   |   |   └── attributes
|   |   |   |   └── type
|   |   |   |   └── value
|   |   |   |   |   └── data
|   |   |   |   |   └── length
|   |   |   |   |   └── status
|   |   |   |   |   └── type
|   |   |   |   |   └── format
|   |   |   └── data
|   |   |   └── friendlyName
|   |   |   |   └── data
|   |   |   |   └── length
|   |   |   |   └── status
|   |   |   |   └── type
|   |   |   |   └── format
|   |   └── serialNumber
|   |   |   └── data
|   |   |   └── length
|   |   |   └── status
|   |   |   └── type
|   |   |   └── format
|   |   └── signature
|   |   |   └── data
|   |   |   └── length
|   |   |   └── status
|   |   |   └── type
|   |   |   └── format
|   |   └── signedAttributes
|   |   |   └── data
|   |   |   └── type
|   |   └── subjectKeyIdentifier
|   |   |   └── data
|   |   |   └── length
|   |   |   └── status
|   |   |   └── type
|   |   |   └── format
|   |   └── certificateChain
|   |   |   └── extensions
|   |   |   |   └── data
|   |   |   |   └── type
|   |   |   └── fileName
|   |   |   |   └── data
|   |   |   |   └── length
|   |   |   |   └── status
|   |   |   |   └── type
|   |   |   |   └── format
|   |   |   └── issuer
|   |   |   |   └── attributes
|   |   |   |   |   └── type
|   |   |   |   |   └── value
|   |   |   |   |   |   └── data
|   |   |   |   |   |   └── length
|   |   |   |   |   |   └── status
|   |   |   |   |   |   └── type
|   |   |   |   |   |   └── format
|   |   |   |   └── data
|   |   |   |   └── friendlyName
|   |   |   |   |   └── data
|   |   |   |   |   └── length
|   |   |   |   |   └── status
|   |   |   |   |   └── type
|   |   |   |   |   └── format
|   |   |   └── notifications
|   |   |   └── origin
|   |   |   └── paStatus
|   |   |   └── serialNumber
|   |   |   └── signatureAlgorithm
|   |   |   └── subject
|   |   |   |   └── attributes
|   |   |   |   |   └── type
|   |   |   |   |   └── value
|   |   |   |   |   |   └── data
|   |   |   |   |   |   └── length
|   |   |   |   |   |   └── status
|   |   |   |   |   |   └── type
|   |   |   |   |   |   └── format
|   |   |   |   └── data
|   |   |   |   └── friendlyName
|   |   |   |   |   └── data
|   |   |   |   |   └── length
|   |   |   |   |   └── status
|   |   |   |   |   └── type
|   |   |   |   |   └── format
|   |   |   └── subjectPKAlgorithm
|   |   |   └── type
|   |   |   └── validity
|   |   |   |   └── notAfter
|   |   |   |   |   └── data
|   |   |   |   |   └── length
|   |   |   |   |   └── status
|   |   |   |   |   └── type
|   |   |   |   |   └── format
|   |   |   |   └── notBefore
|   |   |   |   |   └── data
|   |   |   |   |   └── length
|   |   |   |   |   └── status
|   |   |   |   |   └── type
|   |   |   |   |   └── format
|   |   |   └── version
|   |   └── notifications
|   └── notifications
└── cardProperties
|   └── aTQA
|   └── aTQB
|   └── aTR
|   └── baudrate1
|   └── baudrate2
|   └── bitRateR
|   └── bitRateS
|   └── chipTypeA
|   └── mifareMemory
|   └── rfidType
|   └── sAK
|   └── support4
|   └── supportMifare
|   └── uID
└── totalBytesReceived
└── totalBytesSent
└── status
└── extLeSupport
└── processTime
└── sessionDataStatus
|   └── AA
|   └── BAC
|   └── CA
|   └── PA
|   └── PACE
|   └── TA
|   └── overallStatus
Parameter Description
accessControls list of containers to store information about the supported procedures of authentication and secure data access within the context of the session
activeOptionIdx index of the active variant of the procedure
notifications list of remarks arisen during the procedure
status procedure status (RFID_Error_NotPerformed, RFID_Error_NotAvailable, RFID_Error_NoError, or the error code from the RFIDNotificationCodes enumeration
type procedure type (one of RFIDAccessControlProcedureType enumeration values)
applications list of containers to store information about the involved applications of electronic document
applicationID application identifier
dataHashAlgorithm algorithm for calculating hash values for files for the procedure of PA
files list of containers to store information about the read files of the application
unicodeVersion Unicode version for application
securityObjects list of containers to store information about the detected document security objects
fileReference reference to the source file of the security object data
objectType security object identifier
signerInfos list of containers to store information about digital signature objects contained in the SO
digestAlgorithm digital signature hash-function algorithm identifier
paStatus result of the digital signature verification (RFID_Error_NotPerformed, RFID_Error_NoError, or RFID_Error_Failed);
signatureAlgorithm digital signature algorithm identifier
issuer identifier of the necessary certificate issuer
serialNumber serial number of the necessary certificate
signature binary data of the verified digital signature
signedAttributes list of the signed attributes
subjectKeyIdentifier signature object identifier of the necessary certificate
certificateChain certificate chain, used for the digital signature verification
cardProperties set of electronic document chip characteristics
aTQA numeric ATQ_A value in hexadecimal format (e.g. "0x0000")
aTQB ATQ_B contents in text format. Each byte is represented by its hexadecimal value. The individual bytes are separated by spaces (e.g. "50 F9 4F 41 60 00 00 00 00 77 81 81")
aTR pAtr contents in text format. Each byte is represented by its hexadecimal value. The individual bytes are separated by spaces (e.g. "3B 88 81 11 FC 00 00 00 00 77 81 81 00 93")
baudrate1 numeric Baudrate1 value in hexadecimal format (e.g. "0x0000000F")
baudrate2 numeric Baudrate2 value in hexadecimal format
bitRateR numeric BitRateR value in hexadecimal format (e.g. "0x04")
bitRateS numeric BitRateS value in hexadecimal format (e.g. "0x04")
chipTypeA text abbreviation of ChipType_A value
mifareMemory numeric MifareMemory value
rfidType text abbreviation of RFID_Type value
sAK numeric SAK value in hexadecimal format (e.g. "0x00")
support4 boolean Support_4 value
supportMifare boolean Support_Mifare value
uID UID contents in text format. Each byte is represented by its hexadecimal value. The individual bytes are separated by spaces (e.g. "F9 4F 41 60")
totalBytesReceived total number of bytes received from the RFID-chip during the whole session
totalBytesSent total number of bytes transmitted to the RFID-chip during the whole session
extLeSupport sign of support of RFID-chip for extended length commands of reading (RFID_Error_NotPerformed, RFID_Error_NotAvailable, or RFID_Error_NoError)
processTime total time of all operations performed during the session, ms
AA AA status, one of the CheckResult values
BAC BAC status, one of the CheckResult values
CA CA status, one of the CheckResult values
PA PA status, one of the CheckResult values
PACE PACE status, one of the CheckResult values
TA TA status, one of the CheckResult values
overallStatus overall status, one of the CheckResult values

VDSNCData. Visible Digital Seal for Non Constrained environments.

The VDSNCData class contains the following parameters:

vdsncData
└── type
└── version
└── issuingCountry
└── message
└── signatureAlgorithm
└── signature
└── certificate
└── certificateChain
└── notifications
Parameter Description
type Visible Digital Seal use case type. Type is set to icao.test for Proof of Testing (data defined by CAPSCA), icao.vacc for Proof of Vaccination (data defined by WHO). Other Types may be added in the future.
version Visible Digital Seal use case version.
issuingCountry Three letter code identifying the issuing state or organization.
message The message field contains the actual data as a JSONObject.
signatureAlg The signature algorithm used to produce the signature. ECDSA scheme.
signature The binary data of the verified digital signature.
certificate The binary data of the signer certificate.
certificateChain The certificate chain, used for the digital signature verification.
notifications The list of remarks occured during the scanning procedure.

Next Steps