0% found this document useful (0 votes)
13 views191 pages

Programmers Guide (en)

The document is a Programmer's Guide for the Regula Document Reader Software Development Kit (SDK) version 7.1, released on February 14, 2024. It includes information on system requirements, SDK structure, performance capabilities, installation, and usage instructions, along with detailed sections on data processing functions and SDK tools. The guide serves as a comprehensive resource for developers working with the Regula Document Reader SDK.

Uploaded by

zngduong
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views191 pages

Programmers Guide (en)

The document is a Programmer's Guide for the Regula Document Reader Software Development Kit (SDK) version 7.1, released on February 14, 2024. It includes information on system requirements, SDK structure, performance capabilities, installation, and usage instructions, along with detailed sections on data processing functions and SDK tools. The guide serves as a comprehensive resource for developers working with the Regula Document Reader SDK.

Uploaded by

zngduong
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 191

Document Reader “Regula”

Software Development Kit


Version 7.1

Programmers Guide

RGVI.01.01.00 MZ

Regula 2024
Contents

Edition from 14.02.2024

2 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


Contents

CONTENTS
CONTENTS ..................................................................................................................................................................... 3
LIST OF ABBREVIATIONS ......................................................................................................................................... 9
INTRODUCTION ........................................................................................................................................................ 10
MINIMUM SYSTEM REQUIREMENTS ................................................................................................................. 11
1. SDK STRUCTURE .................................................................................................................................................. 12
2. SDK PERFORMANCE CAPABILITIES ............................................................................................................. 15
3. SDK INSTALLATION AND USE ....................................................................................................................... 16
4. HOW TO WORK WITH DOCUMENT READER ............................................................................................. 17
4.1. GENERAL INFORMATION ........................................................................................................................................ 17
4.2. WORKING WITH MCL ........................................................................................................................................... 18
4.3.DOCUMENT READER CONNECTION AND DISCONNECTION............................................................................................... 20
4.4.DETERMINING DOCUMENT READER’S PERFORMANCE CAPABILITIES ................................................................................... 22
4.5.CALIBRATION PROCEDURE........................................................................................................................................... 23
4.6.DATA SCANNING AND PROCESSING ............................................................................................................................. 25
4.6.1. Data Representation and Storing........................................................................................................ 25
4.6.2. Document Scanning and Obtaining Image Processing Results ...................................................... 25
4.6.3. Obtaining Results through Direct Query ........................................................................................... 27
4.6.4. Processing of the User-defined List of Images ................................................................................. 30
4.7.DATA PROCESSING FUNCTIONS AND THEIR APPLICATION DURING SCANNING AND PROCESSING CYCLE ........................................ 31
4.7.1. Obtaining Scanned Images .................................................................................................................. 31
4.7.2. Document Localization on Image ....................................................................................................... 32
4.7.3. Reading and Quality Control of MRZ Printing .................................................................................. 32
4.7.4. Determining Document Type .............................................................................................................. 33
4.7.5. Reading Document Filling Fields......................................................................................................... 36
4.7.6. Reading Bar-codes ................................................................................................................................ 37
4.7.7. Document Authenticity Check ............................................................................................................. 38
4.7.8. Comparative Lexical Analysis of Data ................................................................................................. 38
4.8.ADDITIONAL SETTINGS AND OPTIONS ............................................................................................................................ 39
4.8.1. Control of Document Reader Indicator Light Emitting Diodes (LEDs) .......................................... 39
4.8.2. Accumulator Battery Status when Working with Regula 83x3, 83х4............................................. 39
4.8.3. Control of Working Digital Camera Sensor Mode ............................................................................ 39
4.8.4. Define the Required Size of Images Retrieved by _CheckResult() and _CheckResultFromList()
Function.................................................................................................................................................. 39
4.8.5. Videochip Frequency Divider............................................................................................................... 40
4.8.6. Debug Mode.......................................................................................................................................... 40
4.9.WORKING WITH IRS ................................................................................................................................................... 41
5. SDK TOOLS ............................................................................................................................................................. 42
5.1. EXPORTED FUNCTIONS ........................................................................................................................................... 42
5.1.1. _Initialize() .............................................................................................................................................. 42
5.1.2. _Free() ..................................................................................................................................................... 42
5.1.3. _SetCallbackFunc() ................................................................................................................................ 43
5.1.4. _ExecuteCommand() ............................................................................................................................. 43
5.1.5. _ResultTypeAvailable() .......................................................................................................................... 43
5.1.6. _CheckResult() ....................................................................................................................................... 44
5.1.7. _CheckResultFromList() ........................................................................................................................ 45
5.1.8. _AllocRawImageContainer() ................................................................................................................. 46

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 3


Contents

5.1.9. _FreeRawImageContainer() .................................................................................................................. 46


5.1.10. _FDSUser_Connect() .............................................................................................................................. 46
5.1.11. _FDSUser_Disconnect() ......................................................................................................................... 47
5.1.12. _FDSUser_UpdateWindow() ................................................................................................................. 47
5.1.13. _FDSUser_UpdatePanel() ...................................................................................................................... 47
5.1.14. _FDSUser_SelectDocument() ................................................................................................................ 47
5.1.15. _LibraryVersion() .................................................................................................................................... 48
5.2. CALLBACK-FUNCTIONS .......................................................................................................................................... 49
5.2.1. NotifyFunc() ......................................................................................................................................... 49
5.2.2. ResultReceivingFunc() ....................................................................................................................... 49
5.3. DATA STRUCTURE ................................................................................................................................................. 50
5.3.1. TResultContainerList ............................................................................................................................. 50
5.3.2. TResultContainer ................................................................................................................................... 50
5.3.3. TRawImageContainer ........................................................................................................................... 51
5.3.4. TDocVisualExtendedInfo ...................................................................................................................... 51
5.3.5. TDocVisualExtendedField ..................................................................................................................... 52
5.3.6. TStringResultSDK .................................................................................................................................. 53
5.3.7. TSymbolResult ....................................................................................................................................... 53
5.3.8. TSymbolCandidate ................................................................................................................................ 53
5.3.9. TDocGraphicsInfo .................................................................................................................................. 54
5.3.10. TDocGraphicField .................................................................................................................................. 54
5.3.11. TDocMRZTestQuality ............................................................................................................................ 55
5.3.12. TStrEstimation ....................................................................................................................................... 56
5.3.13. TSingleRect ............................................................................................................................................ 57
5.3.14. TTestTextField ........................................................................................................................................ 57
5.3.15. TSymbolEstimation ............................................................................................................................... 58
5.3.16. TCommandsMRZTestQuality ............................................................................................................... 59
5.3.17. TCandidatesListContainer .................................................................................................................... 60
5.3.18. TOneCandidate...................................................................................................................................... 60
5.3.19. TFDSIDList .............................................................................................................................................. 61
5.3.20. TListDocsInfo ......................................................................................................................................... 62
5.3.21. TOCRDocInfo ......................................................................................................................................... 62
5.3.22. TDocBarCodeInfo .................................................................................................................................. 63
5.3.23. TDocBarCodeField ................................................................................................................................. 63
5.3.24. TIP_DECODE_MODULE ......................................................................................................................... 64
5.3.25. TIP_PDF417_INFO .................................................................................................................................. 65
5.3.26. TListVerifiedFields ................................................................................................................................. 65
5.3.27. TVerifiedFieldMap ................................................................................................................................. 65
5.3.28. TAuthenticityCheckList ......................................................................................................................... 67
5.3.29. TAuthenticityCheckResult .................................................................................................................... 67
5.3.30. TFibersType ............................................................................................................................................ 67
5.3.31. TSecurityFeatureCheck ......................................................................................................................... 68
5.3.32. TIdentResult ........................................................................................................................................... 69
5.3.33. TOCRSecurityTextResult ....................................................................................................................... 70
5.3.34. TPhotoIdentResult ................................................................................................................................ 71
5.3.35. TRegulaDeviceProperties ..................................................................................................................... 72
5.3.36. TIndicationLED ....................................................................................................................................... 73
5.3.37. TPointArray ............................................................................................................................................ 74
5.3.38. TAreaArray ............................................................................................................................................. 74
5.3.39. TIRVisibilityElement............................................................................................................................... 74
5.3.40. TDwordArray .......................................................................................................................................... 75
5.3.41. TLexDateFormat .................................................................................................................................... 75
5.3.42. TBoundsResult ....................................................................................................................................... 75
5.3.43. TImageQualityCheck ............................................................................................................................. 76
5.3.44. TImageQualityCheckList ....................................................................................................................... 77

4 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


Contents

5.3.45. TVideodetectionNotification ............................................................................................................... 77


5.3.46. TStatus .................................................................................................................................................... 78
5.3.47. TDetailsRFID ........................................................................................................................................... 78
5.3.48. TDetailsOptical ...................................................................................................................................... 79
5.3.49. TTextResult ............................................................................................................................................. 79
5.3.50. TTextValidity .......................................................................................................................................... 80
5.3.51. TTextComparison .................................................................................................................................. 80
5.3.52. TTextSource ........................................................................................................................................... 80
5.3.53. TTextSymbol .......................................................................................................................................... 81
5.3.54. TTextFieldValue ..................................................................................................................................... 81
5.3.55. TTextField ............................................................................................................................................... 82
5.3.56. TImagesResult ....................................................................................................................................... 83
5.3.57. TImageSource ........................................................................................................................................ 83
5.3.58. TImageField ........................................................................................................................................... 83
5.3.59. TImageFieldValue .................................................................................................................................. 84
5.3.60. TRfidOrigin ............................................................................................................................................. 84
5.4. ENUMERATIONS (CONSTANT POOLS) ..................................................................................................................... 86
5.4.1. eRPRM_ResultType ............................................................................................................................... 86
5.4.2. eRPRM_DeviceAdditionalFeatures ...................................................................................................... 89
5.4.3. eRPRM_DeviceControlTypes ................................................................................................................ 91
5.4.4. eRPRM_DeviceTypes ............................................................................................................................. 91
5.4.6. eRPRM_VideoModes ............................................................................................................................ 98
5.4.7. CDocFormat ......................................................................................................................................... 100
5.4.8. eRPRM_Capabilities ............................................................................................................................ 101
5.4.9. eRPRM_GetImage_Modes .................................................................................................................. 103
5.4.10. eRPRM_FieldVerificationResult .......................................................................................................... 105
5.4.11. eVisualFieldType .................................................................................................................................. 105
5.4.12. eGraphicFieldType .............................................................................................................................. 128
5.4.13. eBarCodeType ..................................................................................................................................... 130
5.4.14. eBarCodeResultCodes ........................................................................................................................ 131
5.4.15. eBarCodeModuleType ........................................................................................................................ 132
5.4.16. eTestTextField ...................................................................................................................................... 133
5.4.17. eMRZClassQuality ............................................................................................................................... 134
5.4.18. eCheckResult ....................................................................................................................................... 134
5.4.19. ePhotoEmbedType .............................................................................................................................. 134
5.4.20. eCheckDiagnose .................................................................................................................................. 135
5.4.21. eRPRM_PostCalbackAction ................................................................................................................ 139
5.4.22. eRPRM_RCTP_Result_RecType ........................................................................................................... 140
5.4.23. eRFID_Presence ................................................................................................................................... 140
5.4.24. eRPRM_Authenticity ........................................................................................................................... 140
5.4.26. eSecurityCriticalFlag ............................................................................................................................ 148
5.4.27. eIR_Visibility_Flag ................................................................................................................................ 149
5.4.28. eLED_Color ........................................................................................................................................... 149
5.4.29. eFDS_Light ........................................................................................................................................... 149
5.4.30. eFDS_Panel ........................................................................................................................................... 150
5.4.31. eFDS_Panel_Position ........................................................................................................................... 150
5.4.32. eRPRM_OutputFormat........................................................................................................................ 151
5.4.33. eLexAnalysisDepth .............................................................................................................................. 152
5.4.34. eLexDateFormat .................................................................................................................................. 152
5.4.35. eImageQualityCheckType .................................................................................................................. 153
5.4.36. diDocType ............................................................................................................................................ 153
5.4.37. eRPRM_ResultStatus ........................................................................................................................... 156
5.4.38. eRPRM_NotificationCodes ................................................................................................................. 157
5.4.39. eRPRM_ErrorCodes ............................................................................................................................. 159
5.4.40. eRPRM_Commands ............................................................................................................................. 163

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 5


Contents

5.4.41. eDocumentStatus ................................................................................................................................ 164


5.4.42. eDeviceLimitations .............................................................................................................................. 165
5.5. SDK COMMAND SET .......................................................................................................................................... 166
5.5.1. RPRM_Command_Device_Count ....................................................................................................... 166
5.5.2. RPRM_Command_Device_Features ................................................................................................... 166
5.5.3. RPRM_Command_Device_RefreshList .............................................................................................. 166
5.5.4. RPRM_Command_Device_ActiveIndex ............................................................................................. 167
5.5.5. RPRM_Command_Device_Connect ................................................................................................... 167
5.5.6. RPRM_Command_Device_Disconnect .............................................................................................. 167
5.5.7. RPRM_Command_Device_Light_ScanList_Clear .............................................................................. 167
5.5.8. RPRM_Command_Device_Light_ScanList_Default ........................................................................... 167
5.5.9. RPRM_Command_Device_Light_ScanList_Count ............................................................................. 167
5.5.10. RPRM_Command_Device_Light_ScanList_Item ............................................................................... 168
5.5.11. RPRM_Command_Device_Light_ScanList_AddTo ............................................................................ 168
5.5.12. RPRM_Command_Device_Light_TurnOn .......................................................................................... 168
5.5.13. RPRM_Command_Device_LED ........................................................................................................... 168
5.5.14. RPRM_Command_Device_Set_ParamLowLight ............................................................................... 169
5.5.15. RPRM_Command_Device_PlaySound ............................................................................................... 169
5.5.16. RPRM_Command_Device_Get_ParamLowLight ............................................................................... 169
5.5.17. RPRM_Command_Device_Calibration .............................................................................................. 169
5.5.18. RPRM_Command_Process ................................................................................................................. 169
5.5.19. RPRM_Command_ProcessImagesList ............................................................................................... 169
5.5.20. RPRM_Command_Options_GraphicFormat_Count ......................................................................... 170
5.5.21. RPRM_Command_Options_GraphicFormat_Select ......................................................................... 170
5.5.22. RPRM_Command_Options_GraphicFormat_Name ......................................................................... 170
5.5.23. RPRM_Command_Options_GraphicFormat_ActiveIndex ............................................................... 170
5.5.24. RPRM_Command_Options_GetSDKCapabilities .............................................................................. 171
5.5.25. RPRM_Command_Options_GetSDKAuthCapabilities ..................................................................... 171
5.5.26. RPRM_Command_Options_Set_MRZTestQualityParams ............................................................... 171
5.5.27. RPRM_Command_Options_Get_MRZTestQualityParams ............................................................... 171
5.5.28. RPRM_Command_Options_Get_CurrentDocumentType................................................................ 171
5.5.29. RPRM_Command_Options_Set_CurrentDocumentType ................................................................ 171
5.5.30. RPRM_Command_Options_Set_CustomDocTypeMode ................................................................. 172
5.5.31. RPRM_Command_Options_Get_CustomDocTypeMode ................................................................ 172
5.5.32. RPRM_Command_Get_DocumentsInfoList ...................................................................................... 172
5.5.33. RPRM_Command_OCRLexicalAnalyze .............................................................................................. 172
5.5.34. RPRM_Command_Device_IsCalibrated ............................................................................................. 173
5.5.35. RPRM_Command_Device_Set_WorkingVideoMode ....................................................................... 173
5.5.36. RPRM_Command_Device_Get_WorkingVideoMode ...................................................................... 173
5.5.37. RPRM_Command_Options_Set_CheckResultHeight ....................................................................... 173
5.5.38. RPRM_Command_Options_Set_AuthenticityCheckMode .............................................................. 173
5.5.39. RPRM_Command_Options_Get_AuthenticityCheckMode ............................................................. 174
5.5.40. RPRM_Command_Options_Get_BatteryStatus ................................................................................ 174
5.5.41. RPRM_Command_Options_BuildExtLog ........................................................................................... 174
5.5.42. RPRM_Command_Device_SetFrequencyDivider ............................................................................. 174
5.5.43. RPRM_Command_Device_Get_DriverVersion .................................................................................. 175
5.5.44. RPRM_Command_Device_APM_Mode ............................................................................................. 175
5.5.45. RPRM_Command_Device_UseVideoDetection ................................................................................ 175
5.5.46. RPRM_Command_ExpertAnalyze ...................................................................................................... 175
5.5.47. RPRM_Command_ClearResults ......................................................................................................... 175
5.5.48. RPRM_Command_Options_GraphicFormat_SetCompressionRatio.................................................................... 175
5.5.49. RPRM_Command_Options_GraphicFormat_GetCompressionRatio................................................................... 176
5.5.50. RPRM_Command_Process_Cancel .................................................................................................... 176
5.5.51. RPRM_Command_ExcludeCapabilities ............................................................................................. 176
5.5.52. RPRM_Command_ExcludeAuthCapabilities ..................................................................................... 176

6 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


Contents

5.5.53. RPRM_Command_MakeSingleShot .................................................................................................. 176


5.5.54. RPRM_Command_Device_GetFrequencyDivider ............................................................................. 176
5.5.55. RPRM_Command_ComplexAuthenticityCheck ................................................................................ 176
5.5.56. RPRM_Command_Options_Set_GlareCompensation ..................................................................... 177
5.5.57. RPRM_Command_Options_Set_ExtendProcessingModes ............................................................. 177
5.5.58. RPRM_Command_Options_Get_AppendVisa .................................................................................. 177
5.5.59. RPRM_Command_Options_Set_AppendVisa ................................................................................... 177
5.5.60. RPRM_Command_Options_Set_MultiPageProcessingMode ............................................................... 177
5.5.61. RPRM_Command_Device_Get_Calibration_FrequencyDivider ................................................................. 177
5.5.62. RPRM_Command_PortraitGraphicalAnalyze ........................................................................................... 178
5.5.63. RPRM_Command_Options_Set_SmartUV ............................................................................................... 178
5.5.64. RPRM_Command_Options_Set_RotateResultImages .............................................................................. 178
5.5.65. RPRM_Command_BSIDocCheckXML ..................................................................................................... 178
5.5.66. RPRM_Command_ Options_Get_BatteryNumber ................................................................................... 178
5.5.67. RPRM_Command_Options_Get_QuickBoardingPassProcessing ............................................................. 178
5.5.68. RPRM_Command_Options_Set_QuickBoardingPassProcessing .............................................................. 178
5.5.69. RPRM_Command_Options_Set_QuickMrzProcessing ............................................................................. 179
5.5.70. RPRM_Command_Options_Get_QuickMrzProcessing ............................................................................ 179
5.5.71. RPRM_Command_Device_SetVideoDetectionDivider ............................................................................. 179
5.5.72. RPRM_Command_Device_GetVideoDetectionDivider ............................................................................ 179
5.5.73. RPRM_Command_Device_SetRequiredOcrFields .................................................................................... 179
5.5.74. RPRM_Command_Device_GetRequiredOcrFields ................................................................................... 179
5.5.75. RPRM_Command_Options_Set_WaitForReadingComplete .................................................................... 179
5.5.76. RPRM_Command_ReadingComplete ..................................................................................................... 180
5.5.77. RPRM_Command_Options_Get_LexAnalysisDepth ................................................................................. 180
5.5.78. RPRM_Command_Options_Set_LexAnalysisDepth.................................................................................. 180
5.5.79. RPRM_Command_Options_Get_LexDateFormat .................................................................................... 180
5.5.80. RPRM_Command_Options_Set_LexDateFormat ..................................................................................... 180
5.5.81. RPRM_Command_Device_Get_GetJpegImages ...................................................................................... 180
5.5.82. RPRM_Command_Device_Set_GetJpegImages....................................................................................... 180
5.5.83. RPRM_Command_BSIDocCheckXMLv2.................................................................................................. 180
5.5.84. RPRM_Command_Device_Get_TrustDPI ................................................................................................. 181
5.5.85. RPRM_Command_Device_Set_TrustDPI.................................................................................................. 181
5.5.86. RPRM_Command_Options_Get_LexParams............................................................................................ 181
5.5.87. RPRM_Command_Options_Set_LexParams ............................................................................................ 181
5.5.88. RPRM_Command_Options_Get_StopOnBadInputImage ........................................................................ 181
5.5.89. RPRM_Command_Options_Set_StopOnBadInputImage......................................................................... 181
5.5.90. RPRM_Command_Set_ProcessParametersJson....................................................................................... 181
5.5.91. RPRM_Command_Options_Set_VideodetectionLowSensibility ............................................................... 182
5.5.92. RPRM_Command_Options_Set_TrustVideodetectionResult .................................................................... 182
5.5.93. RPRM_Command_Device_Get_LED ........................................................................................................ 182
5.5.94. RPRM_Command_Get_DatabaseInfo ..................................................................................................... 182
5.5.95. RPRM_Command_Device_Fingerprints_Scan .......................................................................................... 182
5.5.96. RPRM_Command_Fingerprints_Compare............................................................................................... 182
5.5.97. RPRM_Command_Add_External_Containers........................................................................................... 182
5.5.98. RPRM_Command_Fingerprints_Search ................................................................................................... 183
5.6. JSON SETTINGS.................................................................................................................................................. 184
5.6.1. Trivia ......................................................................................................................................................... 184
5.6.2. Authenticity Safe Mode............................................................................................................................. 185
5.6.3. Excluding Authenticity Checks ................................................................................................................... 186
5.6.4. Evaluation Mode....................................................................................................................................... 186
5.6.5. Image Depersonalization .......................................................................................................................... 187
5.6.6. Portrait Comparison Service ...................................................................................................................... 188
5.6.7. Stop-list Checks ........................................................................................................................................ 188
5.6.8. Face SDK Integration................................................................................................................................. 190

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 7


Contents

5.6.8.1. livePortrait ....................................................................................................... 190


5.6.8.2. extPortrait ........................................................................................................ 191
5.6.8.3. oneShotIdentification ..................................................................................... 191
5.6.9. Enable CAN Detection .............................................................................................................................. 191

8 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


List of abbreviations

LIST OF ABBREVIATIONS
SDK – Software Development Kit

IRS – Information Reference System is a reference database, which contains


pattern images of passports, identity and travel documents, driver’s li-
censes and vehicle documents, as well as the data on the basic authen-
ticity features of passports, IDs and travel documents, driver’s licenses
and vehicle documents at five levels of protection: printing design, ultra-
violet 365nm and 254nm, infrared and special materials.

OCR – Optical Character Recognition

MRZ – Machine Readable Zone

RFID – Radio Frequency Identification

RFID-chip – Radio Frequency Identification Chip

MCL – Main Control Library

IR – Infrared (Spectrum) Light

OS – Operating System

UV – Ultraviolet (Spectrum) Light

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 9


Introduction

INTRODUCTION
The “Programmers Guide” describes the order of the SDK use when developing user appli-
cations for further operation with “Regula” 70x3, 70x4, 70x7, 70x8, 4820, 83x3, 83x4, 8307
devices (see corresponding User’s Guide for interpretation of “x” symbols).

10 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


Minimum system requirements

MINIMUM SYSTEM REQUIREMENTS


CPU.................................................................. Intel Core 2 1.8 GHz
RAM ................................................................ 1 Gb
VideoRAM ..................................................... 32 Mb
OS .................................................................... Windows 7
SystemBus..................................................... USB 2.0 High Speed
HDD free space ........................................... 1 Gb

Additional Software................................... IRS SDU, FDS, Passport or Autodocs

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 11


SDK structure

1. SDK STRUCTURE
\ProgramData\Regula\Document Reader SDK\:
RegulaReader.ini – SDK configuration file;
For SDK x86 - \Windows\SysWOW64\
For SDK x64 - \Windows\System32\
borlndmm.dll
cc32240mt.dll
libiomp5md.dll
ipp*7.0.dll
libeay32.dll
libcrypto-1_1.dll (or
libcrypto-1_1-x64.dll
for SDK x64)
libssl-1_1.dll (or
libssl-1_1-x64.dll
for SDK x64) – system libraries;
ssleay32.dll
opencv_*453.dll
rtl260.bpl
vcl260.bpl
vclimg260.bpl
vclx260.bpl
xmlrtl260.bpl
WltRS.dll (for SDK
x86)
mpir.dll
\Program Files\Regula\Drivers\ – device drivers;

\Program Files\Regula\Document Reader SDK\:


PasspR40.dll – main control library and its data file;
devices.dat
resource.dat
libssl-1_1.dll (or
libssl-1_1-x64.dll for
SDK x64)
libcrypto-1_1.dll (or
libcrypto-1_1-x64.dll
for SDK x64)
RegulaReaderFX.dll
Reader3M.dll (installed
only with the ThirdParty – digital camera control libraries;
component in the SDK)
MRZCMP.dll
mrzproc.dll, .ini – service libraries and accompanying data files ensuring
TestOcrB.bin MRZ OCR;
OCRBEXT.dat
Imaging.dll – service library (image files reading/writing);

12 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK structure

BiolinkFPR.dll (installed
only with the ThirdParty
component in the SDK)
Bsdk6x.dll (installed – service libraries (Biolink sсaner support);
only with the ThirdParty
component in the SDK)

IntelIPPDlls.ini – service libraries and accompanying data files ensuring


ippImProc.dll, .ini document type recognition, text (OCR) and graphic data
reading from the documents fields, automatic docu-
ment authentication;
READERDEMO.exe, – SDK demo application and localization file;
Translator.xml
libeay32.dll
ssleay32.dll

Dbgview.exe – Debug View application for logs analysis;


realsense2.dll (installed – library for working with Intel(R) RealSense (TM)
only with the ThirdParty Depth;
component in the SDK)
TrackR.dll, .dat, .json, – libraries for capturing a video stream and a face from
.xml a webcam.
TouchlabFPR.dll - service libraries, GENETRIC fingerprint scanner inte-
(installed only with the gration
ThirdParty component in
the SDK)
(for SDK x86)
ReaderDesko.dll - service libraries, DESKO scanner integration
(installed only with the
ThirdParty component in
the SDK)

\Program Files\Regula\Document Reader SDK\Data\ – folders contain data neces-


sary for processing the document (type classification, OCR, etc.);

\Program Files\Regula\:
RegulaQS.url – link to Regula Quick Support;

For SDK x64 - \Windows\twain_64\


For SDK x86 - \Windows\twain_32\
RegulaReaderDS.ds – Regula Reader TWAIN interface file;

\Program Files\Regula\Samples\ – folder with test projects illustrating the SDK


use;

\Program Files\Regula\Samples\Include\:

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 13


SDK structure

PasspR.h – SDK header file (C++);


PasspR.pas – SDK header file (Delphi);
READERDEMO.tlb – SDK type library (Delphi);
READERDEMO_TLB.pas

\Program Files\Regula\Document Reader SDK\Doc\:


testobject #1.pdf – test object # 1 images;
testobject #2.pdf – test object # 2 images;
testobject#1&2(Letter).pdf – test objects # 1 and # 2 images on the page of
another format;
Documents List.pdf – SDK document database contents description;
Documents List Autodocs.pdf – SDK document database contents description
(auto documents only);
Documents List Passports.pdf – SDK document database contents description
(travel documents only);
Documents List Other.pdf – SDK document database contents description
(other documents);
SDK Release Notes (en).pdf – SDK release notes in English;
SDK Release Notes (ru).pdf – SDK release notes in Russian;

Programmers Guide (en).pdf – this Guide in English;


Programmers Guide (ru).pdf – this Guide in Russian;

COM interface documentation.pdf – COM object documentaion;


Test Application(en).pdf
Test Application(ru).pdf – description of the demo application;
EULA.pdf
– end-user license agreement file.

14 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK Performance Capabilities

2. SDK PERFORMANCE CAPABILITIES


The SDK allows to:
• receive images from Document Readers under different lighting schemes;
• locate document bounds on the image;
• read MRZ text data, check its authenticity and estimate MRZ printing quality;
• search for and read bar-codes;
• read text and graphic data from different document fields;
• perform automatic document authentication based on the analysis of images taken
under different lightning schemes;
• carry out the comparative analysis of text data obtained during the recognition of MRZ
and document filling fields or reading bar-codes and data retrieved from RFID-chip
memory (used together with RFID-Chip Reader SDK);
• get pattern images and descriptions of the document from IRS to carry out the visual
comparative analysis (i.e. to compare them with the processed document images).

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 15


SDK installation and use

3. SDK INSTALLATION AND USE


Install the SDK by launching Regula Document Reader SDK.exe from \SDK\ folder
from the installation media. All the software components needed for further operation will
be installed, including Document Reader drivers.

ATTENTION! Installation must be carried out by the OS user with the administrative rights.

Connect the device to an empty USB slot. The OS will report a new device and activate the
driver. If the system asks for location of some driver components it is necessary to specify
the path to \Program Files\Regula\Drivers\ or the corresponding folder of the in-
stallation media. If the driver activation is successful the LED indicator of the device state
will become orange (see User’s Guide).

To use the SDK tools in the user application:


1) include PasspR.h header file containing descriptions of used data structures, con-
stants and functions exported from PasspR40.dll or replace it with correspond-
ing declarations (in case the application is not built on C++);
2) dynamically connect PasspR40.dll control library; with the help of Windows API
GetProcAddress() function and get pointers to functions exported by the library.

The path to PasspR40.dll library is registered during the SDK installation in the Registry, in
Path string value of HKEY_LOCAL_MACHINE\SOFTWARE\Regula\ Document Reader SDK
key. SDK version number is noted in the Version string value of the same key.

As a result of MCL functioning, it stores some necessary data (calibration data, configura-
tion files, debug mode log files) inside directory \Users\[User Name]\AppData\Lo-
cal\Regula\Document Reader SDK.

16 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


How to work with document reader

4. HOW TO WORK WITH DOCUMENT READER

4.1. GENERAL INFORMATION


Regula document readers have different functionalities and can be classified according
the next criteria:

1. Processed document format (ISO/IEC 7810):


• for ID1 documents (70х3 model);
• ID1–ID3 documents (70x4, 70x7, 70x8, 4820, 83х3 and 83x4 models);
• MRZ reader (8307 model).

2. Light control system:


• general white light;
• white light with a separate control of the side and upper/lower lighters;
• general IR light;
• IR light with a separate control of the side and upper/lower lighters;
• general UV light;
• general coaxial white light;
• coaxial white light with a separate control of the left and right lighters;
• white light with the matrix control which provides the control of the each light system LED;
• IR light with the matrix control which provides the control of the each light system
LED.

The SDK tools support operation with the entire above mentioned document reader types
in full measure.

Documents readers may be equipped with a RFID-chip reader which must be operated
according to the RFID-chip reader SDK.

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 17


How to work with document reader

4.2. WORKING WITH MCL


SDK main control library PasspR40.dll exports a number of functions for working with
document readers.

The functions operation is organized taking into account possible use of multithreaded
data processing. Call of any library function (with minor exceptions) may be done from dif-
ferent user application threads. This allows scanning and processing data in background
mode, leaving the main interface of the program free for operation.

Attention! Execution of MCL functions _Initialize(), _Free(), as well as execution of


commands RPRM_Command_Device_Connect and
RPRM_Command_Device_Disconnect has to be done in main application thread.

PasspR40.dll library is developed for dynamic connection with the help of Windows API
LoadLibrary() function. Pointers to exported functions may be obtained with the help
of Windows API GetProcAddress() function.

After loading the library into memory it is necessary to execute _Initialize() initializa-
tion function. This function initializes system resources necessary for further operation,
searches and creates the list of all the document readers connected to the PC at a certain
moment of time.

_ExecuteCommand() is a main function of the library, through which user application


may initiate all the actions necessary for working with document readers. It takes com-
mand triplet (command code, command input parameter and pointer to receiving container
for returned results) as parameters.

The execution of all the commands by the control library is done synchronously. It means
that by the time of return from the _ExecuteCommand() to the user application the re-
quested action is complete and all the possible command execution results are obtained
and are valid.

To get detailed information on the actions taking place during the command execu-
tion, the callback-function mechanism is used. With the help of _SetCallback-
Func() exported function the user can initialize a pointer to a user application func-
tion of NotifyFunc type, that will be called at different stages of a command execu-
tion with providing event code and additional information in the context of the given
event. The _ExecuteCommand() function calling inside callback-function will block

18 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


How to work with document reader

the thread. It is allowable to call _ExecuteCommand() function with RPRM_Com-


mand_Device_LED command only.

In a number of cases the callback-function can be called asynchronously, i. e. outside the


context of the application current working thread – for example, when a document gets
into or out of the reader working area.

The requested results of data scanning and processing are returned to the user application
through another callback-function having ResultReceivingFunc type which is also set
by calling _SetCallbackFunc().

All the results obtained during the latest document scanning cycle and subsequent pro-
cessing of retrieved images remain available for reading through _CheckResult() and
_CheckResultFromList() functions call up to the moment of beginning of the next
scanning cycle. It allows the applications developed in programming environments with
objective restrictions in operation with complex data types to gain access to the results us-
ing the simplified mechanism of data transfer (through clipboard, through a file, as text, in
XML or JSON format etc.).

After finishing working with MCL, it is necessary to call _Free() function and unload
the library from memory with the help of Windows API FreeLibrary() function.

Whether a function or a command execution is successful is determined from the return


code after its execution. The set of possible values is specified in the eRPRM_ErrorCodes
enumeration.

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 19


How to work with document reader

4.3. DOCUMENT READER CONNECTION AND DISCONNECTION


After connecting the device to an empty USB 2.0 slot, OS will detect it as a separate device,
activate the driver and perform a primary initialization. The reader will be registered in the
Device Manager in the «Regula Document Readers» or «Forensic Devices » sec-
tion.

SDK MCL can operate with any number of readers connected to the PC, but only one
reader at a time can be available for processing.

For determining the total number of readers currently connected to the PC


RPRM_Command_Device_Count command is used.

The corresponding index number in the general list is given to each separate device as an identi-
fier. To get the index of the currently active device RPRM_Command_Device_ActiveIndex com-
mand is used.

To get information on a device from the general list RPRM_Command_Device_Features com-


mand is used. This command fills the TRegulaDeviceProperties structure with the in-
formation on the reader the index of which was specified that enables the user application
to determine the device that must be connected for further operation.

As document readers are USB-devices and can be connected to and disconnected from the
PC at any time, the list of connected devices may be out of date. To refresh this list
RPRM_Command_Device_RefreshList command is used. Unlike the procedure of
searching connected devices while executing _Initialize() function, this command
only checks the presence of devices from the list created before and if a device had been
disconnected it is removed from the list. To detect newly connected devices it is necessary
to reinitialize the MCL – to call sequentially _Free()/_Initialize().

To connect a certain device from the general list RPRM_Command_Device_Connect com-


mand is used.

All the reading commands and all messages about document getting into the reader work-
ing area will concern only the currently active device.

In case device calibration information is not available on PC, it is downloaded from device.
This process is indicated by call of NotifyFunc callback-function with RPRM_Notifica-
tion_DownloadingCalibrationInfo message code with the parameter containing
the calibration download progress value in percent.

To finish work with a current document reader RPRM_Command_Device_Disconnect com-


mand is used.

20 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


How to work with document reader

To switch between readers the user application must first disconnect the current de-
vice by RPRM_Command_Device_Disconnect command and then execute
RPRM_Command_Device_Connect for another reader.

In case when user application does not make RPRM_Command_Device_Disconnect call it


is executed automatically while calling _Free() or while unloading the library from
memory.

If programmatically connected device was physically disconnected from the USB,


NotifyFunc callback-function with RPRM_Notification_DeviceDisconnected noti-
fication code will be called. In this case the current working session must be terminated by
execution of RPRM_Command_Device_Disconnect command.

RPRM_Error_NoError (or RPRM_Error_AlreadyDone) return code from _Exe-


cuteCommand() function means that the device is connected successfully and is ready for
operation. Any other return code signals about error occurrence and impossibility of fur-
ther operation with the device.

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 21


How to work with document reader

4.4. DETERMINING DOCUMENT READER’S


PERFORMANCE CAPABILITIES

One of the stages of document reader connection is determining the set of image obtain-
ing and data processing functions available while working with this device.

Bit combination of flags that determines data processing performance capabilities for the active
reader may be obtained with the help of RPRM_Command_Options_GetSDKCapabilities com-
mand.

The set of image obtaining functions is determined by available reader lighting schemes.
To get the full list of them list of lighting schemes for scanning query commands are used.
While connecting the reader this list is filled with default values which are identifiers for all
available lighting schemes. For forced filling of the list with default values RPRM_Com-
mand_Device_Light_ScanList_Default command is used. To get the number of
elements in the list RPRM_Command_Device_Light_ScanList_Count command is
used. To get the value of an element of the list RPRM_Command_Device_Light_Scan-
List_Item command is used.

Thus, immediately after connecting the document reader, the user application must poll
the list of lighting schemes for scanning to get the full set of available lighting schemes.
In further operation, only these values may be specified for scanning, any other lighting
schemes identifiers will be ignored.

22 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


How to work with document reader

4.5. CALIBRATION PROCEDURE

Calibration procedure is the most important stage in getting the document reader ready
for operation. It serves for determining the necessary parameters of digital camera opera-
tion (gain, exposure, white light balance) for each lighting scheme and prepares the data
which will be used for compensation of geometric distortions, lighting unevenness and color
balance in obtained images.

Calibration must be performed every time after calling RPRM_Command_Device_SetFre-


quencyDivider command and if the frequency divider was changed.

Calibration is initialized with the help of RPRM_Command_Device_Calibration com-


mand.

At the first stage of calibration the necessary digital camera parameters will be determined
for each lighting scheme – the device will sequentially turn on the corresponding lighters.
First, the full scanning cycle of a blank (white) test object will be performed, the images of
which will be used for compensation of lighting unevenness and color balance. After this,
the full scanning cycle of a chess board test object will be performed, the images of which
are necessary for compensation of geometric distortions.

The set of lighting schemes for calibration is determined by the default list of lighting
schemes for scanning.

The beginning and the end of the calibration procedure is indicated by call of NotifyFunc
callback-function with RPRM_Notification_Calibration message code with false pa-
rameter and true parameter correspondingly.

The progress of calibration is indicated by call of NotifyFunc callback-function with


RPRM_Notification_CalibrationProgress message code with the parameter con-
taining the calibration progress value in percent.

To give the user possibility to put into device test-object it is necessary to use NotifyFunc
call-back function with RPRM_Notification_CalibrationStep notification. The pa-
rameter keeps the stage of the calibration process:
0 – it is necessary to put inside test-object #1 (white);
1 – it is necessary to put inside test-object #2 (chess board).

Calibration data is saved into device memory and to disk in the following folder \Us-
ers\[User Name]\AppData\Local\Regula\Document Reader SDK \Calibra-
tion.

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 23


How to work with document reader

Loading of previously obtained calibration data is a part of the procedure of connecting


the document reader to the user application.

RPRM_Command_Device_IsCalibrated command allows finding out whether calibra-


tion for the currently active reader was performed and whether the calibration data is valid.

Without calibration it is possible to scan uncropped images only. No processing of images


will be done. It will be signaled by RPRM_Error_DeviceNotCalibrated return code
from MCL functions.

24 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


How to work with document reader

4.6. DATA SCANNING AND PROCESSING

4.6.1. Data Representation and Storing


The results of scanning and processing of the obtained images are represented uniformly
with the use of TResultContainer containing structure (for a separate result) and
TResultContainerList list (for storing and passing of several results in one operation).

For storing different types of MCL operation results there is a set of the corresponding
data structures. Each of them may be placed in TResultContainer in order to be passed
to the user application.

The type of data contained in TResultContainer is determined by result_type field of


this structure. The field may contain one of the values from eRPRM_ResultType enumer-
ation and it unequivocally determines the type of the pointer contained in buffer field.
The user application should only cast this pointer to the necessary type to get access to the
content of the structure of the result data.

The result data obtained in one scanning and data processing cycle are retained after re-
turn from _ExecuteCommand() function up to the moment of its next call for execution
of RPRM_Command_Process or RPRM_Command_ProcessImagesList command.

4.6.2. Document Scanning and Obtaining Image Processing Re-


sults
The cycle of scanning and processing of the obtained images must be initialized by the
user application using RPRM_Command_Process command. Here it is necessary to make
sure that the document is in the reader.

The presence of the document in the reader is signaled by the appearance in


NotifyFunc callback-function of the message with RPRM_Notification_DocumentReady
code. The value of the message parameter (true or false) indicates that the document was
correspondingly placed into or removed from the reader.

Before launching the cycle of image scanning and processing the following actions should
be taken:
• determine the data set which must be obtained as result;
• determine the set of lighting schemes for which it is necessary to obtain scanned
images of the document (if the corresponding type of the requested result –
RPRM_GetImage_Modes_GetImages is chosen);

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 25


How to work with document reader

• to obtain image for UV lighting scheme set the value of scanning exposure for it;
• for readers with Direct Show control set the value of scanning delay for switching between
lighting schemes (if it is necessary);
• if the set of the requested data includes MRZ filling quality check result
(RPRM_GetImage_Modes_OCR_TestMRZQuality) set the parameters of checking proce-
dure.

The set of the requested results is formed by the logical combination (OR operation) of values
from eRPRM_GetImage_Modes enumeration and is passed as RPRM_Command_Process com-
mand parameter. Only those chosen by this method results will be passed to the user ap-
plication during the command execution.

The set of the necessary lighting schemes is formed by filling the list of lighting schemes for
scanning.

RPRM_Command_Device_Light_ScanList_Clear command clears the current list.

RPRM_Command_Device_Light_ScanList_AddTo command adds a new element to the


list. If the default list of lighting schemes does not contain the specified lighting scheme
identifier it is ignored which is indicated by RPRM_Error_LightIsNotAllowed re-
turn code.

RPRM_Command_Device_Get_ParamLowLight command returns the current value of


scanning exposure for UV lighting scheme.

RPRM_Command_Device_Set_ParamLowLight command sets the value of scanning ex-


posure for UV lighting scheme.

In addition to lighting scheme, optional parameters for “Smart UV” processing and “Glare
compensation” can be set. This is done by calling RPRM_Command_Op-
tions_Set_SmartUV and RPRM_Command_Options_Set_GlareCompensation
commands respectively.

If the user application set ResultReceivingFunc callback-function for getting results it will be
called as scanning results are formed and the images are processed. As parameter this function
gets pointer to TResultContainer structure containing data of result of different types.

In the process of performing a cycle of scanning and data processing it is possible that
NotifyFunc callback-function will be called for passing informational messages to the
user application.

26 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


How to work with document reader

The beginning and the end of the image scanning is indicated by appearance of RPRM_No-
tification_Scanning message with false parameter at the beginning and true at the
end of the procedure.

The beginning and the end of the image processing is indicated by appearance of
RPRM_Notification_Proccessing message with false parameter at the beginning and
true at the end of the procedure.

RPRM_Notification_DocumentCanBeRemoved message shows that the document can


be removed from the reader. Before this moment the presence of a fixed document in the
reader is obligatory.

RPRM_Notification_Error message with the parameter containing one of


eRPRM_ErrorCodes codes signals about a non-critical error occurrence, in most cases –
about the impossibility to form one of the requested results (for example, when MRZ read-
ing result was requested while there was no MRZ detected in the document).

Return code from _ExecuteCommand() indicates successfulness of the cycle of scan-


ning and data processing. If its value is different from RPRM_Error_NoError, the op-
eration was completed with an error or wasn’t fully completed. In any case, all the re-
sults obtained by the user application remain valid up to the moment of launching of
another scanning cycle.

4.6.3. Obtaining Results through Direct Query


Besides the mechanism of obtaining scanning and data processing results through
ResultReceivingFunc callback-function, there is also a possibility to access them after
return from _ExecuteCommand().

To use the additional method of getting data reading results the following MCL exported
functions are used: _ResultTypeAvailable(), _CheckResult() and _CheckRe-
sultFromList().

This method of getting results should be used:


• in case it is necessary to represent the results in XML format;
• in case it is necessary to write the obtained images or XML-representations of results
into a file;
• if the user application doesn’t use the mechanism of getting results through the
callback-function;
• if developing user application in the programming environment with restricted usage
of complex structured data type. In this case the suggested method provides access to

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 27


How to work with document reader

the results using simple standard data types (Windows DIB, text) and data exchanging
methods (through clipboard, through file);
• for getting additional image processing results (for example, RPRM_Re-
sultType_ChosenDocumentTypeCandidate).

The total number (and correspondingly – the availability) of results of certain type formed
during the last scanning and data processing cycle is returned by _ResultTypeAvaila-
ble() function.

As input parameters _CheckResult() accepts the type of requested data (one of the
eRPRM_ResultType values in the type function parameter), index of the object in the
general list of available results of the requested type (idx parameter), format and mecha-
nism of data passing (OR-combination of eRPRM_OutputFormat values in the output
function parameter) and data passing parameters (param parameter, in the context
of output value).

If the returned _CheckResult() value is less than 0, it is one of the eRPRM_Re-


sultStatus error codes. If the returned value is more than 0, it is a pointer to
TResultContainer structure containing the requested data. It may be used directly,
after casting to TResultContainer * type, or to access fields of structures which are
lists of data of the same type, through _CheckResultFromList()function. In the sec-
ond case, _CheckResult() function call is an intermediate step for getting data.

Besides receiving a pointer to a corresponding result data structure, an additional


form of data representation may be formed by a combination of values from
eRPRM_OutputFormat enumeration in the output parameter:
• to write images (RPRM_ResultType_RawImage result type) into file it is necessary to
specify ofrFormat_FileBuffer and ofrTransport_File combinations. Writing
format will correspond to the currently set format of writing graphic files. Pointer to
the character string containing the filename in UTF8 encoding must be passed in the
param parameter;
• to form XML-representation of result data structure it is necessary to specify ofr-
Format_XML. In this case XML_buffer field of TResultContainer returned struc-
ture will contain a pointer to the beginning of the text buffer of XML-image, and
XML_length field – the length of the buffer. Adding of ofrTransport_File
points at the necessity to write the formed XML-representation of result into a file,
the name of which is passed to param. If ofrFormat_XML is in combination with
ofrFormat_FileBuffer, the content of the buffer containing graphic file image (im-
age writing result) will be converted into XML;
• to pass an image or text of XML-representation of result through clipboard it is neces-
sary to include ofrTransport_Clipboard into output combination.

28 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


How to work with document reader

To access certain fields of structures which are lists of text (TDocVisualExtendedInfo)


or graphic (TDocGraphicsInfo) data of the same type _CheckResultFromList()
function is used.

As input data _CheckResultFromList() accepts a results list descriptor obtained


through _CheckResult() call in container parameter, data passing mechanism iden-
tifier (one of eRPRM_OutputFormat values) in output parameter and specific (in the context
of output value) data passing parameters in param. The returned value contains the type of
the passed field (one of eVisualFieldType or eGraphicFieldType values). In case of er-
ror occurrence or end of fields list, one of eRPRM_ResultStatus values is returned.

Unlike _CheckResult(), output parameter of _CheckResultFromList() function must


contain not a combination of values from eRPRM_OutputFormat, but a definite value from this
enumeration determining the method of passing the content of results list fields:
• ofrTransport_Clipboard – through Windows clipboard (for text fields of
TDocVisualExtendedInfo structure and graphic images of TDocGraphicsInfo
structure);
• ofrTransport_File – through file (for graphic images from TDocGraphic-
sInfo structure).

In the first case param function parameter is ignored. In the second case it must contain
a pointer to the character string containing the filename. Writing format will correspond to
the currently set format of writing graphic files.

RPRM_Command_Options_GraphicFormat_Count command returns the total number


of available image writing graphic formats.

RPRM_Command_Options_GraphicFormat_Name command returns the character string


containing the file extension for the specified index of image writing format.

To select image writing format by index RPRM_Command_Options_GraphicFormat_Select


command is used.

RPRM_Command_Options_GraphicFormat_ActiveIndex command returns the index


of the current image writing format in the general list.

Thus, to get the contents of all text and graphic fields contained in list structures:
• call _CheckResult() specifying the corresponding requested result type;
• using the received result descriptor, call _CheckResultFromList() till the end of
the list is reached (RPRM_ResultStatus_EndOfList return code).

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 29


How to work with document reader

After the return from _CheckResultFromList(), the requested data are either placed in
the clipboard or written into a file with specified filename.

4.6.4. Processing of the User-defined List of Images


To perform user-defined images list processing cycle RPRM_Command_ProcessImagesList
command is used. It is the complete analog of RPRM_Command_Process command.
The only difference is that during its execution there is no actual scanning of the doc-
ument and as input data a list of images passed in the command parameter is used.

By default only previously obtained images from currently connected reader can be pro-
cessed. The RPRM_Capabilities_ProcessImages capability that allows processing
images from other sources is added to reader by separate request.

In order for this command to be executed successfully all the passed images must be raw
(not processed). This is achieved by obtaining them in the scanning cycle without specify-
ing any additional processing functions except RPRM_GetImage_Modes_GetImages.
In this case, images obtained in the container with RPRM_ResultType_RawImage
type will be the only result of performing the scanning cycle.

TResultContainerList list of TResultContainer structures containing docu-


ment images serves as RPRM_Command_ProcessImagesList command parameter.
Images must be represented in TRawImageContainer format which must be indi-
cated by result_type field value of each TResultContainer structure of the list
(it must equal to RPRM_ResultType_RawImage).

There are two SDK MCL exported functions responsible for correct memory allocation
for storing images as TRawImageContainer and for freeing this memory. They are
_AllocRawImageContainer() and _FreeRawImageContainer() functions cor-
respondingly. While creating a copy of obtained data for further use in RPRM_Com-
mand_ProcessImagesList command it is recommended that the user application
operate by these service functions for correct memory allocation.

30 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


How to work with document reader

4.7. DATA PROCESSING FUNCTIONS AND THEIR APPLICATION


DURING SCANNING AND PROCESSING CYCLE

As it was stated above, the set of image obtaining and data processing data functions
available when working with the document reader is determined at the stage of the device
connection.

Bit combination of flags that determines data processing performance capabilities for the active
reader may be obtained with the help of RPRM_Command_Options_GetSDKCapabilities
command.

The set of actions which must be taken in the process of data scanning and processing and,
correspondingly, the set of result data of these actions requested by the user application
is determined by RPRM_Command_Process (or RPRM_Command_ProcessImagesList) com-
mand parameter.

The description of each stage of obtaining and processing data in chronological order of
scanning cycle procedure is given below.

4.7.1. Obtaining Scanned Images


To obtain document images as data scanning and processing cycle results it is necessary to
specify RPRM_GetImage_Modes_GetImages in the set of scanning cycle functions (in
RPRM_Command_Process and RPRM_Command_ProcessImagesList command param-
eters).

The set of lighting schemes for which images must be obtained is determined by the
content of the list of lighting schemes for scanning. Each of the corresponding images
will be represented as TRawImageContainer data structure and passed through
ResultReceivingFunc callback-function or may be obtained through call of
_CheckResult().

Besides lighting schemes specified in the list, images for lighting schemes which are not
included in the list may be required for execution of the declared processing functions. In
this case, they will be obtained but will not be included in the set of the formed results for
passing to the user application. The beginning and the end of the basic scanning is indi-
cated by RPRM_Notification_Scanning message (with false parameter at the beginning of
the scanning and true at the end of it).

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 31


How to work with document reader

The list of lighting schemes necessary for scanning may also be made precise after de-
termining the document type procedure. In this case the necessary images will be ob-
tained by additional scanning, after which the user application will receive RPRM_Noti-
fication_DocumentCanBeRemoved message. Receiving this very message indicates
that the document may be removed from the reader. Before this moment the presence of
a fixed document in the reader is obligatory.

Document images obtained during the further processing (cropped along the document bor-
der with lighting unevenness and color balance compensated) will be passed to the user appli-
cation after RPRM_Command_Process (or RPRM_Command_ProcessImagesList)
command is executed. The result type for these images will be set in RPRM_Re-
sultType_RawImage.

4.7.2. Document Localization on Image


To locate the document on the scanned images and to create final document images cropped
along the found document borders with lighting unevenness and color balance compensated
it is necessary to specify RPRM_GetImage_Modes_LocateDocument in the set of scanning
functions (in RPRM_Command_Process or RPRM_Command_ProcessImagesList command
parameter).

After the document borders are found, the additional analysis of the document format is
performed (according to ISO/IEC 7810). According to its results, additional rotation of the
image is possible.

4.7.3. Reading and Quality Control of MRZ Printing


To get document MRZ reading results as result of data scanning and processing cycle execution
it is necessary to specify RPRM_GetImage_Modes_OCR_MRZ in the set of scanning functions (in
RPRM_Command_Process or RPRM_Command_ProcessImagesList command parameter).
To get results of MRZ printing quality control – RPRM_ResultType_MRZ_TestQuality.

Results are passed to the user application as TDocVisualExtendedInfo and TDocMRZ-


TestQuality structures correspondingly.

For TDocVisualExtendedInfo structure type result is set equal to RPRM_Re-


sultType_MRZ_OCR_Extended, for TDocMRZTestQuality – RPRM_Re-
sultType_MRZ_TestQuality.

After reading MRZ, depending on its location, additional rotation of the images is
possible.

32 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


How to work with document reader

MRZ printing quality control parameters are set by RPRM_Command_Op-


tions_Set_MRZTestQualityParams command.

RPRM_Command_Options_Get_MRZTestQualityParams command returns the current


values of MRZ printing quality control parameters.

MRZ text filling validity is determined in accordance with ICAO 9303 for machine readable
documents.

The text printing quality of the MRZ is checked in accordance with ISO 1831:1980 “Printing
Specifications for Optical Character Recognition”.

MRZ filling validity and checksums are checked by default.

4.7.4. Determining Document Type


To determine the document type and get this information as a result of scanning cycle it is
necessary to specify RPRM_GetImage_Modes_DocumentType in the set of scanning func-
tions (in RPRM_Command_Process or RPRM_Command_ProcessImagesList com-
mand parameter).

Determining the document type is based on the information stored in the documents da-
tabase which is included in the SDK and is copied to disk during SDK installation. The data-
base is located in \<installation folder_SDK>\Data\ by default.

Data on the document type contain different information including the set of necessary
lighting schemes for further document filling fields reading operations and document au-
thentication. On the basis of this data image obtaining by additional scanning is performed
(see paragraph 6.7.1).

There are three modes of determining the document type procedure:

1. STANDARD MODE. In this mode the document type is determined automatically by analy-
sis of the obtained document images and only on the basis of data from the documents
database.

Information on the found candidates for the required document type is passed in the
result parameter of ResultReceivingFunc callback-function as
TCandidatesListContainer list.

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 33


How to work with document reader

The user application must choose one of the candidates and place its identifier
(the value of ID field of TOneCandidate structure) into the returning parameter
of PostActionParameter callback-function. Another returning parameter –
PostAction – must contain RPRM_PostCalbackAction_ProcessCandidate value.

If PostAction parameter contains RPRM_PostCalbackAction_Continue value after


the return to the MCL, the first element in the list of candidates will be chosen for further
operations. The same thing will happen if ResultReceivingFunc result receiving
callback-function was not set.

If PostAction parameter contains RPRM_PostCalbackAction_Cancel value after the


return to the MCL, further operations connected with the necessity for precise determina-
tion of the document type (for example, document filling fields reading) will not be per-
formed.

2. USER MODE. In this mode the document type is determined by the user application pri-
vately. This is possible if it, for example, has its own algorithm based on the analysis of
images (RPRM_ResultType_RawImage) obtained at the very beginning of the current
scanning and processing cycle.

In this mode, ResultReceivingFunc is called with an empty result parameter and the
user application must fill PostAction and PostActionParameter by its own with cer-
tain values with the same meaning as in the standard mode.

Here the specific thing is that document type identifier placed to PostActionParameter
must be the actual identifier of the document information on which is contained in the
documents database.

Thus, there must be some mechanism allowing the user application to establish corre-
spondence between the document type determined by private algorithm and a definite
document type described in the existing database.

One of the steps to establish such correspondence is to get information about all the doc-
ument types contained in the database. This is realized through calling RPRM_Com-
mand_Get_DocumentsInfoList command. The received list TListDocsInfo
contains array of elements TOCRDocInfo, each of which correspond to one regis-
tered document type.

Besides text title of the document, its format and other additional information,
TOCRDocInfo structure contains two identifiers: one – DocID – is numeric, the other –
DocTxtID – symbolic. Numeric identifier serves for specifying the document type when
returning from ResultReceivingFunc (in PostActionParameter parameter) and is

34 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


How to work with document reader

generated automatically when a new document description record is placed into the data
base. Symbolic identifier may be defined manually and may contain some additional infor-
mation (for example, some internal identifier), that allows to find connection between this
document type and the data used by the user application when privately determining the
document type.

Thus, after determining the document type on the basis of raw images and having its inter-
nal identifier, the user application may search it among all the documents of the database,
get the corresponding numeric identifier and use it for choosing the document type when
returning from callback-function.

RPRM_ResultType_DocumentsInfoList type result corresponding to TListDocsInfo list


is also available through _CheckResult() call.

To activate the user mode of the document type determination RPRM_Command_Op-


tions_Set_CustomDocTypeMode command is used.

RPRM_Command_Options_Get_CustomDocTypeMode command returns the current sta-


tus of the user mode of the document type determination (mode active or not).

3. MANUAL MODE. In this mode the document type which must be chosen for further data
reading operations is determined by setting a certain value of the symbolic identifier
(DocTxtID field of TOCRDocInfo structure).

To set the document type symbolic identifier RPRM_Command_Options_Set_CurrentDocumentType


command is used, to read its current value RPRM_Command_Options_Get_CurrentDocumentType
command is used.

This mode is designed for use when ResultReceivingFunc callback-function is impos-


sible to set and in the situation when choosing the first element from the list of candidates
(as in the standard mode) is not optimal.

In this case, if the current document type identifier is not found in the database, the execu-
tion of RPRM_Command_Process (or RPRM_Command_ProcessImagesList) command will
be stopped and the user information will receive RPRM_Notification_Error message with
RPRM_Error_CantRecognizeDocumentType code.

Thus, to determine document type in the manual mode:


• analyze the formed list of candidates requesting it through _CheckResult()call;
• choose the necessary document type in the list of candidates;
• in the general list of documents of the database find the corresponding record, deter-
mine the document type symbolic identifier;

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 35


How to work with document reader

• set the document type identifier by RPRM_Command_Options_Set_CurrentDocumentType


command;
• repeat the data scanning and processing cycle.

Manual mode has the highest priority among the modes of determining the document
type. It means that if the current document type symbolic identifier is not empty, the
search of the document type in the database will be performed only according to it.
To switch to standard or user mode set the text identifier empty using RPRM_Command_Op-
tions_Set_CurrentDocumentType command.

When executing RPRM_Command_ProcessImagesList command it is possible that


the set of images provided for processing does not contain images for all the necessary
lighting schemes. And while in the case of execution of RPRM_Command_Process com-
mand they can be scanned additionally, it is impossible to do when working with
a fixed list.

In this case, command execution will be stopped and _ExecuteCommand() will return
RPRM_Error_IncompleteImagesList error code.

To continue work it is necessary to get information on the document type which was de-
termined on the basis of analysis of the current images list with the help of _CheckRe-
sult() call requesting RPRM_ResultType_ChosenDocumentTypeCandidate type result.
TOneCandidate returned data structure will contain information on the necessary light-
ing schemes in NecessaryLights field. After this it is necessary to make the content of
list of lighting schemes for scanning precise, perform the scanning cycle to obtain the nec-
essary raw images and execute RPRM_Command_ProcessImagesList command with the
updated list of images.

4.7.5. Reading Document Filling Fields


To obtain document filling text and graphic fields reading results in the process of data scan-
ning and processing cycle it is necessary to specify RPRM_GetImage_Modes_OCR_Visual in
the set of scanning functions (in RPRM_Command_Process or RPRM_Command_Pro-
cessImagesList command parameter).

The results are passed to the user application as TDocVisualExtendedInfo and


TDocGraphicsInfo structures correspondingly.

For TDocVisualExtendedInfo structure the type result is set equal to RPRM_Re-


sultType_Visual_OCR_Extended, for TDocGraphicsInfo – RPRM_Re-
sultType_Graphics.

36 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


How to work with document reader

The set and the properties of the readable document filling fields are determined on the
basis of the information for the chosen document type stored in the documents database.
In the case when the document type is not determined, data reading from the document
filling text fields is not carried out.

If the document geometric format determined at the stage of localization of the document
on the image corresponds to the ID3 document format but the document type is not de-
termined, selection of the photograph area according to the coordinates defined in
Doc 9303 ICAO document takes place. In this case, RPRM_ResultType_Graphics type
result will contain one graphic field.

4.7.6. Reading Bar-codes


To get bar-codes reading results in the process of data scanning and processing cycle it is
necessary to specify RPRM_GetImage_Modes_OCR_BarCodes in the set of scanning func-
tions (in RPRM_Command_Process or RPRM_Command_ProcessImagesList command
parameter).

The results are passed to the user application as structures of four different types:
• TDocBarCodeInfo (result type RPRM_ResultType_BarCodes), containing the full
set of bar-codes data in binary format;
• TDocVisualExtendedInfo (result type RPRM_ResultType_BarCodes_Text-
Data), containing text data logically divided according to its types;
• TDocGraphicsInfo (result type RPRM_ResultType_BarCodes_ImageData), con-
taining logically divided graphic data;
• Byte array (result type RPRM_ResultType_FingerprintTemplateISO), containing
binary ISO fingerprint template.

If the document type was determined at the earlier stage of document processing, only those
bar-codes for which the corresponding areas of document image are set as filling fields and
information on which is contained in the database will be read.

If the document type wasn’t determined, searching for bar-code areas on the image
and reading data from them will be carried out automatically.

For additional settings of format of bar-code modules readable data (mData array of
TIP_DECODE_MODULE structure) IPDecode.ini configuration file located in the SDK instal-
lation folder is used. ASCII character codes which will be placed in the resultant data array
instead of incorrectly read characters may be specified in its ErrorByteCode and Er-
rorTextCode fields (for bytes and text modules correspondingly).

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 37


How to work with document reader

4.7.7. Document Authenticity Check


To obtain document authenticity check results in the process of data scanning and processing cy-
cle it is necessary to specify RPRM_GetImage_Modes_Authenticity in the scanning functions
set (in RPRM_Command_Process or RPRM_Command_ProcessImagesList command pa-
rameter).

A combination of necessary authenticity checks can be set by RPRM_Command_Op-


tions_Set_AuthenticityCheckMode command.

The results are passed to the user application as TAuthenticityCheckList structure


with RPRM_ResultType_Authenticity type result.

Document authenticity check is performed on the basis of the processing and analysis of
the obtained document images for different lighting schemes.

4.7.8. Comparative Lexical Analysis of Data


Lexical analysis of data allows comparing MRZ text data reading results, document fill-
ing areas, bar-code areas and data from a RFID-chip memory (using RFID-chip readers
SDK) for additional estimation of document authenticity.

To carry out lexical analysis of data RPRM_Command_OCRLexicalAnalyze command


is used.

MRZ reading text results, document filling areas and bar-code areas obtained during
the last data scanning and processing cycle are used as data for comparing. Data from
a RFID-chip memory may be passed as command parameter as a pointer to
TDocVisualExtendedInfo structure (see Radio Frequency Identification Chip
Reader. Software Development Kit. Programmers Guide).

The results are passed to the user application as TListVerifiedFields structure


with RPRM_ResultType_OCRLexicalAnalyze type result.

Dates are converted to format of current system locale.

38 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


How to work with document reader

4.8. ADDITIONAL SETTINGS AND OPTIONS


There are following additional settings and options when working with the MCL.

4.8.1. Control of Document Reader Indicator Light


Emitting Diodes (LEDs)
For this RPRM_Command_Device_LED command is used. With its help the user application
may suggest its own algorithm of indicator LEDs functioning when executing different
commands. In this case, new indicator LEDs functioning parameters must be set when re-
ceiving notification messages and when returning from MCL functions in order to replace
default values.

The default light indication scheme is as follows (only the first indicator – device state –
is used):
• in the process of device connection, calibration and scanning the indicator flashes
orange;
• after a successful connection and after the scanning is complete the indicator turns
on green;
• after the device disconnection the indicator turns on orange.

4.8.2. Accumulator Battery Status when Working


with Regula 83x3, 83х4
For this RPRM_Command_Options_Get_BatteryStatus command is used.

4.8.3. Control of Working Digital Camera Sensor Mode


The command RPRM_Command_Device_Set_WorkingVideoMode allows to switch be-
tween different modes of digital camera sensor used in readers, for example, from
3 Mp to 1.3 Mp.

Availability of different sensor modes is being provided in VideoModes field of TReg-


ulaDeviceProperties structure (RPRM_Command_Device_Features command).

4.8.4. Define the Required Size of Images Retrieved


by _CheckResult() and _CheckResultFromList() Function
The required image height can be set with the help of RPRM_Command_Op-
tions_Set_CheckResultHeight command.
This parameter is ignored in _CheckResult() call in the following cases:
• retrieving RPRM_ResultType_RawImage without output parameter set to ofrFor-
mat_XML and/or ofrFormat_FileBuffer;
• retrieving RPRM_ResultType_EOSImage.

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 39


How to work with document reader

4.8.5. Videochip Frequency Divider


Changing videochip frequency divider makes sence only on readers based on Micron videochips.
Other readers will ignore this command.

To set the video chip frequency divider RPRM_Command_Device_SetFrequencyDivider


command is used. It is possible to set divider from 0 to 5. Zero means do not use fre-
quency divider.

ATTENTION! If you changed this parameter you must calibrate the device.

The next call of this command with the same value does not need the device calibration.

The necessity to change this parameter is very low. You need to do it if you have got
“shifted” images or get RPRM_Error_ScanAborted result very often. We recommend
increasing this value on 1 till you get images stably.

If you use Windows 7 you must set video chip frequency divider to 1 or more.

4.8.6. Debug Mode


For this RPRM_Command_Options_BuildExtLog command is used.

Logs containing detailed information about the performed actions will be dumped into de-
bug console. To view debug console output DebugView (Dbgview.exe) application is in-
cluded in SDK.
Additional logs may be enabled by setting registry parameter HKEY_CUR-
RENT_USER\SOFTWARE\Regula\Document Reader SDK\LogToDebugView to 1.

40 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


How to work with document reader

4.9. WORKING WITH IRS


To ensure the user application work with IRS, it is required to previously install it on the PC.

When loading the MCL, searching for the dynamic library of interaction with IRS –
FDS_Dll.dll – which must be present in the IRS installation folder is performed. By de-
fault this search is performed according to the path registered in the process of IRS in-
stallation in HKEY_LOCAL_MACHINE\SOFTWARE\Regula\FDS register key in Path
string value.

To connect IRS to user application it is necessary to:


• provide for additional child window for displaying the information from IRS in the user
application working window;
• connect IRS with the help of _FDSUser_Connect() command by attributing to this
command the descriptor (HWND) of the child window allocated to IRS as parameter;
• set working size of IRS control panel displayed in the child window by calling
_FDSUser_UpdateWindow()procedure and passing to this procedure the panel size
as parameters.

For displaying the information on the scanned document in IRS window, it is required to
call _FDSUser_SelectionDocument() procedure by passing to this procedure a three-
letter code of the document issuing country and two-letter document type code and
eFDS_Light lighting type as parameters.

Country and document type codes may be obtained, for example, from the results of reading of
MRZ or document filling area. When calling _FDSUser_SelectionDocument() it is accepta-
ble to specify NULL values for them. In this case, an image will be opened which corre-
sponds to lighting type for the currently selected in the IRS panel document passed in the
third function parameter.

To control the set of displayed IRS panels _FDSUser_UpdatePanel() function is used.

Calling _FDSUser_Disconnect() procedure will disconnect IRS from the user application.

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 41


SDK tools

5. SDK TOOLS
5.1. EXPORTED FUNCTIONS
All exported functions are declared with extern “C” specifier.

5.1.1. _Initialize()
Type – typedef long (*_InitializeFunc)(void *lpParams, HWND
hParent)
Symbolic name – _Initialize
Designation: initialize the SDK MCL
Parameters:
lpParams – reserved
hParent – descriptor of user application window which will be parental for
all dialog windows displayed when working with the MCL, or
NULL

Calling this function will initialize all the system resources necessary for further operation,
search and creating the list of all the document readers currently connected to the PC.

Return code – one of eRPRM_ErrorCodes values.

Any value different from RPRM_Error_NoError or RPRM_Error_AlreadyDone signals


that further operation is impossible because of critical errors occurrence. In this case it is
necessary to call _Free() function, unload DLL from memory and terminate the applica-
tion or repeat the initialization function call after necessary measures aimed at restoring
the functionality have been undertaken.

5.1.2. _Free()
Type – typedef long (*_FreeFunc)()
Symbolic name – _Free
Designation: deinitialize the SDK MCL

Calling this function will disconnect the currently active document reader and deallo-
cate all of the MCL resources. To continue working with MCL it is necessary to call
_Initialize() again.

Return code – one of eRPRM_ErrorCodes values.

42 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

5.1.3. _SetCallbackFunc()
Type – typedef void (*_SetCallbackFuncFunc)(ResultReceiving
Func f1, NotifyFunc f2)
Symbolic name – _SetCallbackFunc
Designation: set callback-functions for getting results and
informational messages

As parameters this function accepts pointers on corresponding types of functions declared


in the user application. These functions will be called upon necessity.

There are 2 types of callback functions (user application functions) called from the MCL:
when certain events have been arisen (NotifyFunc) and when the results have been re-
ceived (ResultReceivingFunc).

Function ResultReceivingFunc call is synchronous (i.e. it is executed in the context of


user application main thread), while NotifyFunc call is executed in an asynchronous way,
which demands (upon necessity) corresponding modifications of user code to ensure a
multithreaded mode support.

5.1.4. _ExecuteCommand()
Type – typedef long (*_ExecuteCommandFunc)(long command,
void *params, void *result)
Symbolic name – _ExecuteCommand
Designation: request command execution
Parameters:
command – command code (one of eRPRM_Commands constants)
params – command input parameters
result – a pointer to the result receiving structure

Return code – one of eRPRM_values.

Input parameter and result receiving structure data types are determined from the context
of each given command.

5.1.5. _ResultTypeAvailable()
Type – typedef uint32_t (*_ResultTypeAvailable-
Func)(long type)
Symbolic name – _ResultTypeAvailable
Designation: check the data availability for the requested data type
Parameter

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 43


SDK tools

type – requested type result (one of eRPRM_ ResultType)

Returned value – the general number of data for the specified type result formed in the
process of the previous data scanning and processing cycle.

5.1.6. _CheckResult()
Type – typedef HANDLE (*_CheckResultFunc)(long type,
long idx, long output, void *param)
Symbolic name – _CheckResult
Designation: obtain containing structure with data processing results of re-
quested type;
additional conversion of data to XML format;
save images and XML data into file
Parameters:
type – requested result type (one of eRPRM_ResultType data repre-
sentation types)
idx – index of the object in the general list of available results of the
requested type
output – additional result representation (OR-combination of
eRPRM_OutputFormat values)
param – parameters in the context of additional result representation value

Returned value: if it is > 0, then it is the descriptor of the structure containing data of the
requested type (TResultContainer *, cast to HANDLE type); if it is < 0, then it is one of
eRPRM_ResultStatus values.

To form image of the graphic file it is necessary to specify ofrFormat_FileBuffer in


the type parameter. Format of image encoding will correspond to the currently set format
of writing graphic files. The resultant buffer will be passed to the user application in the
structure containing data of RPRM_ResultType_FileImage type through
ResultReceivingFunc call. Buffer field of TResultContainer structure will point
to the beginning of the buffer with binary image of the file and buf_length will contain
the length of this buffer.

To form additional XML or JSON representation of the returned data structure (also
for RPRM_ResultType_FileImage) it is necessary to specify ofrFormat_XML or
ofrFormat_JSON in type parameter respectively.

For physical output of the image or XML/JSON-representation of the result to disk it


is necessary to specify ofrTransport_File in type parameter. Param parameter
must contain a pointer to a null-terminated character string containing the full file-
name in UTF8 encoding.

44 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

If there is ofrTransport_Clipboard value in type parameter, of the image


or XML/JSON -representation of the result will be placed to the OS clipboard: the im-
age – as CF_DIB object, text – as CF_TEXT object (see documentation on program-
ming in Windows environment). These data will be available in the user application af-
ter return from _CheckResult() through Windows API GetClipboardData()
function.

5.1.7. _CheckResultFromList()
Type – typedef long (*_CheckResultFromListFunc)(HANDLE
container, long output, void* param)
Symbolic name – _CheckResultFromList
Designation: access to separate fields of result structure which is a list
Parameters:
container – descriptor of the result obtained through _CheckResult()
output – additional result representation (one of eRPRM_OutputFormat)
param – parameter for additional result representation

Returned value: if ≥ 0, then it is passing field type code (one of eVisualFieldType, or


eGraphicFieldType values); if < 0 – one of eRPRM_ResultStatus values.

When type=ofrTransport_Clipboard, current field (text or graphic) content will be


placed into Windows clipboard in CF_TEXT or CF_DIB format and will be available af-
ter returning from _CheckResultFromList() through Windows API GetClip-
boardData() function.

Type ofrTransport_File is used for receiving graphic images only (from


TDocGraphicsInfo result structure). The image from the current field will be written into
a file. A pointer to a null-terminated text string (in UTF8 encoding) containing the full file-
name must be passed to param. Graphic files format will correspond to the currently set
format of writing graphic files.

Type ofrFormat_FileBuffer is used for receiving graphic images only (from


TDocGraphicsInfo result structure). The image file buffer from the current field will be
created. In this case, param parameter must contain a pointer TResultContainer *,
acting as a result container. A pointer to the data array of original file image is stored in
buffer field, its length – in buf_length field

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 45


SDK tools

5.1.8. _AllocRawImageContainer()
Type – typedef long (*_AllocRawImageContainerFunc)(TRaw Im-
ageContainer **cont, long w, long h, long
bits_cnt, long resolution)
Symbolic name – _AllocRawImageContainer
Designation: allocate memory for TRawImageContainer data structure for
storing images with set properties
Parameters:
cont – pointer address in the user application
w – image width in pixels
h – image height in pixels
bits_cnt – number of bits per color
resolution – images resolution (pixels per meter)

Return code – one of eRPRM_ErrorCodes values.

The memory allocated by this function must be freed calling _FreeRawImageCon-


tainer() function.

5.1.9. _FreeRawImageContainer()
Type – typedef long (*_FreeRawImageContainerFunc)(TRaw
ImageContainer *cont)
Symbolic name – _FreeRawImageContainer
Designation: free memory allocated by _AllocRawImageContainer()
function
Parameter
cont – pointer to the structure

Return code – one of eRPRM_ErrorCodes values.

5.1.10. _FDSUser_Connect()
Type – typedef long (*_FDSUser_ConnectFunc)(HWND hWnd)
Symbolic name – _FDSUser_Connect
Designation: connect IRS to the user application
Parameters:
hWnd – descriptor of the user application window in which IRS informa-
tional panels will be displayed

Return code – one of eRPRM_ErrorCodes values.

46 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

5.1.11. _FDSUser_Disconnect()
Type – typedef long (*_FDSUser_DisconnectFunc)()
Symbolic name – _FDSUser_Disconnect
Designation: disconnect IRS from the user application

Return code – one of eRPRM_ErrorCodes values.

5.1.12. _FDSUser_UpdateWindow()
Type – typedef long (*_FDSUser_UpdateWindowFunc)(long w,
long h, long show)
Symbolic name – _FDSUser_UpdateWindow
Designation: set new general sizes for IRS panels and their visibility
Parameters:
w – new width for IRS panels
h – new total height for displayed IRS panels
show – general visibility of IRS panels (“true” or “false”)

Return code – one of eRPRM_ErrorCodes values.

5.1.13. _FDSUser_UpdatePanel()
Type – typedef long(*_FDSUser_UpdatePanelFunc)(long panel,
long position, long height)
Symbolic name – _FDSUser_UpdatePanel
Designation: individual control of location, size and visibility of IRS panels
Parameters:
panel – panel identifier (one of eFDS_Panel values)
position – panel location and visibility (one of eFDS_Panel_Position
values)
height – new height of the panel

Return code – one of eRPRM_ErrorCodes values.

5.1.14. _FDSUser_SelectDocument()
Type – typedef long (*_FDSUser_SelectDocumentFunc)(char
*CountryCode, char *DocCode, long Light)
Symbolic name – _FDSUser_SelectDocument
Designation: display the document information in IRS panel

CountryCode – three-letter code of the document issuing country (from third to


fifth characters in the first MRZ string)

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 47


SDK tools

DocCode – two-letter code of the document type (the first two characters
in the first MRZ string)
Light – lighting type/security level code which must be activated in IRS
panel (one of eFDS_Light values)

Return code – one of eRPRM_ErrorCodes values.

5.1.15. _LibraryVersion()
Type – typedef uint32_t (*_LibraryVersionFunc)()
Symbolic name – _LibraryVersion
Designation: return the SDK MCL version:
HIWORD() – major version number,
LOWORD() – minor version number (for version 5.2 – 5 and 2
correspondingly).

48 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

5.2. CALLBACK-FUNCTIONS
Callback-function is a user application function called by the MCL during the opera-
tion process for getting messages about command execution status and changes
in the state of the device and for passing the results of data scanning and pro-
cessing cycle.

Callback-function types are declared in PasspR.h:

typedef void (__stdcall *ResultReceivingFunc)(TResultContainer *result,


uint32_t *PostAction, uint32_t *PostActionParameter);
typedef void (__stdcall *NotifyFunc)( intptr_t code, intptr_t value );

In the user application it should be correspondingly declared as:

void__stdcall MyResultReceivingFunc(TResultContainer *result,


uint32_t *PostAction, uint32_t *PostActionParameter);
void__stdcall MyNotifyFunc(intptr_t code, intptr_t value);

and set in the following way:

SetCallbackFunc(MyResultReceivingFunc, MyNotifyFunc);.

5.2.1. NotifyFunc()
Type – typedef void (__stdcall*NotifyFunc)( intptr_t code,
intptr_t value)
Designation: receive message about command execution status and changes
in the internal state of the library or the device
Parameters:
code – message code (eRPRM_NotificationCodes).
value – value (in the context of the code).

5.2.2. ResultReceivingFunc()
Type – typedef void (__stdcall*ResultReceivingFunc)(TResult
Container *result, uint32_t *PostAction,
uint32_t *PostActionParameter)
Designation: – obtain data scanning and processing results
Parameters:
result – pointer to the structure containing data scanning or processing
results
PostAction – one of eRPRM_PostCalbackAction values, filled by the user
application when returning from the callback-function

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 49


SDK tools

PostActionParameter – parameter for PostAction.

5.3. DATA STRUCTURE


5.3.1. TResultContainerList
TResultContainerList structure is used for storing the list of images and passing it for pro-
cessing by RPRM_Command_ProcessImagesList command.

struct TResultContainerList
{
uint32_t Count;
TResultContainer *List;
};

Declaration: PasspR.h
Fields:
Count – number of List array elements
List – array of containers for data of different representation types

Structures of the TResultContainer types containing images in RPRM_Re-


sultType_RawImage data format are elements of the List array

5.3.2. TResultContainer
TResultContainer structure is used for storing the results formed during the data scan-
ning and processing cycle and passing it to the user application.

struct TResultContainer
{
uint32_t result_type;
uint32_t light;
uint32_t buf_length;
void *buffer;
uint32_t XML_length;
BYTE *XML_buffer;
uint32_t list_idx;
uint32_t page_idx;
};

Declaration: PasspR.h
Fields:
result_type – result type stored in this container (one of eRPRM_ResultType
identifiers)
light – lighting scheme code for the given result (used only for images)
buf_length – size of data structure, which buffer points to
buffer – pointer to the structure containing data reading results. Definite
data type is determined by the value of result_type field
XML_length – XML_buffer array length in bytes

50 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

XML_buffer – text array containing representation of the structure with data


reading results in XML format
list_idx – for internal use
page_idx – page index (when working with multi-page document)

XML_length and XML_buffer fields are initialized only when _CheckResult() function is
called specifying ofrFormat_XML as the requested result type.

5.3.3. TRawImageContainer
TRawImageContainer structure is used for storing a graphic image in Windows DIB for-
mat without compression and passing it to the user application. The corresponding result
type – RPRM_ResultType_RawImage or RPRM_ResultType_RawUncroppedImage.

struct TRawImageContainer
{
BITMAPINFO *bmi;
BYTE *bits;
};

Declaration: PasspR.h
Fields:
bmi – Windows DIB header with 256 colors palette (if the image for-
mat provides for presence of palette)
bits – array of image pixels (with alignment along uint32_t bor-
der)

Size of memory allocated for bmi, equals to


sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD)*256.
Size of memory allocated for bits, equals to
bmi.bmiHeader.biSizeImage.

5.3.4. TDocVisualExtendedInfo
TDocVisualExtendedInfo structure serves for storing text results of MRZ, document filling
and bar-codes reading. Types of result – RPRM_ResultType_MRZ_OCR_Extended, RPRM_Re-
sultType_Visual_OCR_Extended and RPRM_ResultType_BarCodes_TextData cor-
respondingly.

struct TDocVisualExtendedInfo
{
int nFields;
TDocVisualExtendedField *pArrayFields;
};

Declaration: PasspR.h
Fields:

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 51


SDK tools

nFields – number of pArrayFields array elements;


pArrayFields – array of structures containing logically divided text data

5.3.5. TDocVisualExtendedField
TDocVisualExtendedField structure is a basic for TDocVisualExtendedInfo list
containing structure and serves for storing information from one text data field.

struct TDocVisualExtendedField
{
union
{
int FieldType;
struct
{
WORD wFieldType;
WORD wLCID;
};
};
union
{
RECT FieldRect;
struct
{
long RFID_OriginDG;
long RFID_OriginDGTag;
long RFID_OriginTagEntry;
long RFID_OriginEntryView;
};
};
char FieldName[256];
int StringsCount;
TStringResultSDK *StringsResult;
intBuf_Length;
char *Buf_Text;
char *FieldMask;
int Validity;
int InComparison;
uint32_t Reserved2;
uint32_t Reserved3;
};

Declaration: PasspR.h
Fields:
FieldType – field logical type (one of eVisualFieldType values)
wFieldType – field logical type (one of eVisualFieldType values)
wLCID – ID of language-culture to differentiate one field of the same
type from another
FieldRect – field rectangular area coordinates on the image (for document filling
fields reading results RPRM_ResultType_Visual_OCR_Extended)
RFID_OriginDG – data group – text field source (eRFID_eRFDataGroupTypeTag)
RFID_OriginDGTag – not used (contains 0)
RFID_OriginTagEntry – record index of the text field source in the data group
RFID_OriginEntryView – not used (contains 0)
FieldName – field symbolic name (null-terminated string)
StringsCount – number of StringsResult array elements
StringsResult – array of separate strings of multiline text field recognition results

52 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

Buf_Length – Buf_Text text string length


Buf_Text – string containing text field data. Results of reading of multiline
field lines are separated by ‘^’ symbol
FieldMask – field text data format mask string (for internal use)
Validity – private SDK usage
InComparison – private SDK usage
Reserved2 – not used
Reserved3 – not used

5.3.6. TStringResultSDK
TStringResultSDK structure describes a result of recognition of one line of the docu-
ment multiline text field.
struct TStringResultSDK
{
uint32_t SymbolsCount;
uint32_t Reserved;
TSymbolResult *StringResult;
};

Declaration: PasspR.h
Fields:
SymbolsCount – number of StringResult array elements
Reserved – for internal use
StringResult – array of separate characters recognition results

5.3.7. TSymbolResult
TSymbolResult structure describes the recognition result of one character from the doc-
ument text field.
struct TSymbolResult
{
RECT SymbolRect;
uint32_t CandidatesCount;
TSymbolCandidate ListOfCandidates[4];
uint32_t Reserved;
};

Declaration: PasspR.h
Fields:
SymbolRect – borders of area occupied by the symbol on the image
CandidatesCount – number of significant elements of ListOfCandidates array
ListOfCandidates – array of candidate symbols. Sorted by descending of probability
of recognition (the first element has the highest probability)
Reserved – not used

5.3.8. TSymbolCandidate
TSymbolCandidate structure describes one candidate for character recognition.
struct TSymbolCandidate

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 53


SDK tools
{
uint32_t SymbolCode;
uint32_t SymbolProbability;
uint32_t Reserved;
};

Declaration: PasspR.h
Fields:
SymbolCode – ASCII symbol code
SymbolProbability – symbol recognition probability (0–100, %)
Reserved – not used

5.3.9. TDocGraphicsInfo
TDocGraphicsInfo structure serves for storing graphic results of document filling area
and bar-codes reading. Types of result – RPRM_ResultType_Graphics and RPRM_Re-
sultType_BarCodes_ImageData correspondingly.

struct TDocGraphicsInfo
{
int nFields;
TDocGraphicField *pArrayFields;
};

Declaration: PasspR.h
Fields:
nFields – number of pArrayFields array elements
pArrayFields – array of images

5.3.10. TDocGraphicField
TDocGraphicField structure is a basic containing structure for TDocGraphicsInfo list
and contains information about one graphic field.

struct TDocGraphicField
{
int FieldType;
union
{
RECT FieldRect;
struct
{
long RFID_OriginDG;
long RFID_OriginDGTag;
long RFID_OriginTagEntry;
long RFID_OriginEntryView;
};

54 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

};
char FieldName[256];
TRawImageContainer image;
};

Declaration: PasspR.h
Fields:
FieldType – graphic field logical type (one of eGraphicFieldType values)
FieldRect – field area coordinates on the general image (for RPRM_Re-
sultType_Graphics document filling fields reading results)
RFID_OriginDG – data group – image field source (eRFID_eRFDataGroupTypeTag)
OriginDGTag – record index of the source of the image with biometric information
in the datagroup
RFID_OriginTagEntry – index of the sample in the biometric data record
RFID_OriginEntryView – index of the biometric data sample
FieldName – graphic field symbolic name
image – image

5.3.11. TDocMRZTestQuality
TDocMRZTestQuality structure serves for storing the information on document MRZ
printing quality check results. Type of result – RPRM_ResultType_MRZ_TestQuality.

struct TDocMRZTestQuality
{
long DOC_FORMAT;
long MRZ_FORMAT;
long TEXTUAL_FILLING;
long CHECK_SUMS;
long CONTRAST_PRINT;
long STAIN_MRZ;
long PRINT_POSITION;
long SYMBOLS_PARAM;
long StrCount;
TStrEstimation Strings[3];
};

Declaration: PasspR.h
Fields:
DOC_FORMAT – document geometric format according to ISO/IEC 7810 (one of
CDocFormat values)
MRZ_FORMAT – MRZ format according to Doc 9303 ICAO (one of CDocFormat
values)
TEXTUAL_FILLING – estimation of MRZ textual completion accuracy
CHECK_SUMS – estimation of all MRZ checksums accuracy
CONTRAST_PRINT – estimation of MRZ printing contrast

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 55


SDK tools

STAIN_MRZ – estimation of stain presence in MRZ


PRINT_POSITION – estimation of printing layout: lines arrangement, interval be-
tween the lines, alignment of symbols in the line
SYMBOLS_PARAM – estimation of symbols parameters: symbol contrast variation,
stroke edge unevenness, symbol voids, character interval in the
line, alignment of adjacent symbols, symbol size
StrCount – number of lines in the MRZ
Strings – array of verification results for each line

Estimation values for these and all the subordinate data structures (TStrEstimation and
TSymbolEstimation) are set according to eCheckResult.

5.3.12. TStrEstimation
TStrEstimation structure serves for storing information about MRZ individual lines
checks results.

struct TStrEstimation
{
long SymbolsCount;
float StringAngle;
RECT StringBorders;
long STRING_POSITION;
TSingleRect ErrorPOSITION;
long STRINGS_DISTANCE;
float SizeError_DISTANCE;
long STRINGS_INTERVAL;
float SizeError_INTERVAL;
long ALIGNMENT_SYMBOLS_IN_STRING;
float SizeError_ALIGNMENT;
long SYMBOLS_PARAM;
long STRING_FILLING;
long CHECK_SUMS;
long FieldCount;
TTestTextField Fields[12];
TSymbolEstimation SymbolsEstimations[44];
};

Declaration: PasspR.h
Fields:
SymbolsCount – number of processed symbols in the line
StringAngle – line angle in radians (“+” – clockwise, “–“ – counter-
clockwise)
StringBorders – line boundaries
STRING_POSITION – estimation of line position relative to document
edges
ErrorPOSITION – values of line position deviation relative to toler-
ance, mm
STRINGS_DISTANCE – estimation of line spacing
SizeError_DISTANCE – value of exceeding the line spacing tolerance, mm
STRINGS_INTERVAL estimation of line interval

56 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

SizeError_INTERVAL – value of exceeding the line interval tolerance, mm


ALIGNMENT_SYMBOLS_IN_STRING – estimation of symbols alignment in the line
SizeError_ALIGNMENT – value of exceeding the symbols alignment toler-
ance in the line, mm
SYMBOLS_PARAM – estimation of symbols parameters in the line
STRING_FILLING – estimation of accuracy of filling in the line fields
with text
CHECK_SUMS – estimation of accuracy of all checksums of line
fields
FieldCount – number of processed text fields in the line
Fields[12] array of verification results for the line text fields
SymbolsEstimations – detailed information on estimation of symbol pa-
rameters in the line

5.3.13. TSingleRect
TSingleRect structure serves for storing information about MRZ line positioning error
value. All values in mm.

struct TSingleRect
{
float Left, Top, Right, Bottom;
};

Declaration: PasspR.h
Fields:
Left – value of line position deviation relative to tolerance to the left
Top – value of line position deviation relative to tolerance upwards
Right – value of line position deviation relative to tolerance to the right
Bottom – value of line position deviation relative to tolerance downwards

5.3.14. TTestTextField
TTestTextField structure serves for storing information about separate MRZ fields fill-
ing validity checks results.

struct TTestTextField
{
uint32_t TEST_RESULT;
uint32_t FieldType;
WORD FieldPos;
WORD FieldLength;
WORD ValidCheckSum;
WORD reserved;

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 57


SDK tools

};

Declaration: PasspR.h
Fields:
TEST_RESULT – field check result (combination of eTestTextField values)
FieldType – field logical type (one of eVisualFieldType values)
FieldPos – index (starting with 0) of the first symbol of the field in the
MRZ string
FieldLength – number of symbols in the field
ValidCheckSum – checksum value calculated over the checked field

5.3.15. TSymbolEstimation
TSymbolEstimation structure serves for storing information about the results of estima-
tion of one MRZ symbol printing parameters.

struct TSymbolEstimation
{
char CharSymbol;
RECT SymbolBounds;
uint32_t SYMBOL_PARAM;
uint32_t EMPTINESS;
uint32_t EDGE;
uint32_t STAIN;
uint32_t CONTRAST_PRINT;
uint32_t CONTRAST_SYMBOL;
uint32_t ALIGNMENT_NEAREST_SYMBOLS
float SizeErrorAlignWithPrev;
float SizeErrorAlignWithNext;
uint32_t SYMBOLS_INTERVAL;
float SizeErrorIntervWithPrev;
float SizeErrorIntervWithNext;
uint32_t SYMBOL_SIZE;
float SizeErrorSymbolHeight;
float SizeErrorSymbolWidth;
};

Declaration: PasspR.h
Fields:
CharSymbol – character recognition result
SymbolBounds – symbol bounds on the image
SYMBOL_PARAM – overall estimation of symbol printing parameters
EMPTINESS – estimation of symbol voids
EDGE – estimation of symbol stroke edge unevenness
STAIN – estimation of stain presence in a character cell
CONTRAST_PRINT – estimation of symbol printing contrast
CONTRAST_SYMBOL – estimation of symbol printing contrast variation
ALIGNMENT_NEAREST_SYMBOLS – estimation of vertical alignment of adjacent symbols

58 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

SizeErrorAlignWithPrev – alignment error value (exceeding the tolerance, in mm) rela-


tive to previous symbol
SizeErrorAlignWithNext – alignment error value (exceeding the tolerance, in mm) rela-
tive to next symbol
SYMBOLS_INTERVAL – estimation of character spacing in the line
SizeErrorIntervWithPrev – value of exceeding the interval value tolerance relative to
previous symbol, mm
SizeErrorIntervWithNext – value of exceeding the interval value tolerance relative to
next symbol, mm
SYMBOL_SIZE – symbol size estimation
SizeErrorSymbolHeight – value of exceeding the symbol height tolerance, mm
SizeErrorSymbolWidth – value of exceeding the symbol width tolerance, mm

5.3.16. TCommandsMRZTestQuality
TCommandsMRZTestQuality structure serves for storing the parameters of MRZ printing
quality control.

struct TDocMRZTestQuality
{
uint32_t TEST_CLASS_QUALITY;
uint32_t EXEC_SYMBOLS_PARAM;
uint32_t EXEC_PRINT_POSITION;
uint32_t EXEC_TEXTUAL_FILLING;
uint32_t EXEC_CHECK_SUMS;
uint32_t RESERVED1;
uint32_t RESERVED2;
};

Declaration: PasspR.h
Fields:
TEST_CLASS_QUALITY – quality check class (one of eMRZClassQuality values)
EXEC_SYMBOLS_PARAM – TRUE or FALSE. Combines the tests as follows: printing con-
trast, contrast change in the symbol, unevenness of the sym-
bol stroke edge, voids in symbols, stain presence, symbols ar-
rangement in the line, symbols size
EXEC_PRINT_POSITION – TRUE or FALSE. Printing layout (lines position)
EXEC_TEXTUAL_FILLING – TRUE or FALSE. Accuracy of MRZ completion with text (this
test is set by default)
EXEC_CHECK_SUMS – TRUE or FALSE. MRZ checksums verification (this test is set
by default)

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 59


SDK tools

5.3.17. TCandidatesListContainer
TCandidatesListContainer structure serves for storing information on candidate
documents and passing it to the user application when performing the recognition of the
document type. Type of result – RPRM_ResultType_DocumentTypesCandidates.

struct TCandidatesListContainer
{
uint32_t RecResult;
uint32_t Count;
TOneCandidate *Candidates;
};

Declaration: PasspR.h
Fields:
RecResult – document type determining result (one of
eRPRM_RCTP_Result_RecType values)
Count – number of Candidates array elements
Candidates – array of candidates for recognition

5.3.18. TOneCandidate
TOneCandidate structure is a basic containing structure for TCandidatesListCon-
tainer list and contains information on one candidate document when determining the
document type.

struct TOneCandidate
{
char *DocumentName;
int ID;
double P;
WORD Rotated180;
WORD RotationAngle;
uint32_t NecessaryLights;
TRawImageContainer *preview;
uint32_t RFID_Presence;
uint32_t CheckAuthenticity;
uint32_t UVExp;
WORD OVIExp;
uint32_t AuthenticityNecessaryLights;
TFDSIDList *extendedInfo;
};

Declaration: PasspR.h
Fields:
DocumentName – document type name
ID – document type numeric code
P – estimation of correct recognition probability when analyz-
ing the given document type

60 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

Rotated180 – true if the document of the given type is rotated by


180 degrees
NecessaryLights – combination of identifiers of necessary lighting schemes
(eRPRM_Lights) to perform OCR for the given docu-
ment type
preview – document image preview thumbnail
RFID_Presence – presence of RFID-chip in the document (one of
eRFID_Presence values)
CheckAuthenticity – set of authenticity check options provided for the given
document type (combination of eRPRM_Authenticity
values)
UVExp – camera exposure value necessary when obtaining docu-
ment images of the given type for UV lighting scheme
OVIExp – camera exposure value necessary when obtaining docu-
ment images of the given type for AXIAL lighting scheme
AuthenticityNecessaryLights – combination of identifiers of necessary lighting schemes
(eRPRM_Lights) to perform authenticity check for the
given document type
extendedInfo – pointer to TFDSIDList structure containing additional
document information and its link to IRS

5.3.19. TFDSIDList
TFDSIDList structure serves for storing additional document information and its link to
IRS document or documents.

struct TFDSIDList
{
char ICAOCode[4];
uint32_t Count;
uint32_t *List;
uint32_t dType;
uint32_t dFormat;
bool dMRZ;
char *dDescription;
char *dYear;
char *dCountryName;
char *dStateCode;
char *dStateName;
bool isDeprecated;
};

Declaration: PasspR.h
Fields:
ICAOCode – document issuing country ICAO code
Count – qualtity of elements in List array
List – array of IRS document identifiers
dType – document type, one of diDocType enumeration values

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 61


SDK tools

dFormat – document format, one of CDocFormat enumeration


values
dMRZ – flag for MRZ presence on document
dDescription – document description text
dYear – document issue year
dCountryName – document issuing country name
dStateCode – document issuing country state code
dStateName – document issuing country state name
isDeprecated – whether the document is deprecated

5.3.20. TListDocsInfo
TListDocsInfo structure serves for storing the full list of documents stored in the cur-
rent document database and passing it to the user application. Type of result – RPRM_Re-
sultType_DocumentsInfoList.

struct TListDocsInfo
{
uint32_t Count;
TOCRDocInfo *ArrayOfDocs;
};

Declaration: PasspR.h
Fields:
Count – number of ArrayOfDocs array elements
ArrayOfDocs – array of document descriptions

5.3.21. TOCRDocInfo
TOCRDocInfo structure is a basic containing structure for TListDocsInfo list and con-
tains information on one document.

struct TOCRDocInfo
{
char DocName[256];
uint32_t DocID;
char DocTxtID[256];
uint32_t DocFormat;
uint32_t NecessaryLights;
uint32_t nFields;
uint32_t RFID_Presence;
uint32_t reserved1;
uint32_t reserved2;
uint32_t reserved3;
};

Declaration: PasspR.h
Fields:

62 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

DocName – document name


DocID – document type numeric code
DocTxtID – document type symbolic code
NecessaryLight – combination of necessary lighting schemes identifiers
(eRPRM_Lights) to perform OCR for the given document type
nFields – general number of text and graphic fields
RFID_Presence – presence of RFID-chip in the document (one of eRFID_Presence
values)
Reserved1 – not used
Reserved2 – not used
Reserved3 – not used

5.3.22. TDocBarCodeInfo
TDocBarCodeInfo structure serves for storing and passing to the user application of re-
sults of bar-codes areas search on the scanned document page and their reading in binary
non-formatted code. Type of result – RPRM_ResultType_BarCodes.

struct TDocBarCodeInfo
{
int nFields;
TDocBarCodeField *pArrayFields;
};

Declaration: PasspR.h
Fields:
nFields – number of pArrayFields array elements
pArrayFields – array of separate bar-codes reading results

5.3.23. TDocBarCodeField
TDocBarCodeField structure is a basic containing structure for TDocBarCodeInfo list
and contains bar-code reading data.

struct TDocBarCodeField
{
long bcCodeResult;
long bcType_DETECT;
RECT bcROI_DETECT;
float bcAngle_DETECT;
long bcType_DECODE;
long bcCountModule;
TIP_DECODE_MODULE *bcDataModule;
TIP_PDF417_INFO bcPDF417INFO;
long bcReserved1;

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 63


SDK tools

long bcReserved2;
long bcReserved3;
};

Declaration: PasspR.h
Fields:
bcCodeResult – bar-code reading result (one of eBarCodeResultCodes val-
ues or another value which is SDK internal error code)
bcType_DETECT – type of the detected bar-code (1 – linear, 2 – 2-dimensional:
PDF417)
bcROI_DETECT – bar-code area coordinates on the image
bcAngle_DETECT – bar-code rotation angle (in radians)
bcType_DECODE – decoded bar-code type (one of eBarCodeType values)
bcCountModule – number of read bar-code modules (number of bcDataModule
array elements)
bcDataModule – results of reading data from a bar-code modules
bcPDF417INFO – information on PDF417 code parameters (only for PDF417)
Reserved1 – not used
Reserved2 – not used
Reserved3 – not used

5.3.24. TIP_DECODE_MODULE
TIP_DECODE_MODULE structure is used for storing the results of one bar-code module
reading.

struct TIP_DECODE_MODULE
{
long mType;
long mLength;
BYTE *mData;
long mReserved1;
long mReserved2;
};

Declaration: PasspR.h
Fields:
mType – module type (one of eBarCodeModuleType values)
mLength – array of module data length (number of significant elements
of mData array)
mData – read module data
mReserved1 – not used
mReserved2 – not used

64 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

5.3.25. TIP_PDF417_INFO
TIP_PDF417_INFO structure is used for storing additional information on parameters
of PDF417 format bar-codes.

struct TIP_PDF417_INFO
{
long bcColumn;
long bcRow;
long bcErrorLevel;
float minX;
float minY;
float Angle;
};

Declaration: PasspR.h
Fields:
bcColumn – number of columns in the bar-code
bcRow – number of rows in a bar-code
bcErrorLevel – bar-code error correction level
minX – width of the minimum bar-code element on the image, in pixels
minY – height of the minimum bar-code element on the image, in pixels
Angle – code decoding rotation angle (in radians)

5.3.26. TListVerifiedFields
TListVerifiedFields structure serves for storing the results of comparing the MRZ
text data, document filling area data, bar-codes data and data retrieved from RFID-chip
memory (used together with RFID-Chip Reader SDK) and passing it to the user application.
Type of result – RPRM_ResultType_OCRLexicalAnalyze.

struct TListVerifiedFields
{
uint32_t Count;
TVerifiedFieldMap *pFieldMaps;
};

Declaration: PasspR.h
Fields:
Count – number of pFieldMaps array elements
pFieldMaps – array of results of document filling text fields’ data analysis

5.3.27. TVerifiedFieldMap
TVerifiedFieldMap is a basic containing structure for TListVerifiedFields list
and contains information on results of comparing data obtained from different sources for
the same logical type of field.

struct TVerifiedFieldMap

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 65


SDK tools

{
WORD FieldType;
WORD LCID;
char *Field_MRZ;
char *Field_RFID;
char *Field_Visual;
char *Field_Barcode;
BYTE Matrix[10];
};

Declaration: PasspR.h
Fields:
FieldType – text field logical type (one of eVisualFieldType values)
LCID – ID of language-culture to differentiate one field of the same
type from another
Field_MRZ – field data obtained through MRZ reading
Field_RFID – field data obtained through RFID-chip memory reading
Field_Visual – field data obtained through document filling text fields
reading
Field_Barcode – field data obtained through bar-codes reading
Matrix – result comparing matrix

Results of reading of multiline field lines are separated by ‘^’ symbol.

Matrix elements take one of values from enum eRPRM_FieldVerificationResult.


Matrix elements with index 0, 1, 2, 3 take one of values RCF_Disabled, RCF_Verified
or RCF_Not_Verified elements with index 4, 5, 6, 7, 8, 9 – one of the values
RCF_Disabled, RCF_Compare_True or RCF_Compare_False.

Matrix elements have the following meanings:


• element with 0 index – MRZ data verification result;
• » 1 – RFID-chip data verification result;
• » 2 – document filling text fields data verification result;
• » 3 – bar-codes data verification result;
• » 4 – MRZ and RFID-chip data comparing result;
• » 5 – MRZ and document filling text fields data comparing result;
• » 6 – MRZ and bar-codes data comparing result;
• » 7 – document filling text fields and RFID-chip data comparing result;
• » 8 – document filling text fields and bar-codes data comparing result;
• » 9 – RFID-chip and bar-codes data comparing result.

Note. Dates contained in TVerifiedFieldMap are automatically converted to common


short date representation format as set in the system. For example, date of birth, repre-
sented as “681013” string in the MRZ (in YYMMDD format, where YY – year, MM – month, DD –

66 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

day) and as “13 OCT 1968” in the document filling field will be converted to DD.MM.YY
(“13.10.68”) and placed into TVerifiedFieldMap in this form.
Note. Matrix representation in XML is 1-based.

5.3.28. TAuthenticityCheckList
TAuthenticityCheckList structure serves for storing the result of document authen-
ticity check using the images for different lighting schemes and passing it to the user ap-
plication. Type of result – RPRM_ResultType_Authenticity.

struct TAuthenticityCheckList
{
int Count;
TAuthenticityCheckResult **List;
};

Declaration: PasspR.h
Fields:
Count – number of List items
List – array of data structures with the results of performing of differ-
ent document authenticity checks

5.3.29. TAuthenticityCheckResult
TAuthenticityCheckResult structure serves for storing the results of a single type
document authenticity check.

struct TAuthenticityCheckResult
{
int Type;
int Result;
int Count;
void **List;
};

Declaration: PasspR.h
Fields:
Type – type of the preforemed check (eRPRM_Authenticity)
Result – overall checking result (eCheckResult)
Count – number of List items
List – array of results of checks

5.3.30. TFibersType
TFibersType structure serves for storing the result of checking of one fluorescent fibers
type for UV light image (for RPRM_Authenticity_UV_Fibers check).
struct TFibersType

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 67


SDK tools

{
union
{
WORD ErrorCode;
struct
{
WORD ElementResult;
WORD ElementDiagnose;
};
};
uint32_t RectCount;
RECT *RectArray;
uint32_t *Width;
uint32_t *Length;
uint32_t *Area;
BYTE ColorValues[3];
uint32_t ExpectedCount;
};
Declaration: PasspR.h
Fields:
ErrorCode – checking result (eCheckResult)
ElementResult – element-responsible-for the-results of the checks (eCheckResult)
ElementDiagnose – element with which errors are checked ElementResult
(eCheckDiagnose)
RectCount – number of RectArray, Width, Length, Area items
RectArray – coordinates of located areas for defined fibers type
Width – fibers’ width value for RectArray areas (in pixels)
Length – fibers’ length value for RectArray areas (in pixels)
Area – fibers’ area value for RectArray areas (in pixels)
ColorValues – fibers’ color (B, G, R)
ExpectedCount – expected fibers number

5.3.31. TSecurityFeatureCheck
TSecurityFeatureCheck structure serves for storing the result of a single security ele-
ment of following type checking:
• RPRM_Authenticity_IR_B900 – MRZ contrast checking using the image for IR light-
ing scheme;

• RPRM_Authenticity_UV_Luminescence – document material fluorescence check-


ing, also known as “check for presence of UV dull paper”;

• RPRM_Authenticity_Axial_Protection – locating areas of security laminate al-


teration for white coaxial light scheme;

• RPRM_Authenticity_Mrz – checking MRZ authenticity.


struct TSecurityFeatureCheck
{
union
{
int Result;
struct

68 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools
{
WORD ElementResult;
WORD ElementDiagnose;
};
};
int ElementType;
RECT ElementRect;
uint32_t Visibility;
uint32_t CriticalFlag;
TAreaArray *AreaList;
uint32_t Reserved2;
};

Declaration: PasspR.h
Fields:
Result – checking result (eCheckResult)
ElementResult – element responsible for the results of the checks (eCheckResult)
ElementDiagnose – element with which errors are checked ElementResult
(eCheckDiagnose)
ElementType – element type (eRPRM_SecurityFeatureType)
ElementRect – element’s area
Visibility – element’s visibility (eIR_Visibility_Flag)
CriticalFlag – flag of element’s importance (eSecurityCriticalFlag)

5.3.32. TIdentResult
TIdentResult structure serves for storing the result of a single security element of fol-
lowing type checking:
• RPRM_Authenticity_IR_Visibility – blank element visibility checking for IR
light image;
• RPRM_Authenticity_Image_Pattern check – control of the presence of an
image pattern with a specified color, shape and brightness under white, UV and IR
light on a document page.
struct TIdentResult
{
union{
uint32_t Result;
struct
{
WORD ElementResult;
WORD ElementDiagnose;
};
};
uint32_t LightIndex;
RECT Area;
TRawImageContainer Image;
TRawImageContainer EtalonImage;
uint32_t PercentValue;
TAreaArray *AreaList;
union{
uint32_t ElementType;
struct
{
uint16_t elemType;
uint16_t elemID;
};

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 69


SDK tools

};
};

Declaration: PasspR.h
Fields:
Result – checking result (eCheckResult)
ElementResult – element responsible for the results of the checks (eCheckResult)
ElementDiagnose – element with which errors are checked ElementResult
(eCheckDiagnose)
LightIndex – lighting scheme identifier (eRPRM_Lights)
Area – checked fragment area coordinates
Image – located image fragment
EtalonImage – expected image pattern
PercentValue – identity percent of the etalon and sample image for RPRM_Au-
thenticity_Image_Pattern check or element’s visi-
bility (eIR_Visibility_Flag) for RPRM_Authentic-
ity_IR_Visibility
ElementType – element type (eRPRM_SecurityFeatureType)
elemType – element type (eRPRM_SecurityFeatureType)
elemID – element ID among other elements with the same elemType.

5.3.33. TOCRSecurityTextResult
TOCRSecurityTextResult serves for storing the result of a latent text OCR and its
comparison with an alternative source of corresponding textual data for a single image
fragment (for RPRM_Authenticity_OCRSecurityText check).
struct TOCRSecurityTextResult
{
union
{
uint32_t ResultCode;
struct
{
WORD ElementResult;
WORD ElementDiagnose;
};
};
uint32_t CriticalFlag;
uint32_t LightType;
RECT FieldRect;
uint32_t EtalonResultType;
uint32_t EtalonFieldType;
uint32_t EtalonLightType;
RECT EtalonFieldRect;
char SecurityTextResultOCR[256];
char EtalonResultOCR[256];
uint32_t Reserved1;
uint32_t Reserved2;
};

70 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

Declaration: PasspR.h
Fields:
ResultCode – checking result (eCheckResult)
ElementResult – element responsible for the results of the checks (eCheckRe-
sult)
ElementDiagnose – element with which errors are checked ElementResult
(eCheckDiagnose)
CriticalFlag – flag of element’s importance
LightType – light scheme (eRPRM_Light)
FieldRect – field area’s coordinates
EtalonResultType – alternative data source; allowed values from eRPRM_ResultType:
RPRM_ResultType_MRZ_OCR_Extended, RPRM_Re-
sultType_Visual_OCR_Extended, RPRM_ResultType_Bar-
Codes_TextData)
EtalonFieldType – pattern field type to compare with (eRPRMFieldType)
EtalonLightType – pattern field light scheme
EtalonFieldRect – pattern field area’s coordinates
SecurityTextResultOCR – field OCR result
EtalonResultOCR – pattern field OCR result

5.3.34. TPhotoIdentResult
TPhotoIdentResult serves for storing the result of invisible personal information em-
bedded image visualization (for RPRM_Authenticity_IPI check).

struct TPhotoIdentResult
{
union
{
int Result;
struct
{
WORD ElementResult;
WORD ElementDiagnose;
};
};
int LightIndex;
RECT Area;
TRawImageContainer SourceImage;
TRawImageContainerList ResultImages;
uint32_t FieldTypesCount;
uint32_t* FieldTypesList;
int Reserved1;
int Reserved2;
int Reserved3;
};

Declaration: PasspR.h
Fields:
Result – checking result (eCheckResult)
ElementResult – element-responsible-for the-results of the checks(eCheckRe-
sult)

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 71


SDK tools

ElementDiagnose – element with which errors are checked ElementResult


(eCheckDiagnose)
LightIndex – light scheme (eRPRM_Lights)
Area – field area’s coordinates
SourceImage – siource image
ResultImages – array of the output images
FieldTypesCount – count of the the text fields, which are encoded in the IPI image.
Reserved. Not used
FieldTypesList – list of the the text fields, which are encoded in the IPI image. Re-
served. Not used
Reserved1 – not used
Reserved2 – not used
Reserved3 – not used

5.3.35. TRegulaDeviceProperties
TRegulaDeviceProperties structure is used for storing information about the docu-
ment reader.

struct TRegulaDeviceProperties
{
uint32_t DeviceID;
uint32_t Lights;
uint32_t SerialNumber;
uint32_t Features;
uint32_t DeviceCtrl;
LPSTR DirectShowName;
LPSTR DirectShowUID;
LPSTR Name;
uint32_t VideoModes;
uint64_t LabelSerialNumber;
LPSTR LabelSerialNumberStr;
uint64_t CameraSerialNumber;
GUID CameraGuid;
uint32_t Capabilities;
uint32_t Authenticity;
uint32_t Database;
uint32_t Limitations;
time_t ValidUntil;
bool WillConnect;
};

Declaration: PasspR.h
Fields:
DeviceID – device model identifier (one of eRPRM_DeviceTypes values)
Lights – combination of all available lighting schemes identifiers (OR-
combination of eRPRM_Lights values)
SerialNumber – device serial number
Features – additional reader features (OR-combination of eRPRM_De-
viceAdditionalFeatures values)
DeviceCtrl – device control type (one of eRPRM_DeviceControlTypes val-
ues)

72 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

DirectShowName – device symbolic name (for devices with DirectShow control


tools)
DirectShowUID – device unique symbolic identifier formed by the OS when con-
nection the device to a USB slot (for devices with DirectShow
control)
Name – device symbolic name (for devices with direct control)
VideoModes – scanned images formats supported by the reader (combination
of eRPRM_VideoModes values)
LabelSerialNumber – device serial number printed on its body
LabelSerialNumberStr– string representation of device serial number printed on
its body
CameraSerialNumber– device camera serial number
CameraGuid – camera GUID
Capabilities – set of available capabilities
Authenticity – set of available authenticity checks
Database – database type
Limitations – device limitations, one of eDeviceLimitations values
ValidUntil – license validity date timestamp
WillConnect – indication if device can be connected after validity date.

5.3.36. TIndicationLED
TIndicationLED structure serves for setting the reader indicator LEDs functioning
scheme.

struct TIndicationLED
{
WORD wColorLed;
WORD wFreq;
};

Declaration: PasspR.h
Fields:
wColorLed – selection of indicator LED and light color. Low byte (LOBYTE)
must contain one of eLED_Color values, which selects indica-
tor color, high byte (HIBYTE) – indicator index number, starting
with 0 (for readers with several indicator LEDs)
wFreq – selection of indicator LEDs functioning scheme mode. Low
and high bytes must contain values from 1 to 7. Low byte
value determines the time during which the indicator is
turned off, high byte determines the time during which the
indicator is turned on. 1 – the shortest time interval, 7 – the

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 73


SDK tools

longest time interval. When 0 value is set, the LED stops


flashing

5.3.37. TPointArray
TPointArray structure serves for storage areas.

struct TPointArray
{
int PointCount;
POINT *PointsList;
};

Declaration: PasspR.h
Fields:
PointCount – number of elements in PointsList
PointsList – array of coordinates of points

5.3.38. TAreaArray
TAreaArray structure serves for storage areas and contours.

struct TAreaArray
{
int Count;
RECT *List;
TPointArray *Points;
};
typedef TAreaArray* PAreaArray;

Declaration: PasspR.h
Fields:
Count – number of elements in List and Points
List – array of areas
Points – array of points

5.3.39. TIRVisibilityElement
TIRVisibilityElement structure serves for store the check result of IRVisibility.

struct TIRVisibilityElement
{
RECT Field;
long Visibility;
long CheckResult;
long ElementType;
long Reserved;

74 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

};

Declaration: PasspR.h
Fields:
Field – coordinates of the element
Visibility – flag visibility/invisibility
CheckResult – result of the test
ElementType – type of element tested

5.3.40. TDwordArray
TDwordArray structure serves to store array of uint32_t values.

struct TDwordArray
{
uint32_t Count;
uint32_t *List;
};

Declaration: PasspR.h
Fields:
Count – number of elements
List – array of elements

5.3.41. TLexDateFormat
TLexDateFormat structure serves to transfer date format using commands RPRM_Com-
mand_Options_Get_LexDateFormat and RPRM_Command_Options_Set_LexDate-
Format.

struct TLexDateFormat

{
uint32_t format;
char customFormatString[32];
};

Declaration: PasspR.h
Fields:
format – date format, one of eLexDateFormat values
customFormatString– custom format string, required for LDF_Custom

5.3.42. TBoundsResult
TBoundsResult structure is used for storing document bounds detection result.

struct TBoundsResult
{

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 75


SDK tools

int docFormat;
int Width;
int Height;
POINT Center;
float Angle;
POINT LeftTop;
POINT LeftBottom;
POINT RightTop;
POINT RightBottom;
int Inverse;
BYTE PerspectiveTr;
BYTE ResultStatus;
BYTE Reserve1;
BYTE Reserve2;
BYTE ObjArea;
BYTE ObjIntAngleDev;
int Dpi;
};

Declaration: PasspR.h
Fields:
docFormat – document format, one of CDocFormat values
Width – document width
Height – document height
Center – document center coordinates
Angle – document rotation angle
LeftTop – document left top corner coordinates
LeftBottom – document left bottom corner coordinates
RightTop – document right top corner coordinates
RightBottom – document right bottom corner coordinates
Inverse – internal use parameter
PerspectiveTr – internal use parameter
ResultStatus – internal use parameter
Reserve1 – internal use parameter
Reserve2 – internal use parameter
ObjArea – internal use parameter
ObjIntAngleDev – internal use parameter
Dpi – resolution in dots per inch

5.3.43. TImageQualityCheck
TImageQualityCheck structure is used for storing input image quality check result.

struct TImageQualityCheck
{
eImageQualityCheckType type;
eCheckResult result;
eRPRM_SecurityFeatureType featureType;
TAreaArray *areas;
float mean;
float std_dev;
int probability;
};

76 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

Declaration: PasspR.h
Fields:
type – check result type, one of eImageQualityCheckType values
result – check result, one of eCheckResult values
featureType – check result, one of eRPRM_SecurityFeatureType values
areas – anomalous image areas
mean – check mean value
std_dev – check deviation
probability – check probability

5.3.44. TImageQualityCheckList
TImageQualityCheckList structure is used for storing input image quality check re-
sults list.

struct TImageQualityCheckList
{
uint32_t Count;
eCheckResult result;
TImageQualityCheck ** List;
};
Declaration: PasspR.h
Fields:
Count – number of results in list
result – overall check result, one of eCheckResultvalues
List – array of single check result pointers

5.3.45. TVideodetectionNotification
TVideodetectionNotification structure is used for storing videodetection infor-
mation.

struct TVideodetectionNotification
{
uint32_t sensorState;
TRawImageContainer* image;
TBoundsResult* mrzPosition;
};
Declaration: PasspR.h
Fields:
sensorState – state of sensor
image – videodetection image
mrzPosition – location of MRZ on image

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 77


SDK tools

5.3.46. TStatus
TStatus structure is used for provision of document verification status.

struct TStatus
{
eCheckResult overallStatus;
TDetailsOptical detailsOptical;
eCheckResult optical;
TDetailsRFID detailsRFID;
eCheckResult rfid;
eCheckResult portrait;
eCheckResult stopList;
};
Declaration: PasspR.h
Fields:
overallStatus – overall status
detailsOptical – optical check details
optical - optical check
detailsRFID - RFID details
rfid - - RFID check
portrait - portrait check
stopList - stoplist check

5.3.47. TDetailsRFID
TDetailsRFID structure is used for provision of electronic document check details.

struct TDetailsRFID
{
eCheckResult overallStatus;
eCheckResult PA;
eCheckResult AA;
eCheckResult CA;
eCheckResult TA;
eCheckResult BAC;
eCheckResult PACE;
};
Declaration: PasspR.h
Fields:
overallStatus - overall status
PA - passive authentication status
AA - active authentication status
CA - chip authentication status
TA - terminal authentication status
BAC - Basics access control
PACE - Password Authenticated Connection Establishment

78 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

5.3.48. TDetailsOptical
TDetailsOptical is used for provision of optical check details.

struct TDetailsOptical
{
eCheckResult overallStatus;
eCheckResult mrz;
eCheckResult text;
eCheckResult docType;
eCheckResult security;
eCheckResult imageQA;
eCheckResult expiry;
uint32_t pagesCount;
eCheckResult vds;
};
Declaration: PasspR.h
Fields:
overallStatus - overall status
mrz - MRZ status
text - text status
docType - document type status. Document type recognition is consid-
ered carried out if all the document pages were recognized and
there was at least one recognized document in each input im-
age. The only exception is the ID1 format, for such cards there
may be unrecognized reverse sides, provided that the main
document is recognized, and it does not have subordinate doc-
uments (other pages) according to our description. If document
type recognition was not carried out (the request did not con-
tain an explicit or implicit requirement to identify the document
type), returns ch_Check_WasNotDone.
security - authenticity verification status
imageQA - input pictures quality status
expiry - expiry status
pagesCount - page count
vds - visible digital seal status

5.3.49. TTextResult
TTextResult structure is used for storing text result.

struct TTextResult
{
uint32_t status;
uint32_t validityStatus;
uint32_t comparisonStatus;
char* dateFormat;
uint32_t fieldCount;

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 79


SDK tools

TTextField* fieldList;
uint32_t availableSourceCount;
TTextSource* availableSourceList;
};
Declaration: PasspR.h
Fields:
status – status
validityStatus – validity status
comparisonStatus – comparison status
dateFormat – date format
fieldCount – fields count
fieldList – fields list
availableSourceCount – sources count
availableSourceList – sources list

5.3.50. TTextValidity
TTextValidity structure is used for storing specified source text field validity results.

struct TTextValidity
{
char* source;
uint32_t status;
};
Declaration: PasspR.h
Fields:
source – source name
status – validity status

5.3.51. TTextComparison
TTextComparison structure is used for comparison of text results.

struct TTextComparison
{
char* sourceLeft;
char* sourceRight;
uint32_t status;
};
Declaration: PasspR.h
Fields:
sourceLeft, sourceRight – source names
status – comparison status

5.3.52. TTextSource
TTextSource structure is used for description of text data source.

80 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

struct TTextSource
{
char* source;
uint32_t containerType;
uint32_t validityStatus;
};
Declaration: PasspR.h
Fields:
source – source name
containerType – container type
validityStatus – source validity status

5.3.53. TTextSymbol
TTextSymbol structure is used for storing symbol reading result.

struct TTextSymbol
{
uint32_t code;
RECT rect;
uint32_t probability;
};
Declaration: PasspR.h
Fields:
code – symbol code
rect – symbol rectangular area
probability – recognition probability

5.3.54. TTextFieldValue
TTextFieldValue structure is used for storing text field values.

struct TTextFieldValue
{
char* value;
char* originalValue;
uint32_t originalValidity;
char* source;
uint32_t containerType;
uint32_t pageIndex;
RECT fieldRect;
TRfidOrigin rfidOrigin;
uint32_t probability;
uint32_t originalSymbolsCount;
TTextSymbol* originalSymbols;
};
Declaration: PasspR.h
Fields:
value – field value in current provision of information format
originalValue – field original value
originalValidity – original validity
source – source

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 81


SDK tools

containerType – container type


pageIndex – page index
fieldRect – field rectangular area
rfidOrigin - field source from electronic document
probability – field recognition probability
originalSymbolsCount– original symbols count
originalSymbols – original symbols

5.3.55. TTextField
TTextField structure is used for storing text field.

struct TTextField
{
uint16_t fieldType;
char* fieldName;
uint16_t lcid;
char* lcidName;
uint32_t status;
char* value;
uint32_t valueCount;
TTextFieldValue* valueList;
uint32_t validityStatus;
uint32_t validityCount;
TTextValidity* validityList;
uint32_t comparisonStatus;
uint32_t comparisonCount;
TTextComparison* comparisonList;
};
Declaration: PasspR.h
Fields:
fieldType – field type
fieldName – field name
lcid – LCID code
lcidName – LCID name
status – field status
value – field value
valueCount – values count
valueList – values list
validityStatus – validity status
validityCount – validity results count
validityList – validity results list
comparisonStatus – comparison status
comparisonCount – comparison results count
comparisonList – comparison results list

82 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

5.3.56. TImagesResult
TImagesResult structure is used for representation of all graphic results in one con-
tainer.

struct TImagesResult
{
uint32_t fieldCount;
TImageField* fieldList;
uint32_t availableSourceCount;
TImageSource* availableSourceList;
};
Declaration: PasspR.h
Fields:
fieldCount – fields count
fieldList – fields list
availableSourceCount – available sources count
availableSourceList – available sources list

5.3.57. TImageSource
TImageSource is used for graphic information source description.

struct TImageSource
{
char* source;
uint32_t containerType;
};
Declaration: PasspR.h
Fields:
source - source
containerType - container type

5.3.58. TImageField
TImageField is used for provision of one image or graphic field.

struct TImageField
{
uint32_t fieldType;
char* fieldName;
uint32_t valueCount;
TImageFieldValue* valueList;
};
Declaration: PasspR.h
Fields:
fieldType - field type

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 83


SDK tools

fieldname - field name


valueCount - values count
valueList - values list

5.3.59. TImageFieldValue
TImageFieldValue is used for image representation.

struct TImageFieldValue
{
char* value;
char* originalValue;
char* source;
uint32_t containerType;
uint32_t pageIndex;
uint32_t lightIndex;
RECT fieldRect;
TRfidOrigin rfidOrigin;
uint32_t originalPageIndex;
};
Declaration: PasspR.h
Fields:
value - image file in Base64 representation
originalValue - original image file in Base64 representation
source - source
containerType - container type
pageIndex - page index
lightIndex - light index
fieldRect - field rectangular area
rfidOrigin - field source from electronic document
originalPageIndex - original page index

5.3.60. TRfidOrigin
TRfidOrigin structure is used for electronic document data source description.

struct TRfidOrigin
{
int32_t dg;
int32_t dgTag;
int32_t tagEntry;
int32_t entryView;
};
Declaration: PasspR.h
Fields:
Dg - data group
dgTag - DG tag

84 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

tagEntry - tag entry


entryView - entry view

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 85


SDK tools

5.4. ENUMERATIONS (CONSTANT POOLS)

5.4.1. eRPRM_ResultType
eRPRM_ResultType enumeration contains a pool of constants which determine the type
of data stored in the TResultContainer container structure.

enum eRPRM_ResultType
{
RPRM_ResultType_Empty = 0,
RPRM_ResultType_RawImage = 1,
RPRM_ResultType_FileImage = 2,
RPRM_ResultType_MRZ_OCR_Extended = 3,
RPRM_ResultType_BarCodes = 5,
RPRM_ResultType_Graphics = 6,
RPRM_ResultType_MRZ_TestQuality = 7,
RPRM_ResultType_DocumentTypesCandidates = 8,
RPRM_ResultType_ChosenDocumentTypeCandidate = 9,
RPRM_ResultType_DocumentsInfoList = 10,
RPRM_ResultType_OCRLexicalAnalyze = 15,
RPRM_ResultType_RawUncroppedImage = 16,
RPRM_ResultType_Visual_OCR_Extended = 17,
RPRM_ResultType_BarCodes_TextData = 18,
RPRM_ResultType_BarCodes_ImageData = 19,
RPRM_ResultType_Authenticity = 20,
RPRM_ResultType_ExpertAnalyze = 21,
RPRM_ResultType_OCRLexicalAnalyzeEx = 22,
RPRM_ResultType_EOSImage = 23,
RPRM_ResultType_Bayer = 24,
RPRM_ResultType_MagneticStripe = 25,
RPRM_ResultType_MagneticStripe_TextData = 26,
RPRM_ResultType_FieldFileImage = 27,
RPRM_ResultType_DatabaseCheck = 28,
RPRM_ResultType_FingerprintTemplateISO = 29,
RPRM_ResultType_InputImageQuality = 30,
RPRM_ResultType_DeviceInfo = 31,
RPRM_ResultType_LivePortrait = 32,
RPRM_ResultType_Status = 33,
RPRM_ResultType_Portrait_Comparison = 34,
RPRM_ResultType_ExtPortrait = 35,
RPRM_ResultType_Text = 36,
RPRM_ResultType_Images = 37,
RPRM_ResultType_FingerPrints = 38,
RPRM_ResultType_FingerPrint_Comparison = 39,
RPRM_ResultType_BSI_XML_v2 = 73,
RPRM_ResultType_DocumentPosition = 85,
RPRM_ResultType_BSI_XML = 92,
RPRM_ResultType_Custom = 100,
};

These values are stored in result_type field of TResultContainer structure and de-
termine unequivocally the type of data structure which buffer field value points to:

86 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

• RPRM_ResultType_Empty No result, empty container;

• RPRM_ResultType_RawImage Result represented as TRawImageCon-


tainer structure;

• RPRM_ResultType_FileImage Result represented as binary array of


buf_length length which contains image of the image graphic file;

• RPRM_ResultType_MRZ_OCR_Extended Result represented as TDocVisu-


alExtendedInfo structure;

• RPRM_ResultType_BarCodes Result represented as TDocBarCodeInfo


structure;

• RPRM_ResultType_Graphics Result represented as TDocGraphicsInfo


structure;

• RPRM_ResultType_MRZ_TestQuality Result represented as TDocMRZTestQual-


ity structure;

• RPRM_ResultType_DocumentTypesCandidates Result represented as TCan-


didatesListContainer structure;

• RPRM_ResultType_ChosenDocumentTypeCandidate Result represented as


TOneCandidate structure;

• RPRM_ResultType_DocumentsInfoList NOT USED. Result represented as


TListDocsInfo structure;

• RPRM_ResultType_OCRLexicalAnalyze Result represented as TListVeri-


fiedFields structure;

• RPRM_ResultType_RawUncroppedImage NOT USED. Result represented as


TRawImageContainer structure;

• RPRM_ResultType_Visual_OCR_Extended Result represented as TDocVisu-


alExtendedInfo structure;

• RPRM_ResultType_BarCodes_TextData Result represented as TDocVisu-


alExtendedInfo structure;

• RPRM_ResultType_BarCodes_ImageData Result represented as


TDocGraphicsInfo structure;

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 87


SDK tools

• RPRM_ResultType_Authenticity Result represented as TAuthentici-


tyCheckList structure

• RPRM_ResultType_ExpertAnalyze NOT USED;

• RPRM_ResultType_OCRLexicalAnalyzeEx NOT USED;

• RPRM_ResultType_EOSImage Result represented as TRawImageCon-


tainer structure;

• RPRM_ResultType_Bayer Result represented as TRawImageCon-


tainer structure;

• RPRM_ResultType_MagneticStripe Result represented as binary array of


buf_length length which contains array if data erade from magnetic stripe;

• RPRM_ResultType_MagneticStripe_TextData Result represented as


TDocVisualExtendedInfo structure;

• RPRM_ResultType_FieldFileImage Result represented as binary array of


buf_length length which contains image of the graphic field image graphic file;

• RPRM_ResultType_DatabaseCheck Result represented as TDatabaseCheck


structure;

• RPRM_ResultType_FingerprintTemplateISO Result represented as binary


array of buf_length length which contains ISO fingerprint template;

• RPRM_ResultType_DeviceInfo Result represented as TRegulaDe-


viceProperties structure which contains connected device license description;

• RPRM_ResultType_LivePortrait Result represented as TDocGraphicsInfo


structure which contains image with portrait of document owner from external camera;

• RPRM_ResultType_Status Result represented as TStatus structure;

• RPRM_ResultType_Portrait_Comparison Result represented as TAuthentic-


ityCheckList structure which contains portrait comparison results from external image
with portrait in document. Comparison results with RPRM_ResultType_LivePortrait &
RPRM_ResultType_ExtPortrait are stored in this type of container;

• RPRM_ResultType_ExtPortrait Result represented as TDocGraphicsInfo


structure which contains image with portrait of document owner from external source;

88 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

• RPRM_ResultType_Text Result represented as TTextResult structure;

• RPRM_ResultType_Images Result represented as TImagesResult structure;

• RPRM_ResultType_FingerPrints Result represented as TDocGraphicsInfo


structure;

• RPRM_ResultType_FingerPrints_Comparison Result represented as


TAuthenticityCheckList structure;

• RPRM_ResultType_DocumentPosition Result of locating document position


represented as TBoundsResult structure;

• RPRM_ResultType_InputImageQuality Result of checking input image qual-


ity represented as TImageQualityCheckList structure.

• RPRM_ResultType_BSI_XML Result in XML format according to BSI TR-03135 v1;

• RPRM_ResultType_BSI_XML_v2 Result in XML format according to BSI TR-03135 v2;

• RPRM_ResultType_Custom NOT USED.

5.4.2. eRPRM_DeviceAdditionalFeatures
eRPRM_DeviceAdditionalFeatures enumeration contains a pool of constants which
determine additional features of the document reader.

enum eRPRM_DeviceAdditionalFeatures
{
RPRM_DeviceAdditionalFeature_None = 0x00000000,
RPRM_DeviceAdditionalFeature_Accumulator = 0x00000001,
RPRM_DeviceAdditionalFeature_Indicators_Triple = 0x00000002,
RPRM_DeviceAdditionalFeature_VideoDetection = 0x00000004,
RPRM_DeviceAdditionalFeature_IRFilter = 0x00000008,
RPRM_DeviceAdditionalFeature_Indicators_Single = 0x00000010,
RPRM_DeviceAdditionalFeature_Indicators_Double = 0x00000020,
RPRM_DeviceAdditionalFeature_Indicators_Button = 0x00000040,
RPRM_DeviceAdditionalFeature_Indicators_Four = 0x00000080,
RPRM_DeviceAdditionalFeature_2SidedWhite = 0x00000100,
RPRM_DeviceAdditionalFeature_2SidedIR = 0x00000200,
RPRM_DeviceAdditionalFeature_2SidedUV = 0x00000400,
RPRM_DeviceAdditionalFeature_MagneticStripe = 0x00001000,
RPRM_DeviceAdditionalFeature_JPEGCompression = 0x00002000,
RPRM_DeviceAdditionalFeature_IntegratedDisplay = 0x00004000,
RPRM_DeviceAdditionalFeature_KeyboardLight = 0x00008000,
RPRM_DeviceAdditionalFeature_ExternalLight = 0x00010000,
RPRM_DeviceAdditionalFeature_RESERVED = 0x00020000,
RPRM_DeviceAdditionalFeature_DocumentSensor = 0x00040000,

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 89


SDK tools

RPRM_DeviceAdditionalFeature_DocSizeMode = 0x00080000,
RPRM_DeviceAdditionalFeature_LiveView = 0x00100000,
RPRM_DeviceAdditionalFeature_ExternalPower = 0x00200000,
};

Constant values:
• RPRM_DeviceAdditionalFeature_Accumulator Document reader is
equipped with an accumulator;

• RPRM_DeviceAdditionalFeature_Indicators_Triple Document
reader has got three indicators;

• RPRM_DeviceAdditionalFeature_VideoDetection Document reader can


be work in the full page videodetection mode;

• RPRM_DeviceAdditionalFeature_IRFilter Document reader has IR filter;

• RPRM_DeviceAdditionalFeature_Indicators_Single Document reader has


got one indicator;

• RPRM_DeviceAdditionalFeature_Indicators_Double Document reader has


got two indicators;

• RPRM_DeviceAdditionalFeature_Indicators_Button Document reader has


got indicator integrated into button;

• RPRM_DeviceAdditionalFeature_Indicators_Four Document reader has


got four indicators;

• RPRM_DeviceAdditionalFeature_Indicators_2SidedWhite Document
reader is capable of taking two white images of both sides of document simultaneously;

• RPRM_DeviceAdditionalFeature_Indicators_2SidedIR Document
reader is capable of taking two IR images of both sides of document simultaneously;

• RPRM_DeviceAdditionalFeature_Indicators_2SidedUV Document
reader is capable of taking two UV images of both sides of document simultaneously;

• RPRM_DeviceAdditionalFeature_MagneticStripe Document reader is ca-


pable of reading magnetic stripe;

• RPRM_DeviceAdditionalFeature_JPEGCompression Document reader is ca-


pable of getting JPEG images instead of RAW;

• RPRM_DeviceAdditionalFeature_IntegratedDisplay Document reader has


integrated display;

90 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

• RPRM_DeviceAdditionalFeature_KeyboardLight Document reader has


integrated keyboard light;

• RPRM_DeviceAdditionalFeature_ExternalLight Document reader has


external light;

• RPRM_DeviceAdditionalFeature_RESERVED Reserved for internal


use;

• RPRM_DeviceAdditionalFeature_DocumentSensor Document reader has


document sensor (for readers that are usually used in videodetection mode);

• RPRM_DeviceAdditionalFeature_DocSizeMode Reserved for internal


use.
• RPRM_DeviceAdditionalFeature_LiveView Document reader has
live view feature availability.
• RPRM_DeviceAdditionalFeature_ExternalPower Document reader is
powered by an external power source. Currently added but not used.

5.4.3. eRPRM_DeviceControlTypes
eRPRM_DeviceControlTypes enumeration contains a pool of constants which deter-
mine the type of document reader control.

enum eRPRM_DeviceControlTypes
{
RPRM_DeviceControlType_DirectShow = 1,
RPRM_DeviceControlType_DirectIO = 2,
RPRM_DeviceControlType_Virtual = 3
};

Constant values:
• RPRM_DeviceControlType_DirectShow Document reader is DirectShow
controlled

• RPRM_DeviceControlType_DirectIO Document reader has direct control,


without using DirectShow tools

• RPRM_DeviceControlType_Virtual Virtual document reader

5.4.4. eRPRM_DeviceTypes
eRPRM_DeviceTypes enumeration contains a set of unique identifiers determining the
type of the document reader model.

enum eRPRM_DeviceTypes
{
RPRM_DeviceType_Unknown = 0x00000000, // Unknown device
RPRM_DeviceType_Virtual = 0xFFFFFFFF, // Virtual Device
// (Security Key)

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 91


SDK tools

// 83x3
RPRM_DeviceType_FX_8313_115 = 0x08313115, // OV 1.3
RPRM_DeviceType_FX_8333_115 = 0x08333115, // OV 3.0
RPRM_DeviceType_FX_8353_115 = 0x08353115, // OV 5.1
RPRM_DeviceType_FX_8383_115 = 0x08383115, // Micron 3.1
RPRM_DeviceType_FX_8883_115 = 0x08883115, // Micron 9.0
RPRM_DeviceType_FX_8853_115 = 0x08853115, // Micron 5.0
// 83x3M
RPRM_DeviceType_FX_8303_115 = 0x08323115, // Micron 3.1
// 83x4 (83x3 + Bottom light table)
RPRM_DeviceType_FX_8314_115 = 0x08314115, // OV 1.3
RPRM_DeviceType_FX_8334_115 = 0x08334115, // OV 3.0
RPRM_DeviceType_FX_8354_115 = 0x08354115, // OV 3.0
RPRM_DeviceType_FX_8384_115 = 0x08384115, // Micron 3.1
RPRM_DeviceType_FX_8884_115 = 0x08884115, // Micron 9.0
RPRM_DeviceType_FX_8854_115 = 0x08854115, // Micron 5.0
// 7007
RPRM_DeviceType_FX_7107_115 = 0x07107115, // OV 1.3
RPRM_DeviceType_FX_7117_115 = 0x07117115, // OV 1.3
// Modification 2
RPRM_DeviceType_FX_7307_115 = 0x07307115, // OV 3.0
RPRM_DeviceType_FX_7317_115 = 0x07317115, // OV 3.1
// Modification 2
RPRM_DeviceType_FX_7507_115 = 0x07507115, // OV 5.1
RPRM_DeviceType_FX_7517_115 = 0x07517115, // OV 5.1
// Modification 2
RPRM_DeviceType_FX_7387_115 = 0x07387115, // Micron 3.1
RPRM_DeviceType_FX_7397_115 = 0x07397115, // Micron 3.1
// Modification 2
RPRM_DeviceType_FX_7887_115 = 0x07887115, // Micron 9.0
RPRM_DeviceType_FX_7857_115 = 0x07857115, // Micron 5.0
// 8307
RPRM_DeviceType_FX_8307 = 0x08307000, // Micron 3.1 Mp
// (MRZ-only reader)
// 7024
RPRM_DeviceType_FX_7104_115 = 0x07104115, // OV 1.3
RPRM_DeviceType_FX_7304_115 = 0x07304115, // OV 3.0
RPRM_DeviceType_FX_7504_115 = 0x07504115, // OV 5.0
RPRM_DeviceType_FX_7384_115 = 0x07384115, // Micron 3.1
RPRM_DeviceType_FX_7884_115 = 0x07884115, // Micron 9.0
RPRM_DeviceType_FX_7854_115 = 0x07854115, // Micron 5.0
RPRM_DeviceType_FX_78A4_115 = 0x078A4115, // Micron 10.0
RPRM_DeviceType_FX_78E4_115 = 0x078E4115, // Micron 14.0
// 7024 Lite functionality
RPRM_DeviceType_FX_7104_Lite = 0x07104333, // OV 1.3
RPRM_DeviceType_FX_7304_Lite = 0x07304333, // OV 3.0
RPRM_DeviceType_FX_7504_Lite = 0x07504333, // OV 5.1
RPRM_DeviceType_FX_7384_Lite = 0x07384333, // Micron 3.1
RPRM_DeviceType_FX_7884_Lite = 0x07884333, // Micron 9.0
RPRM_DeviceType_FX_7854_Lite = 0x07854333, // Micron 5.0
RPRM_DeviceType_FX_78A4_Lite = 0x078A4333, // Micron 10.0
RPRM_DeviceType_FX_78E4_Lite = 0x078E4333, // Micron 14.0
// 70x3
RPRM_DeviceType_FX_7103_115 = 0x07103115, // OV 1.3
RPRM_DeviceType_FX_7303_115 = 0x07303115, // OV 3.0
RPRM_DeviceType_FX_7503_115 = 0x07503115, // OV 5.1
RPRM_DeviceType_FX_7383_115 = 0x07383115, // Micron 3.1
RPRM_DeviceType_FX_7883_115 = 0x07883115, // Micron 9.0
RPRM_DeviceType_FX_7853_115 = 0x07853115, // Micron 5.0
// 4820
RPRM_DeviceType_FX_4821 = 0x04821115, // OV 1.3
RPRM_DeviceType_FX_4823 = 0x04823115, // OV 3.0
RPRM_DeviceType_FX_4825 = 0x04825115, // OV 5.1

92 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools
RPRM_DeviceType_FX_4822 = 0x04822115, // Micron 3.1
RPRM_DeviceType_FX_4828 = 0x04828115, // Micron 9.0
RPRM_DeviceType_FX_4858 = 0x04858115, // Micron 5.0
// 7008
RPRM_DeviceType_FX_7038 = 0x07038115, //Micron 3.1
RPRM_DeviceType_FX_7038_VB = 0x17038115, //Micron 3.1
RPRM_DeviceType_FX_7058 = 0x07058115, //Micron 5.0
// 70x8M
RPRM_DeviceType_FX_7058M = 0x07058110, //OV 5 Mp
RPRM_DeviceType_FX_7058M_VB = 0x17058110, //OV 5 Mp
// 70x4M small reader
RPRM_DeviceType_FX_73x4M = 0x07364115, //Micron 3.1
RPRM_DeviceType_FX_75x4M = 0x07564115, //Micron 5.0
RPRM_DeviceType_FX_71x4M = 0x07A64115, //Micron 10.0
RPRM_DeviceType_FX_76x4M = 0x07664115, //OV 5Mp
RPRM_DeviceType_FX_78x4M = 0x07864115, //Micron 18Mp
// 7308
RPRM_DeviceType_FX_7338 = 0x07338115, //Micron 3.1
// 72x3 ID1 reader with 2 cameras
RPRM_DeviceType_FX_7253 = 0x07253115, //OV 5.0 Mp
// with 2 cameras
RPRM_DeviceType_FX_7517 = 0x07517000, //Micron 5Mp
RPRM_DeviceType_FX_7017 = 0x07017000, //OV 5Mp
RPRM_DeviceType_FX_7027 = 0x07027000, //OV 5Mp
RPRM_DeviceType_FX_7017D_M = 0x07017100, //OV 5Mp
RPRM_DeviceType_FX_7017D_S = 0x07017200, //OV 5Mp
// 7074
RPRM_DeviceType_EOS_7074_550 = 0x07074550, // Cannon EOS 550D
// 7084
RPRM_DeviceType_EOS_7084_7 = 0x07084007, // Cannon EOS 7D
// 8803 - Banknote Reader
RPRM_DeviceType_EOS_8803_100 = 0x08803100, // Cannon EOS 100D
// 8850 - Passport Reader 1/2 pages
RPRM_DeviceType_EOS_8850_5 = 0x08850005, // Cannon EOS 5DS (5DSR)
// 8824 - Banknote Reader
RPRM_DeviceType_EOS_8824_80 = 0x08824080, // Cannon EOS 80D
// 8850M - Passport Reader 1/2 pages
RPRM_DeviceType_EOS_8850M_9 = 0x08880009, // Panasonic G9
// 8850F - Passport Reader 2 pages
RPRM_DeviceType_EOS_8850F_9 = 0x0888000A, // Panasonic G9
// 8880 - Passport Reader 1/2 pages
RPRM_DeviceType_EOS_8880_1 = 0x08850001, // Panasonic S1R
// 8880F - Passport Reader 2 pages
RPRM_DeviceType_EOS_8880F_1 = 0x08850002, // Panasonic S1R
// 88100 - Passport Reader 2 pages
RPRM_DeviceType_EOS_88100 = 0x08850003, // Fujifilm GFX100S
// 88100F - Passport Reader 2 pages
RPRM_DeviceType_EOS_88100F = 0x08850004,// Fujifilm GFX100S
// Camera Canon EOS
RPRM_DeviceType_CanonEOS = 0x20000001, // Canon EOS series
// Camera Panasonic
RPRM_DeviceType_Panasonic = 0x30000009, // Panasonic series
// 4107
RPRM_DeviceType_FX_4137 = 0x04137115, //Micron 3.1

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 93


SDK tools
RPRM_DeviceType_FX_4157 = 0x04157115, //Micron 5.0
// 7310
RPRM_DeviceType_Mobile_7310 = 0x07310000, // 1110 Torch + Mo-
bile device = mobile complex 7310
// ARH
RPRM_DeviceType_ARH = 0x10000001,
// 3M
RPRM_DeviceType_3M = 0x10000002,
// TWAIN
RPRM_DeviceType_TWAIN =0x10000004,
// Bisys Korea
RPRM_DeviceType_BK = 0x10000005,
// Bisys Korea New - 7303
RPRM_DeviceType_73xx = 0x10000006,
// e-seek M500
RPRM_DeviceType_M500 = 0x10000007,
RPRM_DeviceType_Desko = 0x10000008,
//unused ------------------------------------------------------
RPRM_DeviceType_USB20_1 = 0x00200001, // RdrPassport
// with USB2.0 camera
RPRM_DeviceType_7004s = 0x00200002, // PR7004S (W+, IR+)
RPRM_DeviceType_7003_01 = 0x00200003, // PR7003_01
// (Wt, Ws, W+, IR+)
RPRM_DeviceType_7003_110 = 0x07003110, // PR7003_111
// (Wt, Ws, W+, IRt,
// IRs, IR+, UV365)
RPRM_DeviceType_7003_111 = 0x07003111, // PR7003_111 (Wt, Ws,
// W+, IRt, IRs, IR+,
// UV365, 3MW1, 3MW2,
// 3MW+)
RPRM_DeviceType_7004_100 = 0x07004100, // PR7004_100 /
// PR7005_100 (W+, IR+)
RPRM_DeviceType_7004_110 = 0x07004110, // PR7004_110 /
// PR7005_110 (W+, IR+,
// UV)
RPRM_DeviceType_70x4_111 = 0x07004111, // PR70x4_111 /
// PR70x5_111 (W+, IR+,
// UV, 3MW+)
RPRM_DeviceType_70x4_114 = 0x07004114, // PR70x4_114 /
// PR70x5_114 (Wt, Ws,
// W+, IRt, IRs, IR+,
// UV365, 3MW1, 3MW2,
// 3MW+, 3MIR1, 3MIR2,
// 3MIR+)
RPRM_DeviceType_70x4_115 = 0x07004115, // PR70x4_115 /
// PR70x5_115 (W(m),
// IR(m), UV365, 3MW1,
// 3MW2, 3MW+)
RPRM_DeviceType_8303_100 = 0x08303100, // PR8303_100 (W+, IR+)
RPRM_DeviceType_8303_110 = 0x08303110, // PR8303_110 (W+, IR+,
// UV)
RPRM_DeviceType_8303_111 = 0x08303111, // PR8303_111 (W+, IR+,
// UV, 3M1, 3M2)
RPRM_DeviceType_8303_114 = 0x08303114, // PR8303_114 (W_down,
// W_up, W+, IR_down,
// IR_up, IR+, UV365,
// 3MW1, 3MW2, 3MW+)
RPRM_DeviceType_8303_115 = 0x08303115,
RPRM_DeviceType_8305 = 0x08305000, // Mobile complex 8305
// (Logitech QuickCam
// Pro web-camera)
//unused -------------------------------------------------------
};

94 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

This is a list of the constant which is used in most cases:


• RPRM_DeviceType_Unknown – unknown reader;
• RPRM_DeviceType_Virtual – virtual reader, allows processing image files;
• RPRM_DeviceType_FX_8313_115 – document reader 83x3 with OV 1.3 Mp camera;
• RPRM_DeviceType_FX_8383_115 – document reader 83x3 with Micron 3.1 Mp
camera;
• RPRM_DeviceType_FX_8314_115 – document reader 83x3 with OV 1.3 Mp camera;
• RPRM_DeviceType_FX_8334_115 – document reader 83х4 with OV 1.3 Mp camera;
• RPRM_DeviceType_FX_8384_115 – document reader 83х4 with Micron 3.1 Mp
camera;
• RPRM_DeviceType_FX_7107_115 – document reader 7007 with OV 1.3 Mp camera;
• RPRM_DeviceType_FX_7117_115 – document reader 7007 modified with OV
1.3 Mp camera;
• RPRM_DeviceType_FX_8307 – document reader 8307 with Micron 3.1 Mp
camera;
• RPRM_DeviceType_FX_7104_115 – document reader 70x4 with OV 1.3 Mp camera;
• RPRM_DeviceType_FX_7304_115 – document reader 70x4 with OV 3.0 Mp camera;
• RPRM_DeviceType_FX_7384_115 – document reader 70x4 with Micron 3.1 Mp
camera;
• RPRM_DeviceType_FX_7854_115 – document reader 70x4 with Micron 5.0 Mp
camera;
• RPRM_DeviceType_FX_7103_115 – document reader 70x3 with OV 1.3 Mp camera;
• RPRM_DeviceType_FX_7383_115 – document reader 70x3 with Micron 3.1 Mp
camera;
• RPRM _ DeviceType _ FX _4821 – document reader 4820 with OV 1.3 Mp camera;
• RPRM_DeviceType_FX_4822 – document reader 4820 with Micron 3.1 Mp
camera;
• RPRM_DeviceType_FX_73x4M – document reader 70x4M with 3 Mp camera;
• RPRM_DeviceType_FX_75x4M – document reader 70x4M with 5 Mp camera;
• RPRM_DeviceType_FX_76x4M – document reader 70x4M with OV 5 Mp camera;
• RPRM_DeviceType_FX_7253 – document reader 72x3 with two OV 5 Mp cam-
eras;
• RPRM_DeviceType_FX_7017 – document reader 7017 with OV 5 Mp camera;
• RPRM_DeviceType_FX_7027 – document reader 7027 with OV 5 Mp camera;
• RPRM_DeviceType_FX_7017D_M – document reader 7017D (master) with OV 5 Mp
camera;
• RPRM_DeviceType_FX_7017D_S – document reader 7017D (slave) with OV 5 Mp
camera;
• RPRM_DeviceType_FX_7058M – document reader 70x8M with OV 5 Mp camera
for embedded installation;
• RPRM_DeviceType_EOS_7074_550 – document reader 7074 with 18 Mp camera;
• RPRM_DeviceType_FX_78x4M document reader 78x4M with 18 Mp camera;
• RPRM_DeviceType_Mobile_7310 mobile complex 7310;
• RPRM_DeviceType_Desko third-party device DESKO scanner

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 95


SDK tools

5.4.5. eRPRM_Lights
eRPRM_Lights enumeration contains a set of identifiers used for identifying document
reader possibilities, specifying lighting schemes for scanning etc.

enum eRPRM_Lights
{
RPRM_Light_OFF = 0x00000000,
RPRM_Light_OVI = 0x00000001,
RPRM_Light_White_Top = 0x00000002,
RPRM_Light_White_Side = 0x00000004,
RPRM_Light_White_Front = 0x00800000,
RPRM_Light_IR_Top = 0x00000008,
RPRM_Light_IR_Side = 0x00000010,
RPRM_Light_IR_Front = 0x01000000,
RPRM_Light_ White_Gray = 0x02000000,
RPRM_Light_OVD = 0x04000000,
RPRM_Light_Videodetection = 0x08000000,
RPRM_Light_IR_870_Obl = 0x10000000,
RPRM_Light_UV = 0x00000080,
RPRM_Light_IR_Luminescence = 0x000000100,
RPRM_Light_AXIAL_White_Left = 0x00000400,
RPRM_Light_AXIAL_White_Right = 0x00000800,
RPRM_Light_AXIAL_White_Front = 0x00000200,
RPRM_Light_IR_720 = 0x00001000,
RPRM_Light_IR_940 = 0x00002000,
RPRM_Light_White_Full = RPRM_Light_White_Top|
RPRM_Light_White_Side,
RPRM_Light_IR_Full = RPRM_Light_IR_Top|RPRM_Light_IR_Side,
RPRM_Light_AXIAL_White_Full = RPRM_Light_AXIAL_White_Left|
RPRM_Light_AXIAL_White_Right,
RPRM_Light_RAW_Data = 0x80000000,
RPRM_Light_RAW_Data_GRBG = 0x90000000,
RPRM_Light_RAW_Data_GBGR = 0xA0000000,
RPRM_Light_RAW_Data_RGGB = 0xB0000000,
RPRM_Light_RAW_Data_BGGR = 0xC0000000,
RPRM_Light_Transmitted = 0x00000020,
RPRM_Light_Transmitted_IR = 0x00000040,
RPRM_Light_AntiStokes = 0x00010000,
RPRM_Light_Transmitted_IR940= 0x00004000
RPRM_Light_OVD_Right = 0x00040000,
RPRM_Light_OVD_Left = 0x00020000,
RPRM_Light_IR_700 = 0x00008000,
RPRM_Light_IR_870 = RPRM_Light_IR_Front, // Light IR 870
(mod. 8803),
RPRM_Light_Holo = RPRM_Light_OVD, // Light OVD (holo-
gram visualization) - 8850,
RPRM_Light_IR_Bottom = RPRM_Light_Transmitted_IR, // Light
IR Bottom (mod. 8304),
RPRM_Light_White_Bottom = RPRM_Light_Transmitted, // Light
White Bottom (mod. 8304)
RPRM_Light_UVC = 0x00080000, // Light UVС 254 (88X0
devices)
RPRM_Light_UVB = 0x00100000, // Light UVB 313 (88X0
devices)
RPRM_Light_White_Obl = 0x00200000, // Light oblique white
RPRM_Light_White_Special = 0x00400000,
};

Constant values:

• RPRM_Light_OFF lighting schemes are off;

• RPRM_Light_OVI OVI scheme;

• RPRM_Light_White_Top upper/lower lighters of white light scheme;

96 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

• RPRM_Light_White_Side side lighters of white light scheme;

• RPRM_Light_White_Front general white light without separate control of side


and upper/lower lighters scheme;

• RPRM_Light_IR_Top upper/lower lighters of IR light scheme;

• RPRM_Light_IR_Side side lighters of IR light scheme;

• RPRM_Light_IR_Front general IR light without separate control of side and


upper/lower lighters scheme;

• RPRM_Light_White_Gray general white image converted to grayscale;

• RPRM_Light_OVD OVD light for hologram visualization;

• RPRM_Light_Videodetection videodetection light for internal use only;

• RPRM_Light_IR_870_Obl light IR 870 oblique;

• RPRM_Light_UV general UV light scheme;

• RPRM_Light_IR_Luminescence IR luminescence;

• RPRM_Light_AXIAL_White_Left left lighter of white coaxial light scheme;

• RPRM_Light_AXIAL_White_Right right lighter of white coaxial light scheme;

• RPRM_Light_AXIAL_White_Front coaxial white light without separate control of left and


right lighters scheme;

• RPRM_Light_IR_720 IR720;

• RPRM_Light_IR_940 IR940;

• RPRM_Light_White_Full upper/lower and side lighters of white light scheme;

• RPRM_Light_IR_Full upper/lower and side lighters of IR light scheme;

• RPRM_Light_AXIAL_White_Full right and left lighters of white coaxial light


scheme;

• RPRM_Light_IR_Bottom for internal use;

• RPRM_Light_White_Bottom for internal use;

• RPRM_Light_RAW_Data_xxx for internal use;

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 97


SDK tools

• RPRM_Light_Transmitted transmitted;

• RPRM_Light_Transmitted_IR transmitted IR;

• RPRM_Light_AntiStokes transmitted AntiStokes;

• RPRM_Light_Transmitted_IR940 transmitted IR940;

• RPRM_Light_OVD_Right OVD right;

• RPRM_Light_OVD_Left OVD left;

• RPRM_Light_IR_700 IR700;

• RPRM_Light_IR_870 Front IR870 (mod. 8803);

• RPRM_Light_White_Obl White oblique light;

• RPRM_Light_Holo OVD light (hologram visualization) (mod. 8850);

• RPRM_Light_UVC UVС 254 (mod. 88X0);

• RPRM_Light_UVB UVB 313 (mod. 88X0);

• RPRM_Light_White_Special For internal use.

If the reader is equipped with white and IR light with matrix control schemes, the following
constants determine the position of the activated light sources. To specify the lighting
scheme (white or IR light) to which they will be applied it is necessary to use them in com-
bination with one of the above mentioned values.

5.4.6. eRPRM_VideoModes
eRPRM_VideoModes enumeration contains a set of identifiers determining the obtained
images sizes supported by device camera.

enum eRPRM_VideoModes
{
RPRM_VM_UNDEFINED = 0,
RPRM_VM_1MP = 0x00000001,
RPRM_VM_3MP = 0x00000002,
RPRM_VM_5MP = 0x00000004,
RPRM_VM_3MP_MRZ = 0x00000010,

98 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

RPRM_VM_9MP_2 = 0x00000020,
RPRM_VM_9MP = 0x00000040,
RPRM_VM_5MP_1_3 = 0x00000080,
RPRM_VM_50MP = 0x01000000,
RPRM_VM_50MP_3 = 0x02000000,
RPRM_VM_24MP = 0x04000000,
RPRM_VM_24MP_1_5 = 0x08000000,
RPRM_VM_20MP = 0x00100000,
RPRM_VM_80MP = 0x00200000,
RPRM_VM_ID1xx_600 = 0x10000000,
RPRM_VM_300DPI = 0x20000000,
RPRM_VM_5MP_EOS = 0x40000000,
RPRM_VM_14MP = 0x00000100,
RPRM_VM_FULL_HD = 0x00000200,
RPRM_VM_10MP = 0x00000400,
RPRM_VM_10MP_2_5 = 0x00000800,
RPRM_VM_18MP = 0x00001000,
RPRM_VM_18MP_SB = 0x00002000,
RPRM_VM_18MP_4X = 0x00004000,
RPRM_VM_13MP = 0x00008000,
RPRM_VM_13MP_Q = 0x00010000,
RPRM_VM_13MP_H = 0x00020000,
RPRM_VM_MAX = RPRM_VM_14MP
};

Constant values:
• RPRM_VM_UNDEFINED – mode is not defined;
• RPRM_VM_1MP – obtaining frames of 1280×1024 or 1024×768 size support;
• RPRM_VM_3MP – obtaining frames of 2048×1536 size support;
• RPRM_VM_5MP – obtaining frames of 2592 x 1944 size support;
• RPRM_VM_3MP_MRZ – RPRM_DeviceType_FX_8307 device working mode
(1536×500);
• RPRM_VM_9MP_2 – obtaining frames of 1744 x 1308 size support;
• RPRM_VM_9MP – obtaining frames of 3488 x 2616 size support;
• RPRM_VM_5MP_1_3 – obtaining frames of 1296 x 972 (1296 x 968 for 7017 and
72x3 in JPEG mode) size support;
• RPRM_VM_50MP – obtaining frames of 50 Мp resolution support;
• RPRM_VM_50MP_3 – obtaining frames, reduced to 3 Мp support;
• RPRM_VM_24MP – obtaining frames of 24 Мp resolution support;
• RPRM_VM_24MP_1_5 – obtaining frames, reduced to 1,5 Мp support;
• RPRM_VM_20MP – obtaining frames of 20 Мp resolution support;
• RPRM_VM_80MP – obtaining frames of 80 Мp resolution support;
• RPRM_VM_ID1xx_600 – obtaining frames of 600 DPI from ID1 scanners;
• RPRM_VM_300DPI – obtaining frames of 300 DPI from ID1 scanners;
• RPRM_VM_5MP_EOS – obtaining frames of 2592 x 1728 size support;
• RPRM_VM_14MP – obtaining frames of 4384 x 3288 size support;
• RPRM_VM_FULL_HD – obtaining frames of 1920 x 1080 size support;
• RPRM_VM_10MP – obtaining frames of 3664 x 2744 size support;
• RPRM_VM_10MP_2_5 – obtaining frames of 1832 x 1372 size support;

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 99


SDK tools

• RPRM_VM_18MP – obtaining frames of 4896 x 3680 size support;


• RPRM_VM_18MP_SB – obtaining frames of 2448 x 1840 size support;
• RPRM_VM_18MP_4X – obtaining frames of 1224 x 920 size support;
• RPRM_VM_13MP – obtaining frames of 4200 x 3120 size support;
• RPRM_VM_13MP_Q – obtaining frames of 2100 x 1560 size support;
• RPRM_VM_13MP_H – obtaining frames of 3360 x 2496 size support;
• RPRM_VM_MAX – for inner use.

Other values are reserved for internal use.

5.4.7. CDocFormat
CDocFormat enumeration contains a set of identifiers determining document geometric
format according ISO/IEC 7810.

enum CDocFormat
{
dfID1 = 0,
dfID2 = 1,
dfID3 = 2,
dfNON = 3,
dfA4 = 4,
dfID3_x2 = 5,
dfID2_Turkey= 6,
dfID1_90 = 10,
dfID1_180 = 11,
dfID1_270 = 12,
dfID2_180 = 13,
dfID3_180 = 14,
dfCustom = 1000,
dfPhoto = 1001,
dfFlexible = 1002
dfUnknown = -1
};

Constant values:
• dfID1 – ID1 format document;
• dfID2 – ID2 format document;
• dfID3 – ID3 format document;
• dfNON – document format not determined;
• dfA4 – A4 format document;
• dfID3_x2 – double ID3 format document;
• dfID2_Turkey– Turkey ID2 card;
• dfID1_90 – ID1 format document, rotated by 90 degrees;
• dfID1_180 – ID1 format document, rotated by 180 degrees;
• dfID1_270 – ID1 format document, rotated by 270 degrees;
• dfID2_90 – ID2 format document, rotated by 90 degrees;
• dfID3_180 – ID3 format document, rotated by 180 degrees;
• dfCustom – custom format, for internal use;

100 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

• dfPhoto – photograph;
• dfFlexible – non-format document, for internal use;
• dfUnknown – unknown format document.

5.4.8. eRPRM_Capabilities
eRPRM_Capabilities enumeration contains identifiers determining the data obtaining
and processing capabilities of SDK MCL.

enum eRPRM_Capabilities
{
RPRM_Capabilities_Empty = 0x00000000,
RPRM_Capabilities_Scan = 0x00000001,
RPRM_Capabilities_SaveFiles = 0x00000002,
RPRM_Capabilities_LocateDocument = 0x00000004,
RPRM_Capabilities_MRZ_OCR = 0x00000008,
RPRM_Capabilities_Visual_OCR = 0x00000010,
RPRM_Capabilities_BarCodes = 0x00000020,
RPRM_Capabilities_MRZ_TestQuality = 0x00000040,
RPRM_Capabilities_FDS = 0x00000080,
RPRM_Capabilities_ImageDistortionCompensation = 0x00000100,
RPRM_Capabilities_OCR_Analyze = 0x00000200,
RPRM_Capabilities_Authenticity = 0x00000400,
RPRM_Capabilities_RAW_ImageData = 0x00000800,
RPRM_Capabilities_RAW_CustomDemosaic = 0x00001000,
RPRM_Capabilities_DocumentType = 0x00002000,
RPRM_Capabilities_Visual_Graphics = 0x00004000,
RPRM_Capabilities_Expert_Analyze = 0x00008000,
RPRM_Capabilities_ColorCompensation = 0x00010000,
RPRM_Capabilities_BarcodesExtended = 0x00020000,
RPRM_Capabilities_GlareCompensation = 0x00040000,
RPRM_Capabilities_RFID = 0x00080000,
RPRM_Capabilities_BankCard = 0x00100000,
RPRM_Capabilities_LiveFaceComparison = 0x00200000,
RPRM_Capabilities_ProcessImages = 0x10000000,
RPRM_Capabilities_Custom2 = 0x20000000,
RPRM_Capabilities_Custom3 = 0x40000000,
RPRM_Capabilities_Custom4 = 0x80000000,
RPRM_Capabilities_Max = 0xFFFFFFFF,
RPRM_Capabilities_ServerSideRFID = 0x02000000
};

Constant values:
• RPRM_Capabilities_Empty The set of functional capabilities is empty

• RPRM_Capabilities_Scan Image scanning is available

• RPRM_Capabilities_SaveFiles Forming graphic files images for obtained


images is available

• RPRM_Capabilities_LocateDocument Locating document on the scanned images


and forming final document images cropped along the found borders with lighting unevenness
and color balance compensation is available

• RPRM_Capabilities_MRZ_OCR MRZ reading is available

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 101


SDK tools

• RPRM_Capabilities_Visual_OCR Document filling areas reading is available

• RPRM_Capabilities_BarCodes Bar-codes search and reading is available

• RPRM_Capabilities_MRZ_TestQuality MRZ printing quality estimation is availa-


ble

• RPRM_Capabilities_FDS Cooperation with IRS is available

• RPRM_Capabilities_ImageDistortionCompensation Image geometric dis-


tortion compensation is available

• RPRM_Capabilities_OCR_Analyze MRZ reading data, document filling areas


data, bar-code areas data and data from a RFID-chip memory lexical analysis is available

• RPRM_Capabilities_Authenticity Estimation of document authenticity esti-


mation using the obtained images is available

• RPRM_Capabilities_RAW_ImageData Getting RAW data from videochip is avail-


able

• RPRM_Capabilities_RAW_CustomDemosaic External demosaic is available

• RPRM_Capabilities_DocumentType Document type recognition is available

• RPRM_Capabilities_Visual_Graphics Graphics field getting from the document


is available

• RPRM_Capabilities_Expert_Analyze NOT USED

• RPRM_Capabilities_ColorCompensation NOT USED

• RPRM_Capabilities_BarcodesExtended NOT USED

• RPRM_Capabilities_GlaresCompensation NOT USED

• RPRM_Capabilities_RFID NOT USED

• RPRM_Capabilities_BankCard NOT USED

• RPRM_Capabilities_LiveFaceComparison Comparison of document


photo with live or external source photo. Requires separate service.

102 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

• RPRM_Capabilities_ProcessImages Processing of external images


(see RPRM_Command_ProcessImagesList)

• RPRM_Capabilities_Max All values;

• RPRM_Capabilities_ServerSideRFID Chip Authentication and Ac-


tive Authentication RFID reprocessing.

5.4.9. eRPRM_GetImage_Modes
eRPRM_GetImage_Modes enumeration contains identifiers determining combination of
functions for obtaining and processing images which should be fulfilled while scanning
and processing as well as data set which should be received as final result.

enum eRPRM_GetImage_Modes
{
RPRM_GetImage_Modes_Empty = 0x00000000,
RPRM_GetImage_Modes_GetUncroppedImages = 0x00000001,
RPRM_GetImage_Modes_ReceiveAllScannedImages = 0x00000002,
RPRM_GetImage_Modes_OCR_Visual_Graphics = 0x00000004,
RPRM_GetImage_Modes_GetImages = 0x00000008,
RPRM_GetImage_Modes_LocateDocument = 0x00000010,
RPRM_GetImage_Modes_DocumentType = 0x00000020,
RPRM_GetImage_Modes_OCR_MRZ = 0x00000040,
RPRM_GetImage_Modes_OCR_Visual_Text = 0x00000080,
RPRM_GetImage_Modes_OCR_Visual =
RPRM_GetImage_Modes_OCR_Visual_Graphics|
RPRM_GetImage_Modes_OCR_Visual_Text,
RPRM_GetImage_Modes_OCR_BarCodes = 0x00000100,
RPRM_GetImage_Modes_Authenticity = 0x00000200,
RPRM_GetImage_Modes_OCR_TestMRZQuality = 0x00000400,
RPRM_GetImage_Modes_RAW_Data = 0x00000800,
RPRM_GetImage_Modes_RAW_Data_Only = 0x00001000,
RPRM_GetImage_Modes_NoColorCompensation = 0x00002000,
RPRM_GetImage_Modes_NoDistortionCompensation
= 0x00004000,
RPRM_GetImage_Modes_DetectDocument = 0x00008000,
RPRM_GetImage_Modes_ImageQA = 0x00010000,
RPRM_GetImage_Modes_Holo = 0x00020000,
RPRM_GetImage_Modes_FaceDetect = 0x00040000,
RPRM_GetImage_Modes_Reserved11 = 0x00080000,
RPRM_GetImage_Modes_Reserved12 = 0x00100000,
RPRM_GetImage_Modes_Reserved13 = 0x00200000,
RPRM_GetImage_Modes_Reserved14 = 0x00400000,
RPRM_GetImage_Modes_Reserved15 = 0x00800000,
RPRM_GetImage_Modes_Reserved16 = 0x01000000,
RPRM_GetImage_Modes_Reserved17 = 0x02000000,
RPRM_GetImage_Modes_Reserved18 = 0x04000000,

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 103


SDK tools

RPRM_GetImage_Modes_Reserved19 = 0x08000000,
RPRM_GetImage_Modes_Custom1 = 0x10000000,
RPRM_GetImage_Modes_Custom2 = 0x20000000,
RPRM_GetImage_Modes_Custom3 = 0x40000000,
RPRM_GetImage_Modes_Custom4 = 0x80000000
};

Constant values:
• RPRM_GetImage_Modes_Empty “Empty” scanning cycle, with-
out getting any results;

• RPRM_GetImage_Modes_GetUncroppedImages NOT USED. To obtain unpro-


cessed document images;

• RPRM_GetImage_Modes_ReceiveAllScannedImages To obtain all scanned


document images, including those taken during additional scanning;

• RPRM_GetImage_Modes_OCR_Visual_Graphics Necessary to obtain a visual


image of the field with the page;

• RPRM_GetImage_Modes_GetImages It is necessary to obtain docu-


ment images for lighting schemes included into current list of lighting schemes for scanning;

• RPRM_GetImage_Modes_LocateDocument To perform document location


procedure of the scanned images, form final document images cropped along the found bor-
ders with light unevenness and color balance compensation;

• RPRM_GetImage_Modes_DocumentType To perform document type recognition


procedure;

• RPRM_GetImage_Modes_OCR_MRZ To perform document MRZ reading pro-


cedure;

• RPRM_GetImage_Modes_OCR_Visual_Text To perform textual document filling


fields reading procedure;

• RPRM_GetImage_Modes_OCR_Visual To perform textual and graphical docu-


ment filling fields reading procedure;

• RPRM_GetImage_Modes_OCR_BarCodes To perform bar-codes searching and


reading procedure;

• RPRM_GetImage_Modes_Authenticity To perform document authenticity con-


trol procedure in accordance with obtained images;

• RPRM_GetImage_Modes_OCR_TestMRZQuality To perform document MRZ


quality control procedure;

104 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

• RPRM_GetImage_Modes_RAW_Data NOT USED. To get RAW images;

• RPRM_GetImage_Modes_RAW_Data_Only NOT USED. To get RAW images only;

• RPRM_GetImage_Modes_NoColorCompensation To disable color com-


pensation;

• RPRM_GetImage_Modes_NoDistortionCompensation To disable distortion


compensatoin;

• RPRM_GetImage_Modes_DetectDocument To obtain document position;

• RPRM_GetImage_Modes_ImageQA To perform input image quality check


(only when processing previously obtained images);

• RPRM_GetImage_Modes_Holo Reserved.

• RPRM_GetImage_Modes_FaceDetect (Renamed from


RPRM_GetImage_Modes_Reserved10). To search for faces. Not used in PasspR40.dll.

5.4.10. eRPRM_FieldVerificationResult
eRPRM_FieldVerificationResult enumeration contains identifiers determining veri-
fication and comparison of text fields.

enum eRPRM_FieldVerificationResult
{
RCF_Disabled = 0,
RCF_Verified = 1,
RCF_Not_Verified = 2,
RCF_Compare_True = 3,
RCF_Compare_False = 4
};

Values of this enum have the following meaning:


• RCF_Disabled – comparison was not done, result undefined;
• RCF_Verified - verification passed;
• RCF_Not_Verified - verification failed;
• RCF_Compare_True - positive comparison result;
• RCF_Compare_False - negative comparison result.

5.4.11. eVisualFieldType
eVisualFieldType enumeration contains identifiers determining the logical type of the
text data obtained while reading MRZ, document filling fields and bar-codes.
enum eVisualFieldType
{
ft_Document_Class_Code = 0,
ft_Issuing_State_Code = 1,
ft_Document_Number = 2,
ft_Date_of_Expiry = 3,

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 105


SDK tools
ft_Date_of_Issue = 4,
ft_Date_of_Birth = 5,
ft_Place_of_Birth = 6,
ft_Personal_Number = 7,
ft_Surname = 8,
ft_Given_Names = 9,
ft_Mothers_Name = 10,
ft_Nationality = 11,
ft_Sex = 12,
ft_Height = 13,
ft_Weight = 14,
ft_Eyes_Color = 15,
ft_Hair_Color = 16,
ft_Address = 17,
ft_Donor = 18,
ft_Social_Security_Number = 19,
ft_DL_Class = 20,
ft_DL_Endorsed = 21,
ft_DL_Restriction_Code = 22,
ft_DL_Under_21_Date = 23,
ft_Authority = 24,
ft_Surname_And_Given_Names = 25,
ft_Nationality_Code = 26,
ft_Passport_Number = 27,
ft_Invitation_Number = 28,
ft_Visa_ID = 29,
ft_Visa_Class = 30,
ft_Visa_SubClass = 31,
ft_MRZ_String1 = 32,
ft_MRZ_String2 = 33,
ft_MRZ_String3 = 34,
ft_MRZ_Type = 35,
ft_Optional_Data = 36,
ft_Document_Class_Name = 37,
ft_Issuing_State_Name = 38,
ft_Place_of_Issue = 39,
ft_Document_Number_Checksum = 40,
ft_Date_of_Birth_Checksum = 41,
ft_Date_of_Expiry_Checksum = 42,
ft_Personal_Number_Checksum = 43,
ft_FinalChecksum = 44,
ft_Passport_Number_Checksum = 45,
ft_Invitation_Number_Checksum = 46,
ft_Visa_ID_Checksum = 47,
ft_Surname_And_Given_Names_Checksum = 48,
ft_Visa_Valid_Until_Checksum = 49,
ft_Other = 50,
ft_MRZ_Strings = 51,
ft_Name_Suffix = 52,
ft_Name_Prefix = 53,
ft_Date_of_Issue_Checksum = 54,
ft_Date_of_Issue_CheckDigit = 55,
ft_Document_Series = 56,
ft_RegCert_RegNumber = 57,
ft_RegCert_CarModel = 58,
ft_RegCert_CarColor = 59,
ft_RegCert_BodyNumber = 60,
ft_RegCert_CarType = 61,
ft_RegCert_MaxWeight = 62,
ft_Reg_Cert_Weight = 63,
ft_Address_Area = 64,
ft_Address_State = 65,
ft_Address_Building = 66,
ft_Address_House = 67,
ft_Address_Flat = 68,
ft_Place_of_Registration = 69,
ft_Date_of_Registration = 70,
ft_Resident_From = 71,
ft_Resident_Until = 72,
ft_Authority_Code = 73,
ft_Place_of_Birth_Area = 74,
ft_Place_of_Birth_StateCode = 75,
ft_Address_Street = 76,
ft_Address_City = 77,
ft_Address_Jurisdiction_Code = 78,
ft_Address_Postal_Code = 79,
ft_Document_Number_CheckDigit = 80,
ft_Date_of_Birth_CheckDigit = 81,
ft_Date_of_Expiry_CheckDigit = 82,
ft_Personal_Number_CheckDigit = 83,
ft_FinalCheckDigit = 84,
ft_Passport_Number_CheckDigit = 85,
ft_Invitation_Number_CheckDigit = 86,
ft_Visa_ID_CheckDigit = 87,

106 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools
ft_Surname_And_Given_Names_CheckDigit = 88,
ft_Visa_Valid_Until_CheckDigit = 89,
ft_Permit_DL_Class = 90,
ft_Permit_Date_of_Expiry = 91,
ft_Permit_Identifier = 92,
ft_Permit_Date_of_Issue = 93,
ft_Permit_Restriction_Code = 94,
ft_Permit_Endorsed = 95,
ft_Issue_Timestamp = 96,
ft_Number_of_Duplicates = 97,
ft_Medical_Indicator_Codes = 98,
ft_Non_Resident_Indicator = 99,
ft_Visa_Type = 100,
ft_Visa_Valid_From = 101,
ft_Visa_Valid_Until = 102,
ft_Duration_of_Stay = 103,
ft_Number_of_Entries = 104,
ft_Day = 105,
ft_Month = 106,
ft_Year = 107,
ft_Unique_Customer_Identifier = 108,
ft_Commercial_Vehicle_Codes = 109,
ft_AKA_Date_of_Birth = 110,
ft_AKA_Social_Security_Number = 111,
ft_AKA_Surname = 112,
ft_AKA_Given_Names = 113,
ft_AKA_Name_Suffix = 114,
ft_AKA_Name_Prefix = 115,
ft_Mailing_Address_Street = 116,
ft_Mailing_Address_City = 117,
ft_Mailing_Address_Jurisdiction_Code = 118,
ft_Mailing_Address_Postal_Code = 119,
ft_Audit_Information = 120,
ft_Inventory_Number = 121,
ft_Race_Ethnicity = 122,
ft_Jurisdiction_Vehicle_Class = 123,
ft_Jurisdiction_Endorsement_Code = 124,
ft_Jurisdiction_Restriction_Code = 125,
ft_Family_Name = 126,
ft_Given_Names_RUS = 127,
ft_Visa_ID_RUS = 128,
ft_Fathers_Name = 129,
ft_Fathers_Name_RUS = 130,
ft_Surname_And_Given_Names_RUS = 131,
ft_Place_Of_Birth_RUS = 132,
ft_Authority_RUS = 133,
ft_Issuing_State_Code_Numeric = 134,
ft_Nationality_Code_Numeric = 135,
ft_Engine_Power = 136,
ft_Engine_Volume = 137,
ft_Chassis_Number = 138,
ft_Engine_Number = 139,
ft_Engine_Model = 140,
ft_Vehicle_Category = 141,
ft_Identity_Card_Number = 142,
ft_Control_No = 143,
ft_Parrent_s_Given_Names = 144,
ft_Second_Surname = 145,
ft_Middle_Name = 146,
ft_RegCert_VIN = 147,
ft_RegCert_VIN_CheckDigit = 148,
ft_RegCert_VIN_Checksum = 149,
ft_Line1_CheckDigit = 150,
ft_Line2_CheckDigit = 151,
ft_Line3_CheckDigit = 152,
ft_Line1_Checksum = 153,
ft_Line2_Checksum = 154,
ft_Line3_Checksum = 155,
ft_RegCert_RegNumber_CheckDigit = 156,
ft_RegCert_RegNumber_Checksum = 157,
ft_RegCert_Vehicle_ITS_Code = 158,
ft_Card_Access_Number = 159.
ft_Marital_Status = 160,
ft_Company_Name = 161,
ft_Special_Notes = 162,
ft_Surname_of_Spose = 163,
ft_Tracking_Number = 164,
ft_Booklet_Number = 165,
ft_Children = 166,
ft_Copy = 167,
ft_Serial_Number = 168,
ft_Dossier_Number = 169,
ft_AKA_Surname_And_Given_Names = 170,
ft_Territorial_Validity = 171,

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 107


SDK tools
ft_MRZ_Strings_With_Correct_CheckSums = 172,
ft_DL_CDL_Restriction_Code = 173,
ft_DL_Under_18_Date = 174,
ft_DL_Record_Created = 175,
ft_DL_Duplicate_Date = 176,
ft_DL_Iss_Type = 177,
ft_Military_Book_Number = 178,
ft_Destination = 179,
ft_Blood_Group = 180,
ft_Sequence_Number = 181,
ft_RegCert_BodyType = 182,
ft_RegCert_CarMark = 183,
ft_Transaction_Number = 184,
ft_Age = 185,
ft_Folio_Number = 186,
ft_Voter_Key = 187,
ft_Address_Municipality = 188,
ft_Address_Location = 189,
ft_Section = 190,
ft_OCR_Number = 191,
ft_Federal_Elections = 192,
ft_Reference_Number = 193,
ft_Optional_Data_Checksum = 194,
ft_Optional_Data_CheckDigit = 195,
ft_Visa_Number = 196,
ft_Visa_Number_Checksum = 197,
ft_Visa_Number_CheckDigit = 198,
ft_Voter = 199,
ft_Previous_Type = 200,
ft_FieldFromMRZ = 220,
ft_CurrentDate = 221,
ft_Status_Date_of_Expiry = 251,
ft_Bancnote_Number = 252,
ft_CSC_Code = 253,
ft_Artistic_Name = 254,
ft_Academic_Title = 255,
ft_Address_Country = 256,
ft_Address_Zipcode = 257,
ft_eID_Residence_Permit1 = 258,
ft_eID_Residence_Permit2 = 259,
ft_eID_PlaceOfBirth_Street = 260,
ft_eID_PlaceOfBirth_City = 261,
ft_eID_PlaceOfBirth_State = 262,
ft_eID_PlaceOfBirth_Country = 263,
ft_eID_PlaceOfBirth_Zipcode = 264,
ft_CDL_Class = 265,
ft_DL_Under_19_Date = 266,
ft_Weight_pounds = 267,
ft_Limited_Duration_Document_Indicator = 268,
ft_Endorsement_Expiration_Date = 269,
ft_Revision_Date = 270,
ft_Compliance_Type = 271,
ft_Family_name_truncation = 272,
ft_First_name_truncation = 273,
ft_Middle_name_truncation = 274,
ft_Exam_Date = 275,
ft_Organization = 276,
ft_Department = 277,
ft_Pay_Grade = 278,
ft_Rank = 279,
ft_Benefits_Number = 280,
ft_Sponsor_Service = 281,
ft_Sponsor_Status = 282,
ft_Sponsor = 283,
ft_Relationship = 284,
ft_USCIS = 285,
ft_Category = 286,
ft_Conditions = 287,
ft_Identifier = 288,
ft_Configuration = 289,
ft_Discretionary_data = 290,
ft_Line1_Optional_Data = 291,
ft_Line2_Optional_Data = 292,
ft_Line3_Optional_Data = 293,
ft_EQV_Code = 294,
ft_ALT_Code = 295,
ft_Binary_Code = 296,
ft_Pseudo_Code = 297,
ft_Fee = 298,
ft_Stamp_Number = 299,
ft_SBH_SecurityOptions = 300,
ft_SBH_IntegrityOptions = 301,
ft_Date_of_Creation = 302,
ft_Validity_Period = 303,

108 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools
ft_Patron_Header_Version = 304,
ft_BDB_Type = 305,
ft_Biometric_Type = 306,
ft_Biometric_Subtype = 307,
ft_Biometric_ProductID = 308,
ft_Biometric_Format_Owner = 309,
ft_Biometric_Format_Type = 310,
ft_Phone = 311,
ft_Profession = 312,
ft_Title = 313,
ft_Personal_Summary = 314,
ft_Other_Valid_ID = 315,
ft_Custody_Info = 316,
ftOther_Name = 317,
ft_Observations = 318,
ft_Tax = 319,
ft_Date_of_Personalization = 320,
ft_Personalization_SN = 321,
ft_OtherPerson_Name = 322,
ft_PersonToNotify_Date_of_Record = 323,
ft_PersonToNotify_Name = 324,
ft_PersonToNotify_Phone = 325,
ft_PersonToNotify_Address = 326,
ft_DS_Certificate_Issuer = 327,
ft_DS_Certificate_Subject = 328,
ft_DS_Certificate_ValidFrom = 329,
ft_DS_Certificate_ValidTo = 330,
ft_VRC_DataObject_Entry = 331,
ft_TypeApprovalNumber = 332,
ft_AdministrativeNumber = 333,
ft_DocumentDiscriminator = 334,
ft_DataDiscriminator = 335,
ft_ISO_Issuer_ID_Number = 336,
ft_GNIB_Number = 340,
ft_Dept_Number = 341,
ft_Telex_Code = 342,
ft_Allergies = 343,
ft_Sp_Code = 344,
ft_Court_Code = 345,
ft_Cty = 346,
ft_Sponsor_SSN = 347,
ft_DoD_Number = 348,
ft_MC_Novice_Date = 349,
ft_DUF_Number = 350,
ft_AGY = 351,
ft_PNR_Code = 352,
ft_From_Airport_Code = 353,
ft_To_Airport_Code = 354,
ft_Flight_Number = 355,
ft_Date_of_Flight = 356,
ft_Seat_Number = 357,
ft_Date_of_Issue_Boarding_Pass = 358,
ft_CCW_Until = 359,
ft_Reference_Number_Checksum = 360,
ft_Reference_Number_CheckDigit = 361,
ft_Room_Number = 362,
ft_Religion = 363,
ft_RemainderTerm = 364,
ft_Electronic_Ticket_Indicator = 365,
ft_Compartment_Code = 366,
ft_CheckIn_Sequence_Number = 367,
ft_Airline_Designator_of_boarding_pass_issuer = 368,
ft_Airline_Numeric_Code = 369,
ft_Ticket_Number = 370,
ft_Frequent_Flyer_Airline_Designator = 371,
ft_Frequent_Flyer_Number = 372,
ft_Free_Baggage_Allowance = 373,
ft_PDF417Codec = 374,
ft_Identity_Card_Number_Checksum = 375,
ft_Identity_Card_Number_CheckDigit = 376,
ft_Veteran = 377,
ft_DLClassCode_A1_From = 378,
ft_DLClassCode_A1_To = 379,
ft_DLClassCode_A1_Notes = 380,
ft_DLClassCode_A_From = 381,
ft_DLClassCode_A_To = 382,
ft_DLClassCode_A_Notes = 383,
ft_DLClassCode_B_From = 384,
ft_DLClassCode_B_To = 385,
ft_DLClassCode_B_Notes = 386,
ft_DLClassCode_C1_From = 387,
ft_DLClassCode_C1_To = 388,
ft_DLClassCode_C1_Notes = 389,
ft_DLClassCode_C_From = 390,

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 109


SDK tools
ft_DLClassCode_C_To = 391,
ft_DLClassCode_C_Notes = 392,
ft_DLClassCode_D1_From = 393,
ft_DLClassCode_D1_To = 394,
ft_DLClassCode_D1_Notes = 395,
ft_DLClassCode_D_From = 396,
ft_DLClassCode_D_To = 397,
ft_DLClassCode_D_Notes = 398,
ft_DLClassCode_BE_From = 399,
ft_DLClassCode_BE_To = 400,
ft_DLClassCode_BE_Notes = 401,
ft_DLClassCode_C1E_From = 402,
ft_DLClassCode_C1E_To = 403,
ft_DLClassCode_C1EvNotes = 404,
ft_DLClassCode_CE_From = 405,
ft_DLClassCode_CE_To = 406,
ft_DLClassCode_CE_Notes = 407,
ft_DLClassCode_D1E_From = 408,
ft_DLClassCode_D1E_To = 409,
ft_DLClassCode_D1E_Notes = 410,
ft_DLClassCode_DE_From = 411,
ft_DLClassCode_DE_To = 412,
ft_DLClassCode_DE_Notes = 413,
ft_DLClassCode_M_From = 414,
ft_DLClassCode_M_To = 415,
ft_DLClassCode_M_Notes = 416,
ft_DLClassCode_L_From = 417,
ft_DLClassCode_L_To = 418,
ft_DLClassCode_L_Notes = 419,
ft_DLClassCode_T_From = 420,
ft_DLClassCode_T_To = 421,
ft_DLClassCode_T_Notes = 422,
ft_DLClassCode_AM_From = 423,
ft_DLClassCode_AM_To = 424,
ft_DLClassCode_AM_Notes = 425,
ft_DLClassCode_A2_From = 426,
ft_DLClassCode_A2_To = 427,
ft_DLClassCode_A2_Notes = 428,
ft_DLClassCode_B1_From = 429,
ft_DLClassCode_B1_To = 430,
ft_DLClassCode_B1_Notes = 431,
ft_Surname_at_Birth = 432,
ft_Civil_Status = 433,
ft_Number_of_Seats = 434,
ft_Number_of_Standing_Places = 435,
ft_Max_Speed = 436,
ft_Fuel_Type = 437,
ft_EC_Environmental_Type = 438,
ft_Power_Weight_Ratio = 439,
ft_Max_Mass_of_Trailer_Braked = 440,
ft_Max_Mass_of_Trailer_Unbraked = 441,
ft_Transmission_Type = 442,
ft_Trailer_Hitch = 443,
ft_Accompanied_by = 444,
ft_Police_District = 445,
ft_First_Issue_Date = 446,
ft_Payload_Capacity = 447,
ft_Number_of_Axels = 448,
ft_Permissible_Axle_Load = 449,
ft_Precinct = 450,
ft_Invited_by = 451,
ft_Purpose_of_Entry = 452,
ft_Skin_Color = 453,
ft_Complexion = 454,
ft_Airport_From = 455,
ft_Airport_To = 456,
ft_Airline_Name = 457,
ft_Airline_Name_Frequent_Flyer = 458,
ft_License_Number = 459,
ft_In_Tanks = 460,
ft_Exept_In_Tanks = 461,
ft_Fast_Track = 462,
ft_Owner = 463,
ft_MRZ_Strings_ICAO_RFID = 464,
ft_Number_of_Card_Issuance = 465,
ft_Number_of_Card_Issuance_Checksum = 466,
ft_Number_of_Card_Issuance_CheckDigit= 467,
ft_Century_Date_of_Birth = 468,
ft_DLClassCode_A3_From = 469,
ft_DLClassCode_A3_To = 470,
ft_DLClassCode_A3_Notes = 471,
ft_DLClassCode_C2_From = 472,
ft_DLClassCode_C2_To = 473,
ft_DLClassCode_C2_Notes = 474,

110 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools
ft_DLClassCode_B2_From = 475,
ft_DLClassCode_B2_To = 476,
ft_DLClassCode_B2_Notes = 477,
ft_DLClassCode_D2_From = 478,
ft_DLClassCode_D2_To = 479,
ft_DLClassCode_D2_Notes = 480,
ft_DLClassCode_B2E_From = 481,
ft_DLClassCode_B2E_To = 482,
ft_DLClassCode_B2E_Notes = 483,
ft_DLClassCode_G_From = 484,
ft_DLClassCode_G_To = 485,
ft_DLClassCode_G_Notes = 486,
ft_DLClassCode_J_From = 487,
ft_DLClassCode_J_To = 488,
ft_DLClassCode_J_Notes = 489,
ft_DLClassCode_LC_From = 490,
ft_DLClassCode_LC_To = 491,
ft_DLClassCode_LC_Notes = 492,
ft_BankCardNumber = 493,
ft_BankCardValidThru = 494,
ft_TaxNumber = 495,
ft_HealthNumber = 496,
ft_GrandfatherName = 497,
ft_Selectee_Indicator = 498,
ft_Mother_Surname = 499,
ft_Mother_GivenName = 500,
ft_Father_Surname = 501,
ft_Father_GivenName = 502,
ft_Mother_DateOfBirth = 503,
ft_Father_DateOfBirth = 504,
ft_Mother_PersonalNumber = 505,
ft_Father_PersonalNumber = 506,
ft_Mother_PlaceOfBirth = 507,
ft_Father_PlaceOfBirth = 508,
ft_Mother_CountryOfBirth = 509,
ft_Father_CountryOfBirth = 510,
ft_Date_First_Renewal = 511,
ft_Date_Second_Renewal = 512,
ft_PlaceOfExamination = 513,
ft_ApplicationNumber = 514,
ft_VoucherNumber = 515,
ft_AuthorizationNumber = 516,
ft_Faculty = 517,
ft_FormOfEducation = 518,
ft_DNINumber = 519,
ft_RetirementNumber = 520,
ft_ProfessionalIdNumber = 521,
ft_Age_at_Issue = 522,
ft_Years_Since_Issue = 523,
ft_DLClassCode_BTP_From = 524,
ft_DLClassCode_BTP_Notes = 525,
ft_DLClassCode_BTP_To = 526,
ft_DLClassCode_C3_From = 527,
ft_DLClassCode_C3_Notes = 528,
ft_DLClassCode_C3_To = 529,
ft_DLClassCode_E_From = 530,
ft_DLClassCode_E_Notes = 531,
ft_DLClassCode_E_To = 532,
ft_DLClassCode_F_From = 533,
ft_DLClassCode_F_Notes = 534,
ft_DLClassCode_F_To = 535,
ft_DLClassCode_FA_From = 536,
ft_DLClassCode_FA_Notes = 537,
ft_DLClassCode_FA_To = 538,
ft_DLClassCode_FA1_From = 539,
ft_DLClassCode_FA1_Notes = 540,
ft_DLClassCode_FA1_To = 541,
ft_DLClassCode_FB_From = 542,
ft_DLClassCode_FB_Notes = 543,
ft_DLClassCode_FB_To = 544,
ft_DLClassCode_G1_From = 545,
ft_DLClassCode_G1_Notes = 546,
ft_DLClassCode_G1_To = 547,
ft_DLClassCode_H_From = 548,
ft_DLClassCode_H_Notes = 549,
ft_DLClassCode_H_To = 550,
ft_DLClassCode_I_From = 551,
ft_DLClassCode_I_Notes = 552,
ft_DLClassCode_I_To = 553,
ft_DLClassCode_K_From = 554,
ft_DLClassCode_K_Notes = 555,
ft_DLClassCode_K_To = 556,
ft_DLClassCode_LK_From = 557,
ft_DLClassCode_LK_Notes = 558,

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 111


SDK tools
ft_DLClassCode_LK_To = 559,
ft_DLClassCode_N_From = 560,
ft_DLClassCode_N_Notes = 561,
ft_DLClassCode_N_To = 562,
ft_DLClassCode_S_From = 563,
ft_DLClassCode_S_Notes = 564,
ft_DLClassCode_S_To = 565,
ft_DLClassCode_TB_From = 566,
ft_DLClassCode_TB_Notes = 567,
ft_DLClassCode_TB_To = 568,
ft_DLClassCode_TM_From = 569,
ft_DLClassCode_TM_Notes = 570,
ft_DLClassCode_TM_To = 571,
ft_DLClassCode_TR_From = 572,
ft_DLClassCode_TR_Notes = 573,
ft_DLClassCode_TR_To = 574,
ft_DLClassCode_TV_From = 575,
ft_DLClassCode_TV_Notes = 576,
ft_DLClassCode_TV_To = 577,
ft_DLClassCode_V_From = 578,
ft_DLClassCode_V_Notes = 579,
ft_DLClassCode_V_To = 580,
ft_DLClassCode_W_From = 581,
ft_DLClassCode_W_Notes = 582,
ft_DLClassCode_W_To = 583,
ft_URL = 584,
ft_Caliber = 585,
ft_Model = 586,
ft_Make = 587,
ft_NumberOfCylinders = 588,
ft_SurnameOfHusbandAfterRegistration = 589,
ft_SurnameOfWifeAfterRegistration = 590,
ft_DateOfBirthOfWife = 591,
ft_DateOfBirthOfHusband = 592,
ft_CitizenshipOfFirstPerson = 593,
ft_CitizenshipOfSecondPerson = 594,
ft_CVV = 595,
ft_Date_of_Insurance_Expiry = 596,
ft_Mortgage_by = 597,
ft_Old_Document_Number = 598,
ft_Old_Date_of_Issue = 599,
ft_Old_Place_of_Issue = 600,
ft_DLClassCode_LR_From = 601,
ft_DLClassCode_LR_To = 602,
ft_DLClassCode_LR_Notes = 603,
ft_DLClassCode_MR_From = 604,
ft_DLClassCode_MR_To = 605,
ft_DLClassCode_MR_Notes = 606,
ft_DLClassCode_HR_From = 607,
ft_DLClassCode_HR_To = 608,
ft_DLClassCode_HR_Notes = 609,
ft_DLClassCode_HC_From = 610,
ft_DLClassCode_HC_To = 611,
ft_DLClassCode_HC_Notes = 612,
ft_DLClassCode_MC_From = 613,
ft_DLClassCode_MC_To = 614,
ft_DLClassCode_MC_Notes = 615,
ft_DLClassCode_RE_From = 616,
ft_DLClassCode_RE_To = 617,
ft_DLClassCode_RE_Notes = 618,
ft_DLClassCode_R_From = 619,
ft_DLClassCode_R_To = 620,
ft_DLClassCode_R_Notes = 621,
ft_DLClassCode_CA_From = 622,
ft_DLClassCode_CA_To = 623,
ft_DLClassCode_CA_Notes = 624,
ft_Citizenship_Status = 625,
ft_Military_Service_From = 626,
ft_Military_Service_To = 627,
ft_DLClassCode_NT_From = 628,
ft_DLClassCode_NT_To = 629,
ft_DLClassCode_NT_Notes = 630,
ft_DLClassCode_TN_From = 631,
ft_DLClassCode_TN_To = 632,
ft_DLClassCode_TN_Notes = 633,
ft_DLClassCode_D3_From = 634,
ft_DLClassCode_D3_To = 635,
ft_DLClassCode_D3_Notes = 636,
ft_Alt_Date_Of_Expiry = 637,
ft_DLClassCode_CD_From = 638,
ft_DLClassCode_CD_To = 639,
ft_DLClassCode_CD_Notes = 640,
ft_Issuer_Identification_Number = 641,
ft_Payment_Period_From = 642,

112 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools
ft_Payment_Period_To = 643,
ft_VaccinationCertificateIdentifier = 644,
ft_First_Name = 645,
ft_Date_of_Arrival = 646,
ft_Second_Name = 647,
ft_Third_Name = 648,
ft_Fourth_Name = 649,
ft_Last_Name = 650,
ft_DLClassCode_RM_From = 651,
ft_DLClassCode_RM_Notes = 652,
ft_DLClassCode_RM_To = 653,
ft_DLClassCode_PW_From = 654,
ft_DLClassCode_PW_Notes = 655,
ft_DLClassCode_PW_To = 656,
ft_DLClassCode_EB_From = 657,
ft_DLClassCode_EB_Notes = 658,
ft_DLClassCode_EB_To = 659,
ft_DLClassCode_EC_From = 660,
ft_DLClassCode_EC_Notes = 661,
ft_DLClassCode_EC_To = 662,
ft_DLClassCode_EC1_From = 663,
ft_DLClassCode_EC1_Notes = 664,
ft_DLClassCode_EC1_To = 665,
ft_Place_of_Birth_City = 666,
ft_Year_of_Birth = 667,
ft_Year_of_Expiry = 668,
ft_First_Surname = 670,
ft_Month_of_Birth = 671,
ft_Address_Floor_Number = 672,
ft_Address_Entrance = 673,
ft_Address_Block_Number = 674,
ft_Address_Street_Number = 675,
ft_Address_Street_Type = 676,
ft_Address_City_Sector = 677,
ft_Address_County_Type = 678,
ft_Address_City_Type = 679,
ft_Address_Building_Type = 680,
ft_Date_of_Retirement = 681,
ft_Document_Status = 682
};

Field logical types determined by the constants of this enumeration:

ft_Document_Class_Code – document class code;


ft_Issuing_State_Code – issuing state code in compliance with the
3166-1 standard (ICAO doc 9303);
ft_Document_Number – document number;
ft_Date_of_Expiry – expiry date of the document;
ft_Date_of_Issue – issue date of the document;
ft_Date_of_Birth – date of birth;
ft_Place_of_Birth – place of birth;
ft_Personal_Number – personal number;
ft_Surname – surname;
ft_Given_Names – given name(s);
ft_Mothers_Name – mother's name;
ft_Nationality – nationality;
ft_Sex – sex;
ft_Height – height;
ft_Weight – weight;
ft_Eyes_Color – eyes color;
ft_Hair_Color – hair color;
ft_Address – address;
ft_Donor – organ donor indicator;

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 113


SDK tools

ft_Social_Security_Number – social security number;


ft_DL_Class – driving license classification code;
ft_DL_Endorsed – driving license endorsement code;
ft_DL_Restriction_Code – driving license restriction code;
ft_DL_Under_21_Date – date of 21st birthday;
ft_Authority – issuing authority;
ft_Surname_And_Given_Names – surname and given name(s);
ft_Nationality_Code – nationality code in compliance with ISO
3166-1 standard (ICAO doc 9303);
ft_Passport_Number – passport number (for visas);
ft_Invitation_Number – invitation number (for visas);
ft_Visa_ID – visa identification number;
ft_Visa_Class – visa class;
ft_Visa_SubClass – visa subclass;
ft_MRZ_String1 – not used;
ft_MRZ_String2 – not used;
ft_MRZ_String3 – not used;
ft_MRZ_Type – MRZ (Machine Readable Zone) type (ID-1 –
0, ID-2 – 1, ID-3 – 2);
ft_Optional_Data – optional data;
ft_Document_Class_Name – document class name;
ft_Issuing_State_Name – issuing state name;
ft_Place_of_Issue – place of issue;
ft_Document_Number_Checksum – checksum for document number (is calcu-
lated by the application)
ft_Date_of_Birth_Checksum – checksum for date of birth;
ft_Date_of_Expiry_Checksum – checksum for date of expiry;
ft_Personal_Number_Checksum – checksum for personal number;
ft_FinalChecksum – final checksum (for the whole MRZ);
ft_Passport_Number_Checksum – checksum for passport number (for visas);
ft_Invitation_Number_Checksum – checksum for invitation number (for visas);
ft_Visa_ID_Checksum – checksum for visa identification number;
ft_Surname_And_Given_Names_Checksum – checksum for surname + given name(s);
ft_Visa_Valid_Until_Checksum – checksum for visa expiry date;
ft_Other – other information;
ft_MRZ_Strings – MRZ lines;
ft_Name_Suffix – name suffix;
ft_Name_Prefix – name prefix;
ft_Date_of_Issue_Checksum – checksum for date of issue;
ft_Date_of_Issue_CheckDigit – check digit for date of issue (is taken from
the document MRZ);
ft_Document_Series – document series;
ft_RegCert_RegNumber – document serial number;
ft_RegCert_CarModel – vehicle model;

114 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

ft_RegCert_CarColor – vehicle color;


ft_RegCert_BodyNumber – vehicle identification number (VIN);
ft_RegCert_CarType – vehicle type;
ft_RegCert_MaxWeight – permissible maximum weight;
ft_Reg_Cert_Weight – vehicle weight;
ft_Address_Area – address: area;
ft_Address_State – address: state;
ft_Address_Building – address: building number;
ft_Address_House – address: house number;
ft_Address_Flat – address: flat number;
ft_Place_of_Registration – place of registration;
ft_Date_of_Registration – date of registration;
ft_Resident_From – resident from (date);
ft_Resident_Until – resident until (date);
ft_Authority_Code – issuing authority code (for passports of
the Russian Federation);
ft_Place_of_Birth_Area – place of birth: area;
ft_Place_of_Birth_StateCode – place of birth: state code;
ft_Address_Street – address: street;
ft_Address_City – address: city;
ft_Address_Jurisdiction_Code – address: jurisdiction code;
ft_Address_Postal_Code – address: postal code;
ft_Document_Number_CheckDigit – check digit for document number;
ft_Date_of_Birth_CheckDigit – check digit for date of birth;
ft_Date_of_Expiry_CheckDigit – check digit for document expiry date;
ft_Personal_Number_CheckDigit – check digit for personal number;
ft_FinalCheckDigit – final check digit (for the whole MRZ);
ft_Passport_Number_CheckDigit – check digit for passport number (for visas);
ft_Invitation_Number_CheckDigit – check digit for invitation number (for
visas);
ft_Visa_ID_CheckDigit – check digit for visa number;
ft_Surname_And_Given_Names_CheckDigit – check digit for surname and given
name(s);
ft_Visa_Valid_Until_CheckDigit – check digit for visa expiry date;
ft_Permit_DL_Class – permit type;
ft_Permit_Date_of_Expiry – permit expiry date;
ft_Permit_Identifier – permit identifier;
ft_Permit_Date_of_Issue – permit issue date;
ft_Permit_Restriction_Code – driving permit restriction code;
ft_Permit_Endorsed – driving permit endorsement code;
ft_Issue_Timestamp – a line used for document validation in
accordance with the database;
ft_Number_of_Duplicates – number of document duplicates;
ft_Medical_Indicator_Codes – medical indicator/code;

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 115


SDK tools

ft_Non_Resident_Indicator – indicator showing that the document


holder is a non-resident;
ft_Visa_Type – visa type;
ft_Visa_Valid_From – start date of the visa;
ft_Visa_Valid_Until – visa expiry date;
ft_Duration_of_Stay – duration of stay (in days) granted by the
visa;
ft_Number_of_Entries – number of entries granted by the visa;
ft_Day – date: day;
ft_Month – date: month;
ft_Year – date: year;
ft_Unique_Customer_Identifier – idendification number;
ft_Commercial_Vehicle_Codes – commercial vehicle code;
ft_AKA_Date_of_Birth – also known as: date of birth;
ft_AKA_Social_Security_Number – also known as: social security number;
ft_AKA_Surname – also known as: surname;
ft_AKA_Given_Names – also known as: given names;
ft_AKA_Name_Suffix – also known as: suffix name;
ft_AKA_Name_Prefix – also known as: prefix name;
ft_Mailing_Address_Street – mailing address: street;
ft_Mailing_Address_City – mailing address: city;
ft_Mailing_Address_Jurisdiction_Code – mailing address: jurisdiction code;
ft_Mailing_Address_Postal_Code – mailing address: postal code;
ft_Audit_Information – a number which is used for driving license
validation;
ft_Inventory_Number – inventory control number;
ft_Race_Ethnicity – race/ethnicity;
ft_Jurisdiction_Vehicle_Class – jurisdiction vehicle class;
ft_Jurisdiction_Endorsement_Code – jurisdiction endorsement code;
ft_Jurisdiction_Restriction_Code – jurisdiction restriction code;
ft_Family_Name – surname and (or) given name(s) at birth;
ft_Given_Names_RUS – given name(s) (Russian transcription);
ft_Visa_ID_RUS – visa ID (Russian transcription);
ft_Fathers_Name – father’s name/patronymic;
ft_Fathers_Name_RUS – father’s name/patronymic (Russian
transcription);
ft_Surname_And_Given_Names_RUS – surname and given name(s) (Russian
transcription);
ft_Place_Of_Birth_RUS – place of birth (Russian transcription);
ft_Authority_RUS – document issuing authority (Russian
transcription);
ft_Issuing_State_Code_Numeric – numeric issuing state code in compliance
with ISO 3166-1 standard (ICAO doc 9303);

116 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

ft_Nationality_Code_Numeric – numeric nationality code in compliance


with ISO 3166-1 standard (ICAO doc 9303);
ft_Engine_Power – vehicle engine power;
ft_Engine_Volume – vehicle engine capacity;
ft_Chassis_Number – vehicle chassis number;
ft_Engine_Number – vehicle engine number;
ft_Engine_Model – vehicle engine model;
ft_Vehicle_Category – vehicle category;
ft_Identity_Card_Number – identity card number;
ft_Control_No – control number;
ft_Parrent_s_Given_Names – parents' given names;
ft_Second_Surname – second surname;
ft_Middle_Name – second name;
ft_CurrentDate – reserved for internal use;
ft_FieldFromMRZ – reserved for internal use;
ft_RegCert_VIN – vehicle identification number;
ft_RegCert_VIN_CheckDigit – check digit for vehicle identification
number;
ft_RegCert_VIN_Checksum – checksum for vehicle identification
number;
ft_Line1_CheckDigit – check digit for the first MRZ line;
ft_Line2_CheckDigit – check digit for the second MRZ line;
ft_Line3_CheckDigit – check digit for the third MRZ line;
ft_Line1_Checksum – checksum for the first MRZ line;
ft_Line2_Checksum – checksum for the second MRZ line;
ft_Line3_Checksum – checksum for the third MRZ line;
ft_RegCert_RegNumber_CheckDigit – check digit for document serial number;
ft_RegCert_RegNumber_Checksum – check sum for document serial number;
ft_RegCert_Vehicle_ITS_Code – vehicle code according to ITS (Intelligent
Transportation Systems) ;
ft_Card_Access_Number – card access number for RFID chip;
ft_Marital_Status – marital status;
ft_Company_Name – company name;
ft_Special_Notes – special notes;
ft_Surname_of_Spose – surname of spouse;
ft_Tracking_Number – number for checking the document status;
ft_Booklet_Number – booklet number;
ft_Children – information on children;
ft_Copy – copy number;
ft_Serial_Number – serial number;
ft_Dossier_Number – dossier number;
ft_AKA_Surname_And_Given_Names – also known as: surname and given names;
ft_Territorial_Validity – territorial validity;
ft_MRZ_Strings_With_Correct_CheckSums – MRZ with correct checksums;

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 117


SDK tools

ft_DL_CDL_Restriction_Code – commercial driving license restriction


code;
ft_DL_Under_18_Date – date of 18th birthday;
ft_DL_Record_Created – date of record creation;
ft_DL_Duplicate_Date – date of duplicate creation;
ft_DL_Iss_Type – type of issued driving license;
ft_Military_Book_Number – military card number;
ft_Destination – destination;
ft_Blood_Group – blood group;
ft_Sequence_Number – sequence number;
ft_RegCert_BodyType – car body type;
ft_RegCert_CarMark – car make;
ft_Transaction_Number – transaction number;
ft_Age – age;
ft_Folio_Number – folio number;
ft_Voter_Key – voter's identification number;
ft_Address_Municipality – address: municipality;
ft_Address_Location – address: location;
ft_Section – section/sector;
ft_OCR_Number – OCR number;
ft_Federal_Elections – federal elections;
ft_Reference_Number – unique number;
ft_Visa_Number – visa number;
ft_Voter – voter;
ft_Previous_Type – type/number of the previous document;
ft_Status_Date_of_Expiry – status expiry date;
ft_Bancnote_Number – banknote number;
ft_CSC_Code – Customer Service Centre code;
ft_Artistic_Name – pseudonym;
ft_Academic_Title – academic title;
ft_Address_Country – address: country;
ft_Address_Zipcode – address: zip code;
ft_eID_Residence_Permit1 – data on permanent residence permit 1
(eID field);
ft_eID_Residence_Permit2 – data on permanent residence permit 2
(eID field);
ft_eID_PlaceOfBirth_Street – place of birth: street (eID field);
ft_eID_PlaceOfBirth_City – place of birth: city (eID field);
ft_eID_PlaceOfBirth_State – place of birth: state (eID field);
ft_eID_PlaceOfBirth_Country – place of birth: country (eID field);
ft_eID_PlaceOfBirth_Zipcode – place of birth: zip code (eID field);
ft_CDL_Class – commercial driving license class;
ft_DL_Under_19_Date – date of 19th birthday;
ft_Weight_pounds – weight (pounds);

118 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

ft_Limited_Duration_Document_Indicator – indicator of document limited duration;


ft_Endorsement_Expiration_Date – endorsement expiry date;
ft_Revision_Date – date of revision;
ft_Compliance_Type – type of compliance;
ft_Family_name_truncation – family name truncation;
ft_First_name_truncation – first name truncation;
ft_Middle_name_truncation – middle name truncation;
ft_Exam_Date – examination date;
ft_Organization – organization;
ft_Department – department;
ft_Pay_Grade – pay grade;
ft_Rank – rank/status/title;
ft_Benefits_Number – number that relates to benefit eligibility;
ft_Sponsor_Service – sponsor's service;
ft_Sponsor_Status – sponsor's military status;
ft_Sponsor – sponsor;
ft_Relationship – relationship;
ft_USCIS – alien registration number issued by the
U.S. Citizenship and Immigration Service;
ft_Category – category;
ft_Conditions – conditions;
ft_Identifier – identifier;
ft_Configuration – configuration;
ft_Discretionary_data – discretionary data;
ft_Line1_Optional_Data – optional data from MRZ Line 1;
ft_Line2_Optional_Data – optional data from MRZ Line 2;
ft_Line3_Optional_Data – optional data from MRZ Line 3;
ft_EQV_Code – equivalence value (security code);
ft_ALT_Code – ALT сode;
ft_Binary_Code – binary сode;
ft_Pseudo_Code – pseudo-code;
ft_Fee – fee;
ft_Stamp_Number – stamp number;
ft_SBH_SecurityOptions – parameters of biometric data protection;
ft_SBH_IntegrityOptions – parameters of biometric data integrity;
ft_Date_of_Creation – date of creation of biometric data record;
ft_Validity_Period – term of validity of biometric data record;
ft_Patron_Header_Version – version of header of biometric data format
owner;
ft_BDB_Type – type of biometric data record;
ft_Biometric_Type – type of biometric data;
ft_Biometric_Subtype – subtype of biometric data;
ft_Biometric_ProductID – identifier of biometric data;
ft_Biometric_Format_Owner – identifier of biometric data format owner;

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 119


SDK tools

ft_Biometric_Format_Type – biometric data format;


ft_Phone – phone number;
ft_Profession – document owner’s profession;
ft_Title – document owner’s title;
ft_Personal_Summary – document owner’s personal data summary;
ft_Other_Valid_ID – other valid identifier;
ft_Custody_Info – custody information;
ft_Other_Name – other name;
ft_Observations – observations;
ft_Tax – tax information;
ft_Date_of_Personalization – date of document personalization;
ft_Personalization_SN – serial number of personalization;
ft_OtherPerson_Name – other person's name;
ft_PersonToNotify_Date_of_Record – date of record entry on persons to notify in
case of emergency;
ft_PersonToNotify_Name – name of a person to notify in case of emer-
gency;
ft_PersonToNotify_Phone – phone number of a person to notify in case
of emergency;
ft_PersonToNotify_Address – address of a person to notify in case of emer-
gency;
ft_DS_Certificate_Issuer – textual information about the DS certificate
issuer;
ft_DS_Certificate_Subject – textual information about the document is-
suer;
ft_DS_Certificate_ValidFrom – start date of the DS certificate validity;
ft_DS_Certificate_ValidTo – expiration date of the DS certificate;
ft_VRC_DataObject_Entry – vehicle category/restrictions/conditions
from DG1 data group of eDL application;
ft_TypeApprovalNumber – type approval number;
ft_AdministrativeNumber – administrative number;
ft_DocumentDiscriminator – document discriminator;
ft_DataDiscriminator – data discriminator;
ft_ISO_Issuer_ID_Number – ISO issuer ID number;
ft_GNIB_Number – registration number issued by Garda
National Immigration Bureau;
ft_Dept_Number – department number;
ft_Telex_Code – telegraph code;
ft_Allergies – allergies;
ft_Sp_Code – Sp. code;
ft_Court_Code – code of restriction imposed by a court;
ft_Cty – county code;
ft_Sponsor_SSN – sponsor's social security number;

120 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

ft_DoD_Number – Department of Defense identification


number;
ft_MC_Novice_Date – expiry date of novice driver status;
ft_DUF_Number – DUF Number (a number that is assigned
when applying for residence in Norway);
ft_AGY – code of Philippine Land Transportation
Office Agency;
ft_PNR_Code – passenger name record (reservation code);
ft_From_Airport_Code – code of an airport of departure;
ft_To_Airport_Code – code of an airport of arrival;
ft_Flight_Number – flight number;
ft_Date_of_Flight – date of flight;
ft_Seat_Number – seat number;
ft_Date_of_Issue_Boarding_Pass – date of boarding pass issue;
ft_CCW_Until – expiration date of Concealed Carry
Weapon Permit;
ft_Reference_Number_Checksum – checksum for reference number;
ft_Reference_Number_CheckDigit – check digit for reference number;
ft_Room_Number – room number;
ft_Religion – religion;
ft_RemainderTerm – number of months to expiration date;
ft_Electronic_Ticket_Indicator – electronic ticket indicator;
ft_Compartment_Code – сompartment сode;
ft_CheckIn_Sequence_Number – сheck-in sequence number on a boarding
pass;
ft_Airline_Designator_of_boarding_pass_issuer – code of the airline which issued the
boarding pass;
ft_Airline_Numeric_Code – numeric airline code;
ft_Ticket_Number – ticket number;
ft_Frequent_Flyer_Airline_Designator – frequent flyer indicator;
ft_Frequent_Flyer_Number – frequent flyer number;
ft_Free_Baggage_Allowance – free baggage allowance;
ft_PDF417Codec – codec for PDF417;
ft_Identity_Card_Number_Checksum – checksum for identity card number;
ft_Identity_Card_Number_CheckDigit – check digit for identity card number;
ft_Veteran – veteran;
ft_DLClassCode_A1_From – DL class code A1 valid from;
ft_DLClassCode_A1_To – DL class code A1 valid to;
ft_DLClassCode_A1_Notes – DL class code A1 notes;
ft_DLClassCode_A_From – DL class code A valid from;
ft_DLClassCode_A_To – DL class code A valid to;
ft_DLClassCode_A_Notes – DL class code A notes;
ft_DLClassCode_B_From – DL class code B valid from;
ft_DLClassCode_B_To – DL class code B valid to;

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 121


SDK tools

ft_DLClassCode_B_Notes – DL class code B notes;


ft_DLClassCode_C1_From – DL class code C1 valid from;
ft_DLClassCode_C1_To – DL class code C1 valid to;
ft_DLClassCode_C1_Notes – DL class code C1 notes;
ft_DLClassCode_C_From – DL class code C valid from;
ft_DLClassCode_C_To – DL class code C valid to;
ft_DLClassCode_C_Notes – DL class code C notes;
ft_DLClassCode_D1_From – DL class code D1 valid from;
ft_DLClassCode_D1_To – DL class code D1 valid to;
ft_DLClassCode_D1_Notes – DL class code D1 notes;
ft_DLClassCode_D_From – DL class code D valid from;
ft_DLClassCode_D_To – DL class code D valid to;
ft_DLClassCode_D_Notes – DL class code D notes;
ft_DLClassCode_BE_From – DL class code BE valid from;
ft_DLClassCode_BE_To – DL class code BE valid to;
ft_DLClassCode_BE_Notes – DL class code BE notes;
ft_DLClassCode_C1E_From – DL class code C1E valid from;
ft_DLClassCode_C1E_To – DL class code C1E valid to;
ft_DLClassCode_C1E_Notes – DL class code C1E notes;
ft_DLClassCode_CE_From – DL class code CE valid from;
ft_DLClassCode_CE_To – DL class code CE valid to;
ft_DLClassCode_CE_Notes – DL class code CE notes;
ft_DLClassCode_D1E_From – DL class code D1E valid from;
ft_DLClassCode_D1E_To – DL class code D1E valid to;
ft_DLClassCode_D1E_Notes – DL class code D1E notes;
ft_DLClassCode_DE_From – DL class code DE valid from;
ft_DLClassCode_DE_To – DL class code DE valid to;
ft_DLClassCode_DE_Notes – DL class code DE notes;
ft_DLClassCode_M_From – DL class code M valid from;
ft_DLClassCode_M_To – DL class code M valid to;
ft_DLClassCode_M_Notes – DL class code M notes;
ft_DLClassCode_L_From – DL class code L valid from;
ft_DLClassCode_L_To – DL class code L valid to;
ft_DLClassCode_L_Notes – DL class code L notes;
ft_DLClassCode_T_From – DL class code T valid from;
ft_DLClassCode_T_To – DL class code T valid to;
ft_DLClassCode_T_Notes – DL class code T notes;
ft_DLClassCode_AM_From – DL class code AM valid from;
ft_DLClassCode_AM_To – DL class code AM valid to;
ft_DLClassCode_AM_Notes – DL class code AM notes;
ft_DLClassCode_A2_From – DL class code A2 valid from;
ft_DLClassCode_A2_To – DL class code A2 valid to;
ft_DLClassCode_A2_Notes – DL class code A2 notes;
ft_DLClassCode_B1_From – DL class code B1 valid from;

122 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

ft_DLClassCode_B1_To – DL class code B1 valid to;


ft_DLClassCode_B1_Notes – DL class code B1 notes;
ft_Surname_at_Birth – surname at birth;
ft_Civil_Status – сivil status;
ft_Number_of_Seats – number of seats;
ft_Number_of_Standing_Places – number of standing places;
ft_Max_Speed – maximum speed;
ft_Fuel_Type – fuel type;
ft_EC_Environmental_Type – vehicle environmental type;
ft_Power_Weight_Ratio – power–to–weight ratio;
ft_Max_Mass_of_Trailer_Braked – maximum weight of the trailer with brakes;
ft_Max_Mass_of_Trailer_Unbraked – maximum weight of the trailer without
brakes;
ft_Transmission_Type – transmission type;
ft_Trailer_Hitch – trailer hitch;
ft_Accompanied_by – accompanying person;
ft_Police_District – police district;
ft_First_Issue_Date – date of first issue;
ft_Payload_Capacity – payload capacity;
ft_Number_of_Axels – number of axels;
ft_Permissible_Axle_Load – permissible axle load;
ft_Precinct – precinct;
ft_Invited_by – invited by;
ft_Purpose_of_Entry – purpose of entry;
ft_Skin_Color – skin color;
ft_Complexion – complexion;
ft_Airport_From – airport of departure;
ft_Airport_To – airport of arrival;
ft_Airline_Name – airline name;
ft_Airline_Name_Frequent_Flyer – airline bonus program for regular passen-
gers;
ft_License_Number – license number;
ft_In_Tanks – in tanks;
ft_Exept_In_Tanks – except in tanks;
ft_Fast_Track – passenger using the Fast Track service in
the airport;
ft_Owner – owner;
ft_MRZ_Strings_ICAO_RFID – MRZ strings from ICAO RFID;
ft_Number_of_Card_Issuance – the number of times a card with this
number has been issued;
ft_Number_of_Card_Issuance_Checksum – number of card issuance checksum;
ft_Number_of_Card_Issuance_CheckDigit – number of card issuance check digit;
ft_Century_Date_of_Birth – century of birth;
ft_DLClassCode_A3_From – DL class code A3 valid from;

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 123


SDK tools

ft_DLClassCode_A3_To – DL class code A3 valid to;


ft_DLClassCode_A3_Notes – DL class code A3 notes;
ft_DLClassCode_C2_From – DL class code C2 valid from;
ft_DLClassCode_C2_To – DL class code C2 valid to;
ft_DLClassCode_C2_Notes – DL class code C2 notes;
ft_DLClassCode_B2_From – DL class code B2 valid from;
ft_DLClassCode_B2_To – DL class code B2 valid to;
ft_DLClassCode_B2_Notes – DL class code B2 notes;
ft_DLClassCode_D2_From – DL class code D2 valid from;
ft_DLClassCode_D2_To – DL class code D2 valid to;
ft_DLClassCode_D2_Notes – DL class code D2 notes;
ft_DLClassCode_B2E_From – DL class code B2E valid from;
ft_DLClassCode_B2E_To – DL class code B2E valid to;
ft_DLClassCode_B2E_Notes – DL class code B2E notes;
ft_DLClassCode_G_From – DL class code G valid from;
ft_DLClassCode_G_To – DL class code G valid to;
ft_DLClassCode_G_Notes – DL class code G notes;
ft_DLClassCode_J_From – DL class code J valid from;
ft_DLClassCode_J_To – DL class code J valid to;
ft_DLClassCode_J_Notes – DL class code J notes;
ft_DLClassCode_LC_From – DL class code LC valid from;
ft_DLClassCode_LC_To – DL class code LC valid to;
ft_DLClassCode_LC_Notes – DL class code LC notes;
ft_BankCardNumber – bank card number;
ft_BankCardValidThru – bank card expiry date;
ft_TaxNumber – tax number;
ft_HealthNumber – health insurance number;
ft_GrandfatherName – grandfather’s name;
ft_Selectee_Indicator – selectee’s indicator;
ft_Mother_Surname – mother’s surname;
ft_Mother_GivenName – mother’s given name;
ft_Father_Surname – father’s surname;
ft_Father_GivenName – father’s given name;
ft_Mother_DateOfBirth – mother’s date of birth;
ft_Father_DateOfBirth – father’s date of birth;
ft_Mother_PersonalNumber – mother’s personal number;
ft_Father_PersonalNumber – father’s personal number;
ft_Mother_PlaceOfBirth – mother’s place of birth;
ft_Father_PlaceOfBirth – father’s place of birth;
ft_Mother_CountryOfBirth – mother’s country of birth;
ft_Father_CountryOfBirth – father’s country of birth;
ft_Date_First_Renewal – first renewal date;
ft_Date_Second_Renewal – second renewal date;
ft_PlaceOfExamination – place of examination;

124 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

ft_ApplicationNumber – application number;


ft_VoucherNumber – voucher number;
ft_AuthorizationNumber – authorization number;
ft_Faculty – faculty;
ft_FormOfEducation – form of education;
ft_DNINumber – Documento Nacional de Identidad number;
ft_RetirementNumber – retirement number;
ft_ProfessionalIdNumber – professional ID number;
ft_Age_at_Issue – age at issue;
ft_Years_Since_Issue – years since issue;
ft_DLClassCode_BTP_From – DL class code BTP valid from;
ft_DLClassCode_BTP_Notes – DL class code BTP Notes;
ft_DLClassCode_BTP_To – DL class code BTP valid to;
ft_DLClassCode_C3_From – DL class code C3 valid from;
ft_DLClassCode_C3_Notes – DL class code C3 notes;
ft_DLClassCode_C3_To – DL class code C3 valid to;
ft_DLClassCode_E_From – DL class code E valid from;
ft_DLClassCode_E_Notes – DL class code E notes;
ft_DLClassCode_E_To – DL class code E valid to;
ft_DLClassCode_F_From – DL class code F valid from;
ft_DLClassCode_F_Notes – DL class code F notes;
ft_DLClassCode_F_To – DL class code F valid to;
ft_DLClassCode_FA_From – DL class code FA valid from;
ft_DLClassCode_FA_Notes – DL class code FA notes;
ft_DLClassCode_FA_To – DL class code FA valid to;
ft_DLClassCode_FA1_From – DL class code FA1 valid from;
ft_DLClassCode_FA1_Notes – DL class code FA1 notes;
ft_DLClassCode_FA1_To – DL class code FA1 valid to;
ft_DLClassCode_FB_From – DL class code FB valid from;
ft_DLClassCode_FB_Notes – DL class code FB notes;
ft_DLClassCode_FB_To – DL class code FB valid to;
ft_DLClassCode_G1_From – DL class code G1 valid from;
ft_DLClassCode_G1_Notes – DL class code G1 notes;
ft_DLClassCode_G1_To – DL class code G1 valid to;
ft_DLClassCode_H_From – DL class code H valid from;
ft_DLClassCode_H_Notes – DL class code H notes;
ft_DLClassCode_H_To – DL class code H valid to;
ft_DLClassCode_I_From – DL class code I valid from;
ft_DLClassCode_I_Notes – DL class code I notes;
ft_DLClassCode_I_To – DL class code I valid to;
ft_DLClassCode_K_From – DL class code K valid from;
ft_DLClassCode_K_Notes – DL class code K notes;
ft_DLClassCode_K_To – DL class code K valid to;
ft_DLClassCode_LK_From – DL class code LK valid from;

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 125


SDK tools

ft_DLClassCode_LK_Notes – DL class code LK notes;


ft_DLClassCode_LK_To – DL class code LK valid to;
ft_DLClassCode_N_From – DL class code N valid from;
ft_DLClassCode_N_Notes – DL class code N notes;
ft_DLClassCode_N_To – DL class code N valid to;
ft_DLClassCode_S_From – DL class code S valid from;
ft_DLClassCode_S_Notes – DL class code S notes;
ft_DLClassCode_S_To – DL class code S valid to;
ft_DLClassCode_TB_From – DL class code TB valid from;
ft_DLClassCode_TB_Notes – DL class code TB notes;
ft_DLClassCode_TB_To – DL class code TB valid to;
ft_DLClassCode_TM_From – DL class code TM valid from;
ft_DLClassCode_TM_Notes – DL class code TM notes;
ft_DLClassCode_TM_To – DL class code TM valid to;
ft_DLClassCode_TR_From – DL class code TR valid from;
ft_DLClassCode_TR_Notes – DL class code TR notes;
ft_DLClassCode_TR_To – DL class code TR valid to;
ft_DLClassCode_TV_From – DL class code TV valid from;
ft_DLClassCode_TV_Notes – DL class code TV notes;
ft_DLClassCode_TV_To – DL class code TV valid to;
ft_DLClassCode_V_From – DL class code V valid from;
ft_DLClassCode_V_Notes – DL class code V notes;
ft_DLClassCode_V_To – DL class code V valid to;
ft_DLClassCode_W_From – DL class code W valid from;
ft_DLClassCode_W_Notes – DL class code W notes;
ft_DLClassCode_W_To – DL class code W valid to;
ft_URL – URL;
ft_Caliber – caliber;
ft_Model – model;
ft_Make – make;
ft_NumberOfCylinders – number of cylinders;
ft_SurnameOfHusbandAfterRegistration – husband’s surname after registration;
ft_SurnameOfWifeAfterRegistration – wife’s surname after registration;
ft_DateOfBirthOfWife – wife’s date of birth;
ft_DateOfBirthOfHusband – husband’s date of birth;
ft_CitizenshipOfFirstPerson – citizenship of first person;
ft_CitizenshipOfSecondPerson – citizenship of second person;
ft_CVV – card verification value, a 3-digit number
used on bank cards;
ft_Date_of_Insurance_Expiry – date of insurance expiry;
ft_Mortgage_by – mortgage by;
ft_Old_Document_Number – old document number;
ft_Old_Date_of_Issue – old date of issue;
ft_Old_Place_of_Issue – old place of issue;

126 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

ft_DLClassCode_LR_From – DL class code LR valid from;


ft_DLClassCode_LR_To – DL class code LR valid to;
ft_DLClassCode_LR_Notes – DL class code LR notes;
ft_DLClassCode_MR_From – DL class code MR valid from;
ft_DLClassCode_MR_To – DL class code MR valid to;
ft_DLClassCode_MR_Notes – DL class code MR notes;
ft_DLClassCode_HR_From – DL class code HR valid from;
ft_DLClassCode_HR_To – DL class code HR valid to;
ft_DLClassCode_HR_Notes – DL class code HR notes;
ft_DLClassCode_HC_From – DL class code HC valid from;
ft_DLClassCode_HC_To – DL class code HC valid to;
ft_DLClassCode_HC_Notes – DL class code HC notes;
ft_DLClassCode_MC_From – DL class code MC valid from;
ft_DLClassCode_MC_To – DL class code MC valid to;
ft_DLClassCode_MC_Notes – DL class code MC notes;
ft_DLClassCode_RE_From – DL class code RE valid from;
ft_DLClassCode_RE_To – DL class code RE valid to;
ft_DLClassCode_RE_Notes – DL class code RE notes;
ft_DLClassCode_R_From – DL class code R valid from;
ft_DLClassCode_R_To – DL class code R valid to;
ft_DLClassCode_R_Notes – DL class code R notes;
ft_DLClassCode_CA_From – DL class code CA valid from;
ft_DLClassCode_CA_To – DL class code CA valid to;
ft_DLClassCode_CA_Notes – DL class code CA notes;
ft_Citizenship_Status – citizenship status;
ft_Military_Service_From – start date of military service;
ft_Military_Service_To – end date of military service;
ft_DLClassCode_NT_From – DL class code NT valid from;
ft_DLClassCode_NT_To – DL class code NT valid to;
ft_DLClassCode_NT_Notes – DL class code NT notes;
ft_DLClassCode_TN_From – DL class code TN valid from;
ft_DLClassCode_TN_To – DL class code TN valid to;
ft_DLClassCode_TN_Notes – DL class code TN notes;
ft_DLClassCode_D3_From – DL class code D3 valid from;
ft_DLClassCode_D3_To – DL class code D3 valid to;
ft_DLClassCode_D3_Notes – DL class code D3 notes;
ft_Alt_Date_Of_Expiry – alternative date of expiry;
ft_DLClassCode_CD_From – DL class code CD valid from;
ft_DLClassCode_CD_To – DL class code CD valid to;
ft_DLClassCode_CD_Notes – DL class code CD notes;
ft_Issuer_Identification_Number – issuer identification number (IIN);
ft_Payment_Period_From – start date of payment period;
ft_Payment_Period_To – end date of payment period;
ft_VaccinationCertificateIdentifier – vaccination certificate identifier;

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 127


SDK tools

ft_First_Name – first name;


ft_Date_of_Arrival – date of arrival;
ft_Second_Name - second name;
ft_Third_Name - third name;
ft_Fourth_Name - fourth name;
ft_Last_Name - last name;
ft_DLClassCode_RM_From - DL class code RM valid from;
ft_DLClassCode_RM_Notes - DL class code RM notes;
ft_DLClassCode_RM_To - DL class code RM valid to;
ft_DLClassCode_PW_From - DL class code PW valid from;
ft_DLClassCode_PW_Notes - DL class code PW notes;
ft_DLClassCode_PW_To - DL class code PW valid to;
ft_DLClassCode_EB_From - DL class code EB valid from
ft_DLClassCode_EB_Notes - DL class code EB notes;
ft_DLClassCode_EB_To - DL class code EB valid to;
ft_DLClassCode_EC_From - DL class code EC valid from
ft_DLClassCode_EC_Notes - DL class code EC notes;
ft_DLClassCode_EC_To - DL class code EC valid to;
ft_DLClassCode_EC1_From - DL class code EC1 valid from
ft_DLClassCode_EC1_Notes - DL class code EC1 notes;
ft_DLClassCode_EC1_To - DL class code EC1 valid to;
ft_Place_of_Birth_City - place of birth: city;
ft_Year_of_Birth - year of birth;
ft_Year_of_Expiry - year of expiry;
ft_First_Surname - first surname;
ft_Month_of_Birth - month of birth;
ft_Address_Floor_Number - floor number;
ft_Address_Entrance - entrance number;
ft_Address_Block_Number - block number;
ft_Address_Street_Number - street number;
ft_Address_Street_Type - street type;
ft_Address_City_Sector - city sector;
ft_Address_County_Type - county type;
ft_Address_City_Type - city type;
ft_Address_Building_Type - building type;
ft_Date_of_Retirement - date of retirement;
ft_Document_Status - document status.

5.4.12. eGraphicFieldType
eGraphicFieldType enumeration contains identifiers determining the logical type of
the graphic data obtained while reading document filling fields or bar-codes.

enum eGraphicFieldType
{

128 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

gf_Portrait = 201,
gf_Fingerprint = 202,
gf_Eye = 203,
gf_Signature = 204,
gf_BarCode = 205,
gf_Proof_Of_Citizenship = 206,
gf_Document_Front = 207,
gf_Document_Rear = 208,
gf_ColorDynamic = 209,
gf_GhostPortrait = 210,
gf_Stamp = 211,
gf_Portrait_Of_Child = 212,
gf_ContactChip = 213,
gf_Other = 250,
gf_Finger_LeftThumb = 300,
gf_Finger_LeftIndex = 301,
gf_Finger_LeftMiddle = 302,
gf_Finger_LeftRing = 303,
gf_Finger_LeftLittle = 304,
gf_Finger_RightThumb = 305,
gf_Finger_RightIndex = 306,
gf_Finger_RightMiddle = 307,
gf_Finger_RightRing = 308,
gf_Finger_RightLittle = 309
};

Fields logical types determined by the constants from this enumeration:


• gf_Portrait – photo of the document owner;
• gf_Fingerprint – fingerprint of the document owner;
• gf_Eye – iris of the document owner image;
• gf_Signature – signature of the document owner;
• gf_BarCode – bar-code image;
• gf_Proof_Of_Citizenship – image of the citizenship proving document;
• gf_Document_Front – document front page image;
• gf_Document_Rear – document rear page image;
• gf_ColorDynamic – color dynamic area in the document;
• gf_GhostPortrait – ghost portrait;
• gf_Stamp – stamp;
• gf_Portrait_Of_Child – photo of child;
• gf_ContactChip – contact сhip;
• gf_Other – other image type;
• gf_Finger_LeftThumb – fingerprint, left thumb;
• gf_Finger_LeftIndex – fingerprint, left index;
• gf_Finger_LeftMiddle – fingerprint, left middle;
• gf_Finger_LeftRing – fingerprint, left ring;
• gf_Finger_LeftLittle – fingerprint, left little;
• gf_Finger_RightThumb – fingerprint, right thumb;
• gf_Finger_RightIndex – fingerprint, right index;
• gf_Finger_RightMiddle – fingerprint, right middle;
• gf_Finger_RightRing – fingerprint, right ring;
• gf_Finger_RightLittle – fingerprint, right little.

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 129


SDK tools

5.4.13. eBarCodeType
eBarCodeType enumeration contains identifiers determining bar-codes type.
enum eBarCodeType
{
bct_Unknown = 0,
bct_Code128 = 1,
bct_Code39 = 2,
bct_EAN8 = 3,
bct_ITF = 4,
bct_PDF417 = 5,
bct_STF = 6,
bct_MTF = 7,
bct_IATA = 8,
bct_CODABAR = 9,
bct_UPCA = 10,
bct_CODE93 = 11,
bct_UPCE = 12,
bct_EAN13 = 13,
bct_QRCODE = 14,
bct_AZTEC = 15,
bct_DATAMATRIX = 16,
bct_ALL_1D = 17,
bct_CODE11 = 18,
bct_JABCODE = 19,
eBarCodeType_END
};
Bar-codes type determined by the constants:
• bct_Unknown – unknown type;
• bct_Code128 – one-dimensional bar-code, ISO 15417 (ANSI/AIM BC4-1999 Code 128);
• bct_Code39 – one-dimensional bar-code, ISO 16388 (ANSI/AIM BC1-1995 Code 39);
• bct_EAN8 – one-dimensional bar-code, EAN8, ISO 15418;
• bct_ITF – one-dimensional bar-code, Interleaved 2 of 5, ISO 16390 (ANSI/AIM
BC2-1995 Interleaved 2 of 5);
• bct_PDF417 – two-dimensional bar-code, ISO 15438 (AIM USS PDF417);
• bct_STF – one-dimensional bar-code, Standard 2 of 5 (Industrial);
• bct_MTF – one-dimensional bar-code, Matrix 2 of 5;
• bct_IATA – one-dimensional bar-code, IATA 2 of 5 (Airline);
• bct_CODABAR – one-dimensional bar-code, (ANSI/AIM BC3-1995, USS - Codabar);
• bct_UPCA – one-dimensional bar-code, UPC-A;
• bct_CODE93 – one-dimensional bar-code, (ANSI/AIM BC5-1995, USS - Code 93);
• bct_UPCE – one-dimensional bar-code, UPC-E;
• bct_EAN13 – one-dimensional bar-code, EAN13, ISO 15418;
• bct_QRCODE – two-dimensional QRCODE bar-code;
• bct_AZTEC – two-dimensional AZTEC bar-code;
• bct_DATAMATRIX – two-dimensional DATAMATRIX bar-code;
• bct_ALL_1D – type for internal use;
• bct_CODE11 – one-dimensional bar-code CODE11;
• bct_JABCODE – JAB code;
• eBarCodeType_END – for internal use.

130 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

5.4.14. eBarCodeResultCodes
eBarCodeResultCodes enumeration contains identifiers determining bar-codes data
reading result.

enum eBarCodeResultCodes
{
bcrc_NoErr = 0,
bcrc_NullPtrErr = –6001,
bcrc_BadArgErr = –6002,
bcrc_SizeErr = –6003,
bcrc_RangeErr = –6004,
bcrc_InternalErr = –6005,
bcrc_TryExceptErr = –6006,
bcrc_BarCodeNotFound = –6008,
bcrc_BarCodeDecodeErr = –6010,
bcrc_NoUserDLLFound = –6019,
bcrc_NoIPPDLLFound = –6020,
bcrc_IppExecErr = –6024,
bcrc_IppTryExceptErr = –6025,
bcrc_BARCODE_ERROR_Inputparam = –11001,
bcrc_BARCODE_ERROR_FInit = –11006,
bcrc_BARCODE_ERROR_NotLoadIpDecodedll = –11012,
bcrc_BARCODE_ERROR_InnerProblem = –11100,
bcrc_BARCODE_ERROR_Decode_1D_BadDecode = –11200,
bcrc_BARCODE_ERROR_FindRowOrColumn = –11201,
bcrc_BARCODE_ERROR_Find3X8_2D_X = –11202,
bcrc_BARCODE_ERROR_Find3X8_2D_Y = –11203,
bcrc_BARCODE_ERROR_2D_UgolMax = –11204,
bcrc_BARCODE_ERROR_INDEFINITELY_DECODED = –11210,
bcrc_BARCODE_ERROR_Dllnotinit = –11300,
bcrc_BARCODE_ERROR_IPDECODE_DLL_Try_Except = –11400,
bcrc_IPDECODE_ERROR_LARGEERRORS = –4503,
bcrc_IPDECODE_ERROR_FAULTCOLUMNS = –4504,
bcrc_IPDECODE_ERROR_FAULTROWS = –4505,
bcrc_IPDECODE_ERROR_INCORRECT_ERROR_LEVEL = –4511,
bcrc_IPDECODE_ERROR_LOADING_DEV_TABLE = –4512
};

Constant values:
• bcrc_NoErr – no error;

errors RegCodes.dll:
• bcrc_NullPtrErr – null pointer of input arg/param error;
• bcrc_BadArgErr – function arg/param is bad;
• bcrc_SizeErr – wrong value of data size;
• bcrc_RangeErr – bad values of any parameter range;
• bcrc_InternalErr – internal program error;
• bcrc_TryExceptErr – try-except process;
• bcrc_BarCodeNotFound – barcode detection error;
• bcrc_BarCodeDecodeErr – barcode decoding error;

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 131


SDK tools

• bcrc_NoUserDLLFound – “ImageProcess.dll” connection error;


• bcrc_NoIPPDLLFound – IPP Dll connection error;
• bcrc_IppExecErr – run-time error in IPP-function;
• bcrc_IppTryExceptErr – try-except execution in IPP-function;

errors ImagProcess.dll:
• bcrc_BARCODE_ERROR_Inputparam – input data error;
• bcrc_BARCODE_ERROR_FInit – initialization error;
• bcrc_BARCODE_ERROR_NotLoadIpDecodedll – “IpDecode.dll” connec-
tion error;
• bcrc_BARCODE_ERROR_InnerProblem – internal program error;
• bcrc_BARCODE_ERROR_Decode_1D_BadDecode – 1D-barcode decoding error;
• bcrc_BARCODE_ERROR_FindRowOrColumn – Row or Column count compu-
tational error (PDF417);
• bcrc_BARCODE_ERROR_Find3X8_2D_X – MinX computational error
(PDF417);
• bcrc_BARCODE_ERROR_Find3X8_2D_Y – MinY computational error
(PDF417);
• bcrc_BARCODE_ERROR_2D_UgolMax – invalid barcode angle (> 3 de-
gree);
• bcrc_BARCODE_ERROR_INDEFINITELY_DECODED – the result may contain decod-
ing errors;
• bcrc_BARCODE_ERROR_Dllnotinit – Dll initialization error;
• bcrc_BARCODE_ERROR_IPDECODE_DLL_Try_Except – try-except in IPDECODE-
function;

errors IPDecode.dll:
• bcrc_IPDECODE_ERROR_LARGEERRORS – too many invalid code words;
• bcrc_IPDECODE_ERROR_FAULTCOLUMNS – invalid number of columns;
• bcrc_IPDECODE_ERROR_FAULTROWS – invalid number of rows;
• bcrc_IPDECODE_ERROR_INCORRECT_ERROR_LEVEL – correction Level error;
• bcrc_IPDECODE_ERROR_LOADING_DEV_TABLE – loading “DevTable.bin”
error.

5.4.15. eBarCodeModuleType

eBarCodeModuleType enumeration contains identifiers determining bar-code module type.


enum eBarCodeModuleType
{
MODULETYPE_TEXT = 0,
MODULETYPE_BYTE = 1,
MODULETYPE_NUM = 2,
MODULETYPE_SHIFT = 3,

132 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools
MODULETYPE_ALL = 4,
};

Bar-code module type determined by values:


• MODULETYPE_TEXT – module contains text data;
• MODULETYPE_BYTE – module contains byte data;
• MODULETYPE_NUM – module contains numeric data;
• MODULETYPE_SHIFT – shifts in byte compaction mode (for PDF417);
• MODULETYPE_ALL – module contains any data.

5.4.16. eTestTextField

eTestTextField enumeration contains identifiers determining the validity of MRZ filling


field check result.

enum eTestTextField
{
tr_OK = 0x00000000,
tr_Process_Error = 0x00000001,
tr_Invalid_Checksum = 0x00000002,
tr_Syntax_Error = 0x00000004,
tr_Logic_Error = 0x00000008,
tr_SourcesComparison_Error = 0x00000010,
tr_FieldsComparison_LogicError = 0x00000020,
tr_UnknownStatus = 0x00000040,
tr_GlaresOnField = 0x00000080
};

Constant values:
• tr_OK – no filling errors;
• tr_Process_Error – check performance error;
• tr_Invalid_Checksum – invalid checksum. Used only for “check digit” fields
(for example, ft_Document_Number_CheckDigit).
The field for which checksum is calculated is deter-
mined by the corresponding type, i. e. for ft_Doc-
ument_Number_CheckDigit it will be field of
ft_Document_Number type;
• tr_Syntax_Error – syntax error (for example, unallowable symbol is
used);
• tr_Logic_Error – logic error (invalid field filling format, document
validity term is expired etc.);
• tr_SourcesComparison_Error – reserved for internal used;
• tr_FieldsComparison_LogicError – reserved for internal used;
• tr_UnknownStatus – reserved for internal used;
• tr_GlaresOnField – glares on field.

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 133


SDK tools

5.4.17. eMRZClassQuality
eMRZClassQuality enumeration contains identifiers determining the parameters
of document MRZ printing quality check.
enum eMRZClassQuality
{
mrz_CLASS_QUALITY_X = 21,
mrz_CLASS_QUALITY_Y = 22,
mrz_CLASS_QUALITY_Z = 23,
mrz_CLASS_QUALITY_CUSTOM = 24,
};

Setting the checks parameters is carried out for two different classes of printing quality ac-
cording to ISO 1831:1980 “Printing Specifications for Optical Character Recognition”:
• mrz_CLASS_QUALITY_X – checks parameters for printing quality class X;
• mrz_CLASS_QUALITY_Y – checks parameters for printing quality class Y;
• mrz_CLASS_QUALITY_Z – checks parameters for printing quality class Z;
• mrz_CLASS_QUALITY_CUSTOM – default check parameters.

5.4.18. eCheckResult
eCheckResult enumeration contains identifiers determining the result of a single docu-
ment security check.
enum eMRZCheckResult
{
ch_Check_Error = 0,
ch_Check_OK = 1,
ch_Check_WasNotDone = 2,
};

Constant values:
• ch_Check_Error – check not passed, the controlled parameter is not per-
mitted;
• ch_Check_OK – check passed, the controlled parameter is permitted;
• ch_Check_WasNotDone – check was not carried out.

5.4.19. ePhotoEmbedType
ePhotoEmbedType enumeration contains identificators of the photo insert process into
the document.
enum ePhotoEmbedType
{
PhotoEmbedType_AnyType = 0,
PhotoEmbedType_strPrinted = 1,
PhotoEmbedType_strSticked = 2
};

Constant values:
• PhotoEmbedType_AnyType – photo can be printed or pasted;
• PhotoEmbedType_strPrinted – photo is printed;
• PhotoEmbedType_strSticked – photo is pasted.

134 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

5.4.20. eCheckDiagnose
eCheckDiagnose enumeration contains identificators which determinate the result of the
text field comparasing from the different sources.
enum eCheckDiagnose
{
chd_Unknown = 0,
chd_Pass = 1,
chd_InvalidInputData = 2,
chd_InternalError = 3,
chd_ExceptionInModule = 4,
chd_UncertainVerification = 5,
chd_NecessaryImageNotFound = 7,
chd_PhotoSidesNotFound = 8,
chd_InvalidChecksum = 10,
chd_SyntaxError = 11,
chd_LogicError = 12,
chd_SourcesComparisonError = 13,
chd_FieldsComparisonLogicError = 14,
chd_InvalidFieldFormat = 15,
chd_TrueLuminiscenceError = 20,
chd_FalseLuminiscenceError = 21,
chd_FixedPatternError = 22,
chd_LowContrastInIRLight = 23,
chd_IncorrectBackgroundLight = 24,
chd_BackgroundComparisonError = 25,
chd_IncorrectTextColor = 26,
chd_PhotoFalseLuminiscence = 27,
chd_TooMuchShift = 28,
chd_ContactChipTypeMismatch = 29,
chd_FibersNotFound = 30,
chd_TooManyObjects = 31,
chd_SpecksInUV = 33,
chd_TooLowResolution = 34,
chd_InvisibleElementPresent = 40,
chd_VisibleElementAbsent = 41,
chd_ElementShouldBeColored = 42,
chd_ElementShouldBeGrayscale = 43,
chd_PhotoWhiteIRDontMatch = 44,
chd_UVDullPaper_MRZ = 50,
chd_FalseLuminiscenceInMRZ = 51,
chd_UVDullPaper_Photo = 52,
chd_UVDullPaper_Blank = 53,
chd_UVDullPaperError = 54,
chd_FalseLuminiscenceInBlank = 55,
chd_BadAreaInAxial = 60,
chd_FalseIPIParameters = 65,
chd_FieldPosCorrector_Highlight_IR = 80,
chd_FieldPosCorrector_GlaresInPhotoArea = 81;
chd_FieldPosCorrector_PhotoReplaced = 82;
chd_FieldPosCorrector_LandmarksCheckError = 83,
chd_FieldPosCorrector_FacePresenceCheckError = 84,
chd_FieldPosCorrector_FaceAbsenceCheckError = 85,
chd_OVI_IR_Invisible = 90,
chd_OVI_InsufficientArea = 91,
chd_OVI_ColorInvariable = 92,
chd_OVI_BadColor_Front = 93,
chd_OVI_BadColor_Side = 94,
chd_OVI_Wide_Color_Spread = 95,
chd_OVI_BadColor_Percent = 96,
chd_HologramElementAbsent = 100,
chd_Hologram_Side_Top_Images_Absent = 101,
chd_HologramElementPresent = 102,
chd_Hologram_Frames_IsAbsent = 103,
chd_Hologram_HoloField_IsAbsent = 104,
chd_PhotoPattern_Interrupted = 110,
chd_PhotoPattern_Shifted = 111,
chd_PhotoPattern_DifferentColors = 112,
chd_PhotoPattern_IR_Visible = 113,
chd_PhotoPattern_Not_Intersect = 114,
chd_PhotoSize_Is_Wrong = 115,
chd_PhotoPattern_InvalidColor = 116,
chd_PhotoPattern_Shifted_Vert = 117,
chd_PhotoPattern_PatternNotFound = 118,
chd_PhotoPattern_DifferentLinesThickness = 119,

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 135


SDK tools
chd_Photo_IsNot_Rectangle = 120,
chd_Photo_Corners_Is_Wrong = 121,
chd_DocumentIsCancelling = 122,
chd_TextColorShouldBeBlue = 130,
chd_TextColorShouldBeGreen = 131,
chd_TextColorShouldBeRed = 132,
chd_TextShouldBeBlack = 133,
chd_BarcodeWasReadWithErrors = 140,
chd_BarcodeDataFormatError = 141,
chd_BarcodeSizeParamsError = 142,
chd_NotAllBarcodesRead = 143,
chd_GlaresInBarcodeArea = 144,
chd_PortraitComparison_PortraitsDiffer = 150,
chd_PortraitComparison_NoServiceReply = 151,
chd_PortraitComparison_ServiceError = 152,
chd_PortraitComparison_NotEnoughImages = 153,
chd_PortraitComparison_NoLivePhoto = 154,
chd_PortraitComparison_NoServiceLicense = 155,
chd_PortraitComparison_NoPortraitDetected= 156,
chd_MobileImages_UnsuitableLightConditions = 160,
chd_MobileImages_WhiteUVNoDifference = 161,
chd_FingerprintsComparison_Mismatch = 170,
chd_HoloPhoto_FaceNotDetected = 180,
chd_HoloPhoto_FaceComparisonFailed = 181,
chd_HoloPhoto_GlareInCenterAbsent = 182,
chd_HoloPhoto_HoloElementShapeError = 183,
chd_HoloPhoto_AlgorithmStepsError = 184,
chd_HoloPhoto_HoloAreasNotLoaded = 185,
chd_HoloPhoto_FinishedByTimeout = 186,
chd_HoloPhoto_DocumentOutsideFrame = 187,
chd_Liveness_DepthCheckFailed = 190,
chd_Liveness_ScreenCaptureDetected = 191,
chd_Liveness_ElectronicDeviceDetected = 192,
chd_MrzQuality_WrongSymbolPosition = 200,
chd_MrzQuality_WrongBackground = 201,
chd_MrzQuality_WrongMrzWidth = 202,
chd_MrzQuality_WrongMrzHeight = 203,
chd_MrzQuality_WrongLinePosition = 204,
chd_MrzQuality_WrongFontType = 205,
chd_OCRQuality_TextPosition = 220,
chd_OCRQuality_InvalidFont = 221,
chd_OCRQuality_InvalidBackground = 222,
chd_LasInk_InvalidLinesFrequency = 230,
chd_DocLiveness_ElectronicDeviceDetected= 240,
chd_DocLiveness_InvalidBarcodeBackground= 241,
chd_DocLiveness_VirtualCameraDetected = 242,
chd_LastDiagnoseValue = 250
};
Constant values:
• chd_Unknown – check was not performed;
• chd_Pass – check was ok;
• chd_InvalidInputData – invalid input data;
• chd_InternalError – internal error in module;
• chd_ExceptionInModule – exception caught;
• chd_UncertainVerification – can't make reliable decision;
• chd_NecessaryImageNotFound – image in necessary light not found;
• chd_PhotoSidesNotFound – necessary side of photo not found;
• chd_InvalidChecksum –invalid checksum;
• chd_SyntaxError –syntactical error;
• chd_LogicError –logical error.
• chd_SourcesComparisonError – comparison was incorrect;
• chd_FieldsComparisonLogicError – logical error, e.g. the current date is less than issue
date;
• chd_InvalidFieldFormat – wrong field format;
• chd_TrueLuminiscenceError – element of the luminescense in the UV does not
meet the standard;

136 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

• chd_FalseLuminiscenceError – the presence of excess luminescence in UV;


• chd_FixedPatternError – pattern does not match the standard;
• chd_LowContrastInIRLight – low contrast of object in transmitted IR light;
• chd_IncorrectBackgroundLight – background of page is too light or has invalid color;
• chd_BackgroundComparisonError – background lightness of two pages is different;
• chd_IncorrectTextColor – text has incorrect color of luminescence in UV light;
• chd_PhotoFalseLuminiscence – invalid luminescence in photo area;
• chd_TooMuchShift – object is too shifted from standard coordinates;
• chd_ContactChipTypeMismatch – the contact chip type is not as expected;
• chd_FibersNotFound – no protective fibers were found in UV;
• chd_TooManyObjects – error finding fibers, too many objects;
• chd_SpecksInUV – speck or exposure in UV image;
• chd_TooLowResolution – resolution too low for fibers search;
• chd_InvisibleElementPresent – erroneous visibility of the element in IR;
• chd_VisibleElementAbsent – element is absent in IR;
• chd_ElementShouldBeColored – element should be in color;
• chd_ElementShouldBeGrayscale – element should be in grayscale;
• chd_PhotoWhiteIRDontMatch - IR image does not match the image in white light;
• chd_UVDullPaper_MRZ – glow paper in MRZ (UV dull paper check);
• chd_FalseLuminiscenceInMRZ – luminescence characters in MRZ;
• chd_UVDullPaper_Photo – glow in the field of photo paper (UV dull paper
check);
• chd_UVDullPaper_Blank – glow of the whole paper form (UV dull paper
check);
• chd_UVDullPaperError – glow of the document in UV (UV dull paper check);
• chd_FalseLuminiscenceInBlank – element of blank has luminescence;
• chd_BadAreaInAxial – violation of the retro-reflective protection;
• chd_FalseIPIParameters – invalid params for IPI check;
• chd_FieldPosCorrector_Highlight_IR – IR image too bright;
• chd_FieldPosCorrector_GlaresInPhotoArea - glares in photo area;
• chd_FieldPosCorrector_PhotoReplaced – the portrait was replaced;
• chd_FieldPosCorrector_LandmarksCheckError – facial landmarks (eyes) check error;
• chd_FieldPosCorrector_FacePresenceCheckError – no facial image found;
• chd_FieldPosCorrector_FaceAbsenceCheckError – a facial image is found;
• chd_OVI_IR_Invisible – OVI object is not visible in IR;
• chd_OVI_InsufficientArea – insufficient area of the object OVI;
• chd_OVI_ColorInvariable – OVI color of an object does not change;
• chd_OVI_BadColor_Front – impossible to determine the color of the AXIAL image;
• chd_OVI_BadColor_Side – impossible to determine the color of the WHITE im-
age;
• chd_OVI_Wide_Color_Spread – wide color spread;
• chd_OVI_BadColor_Percent – not enough color information;
• chd_HologramElementAbsent – hologram element absent;
• chd_Hologram_Side_Top_Images_Absent – there are no side or top images. Check can-
celled;
• chd_HologramElementPresent – hologram element present;
• chd_Hologram_Frames_IsAbsent frame with hologram not found;

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 137


SDK tools

• chd_Hologram_HoloField_IsAbsent field with hologram not found in descrip-


tion;
• chd_PhotoPattern_Interrupted – pattern is interrupted;
• chd_PhotoPattern_Shifted – some of the patterns are shifted relative to each
other;
• chd_PhotoPattern_DifferentColors – some parts of the pattern have different color;
• chd_PhotoPattern_IR_Visible – pattern visible in the infrared;
• chd_PhotoPattern_Not_Intersect – edge of the photo does not intersect with the pat-
tern. Check cancelled;
• chd_PhotoSize_Is_Wrong – size of the photo does not correspond to require-
ments;
• chd_PhotoPattern_InvalidColor – some parts of the pattern have invalid color;
• chd_PhotoPattern_Shifted_Vert– some patterns are relatively shifted;
• chd_PhotoPattern_PatternNotFound –not found Pattern. Check cancelled;
• chd_PhotoPattern_DifferentLinesThickness – different lines thickness;
• chd_Photo_IsNot_Rectangle – photo shape is not rectangular;
• chd_Photo_Corners_Is_Wrong – photo corners don't satisfy the requirements;
• chd_DocumentIsCancelling – for internal use;
• chd_TextColorShouldBeBlue – text color should be blue;
• chd_TextColorShouldBeGreen – text color should be green;
• chd_TextColorShouldBeRed – text color should be red;
• chd_TextShouldBeBlack – text should be black;
• chd_BarcodeWasReadWithErrors – barcode read with errors;
• chd_BarcodeDataFormatError – barcode data format error;
• chd_BarcodeSizeParamsError – barcode size parameters error;
• chd_NotAllBarcodesRead – not all barcodes read;
• chd_GlaresInBarcodeArea - glares in the barcode area;
• chd_PortraitComparison_PortraitsDiffer – portraits differ;
• chd_PortraitComparison_NoServiceReply – no reply from portrait comparison service;
• chd_PortraitComparison_ServiceError – portrait comparison service error;
• chd_PortraitComparison_NotEnoughImages – not enough images;
• chd_PortraitComparison_NoLivePhoto – no image from camera;
• chd_PortraitComparison_NoServiceLicense – no license on portrait comparison ser-
vice;
• chd_PortraitComparison_NoPortraitDetected – no portraits detected;
• chd_MobileImages_UnsuitableLightConditions – unsuitable light conditions;
• chd_MobileImages_WhiteUVNoDifference – no difference in visible and UV mobile im-
ages. Possible UV torch malfunction;
• chd_FingerprintsComparison_Mismatch – fingerprints comparison mismatch;
• chd_HoloPhoto_FaceNotDetected – face isn’t detected;
• chd_HoloPhoto_FaceComparisonFailed – face comparison failed;
• chd_HoloPhoto_GlareInCenterAbsent – glare in center absent;
• chd_HoloPhoto_HoloElementShapeError – hologram element shape error;
• chd_HoloPhoto_AlgorithmStepsError – algorithm steps error;
• chd_HoloPhoto_HoloAreasNotLoaded – hologram areas not loaded;
• chd_HoloPhoto_FinishedByTimeout – hologram check finished by time out;

138 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

• chd_HoloPhoto_DocumentOutsideFrame – document is not within image frame;


• chd_Liveness_DepthCheckFailed – liveness depth check failed;
• chd_Liveness_ScreenCaptureDetected – document capture from the screen is detected;
• chd_Liveness_ElectronicDeviceDetected – document capture from another device is de-
tected;
• chd_MrzQuality_WrongSymbolPosition – incorrect MRZ area dimensions;
• chd_MrzQuality_WrongBackground – signs of MRZ area editing detected;
• chd_MrzQuality_WrongMrzWidth – incorrect MRZ area width;
• chd_MrzQuality_WrongMrzHeight – incorrect MRZ area height;
• chd_MrzQuality_WrongLinePosition – incorrect distance between the lines of the MRZ
area;
• chd_MrzQuality_WrongFontType – incorrect font type;
• chd_OCRQuality_TextPosition – incorrect text data position;
• chd_OCRQuality_InvalidFont – incorrect text data font;
• chd_OCRQuality_InvalidBackground – signs of OCR area editing detected;
• chd_LasInk_InvalidLinesFrequency – invalid LASINK lines frequency (learn more about
LASINK);
• chd_DocLiveness_ElectronicDeviceDetected – traces of an electronic device were found
in the image;
• chd_DocLiveness_InvalidBarcodeBackground – invalid barcode background;
• chd_DocLiveness_VirtualCameraDetected – virtual camera detected;
• chd_LastDiagnoseValue – for internal use.

5.4.21. eRPRM_PostCalbackAction
eRPRM_PostCalbackAction enumeration contains identifiers determining the variants
of continuation of document filling fields reading after the return from the callback-func-
tion in which candidates for scanned document type recognition were passed to the user
application.

enum eRPRM_PostCalbackAction
{
RPRM_PostCalbackAction_Continue = 0,
RPRM_PostCalbackAction_Cancel = 1,
RPRM_PostCalbackAction_ProcessCandidate = 2
};

Constant values:
• RPRM_PostCalbackAction_Continue – continue reading data from the doc-
ument which is determined by the
first element from the list;
• RPRM_PostCalbackAction_Cancel – cancel the further operations that re-
quire document type determining;
• RPRM_PostCalbackAction_ProcessCandidate – continue reading data from the
document which is determined by

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 139


SDK tools

the element from the list of candi-


dates with index contained in
PostActionParameter param-
eter of ResultReceivingFunc
callback-function.

5.4.22. eRPRM_RCTP_Result_RecType
eRPRM_RCTP_Result_RecType enumeration contains identifiers determining the result
of document type determining.

enum eRPRM_RCTP_Result_RecType
{
RPRM_RCTP_Result_Ok = 0,
RPRM_RCTP_Result_RecognClassConflict = 14,
RPRM_RCTP_Result_RecognClassUnknown = 15,
RPRM_RCTP_Result_Need_Other_Image = 29
};

Constant values:
• RPRM_RCTP_Result_Ok Document type is determined and the first element of the
list of candidates for document type recognition contains the result;
• RPRM_RCTP_Result_RecognClassConflict Document type is not determined
and the user application must select one of the candidates;
• RPRM_RCTP_Result_RecognClassUnknown
Document type is not determined and further data reading is impossible;
• RPRM_RCTP_Result_Need_Other_Image
Additional images required to complete document type recognition.

5.4.23. eRFID_Presence
eRFID_Presence enumeration contains identifiers determining the presence and the lo-
cation of a RFID-chip in the document of a definite type.
enum eRFID_Presence
{
rfpNone = 0,
rfpMainPage = 1,
rfpBackPage = 2,
};
Constant values:
• rfpNone – no RFID-chip in the document;
• rfpMainPage – RFID-chip is located in holder’s data page;
• rfpBackPage – RFID-chip is located in the back leaf of the document.

5.4.24. eRPRM_Authenticity
eRPRM_Authenticity enumeration contains identifiers determining the possibility of
performing different authenticity control procedures using the images for definite lighting
schemes.
enum eRPRM_Authenticity
{

140 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

RPRM_Authenticity_None = 0x00000000,
RPRM_Authenticity_UV_Luminescence = 0x00000001,
RPRM_Authenticity_IR_B900 = 0x00000002,
RPRM_Authenticity_Image_Pattern = 0x00000004,
RPRM_Authenticity_Axial_Protection = 0x00000008,
RPRM_Authenticity_UV_Fibers = 0x00000010,
RPRM_Authenticity_IR_Visibility = 0x00000020,
RPRM_Authenticity_OCRSecurityText = 0x00000040,
RPRM_Authenticity_IPI = 0x00000080,
RPRM_Authenticity_IR_Photo = 0x00000100,
RPRM_Authenticity_Photo_Embed_Type = 0x00000200,
RPRM_Authenticity_OVI = 0x00000400,
RPRM_Authenticity_IR_Luminescence = 0x00000800,
RPRM_Authenticity_Holograms = 0x00001000,
RPRM_Authenticity_Photo_Area = 0x00002000,
RPRM_Authenticity_UV_Background = 0x00004000,
RPRM_Authenticity_Portrait_Comparison = 0x00008000,
RPRM_Authenticity_BarcodeFormatCheck = 0x00010000,
RPRM_Authenticity_Kinegram = 0x00020000,
RPRM_Authenticity_Letter_Screen = 0x00040000,
RPRM_Authenticity_Holograms_Detection = 0x00080000,
RPRM_Authenticity_Fingerprint_Comparison = 0x00100000,
RPRM_Authenticity_Liveness = 0x00200000,
RPRM_Authenticity_Ocr = 0x00400000,
RPRM_Authenticity_Mrz = 0x00800000,
RPRM_Authenticity_StatusOnly = 0x80000000,
RPRM_Authenticity_UV = RPRM_Authenticity_UV_
Luminescence| RPRM_Authenticity_Image_Pattern | RPRM_Authenticity_
UV_Fibers,
};

Constant values:
• RPRM_Authenticity_None – no authenticity control procedure;
• RPRM_Authenticity_UV_Luminescence – UV luminescence control of document
material;

In the production of most documents, manufacturers use materials that do not luminesce in UV
light, unlike regular paper. Moreover, many adhesive substances have luminescent properties.
This authenticity check is aimed at detecting forged documents, which were made using paper.
It checks the entire document page as well as the MRZ area separately. For documents where
the holder's photo is not luminescent, the photo area is also checked to detect photo
substitution. In addition, each of the MRZ symbols is analyzed in order to detect the presence of
adhesive residues. This check is used to identify fraudulent documents, in which separate
characters have been replaced.

• RPRM_Authenticity_IR_B900 – control of MRZ contrast in IR light


scheme;

In accordance with ICAO requirements, MRZ characters shall have a certain contrast in IR
light. This authenticity check controls the compliance with these requirements. It checks each

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 141


SDK tools

character, thus helping to identify cases of alteration of MRZ parts, such as dates and check
digits.

• RPRM_Authenticity_Image_Pattern – control of the presence of an image


pattern of a specified color, shape
and brightness;

As protection against counterfeiting, most documents have unique patterns, elements of the
document sheet or images on the laminate, which can appear or change their shape in
different types of light. This authenticity check compares the shape, size, color and location of
such objects (patterns) with the reference ones. The check is performed in white, IR and UV
light. This check may also control OVI objects, which change their color depending on
illumination conditions. Some documents have the holder's personal data printed in special ink
luminescent in UV light. In such documents, the color of the luminescence and its presence for
each of the fields is checked. As a rule, one and the same security feature is checked
separately on the document sheet and on the photo in order to detect partial forgery. For some
documents, unique pattern verification algorithms are used, which are aimed at detecting
forgeries using solely a document image in white light.

• RPRM_Authenticity_Axial_Protection – authenticity control using images


obtained in white coaxial light
scheme;

This authenticity check is used for the documents that are produced using a special laminate
film that breaks when trying to separate it from the document. To visualize this type of
protection, a special illumination scheme is used, in which the angle of observation and the
angle of illumination coincide. In those document parts where the laminate has been peeled off,
dark areas appear. This authenticity check detects such areas on documents.

• RPRM_Authenticity_UV_Fibers – UV luminescence control of protection


fibers;

In the process of document production, special flexible fibers are added to the paper mixture.
These fibers can be both visible and invisible in white light and have luminescent properties in
UV light. The number of fibers and their locations are unique for each document sample, but
the color of luminescence and physical sizes remain constant within one document type. This
authenticity check searches for fibers of a specified color and assessing their shape and size.
Objects that imitate fibers are also controlled: if they are detected, the user receives a
corresponding notification.

• RPRM_Authenticity_IR_Visibility – visibility control of blank elements


and personal data using images
obtained in IR light scheme;

142 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

Elements of the document page, holder's photo or personal data can be both transparent
(invisible) and opaque (visible), or partially visible in IR light. In forged documents, these
requirements may not be met. This authenticity check analyzes the contrast of all these
elements in IR light. Special attention is paid to the photo. In some documents (more often on a
polycarbonate base), the photo in IR light completely matches the photo in white light ‒ this is
also controlled by this check. In the documents, where the holder's photo is partially visible,
those parts of the photo that shall be visible according to the results of image statistical
analysis (for example, black hair or clothes) are checked. In addition, in some documents, the
outlines of the images in white and IR light are checked, which helps to identify cases where a
fake photo has been applied over the original one.

• RPRM_Authenticity_OCRSecurityText – OCR of the text field in UV light and its


comparison with other text sources;

In certain documents, some text data are duplicated in UV light. This authenticity check reads
and performs a cross-comparison of these data. In addition, the color of UV-luminescence is
checked. Besides, in certain documents, certain fields are not black, but blue, red, or other
colors. These properties are also controlled by this authenticity check.

• RPRM_Authenticity_IPI – visualization of invisible personal


information;

This authenticity check is used to visualize the personal data that were applied on the holder's
photo during the personalization of the document. As a rule, it is either the document number
or the holder's name/surname. If these data are missing, it is a sign of forgery.

• RPRM_Authenticity_IR_Photo – reserved for internal use;


• RPRM_Authenticity_Photo_Embed_Type – control of photo embedding type;

The description of each document included in the document template database contains
information about the method of embedding the holder's image: affixed or printed. If the photo
has been glued to the document where it should have been printed, this authenticity check will
detect the boundaries of the glued photo and will notify the user of this.

• RPRM_Authenticity_OVI – OVI authenticity check;


• RPRM_Authenticity_IR_Luminescence – reserved for internal use;
• RPRM_Authenticity_Holograms – hologram control based on a static
image;

This check can be performed on a static image, where only the presence of holograms is
controlled.

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 143


SDK tools

• RPRM_Authenticity_Holograms_Detection – hologram control based on a


series of frames;

In this case the check is performed on a series of frames received from a mobile device. It
verifies the presence of holographic effect and, for some documents, verifies the shape of the
hologram image.

• RPRM_Authenticity_Photo_Area – control of the photo in Russian


internal passports;

It is a special check intended to protect the photo in Russian internal passports having an
ornament along its borders from being substituted. It checks the shape, color and width of the
strokes of this ornament. In addition, the absence of gaps along the borders of the photo is
checked, as well as the location of ornament parts in the photo and on the document page -
there shall be no misalignment.

• RPRM_Authenticity_UV_Background – reserved for internal use;


• RPRM_Authenticity_Portrait_Comparison – portrait comparison;

This check compares the holder's photos taken from the document data page in white light and
from the RFID chip. If the faces do not match, a corresponding error notification is given, and
both images of the face are displayed in the results on the screen for visual control.

• RPRM_Authenticity_BarcodeFormatCheck - barcode format check;

Two types of this check are implemented. Since the document description specifies the number
and type of barcodes, it checks that all barcodes from the description have been found and
successfully read. The second type is a more detailed analysis of the result of decoding two-
dimensional barcodes. Within one document type, the number of rows and columns of a two-
dimensional barcode varies within a small range. The barcode is considered fake if the number
of rows and columns does not correspond to statistically valid values. The decoded data are
also analyzed. If, for some reason, all the required text and/or graphic fields could not be
extracted from these data, an error message will be generated.

• RPRM_Authenticity_Kinegram - Kinegram authenticity check;

Some documents have an additional security element in the form of a hologram produced in
accordance with the Kinegram technology. This check is intended to compare the hologram
with the reference value using a special algorithm and determine whether this hologram is
authentic or not.

• RPRM_Authenticity_Letter_Screen – LetterScreen authenticity check;

144 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

Some documents have an additional holder's photo, formed by lines with personal data in
accordance with the LetterScreen technology. This check is intended to control the parameters
used to form the current additional holder's photo.

• RPRM_Authenticity_Fingerprint_Comparison – fingerprint comparison;

This check is possible only if special equipment for fingerprint scanning is used. If it is
available, the fingerprints are scanned and compared with those stored in the RFID chip.

• RPRM_Authenticity_Liveness – liveness check;

It is a special authenticity check carried out on mobile devices. It is used to ensure that the
document verification is performed by the document holder rather than using his or her photo.
A special algorithm reads the parameters of the face at different distances, evaluates its
geometric changes and distortions, compares it with the facial image from the document, and
based on all this information provides the final decision.

• RPRM_Authenticity_Ocr - quality control of personal data printing by printing


position;

• RPRM_Authenticity_Mrz – checks the correctness of the size of the MRZ lines,


their relative position, absence of signs that the image was edited;

• RPRM_Authenticity_StatusOnly – status-only authenticity check.

This is the authenticity check that returns only the status of the document verification without
any details.

5.4.25. eRPRM_SecurityFeatureType
eRPRM_SecurityFeatureType enumeration contains identifiers determining types of
elements for a document authenticity checking.

enum eRPRM_SecurityFeatureType
{
SecurityFeatureType_Blank = 0,
SecurityFeatureType_Fill = 1,
SecurityFeatureType_Photo = 2,
SecurityFeatureType_MRZ = 3,
SecurityFeatureType_FalseLuminescence = 4,
SecurityFeatureType_HoloSimple = 5,
SecurityFeatureType_HoloVerifyStatic = 6,
SecurityFeatureType_HoloVerifyMultiStatic = 7,
SecurityFeatureType_HoloVerifyDinamic = 8,
SecurityFeatureType_Pattern_NotInterrupted = 9,
SecurityFeatureType_Pattern_NotShifted = 10,
SecurityFeatureType_Pattern_SameColors = 11,
SecurityFeatureType_Pattern_IRInvisible = 12,
SecurityFeatureType_PhotoSize_Check = 13,
SecurityFeatureType_Portrait_Comparison_vsGhost = 14,
SecurityFeatureType_Portrait_Comparison_vsRFID = 15,
SecurityFeatureType_Portrait_Comparison_vsVisual = 16,
SecurityFeatureType_Barcode = 17,

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 145


SDK tools
SecurityFeatureType_Pattern_DifferentLinesThicknes = 18,
SecurityFeatureType_Portrait_Comparison_vsCamera = 19,
SecurityFeatureType_Portrait_Comparison_RFIDvsCamera = 20,
SecurityFeatureType_GhostPhoto = 21,
SecurityFeatureType_ClearGhostPhoto = 22,
SecurityFeatureType_InvisibleObject = 23,
SecurityFeatureType_LowContrastObject = 24,
SecurityFeatureType_Photo_Color = 25,
SecurityFeatureType_Photo_Shape = 26,
SecurityFeatureType_Photo_Corners = 27,
SecurityFeatureType_OCR = 28,
SecurityFeatureType_Portrait_Comparison_ExtvsVisual = 29,
SecurityFeatureType_Portrait_Comparison_ExtvsRFID = 30,
SecurityFeatureType_Portrait_Comparison_ExtvsLive = 31,
SecurityFeatureType_Liveness_Depth = 32,
SecurityFeatureType_Microtext = 33,
SecurityFeatureType_FluorescentObject = 34,
SecurityFeatureType_LandmarksCheck = 35,
SecurityFeatureType_FacePresence = 36,
SecurityFeatureType_FaceAbsence = 38,
SecurityFeatureType_LivenessScreenCapture = 39,
SecurityFeatureType_LivenessElectronicDevice = 40,
SecurityFeatureType_LivenessOVI = 41,
SecurityFeatureType_BarcodeSizeCheck = 42,
SecurityFeatureType_LasInk = 43,
SecurityFeatureType_DocLiveness_ElectronicDevice = 44,
SecurityFeatureType_Liveness_BarcodeBackground = 45,
SecurityFeatureType_Portrait_Comparison_vsBarcode = 46,
SecurityFeatureType_Portrait_Comparison_RFIDvsBarcode = 47,
SecurityFeatureType_Portrait_Comparison_ExtvsBarcode = 48,
SecurityFeatureType_Portrait_Comparison_BarcodevsCamera= 49,
SecurityFeatureType_CheckDigitalSignature = 50,
SecurityFeatureType_ContactChipClassification = 51
};

Constant values:
• SecurityFeatureType_Blank – blank element;
• SecurityFeatureType_Fill – personalization element;
• SecurityFeatureType_Photo – photo;
• SecurityFeatureType_MRZ – MRZ;
• SecurityFeatureType_FalseLuminescence – photo surrounding area;
• SecurityFeatureType_HoloSimple - reserved for internal use;
• SecurityFeatureType_HoloVerifyStatic - reserved for internal use;
• SecurityFeatureType_HoloVerifyMultiStatic - reserved for internal use;
• SecurityFeatureType_HoloVerifyDinamic - reserved for internal use;
• SecurityFeatureType_Pattern_NotInterrupted - reserved for internal use;
• SecurityFeatureType_Pattern_NotShifted - reserved for internal use;
• SecurityFeatureType_Patter_SameColors - reserved for internal use;
• SecurityFeatureType_Pattern_IRInvisible - reserved for internal use;
• SecurityFeatureType_PhotoSize_Check - reserved for internal use;
• SecurityFeatureType_Portrait_Comparison_vsGhost – main portrait
and ghost portrait comparison;
• SecurityFeatureType_Portrait_Comparison_vsRFID – main portrait and
RFID portrait comparison;
• SecurityFeatureType_Portrait_Comparison_vsVisual - main portrait
and other page portrait compari-
son;

146 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

• SecurityFeatureType_Barcode - barcode format check;


• SecurityFeatureType_Pattern_DifferentLinesThickness - different
lines thickness;
• SecurityFeatureType_Portrait_Comparison_vsCamera - portrait
comparison with image from cam-
era;
• SecurityFeatureType_Portrait_Comparison_RFIDvsCamera -
portrait comparison with image
from RFID;
• SecurityFeatureType_GhostPhoto - ghost photo;
• SecurityFeatureType_ClearGhostPhoto - clear ghost photo;
• SecurityFeatureType_InvisibleObject - invisible object;
• SecurityFeatureType_LowContrastObject - low contrast object;
• SecurityFeatureType_Photo_Color - photo color type;
• SecurityFeatureType_Photo_Shape - photo squareness check;
• SecurityFeatureType_Photo_Corners - photo corners shape;
• SecurityFeatureType_OCR - text data printing quality;
• SecurityFeatureType_Portrait_Comparison_ExtvsVisual - portrait
comparison with external image;
• SecurityFeatureType_Portrait_Comparison_ExtvsRFID - portrait
comparison of external image with
RFID;
• SecurityFeatureType_Portrait_Comparison_ExtvsLive - portrait
comparison of external image with
image from camera;
• SecurityFeatureType_Liveness_Depth liveness depth check;
• SecurityFeatureType_Microtext microtext check;
• SecurityFeatureType_FluorescentObject fluorescent objects (UV with differ-
ent wavelength ranges) check;
• SecurityFeatureType_LandmarksCheck checking the location of the eyes,
nose, and corners of the lips;
• SecurityFeatureType_FacePresence checking the presence of a face in
the given area;
• SecurityFeatureType_FaceAbsence checking the absence of a face in
the given area;
• SecurityFeatureType_LivenessScreenCapture сhecking the use of a photo of
the document on a device instead
of the original document;
• SecurityFeatureType_LivenessElectronicDevice checking whether the de-
vice from which the document was
captured is in the frame;
• SecurityFeatureType_LivenessOVI OVI element verification;

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 147


SDK tools

• SecurityFeatureType_BarcodeSizeCheck barcode size check;


• SecurityFeatureType_LasInk LASINK security feature check
(learn more about LASINK);
• SecurityFeatureType_DocLiveness_ElectronicDevice checking for the
presence of traces of an electronic
device;
• SecurityFeatureType_Liveness_BarcodeBackground checking the barcode
background;
• SecurityFeatureType_Portrait_Comparison_vsBarcode comparing the
VIZ portrait image with the photo
obtained from the barcode;
• SecurityFeatureType_Portrait_Comparison_RFIDvsBarcode comparing
the photo obtained from the bar-
code with the photo obtained from
RFID;
• SecurityFeatureType_Portrait_Comparison_ExtvsBarcode comparing
the photo obtained from the bar-
code with an external photo;
• SecurityFeatureType_Portrait_Comparison_BarcodevsCamera
comparing the photo obtained
from the barcode with the photo
from a camera;
• SecurityFeatureType_CheckDigitalSignature digital signature сheck;
• SecurityFeatureType_ContactChipClassification contact сhip check.

5.4.26. eSecurityCriticalFlag
eSecurityCriticalFlag enumeration contains identifiers determining the critical fea-
ture of the security element.

enum eSecurityCriticalFlag
{
CheckFeatureNotCritical = 0,
CheckFeatureIsCritical = 1
};

Constant values:
• CheckFeatureNotCritical – security element could not be present in a valid doc-
ument;
• CheckFeatureIsCritical – security element must be present in a valid docu-
ment.

148 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

5.4.27. eIR_Visibility_Flag
eIR_Visibility_Flag enumeration contains a flag of visibility of the security element in
IR range.

enum eIR_Visibility_Flag
{
ElementInvisible = 0,
ElementVisible = 1 ,
ElementColored = 2,
ElementGrayscale = 4,
};
Constant values:
• ElementInvisible – invisible;
• ElementVisible – visible;
• ElementColored – colored;
• ElementGrayscale – grayscale.

5.4.28. eLED_Color
eLED_Color enumeration contains identifiers determining the color of the document
reader indicators.

enum eLED_Color
{
ledNone = 0,
ledRed = 1,
ledGreen = 2,
ledOrange = 3,
};

Constant values:
• ledNone – indicator is off;
• ledRed – red color;
• ledGreen – green color;
• ledOrange – orange color.

5.4.29. eFDS_Light
eFDS_Light enumeration contains identifiers determining the type of document security
the image for which must be displayed in the main IRS information panel.

enum eFDS_Light
{
fdsWhite = 1,
fdsUV365 = 2,
fdsIR = 4,
fdsMaterial = 6
};

Constant values:

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 149


SDK tools

• fdsWhite – polygraphic protection;


• fdsUV365 – protection in the UV band (365 nm);
• fdsIR – protection in the IR band (900 nm);
• fdsMaterial – material protection.

5.4.30. eFDS_Panel
eFDS_Panel enumeration contains identifiers determining the IRS panel type.

enum eFDS_Panel
{
FDS_Panel_Main = 0,
FDS_Panel_Countries = 1,
FDS_Panel_Documents = 2,
FDS_Panel_Caption = 3,
FDS_Panel_Description = 4,
FDS_Panel_Illumination = 5,
FDS_Panel_PageType = 6,
};

Constant values:
• FDS_Panel_Main – panel with document image;
• FDS_Panel_Countries – panel with the list of countries;
• FDS_Panel_Documents – panel with the list of documents of a chosen country;
• FDS_Panel_Caption – information panel;
• FDS_Panel_Description – panel with general description of the document;
• FDS_Panel_Illumination – panel with buttons corresponding to different types of
protection;
• FDS_Panel_PageType – panel with buttons activating images for different
pages of the document.

5.4.31. eFDS_Panel_Position
eFDS_Panel_Position enumeration contains identifiers determining the position and
the visibility of the IRS panel.

enum eFDS_Panel_Position
{
FDS_Panel_Hide = 0,
FDS_Panel_Show = 1,
FDS_Panel_ShowTop = 2,
FDS_Panel_ShowBottom = 3,
};

150 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

Constant values:
• FDS_Panel_Hide – hide panel;
• FDS_Panel_Show – show panel;
• FDS_Panel_ShowTop – place panel at the top of the parent window;
• FDS_Panel_ShowBottom – place panel at the bottom of the parent window.

5.4.32. eRPRM_OutputFormat
eRPRM_OutputFormat enumeration contains identifiers determining the format of data
representation and the mechanism of passing it to the user application when requesting
the results of scanning and processing cycle through _CheckResult() function.

enum eRPRM_OutputFormat
{
ofrDefault = 0,
ofrTransport_Clipboard = 0x00000002,
ofrTransport_File = 0x00000004,
ofrFormat_XML = 0x00010000,
ofrFormat_FileBuffer = 0x00020000,
ofrFormat_ImagesXML = 0x00040000,
ofrFormat_JSON = 0x00080000,
ofrFileBuffer_File = ofrTransport_File | ofrFormat_FileBuffer,
ofrXML_Clipboard = ofrTransport_Clipboard | ofrFormat_XML,
ofrXML_File = ofrTransport_File | ofrFormat_XML,
ofrFileBuffer_XML_Clipboard
= ofrXML_Clipboard | ofrFormat_FileBuffer,
ofrFileBuffer_XML_File = ofrXML_File | ofrFormat_FileBuffer,
ofrJSON_Clipboard = ofrTransport_Clipboard | ofrFormat_JSON,
ofrJSON_File = ofrTransport_File | ofrFormat_JSON,
ofrFileBuffer_JSON_Clipboard
= ofrJSON_Clipboard | ofrFormat_FileBuffer,
ofrFileBuffer_JSON_File = ofrJSON_File | ofrFormat_FileBuffer
};

Constant values:
• ofrDefault – default mode. Only the pointer to the result contain-
ing structure will be returned;
• ofrTransport_Clipboard – either formed XML-representation of the result or a
graphic image will be additionally placed into the OS
clipboard;
• ofrTransport_File – either formed XML-representation of the result or a
graphic image will be additionally written into a file;
• ofrFormat_XML – form XML-representation of the result containing
structure;
• ofrFormat_FileBuffer – form an image of the graphic file containing the re-
quested image;
• ofrFormat_ImagesXML – form XML-representation of image of the graphic
file containing the requested image;
• ofrFormat_JSON – form JSON-representation of the result containing
structure.

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 151


SDK tools

5.4.33. eLexAnalysisDepth
eLexAnalysisDepth enumeration contains possible values of lexical analysis settings
for RPRM_Command_Options_Get_LexAnalysisDepth and RPRM_Command_Op-
tions_Set_LexAnalysisDepth commands.
enum eLexAnalysisDepth
{
eLAD_Default = 0x0000,
eLAD_ShowAllData = 0x0001,
eLAD_ShowDataAndResults = 0x0002,
eLAD_CheckStopListOFF = 0x0004,
eLAD_CheckDocNumZeroOFF = 0x0008,
eLAD_ICAOConvertionOFF = 0x0010,
eLAD_ConvertToCyrillicON= 0x0020,
eLAD_GenerateRussiaMRZStrings = 0x0040
eLAD_CompareRussiaAuthority = 0x0080,
eLAD_CheckLowProbabilityEnable = 0x0100
};
Constant values:
• eLAD_Default – default mode, fields and results with low probabil-
ity are not exposed, fields are checked for pres-
ence in "stop-list", document number should not
be zero;
• eLAD_ShowAllData – show all read data, but disable comparison/verifi-
cation results;
• eLAD_ShowDataAndResults – show all read data and results regardless of prob-
ability;
• eLAD_CheckStopListOFF – disable "stop-list" fields check;
• eLAD_CheckDocNumZeroOFF – disable zero document number check;
• eLAD_ICAOConvertionOFF – disable conversion of text field values to latin al-
phabet for comparison with MRZ according to
ICAO 9303;
• eLAD_ConvertToCyrillicON – enable conversion of fields in Latin to Cyrillic;
• eLAD_GenerateRussiaMRZStrings – enable ft_MRZ_Strings field genera-
tion for Russian non-MRZ passports;
• eLAD_CompareRussiaAuthority - compare generated fields ft_Author-
ity_RUS with ft_Authority in Russia's national passport;
• eLAD_CheckLowProbabilityEnable - check low probability enable.

5.4.34. eLexDateFormat
NOT USED.

eLexDateFormat enumeration contains possible valuet of date formats for TLexDate-


Format structure for RPRM_Command_Options_Get_LexDateFormat and RPRM_Com-
mand_Options_Set_LexDateFormat commands.
enum eLexDateFormat
{
LDF_DefaultShort = 0,
LDF_DefaultLong = 1,
LDF_SystemShort = 2,
LDF_SystemLong = 3,
LDF_Universal = 4,
LDF_Custom = 5

152 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools
};

Constant values:
• LDF_DefaultShort – default mode, current user short date format;
• LDF_DefaultLong – current user long date format;
• LDF_SystemShort – OS short date format;
• LDF_SystemLong – OS long date format;
• LDF_Universal – ISO 8601 universal date format “YYYY-MM-DD”;
• LDF_Custom – date format is specified manually.

5.4.35. eImageQualityCheckType
eImageQualityCheckType enumeration contains possible values of input image qual-
ity check result type.
enum eImageQualityCheckType
{
IQC_ImageGlares = 0,
IQC_ImageFocus = 1,
IQC_ImageResolution = 2,
IQC_ImageColorness = 3,
IQC_Perspective = 4,
IQC_Bounds = 5,
IQC_ScreenCapture = 6,
IQC_Portrait = 7,
IQC_Handwritten = 8
};
Constant values:
• IQC_ImageGlares – glares presence check;
• IQC_ImageFocus – focus quality check;
• IQC_ImageResolution – image resolution check;
• IQC_ImageColorness – image colorness check;
• IQC_Perspective - image perspective check;
• IQC_Bounds - image quality check if the whole document page is
completely within the image;
• IQC_ScreenCapture - image quality check if the image is captured from
screen;
• IQC_Portrait - image quality check if the portrait is present;
• IQC_Handwritten - image quality check (visual OCR) if the document
contains handwritten text in the scanned fields;

5.4.36. diDocType
diDocType enumeration contains possible values of document types.
enum diDocType
{
dtNotDefined = 0,
dtPassport = 11,
dtIdentityCard = 12,
dtDiplomaticPassport = 13,
dtServicePassport = 14,
dtSeamanIdentityDocument = 15,
dtIdentityCardForResidence = 16,
dtTravelDocument = 17,
dtOther = 99,
dtVisaID2 = 29,
dtVisaID3 = 30,
dtNationalIdentityCard = 20,
dtSocialIdentityCard = 21,

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 153


SDK tools
dtAliensIdentityCard = 22,
dtPrivilegedIdentityCard = 23,
dtResidencePermitIdentityCard = 24,
dtOriginCard = 25,
dtEmergencyPassport = 26,
dtAliensPassport = 27,
dtAlternativeIdentityCard = 28,
dtAuthorizationCard = 32,
dtBeginnerPermit = 33,
dtBorderCrossingCard = 34,
dtChauffeurLicense = 35,
dtChauffeurLicenseUnder18 = 36,
dtChauffeurLicenseUnder21 = 37,
dtCommercialDrivingLicense = 38,
dtCommercialDrivingLicenseInstructionalPermit = 39,
dtCommercialDrivingLicenseUnder18 = 40,
dtCommercialDrivingLicenseUnder21 = 41,
dtCommercialInstructionPermit = 42,
dtCommercialNewPermit = 43,
dtConcealedCarryLicense = 44,
dtConcealedFirearmPermit = 45,
dtConditionalDrivingLicense = 46,
dtDepartmentOfVeteransAffairsIdentityCard = 47,
dtDiplomaticDrivingLicense = 48,
dtDrivingLicense = 49,
dtDrivingLicenseInstructionalPermit = 50,
dtDrivingLicenseInstructionalPermitUnder18 = 51,
dtDrivingLicenseInstructionalPermitUnder21 = 52,
dtDrivingLicenseLearnersPermit = 53,
dtDrivingLicenseLearnersPermitUnder18 = 54,
dtDrivingLicenseLearnersPermitUnder21 = 55,
dtDrivingLicenseNovice = 56,
dtDrivingLicenseNoviceUnder18 = 57,
dtDrivingLicenseNoviceUnder21 = 58,
dtDrivingLicenseRegisteredOffender = 59,
dtDrivingLicenseRestrictedUnder18 = 60,
dtDrivingLicenseRestrictedUnder21 = 61,
dtDrivingLicenseTemporaryVisitor = 62,
dtDrivingLicenseTemporaryVisitorUnder18 = 63,
dtDrivingLicenseTemporaryVisitorUnder21 = 64,
dtDrivingLicenseUnder18 = 65,
dtDrivingLicenseUnder21 = 66,
dtEmploymentDrivingPermit = 67,
dtEnhancedChauffeurLicense = 68,
dtEnhancedChauffeurLicenseUnder18 = 69,
dtEnhancedChauffeurLicenseUnder21 = 70,
dtEnhancedCommercialDrivingLicense = 71,
dtEnhancedDrivingLicense = 72,
dtEnhancedDrivingLicenseUnder18 = 73,
dtEnhancedDrivingLicenseUnder21 = 74,
dtEnhancedIdentityCard = 75,
dtEnhancedIdentityCardUnder18 = 76,
dtEnhancedIdentityCardUnder21 = 77,
dtEnhancedOperatorsLicense = 78,
dtFirearmsPermit = 79,
dtFullProvisionalLicense = 80,
dtFullProvisionalLicenseUnder18 = 81,
dtFullProvisionalLicenseUnder21 = 82,
dtGenevaConventionsIdentityCard = 83,
dtGraduatedDrivingLicenseUnder18 = 84,
dtGraduatedDrivingLicenseUnder21 = 85,
dtGraduatedInstructionPermitUnder18 = 86,
dtGraduatedInstructionPermitUnder21 = 87,
dtGraduatedLicenseUnder18 = 88,
dtGraduatedLicenseUnder21 = 89,
dtHandgunCarryPermit = 90,
dtIdentityAndPrivilegeCard = 91,
dtIdentityCardMobilityImpaired = 92,
dtIdentityCardRegisteredOffender = 93,
dtIdentityCardTemporaryVisitor = 94,
dtIdentityCardTemporaryVisitorUnder18 = 95,
dtIdentityCardTemporaryVisitorUnder21 = 96,
dtIdentityCardUnder18 = 97,
dtIdentityCardUnder21 = 98,
dtIgnitionInterlockPermit = 100,
dtImmigrantVisa = 101,
dtInstructionPermit = 102,
dtInstructionPermitUnder18 = 103,
dtInstructionPermitUnder21 = 104,

154 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools
dtInterimDrivingLicense = 105,
dtInterimIdentityCard = 106,
dtIntermediateDrivingLicense = 107,
dtIntermediateDrivingLicenseUnder18 = 108,
dtIntermediateDrivingLicenseUnder21 = 109,
dtJuniorDrivingLicense = 110,
dtLearnerInstructionalPermit = 111,
dtLearnerLicense = 112,
dtLearnerLicenseUnder18 = 113,
dtLearnerLicenseUnder21 = 114,
dtLearnerPermit = 115,
dtLearnerPermitUnder18 = 116,
dtLearnerPermitUnder21 = 117,
dtLimitedLicense = 118,
dtLimitedPermit = 119,
dtLimitedTermDrivingLicense = 120,
dtLimitedTermIdentityCard = 121,
dtLiquorIdentityCard = 122,
dtNewPermit = 123,
dtNewPermitUnder18 = 124,
dtNewPermitUnder21 = 125,
dtNonUsCitizenDrivingLicense = 126,
dtOccupationalDrivingLicense = 127,
dtOneidaTribeOfIndiansIdentityCard = 128,
dtOperatorLicense = 129,
dtOperatorLicenseUnder18 = 130,
dtOperatorLicenseUnder21 = 131,
dtPermanentDrivingLicense = 132,
dtPermitToReenter = 133,
dtProbationaryAutoLicense = 134,
dtProbationaryDrivingLicenseUnder18 = 135,
dtProbationaryDrivingLicenseUnder21 = 136,
dtProbationaryVehicleSalespersonLicense = 137,
dtProvisionalDrivingLicense = 138,
dtProvisionalDrivingLicenseUnder18 = 139,
dtProvisionalDrivingLicenseUnder21 = 140,
dtProvisionalLicense = 141,
dtProvisionalLicenseUnder18 = 142,
dtProvisionalLicenseUnder21 = 143,
dtPublicPassengerChauffeurLicense = 144,
dtRacingAndGamingComissionCard = 145,
dtRefugeeTravelDocument = 146,
dtRenewalPermit = 147,
dtRestrictedCommercialDrivingLicense = 148,
dtRestrictedDrivingLicense = 149,
dtRestrictedPermit = 150,
dtSeasonalPermit = 151,
dtSeasonalResidentIdentityCard = 152,
dtSeniorCitizenIdentityCard = 153,
dtSexOffender = 154,
dtSocialSecurityCard = 155,
dtTemporaryDrivingLicense = 156,
dtTemporaryDrivingLicenseUnder18 = 157,
dtTemporaryDrivingLicenseUnder21 = 158,
dtTemporaryIdentityCard = 159,
dtTemporaryInstructionPermitIdentityCard = 160,
dtTemporaryInstructionPermitIdentityCardUnder18 = 161,
dtTemporaryInstructionPermitIdentityCardUnder21 = 162,
dtTemporaryVisitorDrivingLicense = 163,
dtTemporaryVisitorDrivingLicenseUnder18 = 164,
dtTemporaryVisitorDrivingLicenseUnder21 = 165,
dtUniformedServicesIdentityCard = 166,
dtVehicleSalespersonLicense = 167,
dtWorkerIdentificationCredential = 168,
dtCommercialDrivingLicenseNovice = 169,
dtCommercialDrivingLicenseNoviceUnder18 = 170,
dtCommercialDrivingLicenseNoviceUnder21 = 171,
dtPassportCard = 172,
dtPermanentResidentCard = 173,
dtPersonalIdentificationVerification = 174,
dtTemporaryOperatorLicense = 175,
dtDrivingLicenseUnder19 = 176,
dtIdentityCardUnder19 = 177,
dtVisa = 178,
dtTemporaryPassport = 179,
dtVotingCard = 180,
dtHealthCard = 181,
dtCertificateOfCitizenship = 182,
dtAddressCard = 183,

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 155


SDK tools
dtAirportImmigrationCard = 184,
dtAlienRegistrationCard = 185,
dtAPEHCard = 186,
dtCouponToDrivingLicense = 187,
dtCrewMemberCertificate = 188,
dtDocumentForReturn = 189,
dtECard = 190,
dtEmploymentCard = 191,
dtHKSARImmigrationForm = 192,
dtImmigrantCard = 193,
dtLabourCard = 194,
dtLaissezPasser = 195,
dtLawyerIdentityCertificate = 196,
dtLicenseCard = 197,
dtPassportStateless = 198,
dtPassportChild = 199,
dtPassportConsular = 200,
dtPassportDiplomaticService = 201,
dtPassportOfficial = 202,
dtPassportProvisional = 203,
dtPassportSpecial = 204,
dtPermissionToTheLocalBorderTraffic = 205,
dtRegistrationCertificate = 206,
dtSEDESOLCard = 207,
dtSocialCard = 208,
dtTBCard = 209,
dtVehiclePassport = 210,
dtWDocument = 211,
dtDiplomaticIdentityCard = 212,
dtConsularIdentityCard = 213,
dtIncomeTaxCard = 214,
dtResidencePermit = 215,
dtDocumentOfIdentity = 216,
dtBorderCrossingPermit = 217,
dtPassportLimitedValidity = 218,
dtSIMCard = 219,
dtTaxCard = 220,
dtCompanyCard = 221,
dtDomesticPassport = 222,
dtIdentityCertificate = 223,
dtResidentIdCard = 224,
dtArmedForcesIdentityCard = 225,
dtProfessionalCard = 226,
dtRegistrationStamp = 227,
dtDriverCard = 228,
dtDriverTrainingCertificate = 229,
dtQualificationDrivingLicense = 230,
dtMembershipCard = 231,
dtPublicVehicleDriverAuthorityCard = 232,
dtMarineLicense = 233,
dtTemporaryLearnerDrivingLicense = 234,
dtTemporaryCommercialDrivingLicense = 235,
dtInterimInstructionalPermit = 236,
dtCertificateOfCompetency = 237,
dtCertificateOfProficiency = 238,
dtTradeLicense = 239,
dtPassportPage = 240,
dtInvoice = 241,
dtPassengerLocatorForm = 242,
};
Constant values correspond to their names.

5.4.37. eRPRM_ResultStatus
eRPRM_ResultStatus enumeration contains possible return codes from _CheckResult()
and _CheckResultFromList() functions.

enum eRPRM_ResultStatus
{
RPRM_ResultStatus_NotAvailable = 0xffffffff,
RPRM_ResultStatus_EndOfList = 0xfffffffe,
RPRM_ResultStatus_InvalidParameter = 0xfffffffd,

156 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools
RPRM_ResultStatus_IOError = 0xfffffffb,
RPRM_ResultStatus_InvalidFilename = 0xfffffffa,
RPRM_ResultStatus_ClipboardError = 0xfffffff9,
RPRM_ResultStatus_NotEnoughMemory = 0xfffffff8,
RPRM_ResultStatus_NotSupported = 0xfffffff7
};

Constant values:
• RPRM_ResultStatus_NotAvailable – the requested result type is not
available;
• RPRM_ResultStatus_EndOfList – at the previous stage of obtaining
data from result fields represented as
list structures the end of list was
reached and there are no new data in
the processed list;
• RPRM_ResultStatus_InvalidParameter – invalid function call parameter;
• RPRM_ResultStatus_IOError – file output error;
• RPRM_ResultStatus_InvalidFilename – invalid filename;
• RPRM_ResultStatus_ClipboardError – operation with the OS clipboard can
not be executed;
• RPRM_ResultStatus_NotEnoughMemory – not enough memory for operation ex-
ecution;
• RPRM_ResultStatus_NotSupported – the specified data representation
mechanism or the mechanism of its
passing is not available for the speci-
fied result type.

5.4.38. eRPRM_NotificationCodes
eRPRM_NotificationCodes enumeration contains possible message codes received by
the user application through NotifyFunc callback-function.

enum eRPRM_NotificationCodes
{
RPRM_Notification_Error = 0x00000000,
RPRM_Notification_DeviceDisconnected = 0x00000001,
RPRM_Notification_DocumentReady = 0x00000002,
RPRM_Notification_Scanning = 0x00000004,
RPRM_Notification_Calibration = 0x00000008,
RPRM_Notification_CalibrationProgress = 0x00000009,
RPRM_Notification_EnumeratingDevices = 0x0000000C,
RPRM_Notification_ConnectingDevice = 0x0000000D,
RPRM_Notification_DocumentCanBeRemoved = 0x0000000E,
RPRM_Notification_LidOpen = 0x0000000F,
RPRM_Notification_Processing = 0x00000010,
RPRM_Notification_DownloadingCalibrationInfo = 0x00000011,
RPRM_Notification_LicenseExpired = 0x00000012,
RPRM_Notification_OperationProgress = 0x00000013,
RPRM_Notification_LatestAvailableSDK = 0x00000014,
RPRM_Notification_LatestAvailableDatabase = 0x00000015,
RPRM_Notification_VideoFrame = 0x00000016,
RPRM_Notification_CompatibilityMode = 0x00000017,
};

Constant values:

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 157


SDK tools

• RPRM_Notification_Error Non-critical error. Error code (one of eRPRM_Error-


Codes values) is located in value parameter. Note, that negative error codes are for internal
use and should be ignored.

• RPRM_Notification_DeviceDisconnected The active reader was discon-


nected from the USB and further operation is impossible.

• RPRM_Notification_DocumentReady Document presence sensor respond in-


dication. value shows that a document was placed in the reader (true) or removed from it
(false).

• RPRM_Notification_Scanning Indication of image scanning operation execution.


value shows the beginning (false) or the end (true) of the operation.

• RPRM_Notification_Calibration Indication of device calibration procedure.


value shows the beginning (false) or the end (true) of the operation.

• RPRM_Notification_CalibrationProgress Indication of device calibration


procedure progress. value shows operation progress in %.

• RPRM_Notification_EnumeratingDevices Indication of connected to the PC


readers enumeration. value shows the beginning (false) or the end (true) of the opera-
tion

• RPRM_Notification_ConnectingDevice Indication of reader connection


process. value shows the beginning (false) or the end (true) of the operation.

• RPRM_Notification_DocumentCanBeRemoved Indication of the moment


when the document may be removed from the reader after image scanning is done.

• RPRM_Notification_LidOpen Device open lid sensor indication. value


shows that lid is open (true) or closed (false).

• RPRM_Notification_Processing Indication of image processing operation


execution. value shows the beginning (false) or the end (true) of the operation.

• RPRM_Notification_DownloadingCalibrationInfo Indication of down-


loading calibration info procedure progress. value shows operation progress in %.

• RPRM_Notification_LicenseExpired Indication that license for this device is


expired. value contains number of days since January, 1, 1900 until license was active.

158 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

• RPRM_Notification_OperationProgress Indication of procedure progress.


value shows operation progress in %.

• RPRM_Notification_LatestAvailableSDK Indication of latest available ver-


sion of SDK. value contains version in four bytes.

• RPRM_Notification_LatestAvailableDatabase Indication of latest


available version of database. value contains version in four bytes.

• RPRM_Notification_VideoFrame Indication that new image from video de-


tection is available. value contains TVideodetectionNotification*.

• RPRM_Notification_CompatibilityMode Indication that device runs in


compatibility mode. value сontains eDeviceLimitations*.

5.4.39. eRPRM_ErrorCodes
eRPRM_ErrorCodes enumeration contains possible codes returned by the SDK MCL func-
tions and received through NotifyFunc callback-function with appearance of RPRM_No-
tification_Error message.

enum eRPRM_ErrorCodes
{
RPRM_Error_NoError = 0x00000000,
RPRM_Error_AlreadyDone = 0x00000001,
RPRM_Error_NoGraphManager = 0x00000002,
RPRM_Error_CantRegisterMessages = 0x00000003,
RPRM_Error_NoServiceManager = 0x00000004,
RPRM_Error_CantConnectServiceManager = 0x00000006,
RPRM_Error_CantCreateDeviceLibraryEvent = 0x00000009,
RPRM_Error_InvalidParameter = 0x0000000C,
RPRM_Error_NotInitialized = 0x0000000D,
RPRM_Error_Busy = 0x0000000E,
RPRM_Error_NotEnoughMemory = 0x00000011,
RPRM_Error_BadVideo = 0x00000014,
RPRM_Error_ScanAborted = 0x00000015,
RPRM_Error_CantRecognizeDocumentType = 0x00000016,
RPRM_Error_CantSetupSensor = 0x00000018,
RPRM_Error_NotTrueColorDesktop = 0x00000019,
RPRM_Error_NotAvailable = 0x0000001A,
RPRM_Error_DeviceError = 0x0000001B,
RPRM_Error_DeviceDisconnected = 0x00000020,
RPRM_Error_WrongThreadContext = 0x00000030,
RPRM_Error_COMServers = 0x00000031,
RPRM_Error_NoDocumentReadersFound = 0x00000032,
RPRM_Error_NoTranslationMngr = 0x00000033,
RPRM_Error_NoActiveDevice = 0x00000034,
RPRM_Error_ConnectingDevice = 0x00000035,
RPRM_Error_Failed = 0x00000036,
RPRM_Error_LightIsNotAllowed = 0x00000037,
RPRM_Error_ImageIOError = 0x00000038,
RPRM_Error_CantStoreCalibrationData = 0x00000039,
RPRM_Error_DeviceNotCalibrated = 0x0000003A,
RPRM_Error_CantCompensateDistortion = 0x0000003B,
RPRM_Error_OperationCancelled = 0x0000003C,
RPRM_Error_CantLocateDocumentBounds = 0x0000003D,
RPRM_Error_CantRefineImages = 0x0000003E,
RPRM_Error_CantCropRotateImages = 0x0000003F,

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 159


SDK tools
RPRM_Error_IncompleteImagesList = 0x00000040,
RPRM_Error_CantReadMRZ = 0x00000041,
RPRM_Error_CantFindBarcodes = 0x00000042,
RPRM_Error_DeviceIDNotSupported = 0x00000043,
RPRM_Error_DeviceIDNotStored = 0x00000044,
RPRM_Error_DeviceDriver = 0x00000045,
RPRM_Error_CalibrationOpenLid = 0x00000046,
RPRM_Error_Calibration_Brightness = 0x00000047,
RPRM_Error_Calibration_WhiteBalance = 0x00000048,
RPRM_Error_Calibration_TargetPosition = 0x00000049,
RPRM_Error_Calibration_LightBlank = 0x0000004A
RPRM_Error_Calibration_LightDistortion = 0x0000004B,
RPRM_Error_Calibration_LightLevel = 0x0000004C,
RPRM_Error_Calibration_LightLevelHigh = 0x0000004D,
RPRM_Error_Calibration_LightLevelLow = 0x0000004E,
RPRM_Error_8305CameraAbsent = 0x00000050,
RPRM_Error_NotImplemented = 0x00000051,
RPRM_Error_RemoveDocument = 0x00000052,
RPRM_Error_BadDataFile = 0x00000053,
RPRM_Error_BadInputImage = 0x00000054,
};
Constant values:
• RPRM_Error_NoError – operation completed successfully;
• RPRM_Error_AlreadyDone – operation was done before;
• RPRM_Error_NoGraphManager – DGraph.dll connection error. Fur-
ther operation is impossible;
• RPRM_Error_CantRegisterMessages – Windows control messages registration
error. Further operation is impossible;
• RPRM_Error_NoServiceManager – RSrvMngr.exe cannot be found or ini-
tialized. Further operation is impossible;
• RPRM_Error_CantConnectServiceManager – RSrvMngr.exe connection error.
Further operation is impossible;
• RPRM_Error_CantCreateDeviceLibraryEvent – error of creating the device control li-
brary controls. Further operation is
impossible;
• RPRM_Error_InvalidParameter – invalid function call parameter;
• RPRM_Error_NotInitialized – MCL was not initialized;
• RPRM_Error_Busy – device has not finished previous com-
mand execution;
• RPRM_Error_NotEnoughMemory – not enough memory;
• RPRM_Error_BadVideo – video stream quality is bad (less than
3 frames per second). This situation
can arise because of the problems
bound with the device driver and
Windows system resources function-
ing. Further operation with the device
is impossible This error may occur
only when working with DirectShow
controlled devices;
• RPRM_Error_ScanAborted – scanning was not finished because the
document was removed from the de-
vice before the moment of obtaining all
the necessary images;
• RPRM_Error_CantRecognizeDocumentType – document type was not recognized;

160 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

• RPRM_Error_CantSetupSensor – document presence was detected


when initializing the device, which in-
terferes with sensor sensitivity adjust-
ment. Remove the document and re-
peat the connection;
• RPRM_Error_NotTrueColorDesktop – current Desktop color settings interfere
with device normal operation (for read-
ers with DirectShow control) Desktop
color quality must be 24 or 32 bits per
color;
• RPRM_Error_NotAvailable – the requested operation is not availa-
ble at the moment;
• RPRM_Error_DeviceError – device initialization error. Further oper-
ation with the device is impossible;
• RPRM_Error_DeviceDisconnected – the device was disconnected from
the PC and performing of the re-
quested action is impossible;
• RPRM_Error_WrongThreadContext – _Free() function was not called from
the same user application thread from
which _Initialize() function call
was made;
• RPRM_Error_COMServers – error of COM-servers functioning;
• RPRM_Error_NoDocumentReadersFound – no reader connected to the PC;
• RPRM_Error_NoTranslationMngr – RTrans.exe connection error;
• RPRM_Error_NoActiveDevice – the requested operation cannot be exe-
cuted because no reader was connected
(by RPRM_Command_Device_Connect
command);
• RPRM_Error_ConnectingDevice – device connection error. Further oper-
ation with the device is impossible;
• RPRM_Error_Failed – the requested operation cannot be ex-
ecuted;
• RPRM_Error_LightIsNotAllowed – the specified combination of lighting
schemes cannot be used when scanning;
• RPRM_Error_ImageIOError – file input/output error while working
with images;
• RPRM_Error_CantStoreCalibrationData – calibration data cannot be stored;
• RPRM_Error_DeviceNotCalibrated device was not calibrated, the
requested action cannot be per-
formed;

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 161


SDK tools

• RPRM_Error_CantCompensateDistortion – geometric distortion compensa-


tion error;
• RPRM_Error_OperationCancelled – current operation is cancelled be
the user;
• RPRM_Error_CantLocateDocumentBounds – document bounds on the im-
age cannot be found;
• RPRM_Error_CantRefineImages – lighting unevenness and color
balance compensation error;
• RPRM_Error_CantCropRotateImages – error of rotation or cropping the
image along the document
bounds;
• RPRM_Error_IncompleteImagesList – image list provided for pro-
cessing is not complete (for
RPRM_Command_ProcessImagesList
command);
• RPRM_Error_CantReadMRZ – MRZ cannot be found or read;
• RPRM_Error_CantFindBarcodes – bar-code cannot be found or read;
• RPRM_Error_DeviceIDNotSupported – reader’s firmware doesn’t sup-
port identification number stor-
ing (0х0000 by default);
• RPRM_Error_DeviceIDNotStored – identification number is not
stored in reader’s memory
(0хFFFF by default);
• RPRM_Error_DeviceDriver – it is necessary to update device
driver (for readers with Cy-
press ore Micron digital cam-
eras). Further operation with the
device is impossible;
• RPRM_Error_CalibrationOpenLid – open reader’s lid detected that
interferes with calibration pro-
cess (for readers with Cypress
ore Micron digital cameras). It’s
necessary to close the lid and re-
peat the operation;
• RPRM_Error_Calibration_Brightness – the brightness of the calibration
picture is inadequate;
• RPRM_Error_Calibration_WhiteBalance – the white balance of the calibra-
tion picture is inadequate;
• RPRM_Error_Calibration_TargetPosition – the target position of the test-
object is inadequate;
• RPRM_Error_Calibration_LightBlank – the illuminscence of the calibra-
tion picture is inadequate;

162 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

• RPRM_Error_Calibration_LightDistortion – the light distorsion of the cali-


bration picture is inadequate;
• RPRM_Error_Calibration_LightLevel – the calibration picture is inade-
quate;
• RPRM_Error_Calibration_LightLevelHigh – the calibration picture is bright
very much;
• RPRM_Error_Calibration_LightLevelLow – the calibration picture is dark
very much;
• RPRM_Error_8305CameraAbsent – no camera for reader model
8305 detected. Operation with
8305 device is impossible;
• RPRM_Error_NotImplemented – called commad is not imple-
mented;
• RPRM_Error_RemoveDocument – it is necessary to remove docu-
ment before reader initialization;
• RPRM_Error_BadDataFile – data file is absent or corrupted;
• RPRM_Error_BadInputImage – input file image is our of focus
and/or contains glares.

5.4.40. eRPRM_Commands
eRPRM_Commands enumeration contains the set of SDK MCL commands.

enum eRPRM_Commands
{
RPRM_Command_Device_Count = 0x00000001,
RPRM_Command_Device_Features = 0x00000002,
RPRM_Command_Device_RefreshList = 0x00000003,
RPRM_Command_Device_ActiveIndex = 0x00000004,
RPRM_Command_Device_Connect = 0x00000005,
RPRM_Command_Device_Disconnect = 0x00000006,
RPRM_Command_Device_Light_ScanList_Clear = 0x00000007,
RPRM_Command_Device_Light_ScanList_AddTo = 0x00000008,
RPRM_Command_Device_Light_ScanList_Default = 0x00000016,
RPRM_Command_Device_Light_ScanList_Count = 0x00000017,
RPRM_Command_Device_Light_ScanList_Item = 0x00000018,
RPRM_Command_Device_Light_TurnOn = 0x00000009,
RPRM_Command_Device_LED = 0x0000000B,
RPRM_Command_Device_PlaySound = 0x0000000F,
RPRM_Command_Device_Set_ParamLowLight = 0x0000000C,
RPRM_Command_Device_Get_ParamLowLight = 0x0000000D,
RPRM_Command_Device_Calibration = 0x00000015,
RPRM_Command_Process = 0x00000019,
RPRM_Command_Options_GraphicFormat_Count = 0x0000001A,
RPRM_Command_Options_GraphicFormat_Name = 0x0000001B,
RPRM_Command_Options_GraphicFormat_Select = 0x0000001C,
RPRM_Command_Options_GraphicFormat_ActiveIndex = 0x00000020,
RPRM_Command_Options_GetSDKCapabilities = 0x0000001E,
RPRM_Command_Options_GetSDKAuthCapabilities = 0x00000035,
RPRM_Command_Options_Set_MRZTestQualityParams = 0x00000022,
RPRM_Command_Options_Get_MRZTestQualityParams = 0x00000023,
RPRM_Command_ProcessImagesList = 0x00000024,
RPRM_Command_Options_Set_CurrentDocumentType = 0x00000027,
RPRM_Command_Options_Get_CurrentDocumentType = 0x00000028,
RPRM_Command_Options_Set_CustomDocTypeMode = 0x00000029,
RPRM_Command_Options_Get_CustomDocTypeMode = 0x0000002A,
RPRM_Command_Get_DocumentsInfoList = 0x0000002B,
RPRM_Command_OCRLexicalAnalyze = 0x0000002C,
RPRM_Command_Device_IsCalibrated = 0x0000002D,
RPRM_Command_Options_Set_CheckResultHeight = 0x0000002E,
RPRM_Command_Device_Set_WorkingVideoMode = 0x00000030,
RPRM_Command_Device_Get_WorkingVideoMode = 0x00000031,
RPRM_Command_Options_Set_AuthenticityCheckMode = 0x00000032,
RPRM_Command_Options_Get_AuthenticityCheckMode = 0x00000033,

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 163


SDK tools
RPRM_Command_Options_Get_BatteryStatus = 0x00000034
RPRM_Command_Options_BuildExtLog = 0x00000040,
RPRM_Command_Device_SetFrequencyDivider = 0x00000041,
RPRM_Command_Device_Get_DriverVersion = 0x00000042,
RPRM_Command_Device_APM_Mode = 0x00000044,
RPRM_Command_Device_UseVideoDetection = 0x00000045,
RPRM_Command_ExpertAnalyze = 0x00000046,
RPRM_Command_ClearResults = 0x00000047,
RPRM_Command_Options_GraphicFormat_SetCompressionRatio = 0x00000048
RPRM_Command_Options_GraphicFormat_GetCompressionRatio = 0x00000049,
RPRM_Command_Process_Cancel = 0x0000004A,
RPRM_Command_ExcludeCapabilities = 0x0000004B,
RPRM_Command_ExcludeAuthCapabilities = 0x0000004C,
RPRM_Command_MakeSingleShot = 0x0000004D,
RPRM_Command_Device_GetFrequencyDivider = 0x0000004E,
RPRM_Command_ComplexAuthenticityCheck = 0x0000004F,
RPRM_Command_Options_Set_GlareCompensation = 0x00000050,
RPRM_Command_Options_Set_ExtendProcessingModes = 0x00000051,
RPRM_Command_Options_Get_AppendVisa = 0x00000052,
RPRM_Command_Options_Set_AppendVisa = 0x00000053,
RPRM_Command_Options_Set_MultiPageProcessingMode = 0x00000054,
RPRM_Command_Device_Get_Calibration_FrequencyDivider = 0x00000055,
RPRM_Command_PortraitGraphicalAnalyze = 0x00000056,
RPRM_Command_Options_Set_SmartUV = 0x00000057,
RPRM_Command_Options_Set_RotateResultImages = 0x00000058,
RPRM_Command_BSIDocCheckXML = 0x00000059,
RPRM_Command_Options_Get_QuickMrzProcessing = 0x0000005A,
RPRM_Command_Options_Set_QuickMrzProcessing = 0x0000005B,
RPRM_Command_Device_SetVideoDetectionDivider = 0x0000005C,
RPRM_Command_Device_GetVideoDetectionDivider = 0x0000005D,
RPRM_Command_Device_SetRequiredOcrFields = 0x0000005E,
RPRM_Command_Device_GetRequiredOcrFields = 0x0000005F,
RPRM_Command_Options_Get_BatteryNumber = 0x00000060,
RPRM_Command_Options_Get_QuickBoardingPassProcessing
= 0x00000061,
RPRM_Command_Options_Set_QuickBoardingPassProcessing
= 0x00000062,
RPRM_Command_Options_Set_WaitForReadingComplete = 0x00000063,
RPRM_Command_ReadingComplete = 0x00000064,
RPRM_Command_Options_Get_LexAnalysisDepth = 0x00000065,
RPRM_Command_Options_Set_LexAnalysisDepth = 0x00000066,
RPRM_Command_Options_Get_LexDateFormat = 0x00000067,
RPRM_Command_Options_Set_LexDateFormat = 0x00000068,
RPRM_Command_Device_Get_GetJpegImages = 0x00000069,
RPRM_Command_Device_Set_GetJpegImages = 0x0000006A,
RPRM_Command_BSIDocCheckXMLv2 = 0x0000006B,
RPRM_Command_Device_Get_TrustDPI = 0x0000006C,
RPRM_Command_Device_Set_TrustDPI = 0x0000006D,
RPRM_Command_Options_Get_LexParams = 0x0000006E,
RPRM_Command_Options_Set_LexParams = 0x0000006F,
RPRM_Command_Options_Get_StopOnBadInputImage = 0x00000070,
RPRM_Command_Options_Set_StopOnBadInputImage = 0x00000071,
RPRM_Command_Set_ProcessParametersJson = 0x00000072,
RPRM_Command_Options_Set_VideodetectionLowSensibility
= 0x00000073,
RPRM_Command_Options_Set_TrustVideodetectionResult
= 0x00000074,
RPRM_Command_Device_Get_LED = 0x00000075,
RPRM_Command_Get_DatabaseInfo = 0x00000076,
RPRM_Command_Device_Fingerprints_Scan = 0x00000077,
RPRM_Command_Fingerprints_Compare = 0x00000078,
RPRM_Command_Add_External_Containers = 0x00000079,
RPRM_Command_Fingerprints_Search = 0x00000080
};
The detailed description of each command is given below.

5.4.41. eDocumentStatus
eDocumentStatus enumeration contains possible document statuses in videodetection
mode.

enum eDocumentStatus
{

164 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

eDS_BadImage,
eDS_DocumentAbsent,
eDS_DocumentMoving,
eDS_DocumentFix,
eDS_DocumentFixWait,
eDS_DocumentPresent
};

Constant values:
• eDS_BadImage – bad input image;
• eDS_DocumentAbsent – document is absent;
• eDS_DocumentMoving – document is being moved;
• eDS_DocumentFix – for internal use;
• eDS_DocumentFixWait – for internal use;
• eDS_DocumentPresent – document is present.

5.4.42. eDeviceLimitations
eDeviceLimitations enumeration contains device limitations.

enum eDeviceLimitations
{
DL_NONE = 0x00000000,
DL_USB2 = 0x00000001,
DL_32bit = 0x00000002,
};

Constant values:
• DL_NONE – device has no limitations;
• DL_USB2 – device is connected to USB 2.0 Port;
• DL_32bit – device uses a 32-bit platform.

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 165


SDK tools

5.5. SDK COMMAND SET


_ExecuteCommand() function is the basic function of the library through which the user
application can perform all the actions necessary for the operation with document readers.
It takes command triplet as parameters: command code (command parameter), command
input parameter (params parameter) and pointer to data container (result parameter) for
returned results.

The description of each command is given below according to the following pattern:
Command code
Input parameter:
Output parameter:
Designation:
<Brief description>

5.5.1. RPRM_Command_Device_Count
Input parameter – not used
Output parameter – long *
Designation: determine the total number of the document readers currently
connected to the PC

5.5.2. RPRM_Command_Device_Features
Input parameter – long
Output parameter – TRegulaDeviceProperties **
Designation: get information on document reader properties

Document reader index in the general list is specified in the input parameter of the command.

Memory for TRegulaDeviceProperties is allocated by the MCL and does not require
freeing in the user application.

5.5.3. RPRM_Command_Device_RefreshList
Input parameter – not used
Output parameter – not used
Designation: refresh the general list of the document readers currently con-
nected to the PC

Deprecated.

To build a list of connected devices, it is necessary to reinitialize the MCL by calling first
_Free() then _Initialize() functions.

166 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

5.5.4. RPRM_Command_Device_ActiveIndex
Input parameter – not used
Output parameter – long *
Designation: definition of the index of the currently active document reader

5.5.5. RPRM_Command_Device_Connect
Input parameter – long
Output parameter – not used
Designation: activation of a certain reader from the general list

The index of the device in the general list is specified in the command input parameter.

In case of specifying –1 value instead of the device index, two variants of continuing work
are possible:
• if there is only one reader in the general list of devices connected to the PC, it will be
activated by default;
• if there are several readers in the general list of devices connected to the PC the first
reader from the list will be connected.

5.5.6. RPRM_Command_Device_Disconnect
Input parameter – not used
Output parameter – not used
Designation: disconnect the currently active document reader

5.5.7. RPRM_Command_Device_Light_ScanList_Clear
Input parameter – not used
Output parameter – not used
Designation: clear the list of lighting schemes for scanning

5.5.8. RPRM_Command_Device_Light_ScanList_Default
Input parameter – not used
Output parameter – not used
Designation: fill the list of lighting schemes for scanning with default values

5.5.9. RPRM_Command_Device_Light_ScanList_Count
Input parameter – not used
Output parameter – long *

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 167


SDK tools

Designation: determine the general number of elements in the list of lighting


schemes for scanning

5.5.10. RPRM_Command_Device_Light_ScanList_Item
Input parameter – long
Output parameter – long *
Designation: read the value of a certain element from the list of lighting
schemes for scanning

The index of the requested element in the list is specified in the command input parameter.

5.5.11. RPRM_Command_Device_Light_ScanList_AddTo
Input parameter – long
Output parameter – not used
Designation: add a new element to the list of lighting schemes for scanning

In the input parameter a lighting scheme identifier (or a combination of identifiers) is specified.
Only the values from the default list of lighting schemes for scanning filled are accepted.

5.5.12. RPRM_Command_Device_Light_TurnOn
Input parameter – long
Output parameter – not used
Designation: turn on a lighting scheme

In the input parameter the lighting scheme identifier (or a combination of identifiers)
which must be activated is specified. Any valid identifier combination is accepted.

This command may be used for testing purposes and does not influence the data scanning
and processing cycle performance.

5.5.13. RPRM_Command_Device_LED
Input parameter – TIndicationLED *
Output parameter – not used
Designation: set the reader indicator LEDs functioning scheme

168 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

5.5.14. RPRM_Command_Device_Set_ParamLowLight
Input parameter – long
Output parameter – not used
Designation: set the camera exposure value for getting images for UV light-
ing scheme

5.5.15. RPRM_Command_Device_PlaySound
Input parameter – not used
Output parameter – not used
Designation: сontrol device beeper

5.5.16. RPRM_Command_Device_Get_ParamLowLight
Input parameter – not used
Output parameter – long *
Designation: read the camera exposure value for getting images for UV light-
ing scheme

5.5.17. RPRM_Command_Device_Calibration
Input parameter – not used
Output parameter – not used
Designation: perform the calibration of the active document reader

5.5.18. RPRM_Command_Process
Input parameter – long
Output parameter – not used
Designation: perform the cycle of data scanning and processing for the active
document

The input parameter must contain a combination of values from eRPRM_GetImage_Modes enu-
meration, which determines the set of functions of obtaining and processing data for the
given cycle and, correspondingly, the set of the requested results.

5.5.19. RPRM_Command_ProcessImagesList
Input parameter – TResultContainerList *
Output parameter – long
Designation: performing data processing cycle for the list of images

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 169


SDK tools

The list of images for to be processed is passed in the params parameter. The user appli-
cation is responsible for allocating memory for this list and its elements.

result parameter, which is usually used for getting results, is used in this command for
passing a combination of values from eRPRM_GetImage_Modes enumeration, which de-
termines the set of functions of obtaining and processing data for the given cycle and, cor-
respondingly, the set of the requested results.

5.5.20. RPRM_Command_Options_GraphicFormat_Count
Input parameter – not used
Output parameter – long *
Designation: determine the general number of image saving graphic formats

5.5.21. RPRM_Command_Options_GraphicFormat_Select
Input parameter – long
Output parameter – not used
Designation: select the image saving graphic format

In the input parameter the index of the graphic format in the general list is specified.

5.5.22. RPRM_Command_Options_GraphicFormat_Name
Input parameter – long
Output parameter – char **
Designation: get the symbolic name of one of the available image saving
graphic format

In the input parameter the index of the graphic format in the general list is specified.

Memory for storing the passed character string is allocated by the MCL and does not re-
quire freeing in the user application.

The returned character string contains the file extension of the requested format (for ex-
ample “.BMP”).

5.5.23. RPRM_Command_Options_GraphicFormat_ActiveIndex
Input parameter – not used
Output parameter – long *
Designation: get the index of the current image saving graphic format

170 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

5.5.24. RPRM_Command_Options_GetSDKCapabilities
Input parameter – not used
Output parameter – long *
Designation: determine the set of MCL performance capabilities when work-
ing with the currently active document reader

Value returned in the output parameter is a combination of values from eRPRM_Capabil-


ities enumeration.

5.5.25. RPRM_Command_Options_GetSDKAuthCapabilities
Input parameter – not used
Output parameter – long *
Designation: determine the set of MCL authenticity checks when working
with the currently active document reader

5.5.26. RPRM_Command_Options_Set_MRZTestQualityParams
Input parameter – TCommandsMRZTestQuality *
Output parameter – not used
Designation: set the parameters of document MRZ printing quality control

5.5.27. RPRM_Command_Options_Get_MRZTestQualityParams
Input parameter – not used
Output parameter – TCommandsMRZTestQuality **
Designation: get the current parameters of document MRZ printing quality
control

Memory for TCommandsMRZTestQuality is allocated by the MCL and does not require
freeing in the user application.

5.5.28. RPRM_Command_Options_Get_CurrentDocumentType
Input parameter – not used
Output parameter – char **
Designation: get the current value of the symbolic identifier of the document
type selected by default for further recognition operations

5.5.29. RPRM_Command_Options_Set_CurrentDocumentType
Input parameter – char *
Output parameter – not used

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 171


SDK tools

Designation: set the symbolic identifier of the document type selected by de-
fault for further recognition operations

Memory for storing the passed character string is allocated by the MCL and does not re-
quire freeing in the user application.

5.5.30. RPRM_Command_Options_Set_CustomDocTypeMode
Input parameter – long
Output parameter – not used
Designation: activate the mode when user detects the document type

5.5.31. RPRM_Command_Options_Get_CustomDocTypeMode
Input parameter – not used
Output parameter – long *
Designation: get the current mode of the document type detection

5.5.32. RPRM_Command_Get_DocumentsInfoList
Input parameter – not used
Output parameter – not used
Designation: get the full list of documents stored in the connected document
database

Result of RPRM_ResultType_DocumentsInfoList type is passed to the user applica-


tion through ResultReceivingFunc callback-function call and is accessed through
_CheckResult() function call.

5.5.33. RPRM_Command_OCRLexicalAnalyze
Input parameter – TDocVisualExtendedInfo *
Output parameter – not used
Designation: carry out lexical analysis of text data obtained through reading
MRZ, document filling fields, bar-codes and data from a RFID-
chip memory

TDocVisualExtendedInfo structure passed in the command input parameter must


contain data retrieved from the RFID-chip memory and may be obtained using RFID-chip
reader SDK.

If there are no data from the RFID-chip in the input parameter 0 (NULL) value may be passed.

172 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

5.5.34. RPRM_Command_Device_IsCalibrated
Input parameter – not used
Output parameter – long *
Designation: determine whether the active device was calibrated

The returned value (TRUE or FALSE) shows whether the active device was calibrated or the
calibration must be performed again.

5.5.35. RPRM_Command_Device_Set_WorkingVideoMode
Input parameter – long
Output parameter – not used
Designation: switching between available digital camera sensor resolution
modes

The input parameter must contain a value from eRPRM_VideoModes (a combination of al-
lowed values provided in TRegulaDeviceProperties.

5.5.36. RPRM_Command_Device_Get_WorkingVideoMode
Input parameter – not used
Output parameter – long *
Designation: get the current digital camera sensor resolution mode

5.5.37. RPRM_Command_Options_Set_CheckResultHeight
Input parameter – long
Output parameter – not used
Designation: define required height (in pixels) for images retrieved by
_CheckResultFromList() or _CheckResult()

When retrieving images as a result of scanning cycle with the help of _CheckResult-
FromList() or _CheckResult(), images will be scaled according to the provided di-
mension value (height). To retrieve non-scaled images set this parameter to 0.
This parameter is ignored in _CheckResult() call in the following cases:
• retrieving RPRM_ResultType_RawImage without output parameter set to ofrFor-
mat_XML and/or ofrFormat_FileBuffer;
• retrieving RPRM_ResultType_EOSImage.

5.5.38. RPRM_Command_Options_Set_AuthenticityCheckMode
Input parameter – long

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 173


SDK tools

Output parameter – not used


Designation: define a set of necessary authenticity checks (when
RPRM_GetImage_Modes_Authenticity is provided for
RPRM_Command_Process command)

The input parameter must contain a combination of values from eRPRM_Authenticity.

5.5.39. RPRM_Command_Options_Get_AuthenticityCheckMode
Input parameter – not used
Output parameter – long *
Designation: get the current combination of established authenticity checks

5.5.40. RPRM_Command_Options_Get_BatteryStatus
Input parameter – long
Output parameter – long *
Designation: retrieve the current status of accumulator battery with specified
index of the mobile versions of the document reader. If reader
has no RPRM_DeviceAdditionalFeature_Accumulator feature re-
turns error code RPRM_ResultStatus_NotAvailable

Return value (output parameter):


• 0–100 – battery charge level, %;
• 0xFF – battery is absent;
• 0xFE – charging is in process;
• 0xF0 – charge level is 100 %.

5.5.41. RPRM_Command_Options_BuildExtLog
Input parameter – long
Output parameter – not used
Designation: switch on/off the logging

Logging files is saved in the folder \Users\[User Name]\AppData\Local\Reg-


ula\Logs.

5.5.42. RPRM_Command_Device_SetFrequencyDivider
Input parameter – long
Output parameter – not used
Designation: set video chip frequency divider

174 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

If you use Windows 7 or low powerful computer set videochip frequency divider from 1 to
5 while the SDK works stable.

5.5.43. RPRM_Command_Device_Get_DriverVersion
Input parameter – not used
Output parameter – long *
Designation: get driver version

5.5.44. RPRM_Command_Device_APM_Mode
Input parameter – long
Output parameter – not used
Designation: set working mode of the document reader

Set this parameter to 1 if you want to decrease the electro-magnetic clutter or want to in-
crease the working time for the mobile document reader.

5.5.45. RPRM_Command_Device_UseVideoDetection
Input parameter – long
Output parameter – not used
Designation: reserved for internal used

5.5.46. RPRM_Command_ExpertAnalyze
Input parameter – TDocVisualExtendedInfo *
Output parameter – not used
Designation: reserved for internal used

5.5.47. RPRM_Command_ClearResults
Input parameter – not used
Output parameter – not used
Designation: clearing memory allocated by previous results document pro-
cessing

5.5.48.RPRM_Command_Options_GraphicFormat_SetCompressionRatio
Input parameter – long
Output parameter – not used
Designation: set image compress rate for some graphics format (for example,
JPEG). Parameter value from 0 to 10

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 175


SDK tools

5.5.49.RPRM_Command_Options_GraphicFormat_GetCompressionRatio
Input parameter – not used
Output parameter – long *
Designation: get image compress rate for some graphics format (for exam-
ple, JPEG)

5.5.50. RPRM_Command_Process_Cancel
Input parameter – not used
Output parameter – not used
Designation: cancel scan process or calibration process

5.5.51. RPRM_Command_ExcludeCapabilities
Input parameter – long
Output parameter – not used
Designation: setting list of eRPRM_Capabilities to be excluded from fur-
ther processing. Should be executed prior to connecting device

5.5.52. RPRM_Command_ExcludeAuthCapabilities
Input parameter – long
Output parameter – not used
Designation: setting list of eRPRM_Capabilities to be excluded from fur-
ther processing. Should be executed prior to connecting device

5.5.53. RPRM_Command_MakeSingleShot
Input parameter – long
Output parameter – long (used as input parameter)
Designation: making single shot with eRPRM_Lights in input parameter and
in mode eRPRM_GetImage_Modes (long) in output parameter

5.5.54. RPRM_Command_Device_GetFrequencyDivider
Input parameter – not used
Output parameter – long *
Designation: get video chip frequency divider

5.5.55. RPRM_Command_ComplexAuthenticityCheck
Input parameter – not used

176 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

Output parameter – not used


Designation: carry out complex analysis of authenticity results for all pages of
multi-page document

5.5.56. RPRM_Command_Options_Set_GlareCompensation
Input parameter – long
Output parameter – not used
Designation: turn white and IR image glare compensation mode on (input
parameter != 0) or off (input parameter == 0)

5.5.57. RPRM_Command_Options_Set_ExtendProcessingModes
Input parameter – long
Output parameter – not used
Designation: turn automatic enabling of required processing modes on (in-
put parameter != 0) or off (input parameter == 0)

5.5.58. RPRM_Command_Options_Get_AppendVisa
Deprecated

5.5.59. RPRM_Command_Options_Set_AppendVisa
Deprecated

5.5.60. RPRM_Command_Options_Set_MultiPageProcessingMode

Input parameter – long


Output parameter – not used
Designation: turn multi-page processing mode on (input parameter != 0) or
off (input parameter == 0). Enabled by default.

5.5.61. RPRM_Command_Device_Get_Calibration_FrequencyDivider

Input parameter – not used


Output parameter – long *
Designation: get video chip frequency divider value at which device was cali-
brated.

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 177


SDK tools

5.5.62. RPRM_Command_PortraitGraphicalAnalyze
Input parameter – TResultContainerList *
Output parameter – not used
Designation: graphical comparison of portraits received on document scan-
ning and from RFID (in input parameter).

5.5.63. RPRM_Command_Options_Set_SmartUV
Input parameter – long
Output parameter – not used
Designation: turn enhanced UV mode on (input parameter != 0) or off (input
parameter == 0).

5.5.64. RPRM_Command_Options_Set_RotateResultImages
Input parameter – long
Output parameter – not used
Designation: turn result images rotation according to portrait orientation
mode on (input parameter != 0) or off (input parameter == 0).

5.5.65. RPRM_Command_BSIDocCheckXML
Input parameter – TResultContainerList *
Output parameter – char **
Designation: create result XML according to BSI Technical Guideline TR-
03135 v1.

5.5.66. RPRM_Command_ Options_Get_BatteryNumber


Input parameter – not used
Output parameter – long *
Designation: get number of installed batteries.

5.5.67. RPRM_Command_Options_Get_QuickBoardingPassProcessing

Input parameter – not used


Output parameter – long *
Designation: get quick boarding pass processing mode.

5.5.68. RPRM_Command_Options_Set_QuickBoardingPassProcessing

Input parameter – long

178 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

Output parameter – not used


Designation: turn quick boarding pass processing mode on (input parameter
!= 0) or off (input parameter == 0).

5.5.69. RPRM_Command_Options_Set_QuickMrzProcessing

Input parameter – long


Output parameter – not used
Designation: turn quick MRZ processing mode on (input parameter != 0) or
off (input parameter == 0).

5.5.70. RPRM_Command_Options_Get_QuickMrzProcessing

Input parameter – not used


Output parameter – long *
Designation: get quick MRZ processing mode.

5.5.71. RPRM_Command_Device_SetVideoDetectionDivider

Input parameter – long


Output parameter – not used
Designation: set videodetection frame size divider (input parameter = 2 – size
/ 2, etc.).

5.5.72. RPRM_Command_Device_GetVideoDetectionDivider

Input parameter – not used


Output parameter – long *
Designation: get videodetection frame size divider.

5.5.73. RPRM_Command_Device_SetRequiredOcrFields

Input parameter – TDwordArray *


Output parameter – not used
Designation: set required visual zone OCR fields.

5.5.74. RPRM_Command_Device_GetRequiredOcrFields

Input parameter – not used


Output parameter – TDwordArray **
Designation: get required visual zone OCR fields.

5.5.75. RPRM_Command_Options_Set_WaitForReadingComplete

Input parameter – long

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 179


SDK tools

Output parameter – not used


Designation: set WaitForReadingComplete parameter value (input parameter
!= 0) or off (input parameter == 0). Used in 72x3 readers with
RPRM_Command_ReadingComplete command.

5.5.76. RPRM_Command_ReadingComplete

Input parameter – long


Output parameter – not used
Designation: Indicates that RFID reading is finished and now we can eject
card. Used in 72x3 readers with RPRM_Command_Op-
tions_Set_WaitForReadingComplete command.

5.5.77. RPRM_Command_Options_Get_LexAnalysisDepth

Deprecated.

5.5.78. RPRM_Command_Options_Set_LexAnalysisDepth

Deprecated.

5.5.79. RPRM_Command_Options_Get_LexDateFormat

Deprecated.

5.5.80. RPRM_Command_Options_Set_LexDateFormat

Deprecated.

5.5.81. RPRM_Command_Device_Get_GetJpegImages

Input parameter – not used


Output parameter – long *
Designation: get GetJpegImages parameter value.

5.5.82. RPRM_Command_Device_Set_GetJpegImages

Input parameter – long


Output parameter – not used
Designation: set GetJpegImages parameter value.

5.5.83. RPRM_Command_BSIDocCheckXMLv2

Input parameter – TResultContainerList *

180 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

Output parameter – char **


Designation: get XML result according to BSI Technical Guideline TR-03135-2.

5.5.84. RPRM_Command_Device_Get_TrustDPI

Input parameter – not used


Output parameter – long *
Designation: get TrustDPI parameter value.

5.5.85. RPRM_Command_Device_Set_TrustDPI

Input parameter – long


Output parameter – not used
Designation: set TrustDPI parameter value.

5.5.86. RPRM_Command_Options_Get_LexParams

Input parameter – not used


Output parameter – char **
Designation: get lexical analysis parameters in JSON format.

5.5.87. RPRM_Command_Options_Set_LexParams

Input parameter – char *


Output parameter – not used
Designation: set get lexical analysis parameters in JSON format.

5.5.88. RPRM_Command_Options_Get_StopOnBadInputImage

Input parameter – not used


Output parameter – long *, FALSE by default
Designation: get StopOnBadInputImage parameter value.

5.5.89. RPRM_Command_Options_Set_StopOnBadInputImage

Input parameter – long


Output parameter – not used
Designation: set StopOnBadInputImage parameter value.

5.5.90. RPRM_Command_Set_ProcessParametersJson

Input parameter – char *


Output parameter – not used
Designation: set parameters in JSON format.

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 181


SDK tools

For information about the JSON settings set via RPRM_Command_Set_ProcessParame-


tersJson, see the JSON Settings section.

5.5.91. RPRM_Command_Options_Set_VideodetectionLowSensibility

Input parameter – long


Output parameter – not used
Designation: set VideodetectionLowSensibility parameter value.

5.5.92. RPRM_Command_Options_Set_TrustVideodetectionResult

Input parameter – long


Output parameter – not used
Designation: set TrustVideodetectionResult parameter value.

5.5.93. RPRM_Command_Device_Get_LED

Input parameter – not used


Output parameter – TIndicationLED *
Designation: get the reader indicator LEDs functioning scheme.

5.5.94. RPRM_Command_Get_DatabaseInfo

Input parameter – not used


Output parameter – char **
Designation: get database information in JSON string format.

5.5.95. RPRM_Command_Device_Fingerprints_Scan

Input parameter – char *


Output parameter – not used
Designation: fingerprints scan in JSON format.

5.5.96. RPRM_Command_Fingerprints_Compare

Input parameter – char *


Output parameter – not used
Designation: fingerprints comparison information in JSON format.

5.5.97. RPRM_Command_Add_External_Containers

Input parameter – TResultContainerList*


Output parameter – not used

182 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

Designation: add containers to inner SDK container list.

5.5.98. RPRM_Command_Fingerprints_Search

Input parameter – char *


Output parameter – not used
Designation: fingerprints search information in JSON format: dllPath and
searchParams. The result is stored in a container of type
RPRM_ResultType_FingerprintDatabaseCheck.

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 183


SDK tools

5.6. JSON SETTINGS


The described in this section settings are set via
RPRM_Command_Set_ProcessParametersJson

5.6.1. Trivia

Regula SW uses the following format for creating UUIDs for the XML log:
00000004-0007-0000-0000-000032BF7CC1

It consists of the following parts:


• The last part – the internal Regula document template ID. 000032BF7CC1 can be nar-
rowed to 32BF7CC1, which is the hex equivalent to decimal 32-bit signed integer.
851410113. This decimal ID was used for authenticity check filters before. Attention,
it can be negative. For the document template identifier, the rest of the UUID is set
to all zeros.
• The first part – 00000004 – check ID as eRPRM_Authenticity. In this case 0x4 =
RPRM_Authenticity_Image_Pattern.
• The second part – 0007 – the identifier of the specific check area for each XML log
dco:BasicCheckResult element. Can be 0. Will be FFFF for dco:CheckGroup
and dco:CompositeCheckResult.

With the Regula Document Reader SDK 6.1 hotfix and starting from the Regula Document
Reader SDK 6.2 release, this UUID forming approach allows to identify documents and
their individual checks. The measures were taken to minimize the possibility that
dco:BasicCheckResult UUID changes with templates database update and/or SDK up-
date.

For example:

{
"processParam":
{
"authSafeMode": true,
"config":
[
{
"docID":
[
851410113,
-2033442960
],
"docUUID":
[
"00000000-0000-0000-0000-000032BF7CC1",
"00000000-0000-0000-0000-000086CC1F70"
],

184 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

"excludeAuthChecks": 3
}
]
},
"bsiTr03135":
{
"version": 3,
"evaluationChecks":
{
"patternsVis": true,
"patternsIr": true,
"patternsFalseLum": true,
"irVisPhoto": true,
"ids":
[
"00000004-000E-0000-0000-0000ACCCB9BB"
],
"types":
[
16
]
}
},
"dePersonalize":
[
{
"allTextFields": true,
"allGraphicFields": true
}
],
"processParameters":
{
"extPortrait":
{
"url": "http://localhost:41101",
"threshold": 50,
"proxy": "",
"proxy_userpwd": "",
"proxy_type": 0,
"mode": "service",
"serviceTimeout": 3000
}
}
}

5.6.2. Authenticity Safe Mode

This setting changes the way the authenticity checks are performed. The changes in this
mode include:
1. Disabled patterns checks in IR and visible spectrum.

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 185


SDK tools

2. Disabled extra UV-luminescence check of areas not described as patterns. In normal


mode patterns check verifies, that some areas of the image look as expected (as de-
scribed in this document template in the database) – actual patterns – and also checks
that there is no excess UV luminescence outside of these specific areas – additional
check. With safe mode enabled this additional check is not performed.
3. Disabled comparison of the holder’s portrait in IR and visible light for some docu-
ments.

The disabled checks are not performed, so no statistics can be gathered with this ap-
proach.

• processParam – the root configuration node.


o authSafeMode – (bool) enables/disables this mode. Disabled by default.

5.6.3. Excluding Authenticity Checks

It allows to disable authenticity checks for specific document template IDs. IDs can be
specified either as signed integers OR as document UUIDs as displayed in TR log XML. The
disabled checks are not performed, so no statistics can be gathered with this approach.

• processParam – the root configuration node.


o config – (array of objects)
▪ excludeAuthChecks – (unsigned int) – combination of eRPRM_Au-
thenticity checks to be disabled for given document template IDs
▪ docID – (array of signed integers) – list of document IDs as signed in-
tegers
▪ docUUID – (array of strings) – list of document UUIDs.

5.6.4. Evaluation Mode

This is the recommended approach. It allows to perform all the document validations and
gather statistics, but to specify individual document-specific checks or check groups not to
be considered when calculating overall document pass/fail status.

• bsiTr03135 – root section of JSON file related to XML log creation. Will be ex-
tended in the following versions.
o version - currently only version 3 is supported, this is for future use.
o evaluationChecks - section describing which protection element checks
have to be marked as "evaluation", thus not affecting overall document suc-
cess/failure status.
▪ patternsVis - (bool) – patterns in visible light.
▪ patternsIr - (bool) – patterns in IR

186 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

▪ patternsFalseLum - (bool) – patterns false luminescence - areas in


UV that are not part of described (document template specific) pat-
terns but having suspicious luminescence.
▪ irVisPhoto - (bool) – comparison of photo in VIS and IR on specific
documents (template-related)
▪ ids – (UUID string array) - array of specific areas of specific
dco:BasicCheckResult to be marked as evaluation (see Trivia for
details). Useful for marking specific individual check areas as evalua-
tion.
▪ types – (int array) - array of check types check ID as eRPRM_Au-
thenticity. For example, by adding 16 into this array Fibers check
for all the documents will become "evaluation". Useful for disabling
the whole check group for all the documents.

5.6.5. Image Depersonalization

Full-page document images can be depersonalized. Specified areas of the document will
be blurred. Areas can be specified as text or graphic field types or as rectangle in millime-
ters. Also, a filter can be applied to specify exact document template ID (docId), document
issuing country and/or type (“D”, “P” as country and docType), or document format (ar-
eas.format).

• dePersonalize – array of objects describing which graphic and text fields and
document areas to hide
o allTextFields – (bool) – all text fields in both MRZ and visual zone are to
be blurred.
o textFieldTypes – (array of unsigned integers) – one of eVisual-
FieldType.
o allGraphicFields – (bool) – all graphic fields in document visual inspec-
tion zone are to be blurred.
o graphicFieldTypes – (array of unsigned integers) – one of
eGraphicFieldType.
o docId – (signed integer) – document template ID as signed integer. Can be
used to identify specific document type to be depersonalized. Rarely used.
o country – (string) – issuing state code. To be used with docType. Rarely
used.
o docType – (string) – document class code (first two MRZ symbols “<” re-
moved). To be used with country. Rarely used.
o areas – (array of objects) – specific areas to blur for specific document for-
mats. Rarely used.
▪ format – (unsigned integer) – document format, one of CDocFor-
mat values. Used as a filter flag if this document is to be depersonal-
ized.

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 187


SDK tools

▪ area – (object) – rectangle of the area to be blurred, in millimeters.


• left (signed integer) – left of the rectangle, in mm;
• top (signed integer) – top of the rectangle, in mm;
• right (signed integer) – right of the rectangle, in mm;
• bottom (signed integer) – bottom of the rectangle, in mm.

5.6.6. Portrait Comparison Service

Portrait comparison can be done either internally or externally by the dedicated service.

• processParameters – the root configuration node. Note, it is a different root


node.
o extPortrait – portrait comparison configuration node
▪ url – (string) – address of the dedicated portrait comparison service.
Default is http://localhost:41101
▪ threshold – (integer) – the threshold comparison result percentage.
Higher than this threshold is “pass”, equal or lower is “fail”. Default is
50.
▪ proxy – (string) – proxy server address. Default is empty.
▪ proxy_userpwd – (string) – proxy server user and password as per
cURL documentation (https://curl.se/libcurl/c/CURLOPT_PROXYUSER-
PWD.html). Default is empty.
▪ proxy_type – (integer) – proxy server type as per cURL documenta-
tion (https://curl.se/libcurl/c/CURLOPT_PROXYTYPE.html). Default is 0
(CURLPROXY_HTTP).
▪ mode – (string, case-insensitive) – module behavior, one of the follow-
ing:
• AUTO – if service is available during PasspR40 initialization –
then service is used. Was the default settings prior to SDK 6.1.
• LEGACY – only internal PasspR40 portrait comparison algorithm
is used
• SERVICE – only service is used. This is the default starting SDK
6.1.
▪ serviceTimeout – (unsigned integer) – timeout. Default is 3000.

5.6.7. Stop-list Checks

By default, failed stop-list checks (both against an SQL text database and portrait database)
do not affect the overall processing status TStatus. To make them influence the overall
status, set the respectStopList parameter in processParam:

{
"processParam":
{

188 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

"respectStopList": true
}
}

To set up an extended stop-list, add the ExtendedStopList section to customParams.


If you need to include documents from specific countries only, specify the country code ac-
cording to ICAO and fields (see the eVisualFieldType enumeration) with correspond-
ing values, for example:
{
"processParam":
{
"customParams": {
"extendedStopList": {
"POL": [
{
"8": "VZOREC",
"9": "ANA",
"5": "02.01.1981"
}
],
}
}
}
}

If you need to add documents from all countries, use the value ALL:
{
"processParam":
{
"customParams": {
"extendedStopList": {
"ALL": [
{
"8": "VZOREC",
"9": "ANA",
"5": "02.01.1981"
}
],
}
}
}
}

Note that dates are always specified in the format DD.MM.YYYY

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 189


SDK tools

5.6.8. Face SDK Integration

The integration of Face SDK to Document Reader adds an automatic face match and
search by a portrait taken from the document (visual zone and RFID-chip) or a live owner
photo (selfie).

To add the Face API integration, use the following code:

{
"processParam":
{
"useFaceApi": true
}
}

Settings for the Face SDK can be defined either via JSON or environment variables. Note
that values specified in JSON take priority. For example, if one service address is specified
in the REGULA_FACEAPI_URL environment variable, and another address is specified
in processParam.faceApi.url, the address in processParam.faceApi.url will be
used.

The JSON settings and environment variables are described in the online documentation:

• How to configure via JSON

• Face SDK integration environment variables

By default, only the match functionality is performed. To add search, you need to set
match+search in the mode field.

Below you will find the parameters that can be used for performing a complete identifica-
tion in a single request, i.e., read and verify the document and at the same time compare
facial images. Note that useFaceApi should be enabled in all cases.

5.6.8.1. livePortrait

To add a live photo of the document owner (selfie) for comparison with the photo from
the visual zone of the document, use livePortrait:

{
"processParam":
{
"useFaceApi": true
},
"List": [],
"livePortrait": "base64image"
}

190 Version 7.1 RGVI.01.01.00 МZ © Regula, 2024


SDK tools

5.6.8.2. extPortrait

To add a photo from an external source, for example, a database, use extPortrait:

{
"processParam":
{
"useFaceApi": true
},
"List": [],
"extPortrait": "base64image"
}

5.6.8.3. oneShotIdentification

To crop a selfie from the same frame as the document and send it to Face API as a live
portrait, set oneShotIdentification to true:

{
"processParam":
{
"useFaceApi": true,
"oneShotIdentification": true
}
}

5.6.9. Enable CAN Detection

To enable the detection of the Card Access Number (CAN) when using scenarios that in-
volve document location and MRZ reading (such as the MrzAndLocate scenario), invoke
the following:

{
"processParam":
{
"doDetectCan": true
}
}

Version 7.1 RGVI.01.01.00 МZ © Regula, 2024 191

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy