A document reader is a periphery to read and analyze documents. This could be ca document scanner or a card reader. This interface does not care about the type of hardware. We expect only information in a scanner independent format which is described below. After the scan process in the hardware is finished, we immediately expect to receive this information.
IF Partner → SIHOT.PMS
Activation of the document reader
We are going to send an activation request for a scanner to a server which is connected to the scanner.
<?xml version="1.0" encoding="iso-8859-1"?> <SIHOT-Document> <OC>DR-SCAN</OC> <TN></TN> <HN></HN> <WS></WS> <SCANNER_NAME></SCANNER_NAME> <ECHOTOKEN></ECHOTOKEN> <ORG></ORG> </SIHOT-Document>
DR-SCAN = Activation of the document reader
|WS||Name of the workstation, where this data should be processed, needs to be returned in the response.||String|
|SCANNER_NAME||Name or ID of the scanner which should be activated.||String|
|ECHOTOKEN||Any data which needs to be returned in every response which is related to this activation request.||String|
|ORG||The SIHOT client which initiated the request. This value needs to be returned in the response.||String|
After we have sent the activation request, the scanner has to send the scanned document data in this format:
<?xml version="1.0" encoding="iso-8859-1"?> <SIHOT-Document> <OC>DR</OC> <HN></HN> <TN></TN> <DATA_DOCUMENT> <DOCUMENT_TYPE></DOCUMENT_TYPE> <ISSUECOUNTRY coding="3">ABC</ISSUECOUNTRY> <NATIONALITY coding="2">AB</NATIONALITY> <CN></CN> <SN></SN> <SN2></SN2> <CN_BIRTH></CN_BIRTH> <SN_BIRTH></SN_BIRTH> <DOCUMENT_NO></DOCUMENT_NO> <DOCUMENT_ID></DOCUMENT_ID> <STREET></STREET> <CITY></CITY> <ZIP></ZIP> <REGION></REGION> <DISTRICT></DISTRICT> <SEX></SEX> <DOB></DOB> <POB></POB> <EXPIRE></EXPIRE> <ISSUEDATE></ISSUEDATE> <TAX_NUMBER></TAX_NUMBER> <ISSUED_BY></ISSUED_BY> <PHONE></PHONE> <EMAIL></EMAIL> <MOTHER> <CN></CN> <SN></SN> </MOTHER> <FATHER> <CN></CN> <SN></SN> </FATHER> </DATA_DOCUMENT> <IMAGE_DOCUMENT></IMAGE_DOCUMENT> <IMAGE_DOCUMENT_BACK></IMAGE_DOCUMENT_BACK> <IMAGE_PHOTO></IMAGE_PHOTO> <IMAGE_SIGNATURE></IMAGE_SIGNATURE> <MSG></MSG> <WS></WS> <!--value from the activation request --> <ECHOTOKEN></ECHOTOKEN> <!--value from the activation request --> <ORG></ORG> <!--value from the activation request --> </SIHOT-Document>
The record consists of the parts:
<DATA_DOCUMENT>: The plain text data of the client. This is obligatory.
<IMAGE_DOCUMENT>: The complete image in DIB-Format of the document, front side. This is transferred in Base 64 Coding.
<IMAGE_DOCUMENT_BACK>: The complete image in DIB-Format of the document, only the second side. This is transferred in Base 64 Coding.
<IMAGE_PHOTO>: Only the photo of the client in DIB-Format out of the document. This data is also transferred in Base 64 Coding.
<IMAGE_SIGNATURE>: Only the photo of the client’s signature in DIB-Format out of the document. This data is also transferred in Base 64 Coding.
DR = Document reader
|DOCUMENT_TYPE||Possible values are:
|ISSUECOUNTRY||Identifying the issuing country||String|
|ISSUED_BY||Identifying the office that issued the document||String|
|NATIONALITY||The bearer’s nationality. See also EXPEDITOR||String|
|DOCUMENT_NO||Unique number of the document to identify this document||String|
|DOCUMENT_ID||The unique identification for this client (VAT/tax identification number)||String|
|EXPIRE||Expire date of the document, format: YYYY-MM-DD||Date|
|MSG||Additional data to be displayed on the client screen||String|
|WS||Name of the workstation, where this data should be processed, needs to have the content from the activation request.||String|
|ECHOTOKEN||Needs to have the same content like sent in the activation request.||String|
|ORG||Needs to have the same content like sent in the activation request.||String|
|ISSUEDATE||Issuing date of the document, format YYYY-MM-DD||Date|
|SN2||Surname (if applicable)||String|
|CN_BIRTH||Christian name/given name at birth||String|
|SN_BIRTH||Surname/family name at birth||String|
|REGION||Region or state||String|
|DISTRICT||District or county||String|
|DOB||Date of birth, format: YYYY-MM-DD||Date|
|POB||Place of birth||String|
|PHONE||Phone number of the guest||String|
|Email address of the guest||String|
|MOTHER||Information about the mother|
|FATHER||Information about the father|
In case the user needs to turn the document, the scanner can send a message with the
<MSG> element including a user friendly message.
<?xml version="1.0" encoding="iso-8859-1"?> <SIHOT-Document> <OC>DR</OC> <HN></HN> <TN></TN> <MSG>Please turn the document to read the second page</MSG> <WS></WS> <!--value from the activation request --> <ECHOTOKEN></ECHOTOKEN> <!--value from the activation request --> <ORG></ORG> <!--value from the activation request --> </SIHOT-Document>
Special notes on communication layer
There are several things to insider:
- This interface on SIHOT side runs as client and server at the same time! See Communication.
- The activation request is sent to a server on the scanner side.
- The answer could either be sent directly back to the client as response of the activation request OR can be sent to the server port of this interface.
- In any case, the connection with the activation request is closed automatically after the first response is received. If you have to send a second request, you have to send it to the server port.
- Every response to an activation request needs to have the same
<ORG>elements content like the according activation request.
- If there is one server for all scanners on the document reader side, then we are sending the
<SCANNER_NAME>element for the scanner which needs to be activated.