Skip to content

Handling Results

Getting Results

Text Values

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

  • fieldType is the field logical type, one of the eVisualFieldType values. The enumeration contains identifiers determining the logical type of the text data obtained while reading MRZ, document filling fields, and barcodes.
  • lcid is the ID of language-culture to differentiate one field of the same type from another. Contains an LCID enumeration value.
  • source identifies the zone from which data should be extracted. Contains an eRPRM_ResultType enumeration value.
  • original checks which value to extract: modified or original.
// Get surname
String surname = results.getTextFieldValueByType(eVisualFieldType.FT_SURNAME, lcid: LCID.BELARUSIAN, source: eRPRM_ResultType.RPRM_RESULT_TYPE_VISUAL_OCR_EXTENDED, original: true);
// Get address
String address = results.getTextFieldValueByType(eVisualFieldType.FT_ADDRESS, lcid: LCID.LATIN, source: eRPRM_ResultType.RPRM_RESULT_TYPE_BAR_CODES_TEXT_DATA, original: 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 +
        ', source: ' +
        value.sourceType.toString());
  }
}

Graphic Values

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

  • fieldType is the field logical type, one of the eGraphicFieldType values. The enumeration contains identifiers determining the logical type of the graphic data obtained while reading the document filling fields or barcodes.
  • source identifies the zone from which data should be extracted. The eRPRM_ResultType enumeration contains possible values.
  • pageIndex is the index of the document page from which the result is received.
  • light is the light type, one of the eRPRM_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
results.getGraphicFieldImageByType(eGraphicFieldType.GF_DOCUMENT_IMAGE, source: eRPRM_ResultType.RPRM_RESULT_TYPE_RAW_IMAGE, pageIndex: 0, light: eRPRM_Lights.RPRM_LIGHT_WHITE_FULL)
// Get document image from the first page with UV light
results.getGraphicFieldImageByType(eGraphicFieldType.GF_DOCUMENT_IMAGE, source: eRPRM_ResultType.RPRM_RESULT_TYPE_RAW_IMAGE, pageIndex: 0, light: eRPRM_Lights.RPRM_LIGHT_UV)

Results Structure

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

The result contains the following result types:

documentReaderResults
└── 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 Barcode.
mrzPosition The position of the MRZ area.
imageQuality The image quality result.
getOverallResult The summary of all results, one of the eCheckResult 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.

Document Type Result

The DocumentReaderDocumentType class contains the following parameters:

documentType
└── name
└── documentID
└── ICAOCode
└── FDSID
└── dType
└── dFormat
└── dMRZ
└── dDescription
└── dYear
└── dCountryName
└── pageIndex
Parameter Description
name The document type name.
documentID The document type numeric code.
ICAOCode The document issuing country ICAO Code.
FDSID The array of IRS document identifiers.
dType The document type, one of the diDocType enumeration values.
dFormat The document format, one of the DocFormat enumeration values.
dMRZ A flag for MRZ presence on the document.
dDescription The document description text.
dYear The year the document was issued.
dCountryName 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 DocumentReaderTextResult class contains the following parameters:

textResult
└── fields
|   └── fieldType
|   └── fieldName
|   └── lcid
|   └── lcidName
|   └── values
|   |   └── sourceType
|   |   └── value
|   |   └── originalValue
|   |   └── pageIndex
|   |   └── boundRect
|   |   |   └── left
|   |   |   └── top
|   |   |   └── right
|   |   |   └── bottom
|   |   └── validity
|   |   └── comparison
|   |   └── probability
|   └── status
└── status
Parameter Description
fieldType The field logical type, one of the eVisualFieldType values. Enumeration contains identifiers determining the logical type of the text data obtained while reading MRZ, document filling fields, and barcodes.
getFieldName 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.
sourceType Identifies the zone from which data was extracted. The eRPRM_ResultType enumeration contains enumeration values.
value The value obtained.
originalValue Checks whether a 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 visualOCRExtended (the eRPRM_ResultType enumeration)..
validity Identifies the verification result. The eRPRM_FieldVerificationResult enumeration contains possible conditions.
comparison Contains a comparison result of the field value that is received from several zones, where the key is one of the eRPRM_ResultType enumeration values and the value is one of the eRPRM_FieldVerificationResult enumeration values.
pageIndex The index of the document page from which the result is received.
probability The symbol recognition probability (0–100, %).
status Stores one of the eCheckResult enumeration which contains identifiers that determine the result of a single document security check.
getLcidName The title of the lcid.

Graphic Result

The DocumentReaderGraphicResult 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. eRPRM_ResultType class contains enumeration values
fieldType Field logical type, one of eGraphicFieldType 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 eRPRM_Lights
getRect Field rectangular area coordinates on the image (for document filling fields reading results RPRM_RESULT_TYPE_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 eCheckResult enumeration values.
imageQualityList

The array of single check result pointers that contains:

Barcode Result

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

Authenticity Result

The RGLDocumentReaderAuthenticityResult 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 eRPRM_Authenticity enumeration values
elementType Element type, one of eRPRM_SecurityFeatureType enumeration values
elementDiagnose Element diagnose, one of eCheckDiagnose enumeration values
pageIndex Index of the document page, whence the result is received
getStatus Overall check result, one of eCheckResult 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 eRFID_NotificationAndErrorCodes enumeration
type procedure type (one of eRFID_AccessControl_ProcedureType 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 eCheckResult values
BAC BAC status, one of eCheckResult values
CA CA status, one of eCheckResult values
PA PA status, one of eCheckResult values
PACE PACE status, one of eCheckResult values
TA TA status, one of eCheckResult values
overallStatus overall status, one of eCheckResult 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 сertificate chain, used for the digital signature verification.
notifications The list of remarks occured during the scanning procedure.

Next Steps