Added MTMICRSetConfigFile function and error codes
67, 68, 69, and 70.
8
23 Oct 2011
Added new option for <ProcessOptions><DocFeed>
9
1 Mar 2012
Updated MagneSafe MSR info for clarification
10
6 May 2014
Updated requirements for Virtual Endorsing; minor
formatting corrections
MagTek®, Inc.
Printed in the United States of America
Information in this document is subject to change without notice. No part of this document may be
reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose,
without the express written permission of MagTek, Inc.
MagTek is a registered trademark of MagTek, Inc.
ExcellaTM is a trademark of MagTek, Inc.
Microsoft® is a trademark of Microsoft Corporation.
REVISIONS
iii
SOFTWARE LICENSE AGREEMENT
IMPORTANT: YOU SHOULD CAREFULLY READ ALL THE TERMS, CONDITIONS AND RESTRICTIONS OF THIS
LICENSE AGREEMENT BEFORE INSTALLING THE SOFTWARE PACKAGE. YOUR INSTALLATION OF THE
SOFTWARE PACKAGE PRESUMES YOUR ACCEPTANCE OF THE TERMS, CONDITIONS, AND RESTRICTIONS
CONTAINED IN THIS AGREEMENT. IF YOU DO NOT AGREE WITH THESE TERMS, CONDITIONS, AND
RESTRICTIONS, PROMPTLY RETURN THE SOFTWARE PACKAGE AND ASSOCIATED DOCUMENTATION TO
THE ABOVE ADDRESS, ATTENTION: CUSTOMER SUPPORT.
TERMS, CONDITIONS, AND RESTRICTIONS
MagTek, Incorporated (the "Licensor") owns and has the right to distribute the described software and documentation,
collectively referred to as the "Software".
LICENSE: Licensor grants you (the "Licensee") the right to use the Software in conjunction with MagTek products.
LICENSEE MAY NOT COPY, MODIFY, OR TRANSFER THE SOFTWARE IN WHOLE OR IN PART EXCEPT AS
EXPRESSLY PROVIDED IN THIS AGREEMENT. Licensee may not decompile, disassemble, or in any other manner
attempt to reverse engineer the Software. Licensee shall not tamper with, bypass, or alter any security features of the software
or attempt to do so.
TRANSFER: Licensee may not transfer the Software or license to the Software to another party without the prior written
authorization of the Licensor. If Licensee transfers the Software without authorization, all rights granted under this
Agreement are automatically terminated.
COPYRIGHT: The Software is copyrighted. Licensee may not copy the Software except for archival purposes or to load for
execution purposes. All other copies of the Software are in violation of this Agreement.
TERM: This Agreement is in effect as long as Licensee continues the use of the Software. The Licensor also reserves the
right to terminate this Agreement if Licensee fails to comply with any of the terms, conditions, or restrictions contained
herein. Should Licensor terminate this Agreement due to Licensee's failure to comply, Licensee agrees to return the Software
to Licensor. Receipt of returned Software by the Licensor shall mark the termination.
LIMITED WARRANTY: Licensor warrants to the Licensee that the disk(s) or other media on which the Software is
recorded are free from defects in material or workmanship under normal use.
THE SOFTWARE IS PROVIDED AS IS. LICENSOR MAKES NO OTHER WARRANTY OF
ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE.
Because of the diversity of conditions and PC hardware under which the Software may be used, Licensor does not warrant
that the Software will meet Licensee specifications or that the operation of the Software will be uninterrupted or free of
errors.
IN NO EVENT WILL LICENSOR BE LIABLE FOR ANY DAMAGES, INCLUDING ANY LOST PROFITS, LOST
SAVINGS, OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE, OR
INABILITY TO USE, THE SOFTWARE. Licensee's sole remedy in the event of a defect in material or workmanship is
expressly limited to replacement of the Software disk(s) if applicable.
GOVERNING LAW: If any provision of this Agreement is found to be unlawful, void, or unenforceable, that provision shall
be removed from consideration under this Agreement and will not affect the enforceability of any of the remaining
provisions. This Agreement shall be governed by the laws of the State of California and shall inure to the benefit of MagTek,
Incorporated, its successors or assigns.
ACKNOWLEDGMENT: LICENSEE ACKNOWLEDGES THAT HE HAS READ THIS AGREEMENT,
UNDERSTANDS ALL OF ITS TERMS, CONDITIONS, AND RESTRICTIONS, AND AGREES TO BE BOUND BY
THEM. LICENSEE ALSO AGREES THAT THIS AGREEMENT SUPERSEDES ANY AND ALL VERBAL AND
WRITTEN COMMUNICATIONS BETWEEN LICENSOR AND LICENSEE OR THEIR ASSIGNS RELATING TO THE
SUBJECT MATTER OF THIS AGREEMENT.
QUESTIONS REGARDING THIS AGREEMENT SHOULD BE ADDRESSED IN WRITING TO MAGTEK,
INCORPORATED, ATTENTION: CUSTOMER SUPPORT, AT THE ABOVE ADDRESS, OR E-MAILED TO
TERM DESCRIPTION ............................................................................................................................. 4
DEVICES ATTACH THROUGH USB NETWORK CARD........................................................................ 4
RNDIS SUPPORT FOR A USB NETWORK DEVICE ............................................................................. 5
SUPPORT FOR EXCELLA DEVICE ON PC SIDE: ................................................................................. 6
HOW TO COMMUNICATE WITH EXCELLA USING WEB BROWSER ................................................. 6
Get Device Status ................................................................................................................................... 8
Get Device Usage ................................................................................................................................... 9
HOW TO COMMUNICATE WITH EXCELLA USING THE EXCELLA API ............................................ 10
API FUNCTIONS.................................................................................................................................... 11
SOFTWARE FLOW FOR CHECK PROCESSING ................................................................................ 12
HOW TO PROCESS DOCUMENT USING EXCELLA API ................................................................... 13
HOW TO GET CHECK IMAGES ........................................................................................................... 14
PROCESS OPTIONS ............................................................................................................................ 14
Example ............................................................................................................................................... 15
Example ............................................................................................................................................... 16
Example ............................................................................................................................................... 17
Example ............................................................................................................................................... 19
Example ............................................................................................................................................... 19
Example ............................................................................................................................................... 21
Example ............................................................................................................................................... 22
Example ............................................................................................................................................... 23
Example ............................................................................................................................................... 25
Example ............................................................................................................................................... 26
Example ............................................................................................................................................... 28
Example ............................................................................................................................................... 29
Example ............................................................................................................................................... 31
Example ............................................................................................................................................... 34
Example ............................................................................................................................................... 35
Example ............................................................................................................................................... 37
Example ............................................................................................................................................... 39
Example ............................................................................................................................................... 41
Example ............................................................................................................................................... 42
Example ............................................................................................................................................... 43
Example ............................................................................................................................................... 44
Example ............................................................................................................................................... 45
Example ............................................................................................................................................... 46
Example ............................................................................................................................................... 46
Example ............................................................................................................................................... 47
Example ............................................................................................................................................... 48
Example ............................................................................................................................................... 50
SECTION 5. KEYS SENT TO DEVICE ...................................................................................................... 51
Transfer ................................................................................................................................................ 53
Number ................................................................................................................................................ 63
Number ................................................................................................................................................ 82
Color .................................................................................................................................................... 91
State .................................................................................................................................................... 92
Section 1. Overview
Section 2. Excella Software Architecture – includes flow diagrams, screen captures, and
several “How To” descriptions.
Section 3. Excella API – describes Excella device API functions and return codes.
Section 4. Commands Sent To Device – describes commands sent by the application to the
Excella device.
Section 5. Keys Sent to Device – lists and explains keys sent to the Excella device by the
application.
Section 6. Keys Received From Device – lists and explains keys received from the Excella
device.
Section 7. Other Keys Available from Device – lists additional keys available from Excella
device.
Section 8. Examples of Key-Value Pairs
Appendix A. Format List – built-in list of MICR data formats from which the user may select
one to become the active Format every time a check is read.
Appendix B. Error codes and messages from Excella API MTXMLMCR.dll.
REQUIREMENTS
The following item is required for software installation:
P/N 22359069, API/Demo for Excella STX (CD)
For the USB interface, this CD installs USB Drivers, MTXMLMCR.dll and Demo program.
3
COMPUTER
EXCELLA DEVICE
CONNECTED VIA USB
Wininet.dll
‘C’ API to xfer data to a web
XML to Key/Value and vice versa
Application
Excella API
MSXML
‘C’ API
USB Protocol
USB Protocol
HTTP: XML
Microsoft Network Stack
USB Driver
Magtek RNDIS Layer
Network Layer TCP/IP
WEB Server
(HTTP and XML parser)
SECTION 2. EXCELLA SOFTWARE ARCHITECTURE
(For RNDIS USB Drivers Only)
The architecture of the system is shown in Figure 2-1. Descriptions of the terms and operations
used follow the illustration.
Figure 2-1. Excella Software Architecture
Excella Windows API Specifications
4
TERM DESCRIPTION
MTXMLMCR.dll.
Application provides API to upper level application to talk to the device. The application does
not have any knowledge of how the device is connected to the computer. Thus it does not
expose the transport protocol to the application. We are using HTTP protocol with XML to
communicate with the device. The MTXMLMCR.dll uses wininet.dll to talk to internet
protocols. The MTXMLMCR.dll. provides functions to convert the scan request into XML
format using msxml4.dll and then send it to the device using wininet.dll. It also provides
functions to convert the response from the device (XML format) to key/value pairs.
msxml4.dll : Microsoft XML Parser. MTXMLMCR.dll.
uses msxml4.dll to convert the key/value pair to XML language. MTXMLMCR.dll also uses
the msxml4.dll to convert the XML data back to key/ value pair.
wininet.dll: MFC Win32 Internet Extension. wininet.dll, provide access to common Internet
protocols, including Gopher, FTP, and HTTP. MTXMLMCR.dll uses wininet.dll to establish
an Internet connection with Excella device. It then communicates with Excella using GET and
POST requests provide by wininet.dll.
RNDIS: Microsoft Ethernet to USB driver that makes USB device look like an Ethernet device.
This driver supports Windows 98, ME, 2000 and XP.
DEVICES ATTACH THROUGH USB NETWORK CARD
Devices attach through the USB Network card are shown in Figure 2-2.*
Figure 2-2. Devices attach through USB Network Card
*
Figures 2-2 and 2-3 are produced by Microsoft.
Section 2. Excella Software Architecture
5
RNDIS SUPPORT FOR A USB NETWORK DEVICE
RNDIS Support for a USB Network device is shown in Figure 2-3.*
Figure 2-3. RNDIS Support for a USB Network Device
Excella Windows API Specifications
6
SUPPORT FOR EXCELLA DEVICE ON PC SIDE:
To support Excella device on the PC side, a template INF file provided by Microsoft was
modified to install the RNDIS drivers. There are two driver files provided by Microsoft:
rndismp.sys (export driver and is linked to usb8023.sys)
usb8023.sys (For an RNDIS USB Device)
When usb8023.sys is loaded the system automatically loads rndismp.sys.
Windows XP has built in support for RNDIS. Windows 2000 does not have RNDIS drivers.
MagTek supplies RNDIS driver for Windows 2000.
HOW TO COMMUNICATE WITH EXCELLA USING WEB BROWSER
Excella device can be accessed from an Internet Web browser using the IP address of the device.
An example in using the IP address of the Excella device to obtain device capabilities
information is followed.
Assuming the Excella device has IP address 192.168.10.100, type the following line in the
address box of the Web browser. Internet Explorer is used in this example:
Press the Enter key, and the Excella device responds with the results shown on the next page:
Section 2. Excella Software Architecture
7
Excella Windows API Specifications
8
Get Device Status
The following is an example in using the IP address of the Excella device to obtain device status
information. Assuming the Excella device has IP address 192.168.10.100, type the following line
in the address box of the Web browser. Internet Explorer is used in this example:
Press the Enter key, and the Excella device responds with the results shown below:
Section 2. Excella Software Architecture
9
Get Device Usage
The following is an example in using the IP address of the Excella device to obtain device usage
information. Assuming the Excella device has IP address 192.168.10.100, type the following line
in the address box of the Web browser. Internet Explorer is used in this example:
Press the Enter key, and the Excella device responds with the results shown below:
Excella Windows API Specifications
10
Files
Location
Description
micrdev.ini
Windows folder
This file contains a list of default
Excella connections and IP
addresses.
MTXMLMCR.dll
Windows System32 folder
Excella API
wininet.dll
Windows System32 folder.
Win32 API for Internet Protocols.
This file is provided by Microsoft
msxml4.dll
Windows System32 folder.
MSXML XML parser. ActiveX
Object for XML API. This file is
installed with the installation of
Excella API
HOW TO COMMUNICATE WITH EXCELLA USING THE EXCELLA API
The following table lists required files in order to use Excella API:
Section 2. Excella Software Architecture
11
NAME
DESCRIPTION
PAGE
MTMICRGetDevice
Get device name of all devices present.
15
MTMICROpenDevice
Opens device with the given name.
16
MTMICRCloseDevice
Closes device with the given name.
17
MTMICRDeviceConnect
Connects device with IP or DNS name.
18
MTMICRDeviceDisconnect
Disconnect device with the given IP or DNS name.
19
MTMICRSetValue
Adds a key/value pair to a given section.
20
MTMICRSetIndexValue
Adds a key/value pair with index to a given section.
21
MTMICRGetValue
Returns value of a key/value pair from a given section.
22
MTMICRGetIndexValue
Returns value of a key/value pair with index from a given
section.
24
MTMICRQueryInfo
Sends a request to a given device name to query for info
on a given query parameter.
25
MTMICRSendCommand
Sends a single command to a given device name.
27
MTMICRProcessCheck
Sends a scan request to a given device to scan with a
given process options.
28
MTMICRGetImage
Sends request to the given device name to get an image
of a previously scanned check.
30
MTMICRGetImages
Sends request to the given device name to get one or
more images of a previously scanned check.
32
MTMICRGetSectionCount
Returns the number of sections present in a given
document information.
34
MTMICRGetSectionName
Returns the section name of the given section number in
a given document information.
36
MTMICRGetKeyCount
Returns the number of keys present in a given section in
a given document information.
37
MTMICRGetKeyName
Returns the key name of the given key number in a given
document information.
40
MTMICRSetTimeout
Sets device communication timeout in milliseconds.
48
MTMICRGetTimeout
Gets device communication timeout in milliseconds.
49
MTMICRLogEnable
Enable the logging.
50
MTMICRSetLogFileHandle
Logs errors to the given file handle.
51
MTMICRSetLogLevel
Sets the level of details for logging
52
MTMICRCOMInitialize
Enable MSXML instantiation at DLL level
53
MTMICRCOMUnInitialize
Disable MSXML instantiation at DLL level
54
MTMICRSetConfigFile
Set the path and file name of the config file. Default is
"MICRDEV.INI"
55
API FUNCTIONS
Table 2-1 lists functions provided by MTXMLMCR.dll. Please refer to Section 3 for a complete
description of these functions.
Table 2-1. Functions
Excella Windows API Specifications
12
Excella Present
Successful Open Device
Select desired options for
check processing
Yes
Yes
Close Device
No
Want new option?
Continue?
No
Modify options
Yes
Send options to device
SOFTWARE FLOW FOR CHECK PROCESSING
Figure 2-4 illustrates the sequence of check processing.
Figure 2-4. Software Flow for Check Processing
Section 2. Excella Software Architecture
13
HOW TO PROCESS DOCUMENT USING EXCELLA API
To process document, follow these steps:
1. Find the attached Excella device by calling function MTMICRGetDevice.
2. Use function MTMICROpenDevice to open the device.
3. Excella is now ready to accept the XML options using function MTMICRProcessCheck.
For every document that is processed, a set of options must be sent to the device. These
options define how the document will be processed, i.e., image color, image type, image
resolution, print back, print front etc. The options are stored as key/value pairs in a
buffer. The memory for this buffer must be allocated big enough to store all selected
options. These options must be sent to the Excella device using function
MTMICRProcessCheck. Use function MTMICRSetValue and function
MTMICRSetIndexValue to store the key/value pairs in the option buffer. The options can
be set in the buffer only once.
4. Use function MTMICRProcessCheck to send the process options to the Excella device.
5. Excella processes the document with the given process options and returns the result of
the process operation. The result is stored in the third parameter of the function
MTMICRProcessCheck. The result contains only the information of the operation and
information of the device. It does not contain scanned data. Information such as the size
of the scanned images and the image identifier are included. The image information can
be found under ImageInfo section. Use function MTMICRGetValue and function
MTMICRGetIndexValue to retrieve key/value pair for image information. If there is no
error returned in the document information, use function MTMICRGetImage or function
MTMICRGetImages to get image data.
6. Go to step 4 to process the next check.
Excella Windows API Specifications
14
HOW TO GET CHECK IMAGES
To get a check image, follow these steps:
1. The function MTMICRProcessCheck contains information of the process operation
provided by Excella device after it completes document processing. Use this information
to find the information of the scanned images in the ImageInfo section. The ImageInfo
section contains the size of the image and the image identification for each image.
2. Use function MTMICRGetValue or function MTMICRGetIndexValue to retrieve the size
and the URL of each image. Allocate memory for each image according to its given size.
3. Use function MTMICRGetImage to get one image at a time or function
MTMICRGetImages to get all images at once. The image data is transferred to the buffer
that has memory allocated.
PROCESS OPTIONS
Process options are stored as key/value pairs in a buffer. The structure of the options follows
XML format. Use function MTMICRSetValue or function MTMICRSetIndexValue to add an
option to this structure. Options are string-based key/value pairs. Each option is stored only
once in the buffer. Function MTMICRGetValue and function MTMICRGetIndexValue can be used
to retrieve a key/value pair from this buffer.
ERROR REPORTING
When a document is processed, if there is an error in the Excella device or in the processing
operation, the error is returned in the function MTMICRProcessCheck . Use function
MTMICRGetValue or function MTMICRGetIndexValue to retrieve the error information. Table 4-
13 to table 4-20 list return codes and return messages from Excella.
If an error occurs due to the failure of API function, the error is returned as the return code of the
API provided by MTXMLMCR.dll. Appendix B contains a list of errors returning from
MTXMLMCR.dll
DEBUGGING API
On the Excella Demo GUI program, there is an option to enable the error logging function. If
this option is enabled, all errors returned from the device are logged into log file named
“STXDemo.log”. This file resides in the Excella Demo program installation directory.
15
SECTION 3. EXCELLA API
MTMICRGetDevice
MTMICRGetDevice function returns the device name of the device present in the system.
ULONG MTMICRGetDevice (
DWORD dwDeviceContext,
char *pcDevName
);
Parameters
dwDeviceContext
This is the device number of the device. This must be set to 1 to get the first device in the system. Increment it by 1 to get
the next device name.
pcDevName
Pointer to the buffer where the device name will be stored.
If the function succeeds, the return value is MICR_ST_OK. The device name of the device is filled in the buffer pointed by the
parameter pcDevName.
If there is no device present or there is no device that is associated with the given dwDeviceContext, then the function fails and
MICR_ST_DEVICE_NOT_FOUND is returned.
If there is no memory allocated for the pcDevName parameter, then MICR_ST_BAD_PARAMETER is returned.
Example
#define DEVICE_NAME_LEN 128
int i=1;
DWORD dwResult;
char pcDevName[DEVICE_NAME_LEN]="";
while ((dwResult = MTMICRGetDevice(i,(char*) pcDevName)) != MICR_ST_DEVICE_NOT_FOUND)
{
// Device found, increment the device number
i++;
}
Excella Windows API Specifications
16
MTMICROpenDevice
MTMICROpenDevice function opens the device with the given device name.
ULONG MTMICROpenDevice (
char *pcDevName
);
Parameters
pcDevName
Pointer to null terminated string that specifies the name of the device to open. Use function MTMICRGetDevice to
obtain the device name.
Return Values
If the function succeeds, the return value is MICR_ST_OK.
If the pcDevName is NULL, the return value is MICR_ST_BAD_DEVICE_NAME.
If no device is found, the return value is MICR_ST_DEVICE_NOT_FOUND.
If MSXML is not installed, return value is MICR_ST_MSXML_NOT_FOUND
If MSXML cannot be instantiated, return value is MICR_ST_MSXML_FAILED
If device is found but cannot connect, return value is MICR_ST_DEVICE_NOT_RESPONDING
Example
#define DEVICE_NAME_LEN 128
int i=1;
DWORD dwResult;
char pcDevName[DEVICE_NAME_LEN]="";
while ((dwResult = MTMICRGetDevice(i,(char*) pcDevName)) != MICR_ST_DEVICE_NOT_FOUND)
{
if (MTMICROpenDevice (pcDevName) == MICR_ST_OK)
{
///close the device
MTMICRCloseDevice (pcDevName);
}
i++;
}
Section 3. Excella API
17
MTMICRCloseDevice
MTMICRCloseDevice function closes the device with the given device name.
ULONG MTMICRCloseDevice (
char *pcDevName
);
Parameters
pcDevName
Pointer to null terminated string containing the name of the device to close. This is thedevice that ispreviously opened
using function MTMICROpenDevice.
If the pcDevName is NULL, the return value is MICR_ST_BAD_DEVICE_NAME.
Example
#define DEVICE_NAME_LEN 128
int i=1;
DWORD dwResult;
char pcDevName[DEVICE_NAME_LEN]="";
// Get the device name at device number “i”
while ((dwResult = MTMICRGetDevice(i,(char*) pcDevName)) != MICR_ST_DEVICE_NOT_FOUND)
{
// Success in getting the device name
// Open this device
if (MTMICROpenDevice (pcDevName) == MICR_ST_OK)
{
// Now close this device
MTMICRCloseDevice (pcDevName);
}
else
{
// Error while opening this device.
}
i++;
}
Excella Windows API Specifications
18
MTMICRDeviceConnect
MTMICRDeviceConnect function connects host to a device that has the given IP address or a DNS name.
lpszDevice: Pointer to a null terminated string that contains the IP address or DNS name of the device.
nServerPort: Unsigned integer that specifies the TCP/IP port on the server to which a connection is made.
dwAccessType: Type of Internet access. This parameter can be one of the following values: INTERNET_OPEN_TYPE_DIRECT
INTERNET_OPEN_TYPE_PRECONFIG
INTERNET_OPEN_TYPE_PROXY
INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY
lpszProxyName: Pointer to a null-terminated string that specifies the name of the proxy server to use when proxy access
is specified by setting dwAccessType to INTERNET_OPEN_TYPE_PROXY.
lpszProxyBypass: Pointer to a null-terminated string that specifies an optional list of host names or IP addresses, or both, that should not be routed through the proxy when dwAccessType
is set to INTERNET_OPEN_TYPE_PROXY
Return Values
If the function succeeds, the return value is MICR_ST_OK.
If parameter lpszDevice is NULL, the return value is MICR_ST_BAD_DEVICE_IP_OR_DOMAIN_NAME.
If no device is found, the return value is MICR_ST_DEVICE_NOT_FOUND.
If MSXML is not installed, return value is MICR_ST_MSXML_NOT_FOUND
If MSXML cannot be instantiated, return value is MICR_ST_MSXML_FAILED
If device is found but cannot connect, return value is MICR_ST_DEVICE_NOT_RESPONDING
MTMICRDeviceDisconnect function disconnects the device that has the given IP address or DNS name.
ULONG MTMICRDeviceDisconnect (LPSTR lpszDevice);
Parameters
lpszDevice Pointer to a null terminated string that contains the IP address or DNS name of the device. This is thedevice
that ispreviously connected using function MTMICRDeviceConnect.
MTMICRSetValue function adds a key/value pair to the given device settings specified in pcOptions buffer and in a given
section specified in pcSection buffer.
ULONG MTMICRSetValue (
char *pcOptions,
char *pcSection,
char *pcKey,
char *pcValue,
DWORD *pdwLength
);
Parameters
pcOptions
Pointer to null terminated string containing all key/value pairs.
pcSection
Pointer to null terminated string containing the section name.
pcKey
Pointer to null terminated string containing the key name.
pcValue
Pointer to null terminated string containing the key value. If this is NULL, then the key pcKey is deleted from the section
pcSection.
pdwLength:
Pointer to a double word that contains the size of the pcOptions buffer.
The functions return MICR_ST_NOT_ENOUGH_MEMORY, if the pcOptions buffer is not enough to add the new key/value
pair. The required size of the buffer is returned in pdwLength.
The minimum size of the buffer should be equal to MTMICR_OPTIONS_BUFFER_SIZE.
The MTMICRSetValue function saves the new key/value pair in the pcOptions buffer only. This function does not send this
key/value pair to the device. Use function MTMICRProcessCheck to send this key/value pair to the device.
If pcKey is NULL, the whole section pcSection will be removed from pcOptions string.
If pcValue is NULL and a key is specified, the specified key will be removed from the specified section
If pdwLength is less than the size of the results pcOptions after new key/value pair is added then
MICR_ST_NOT_ENOUGH_MEMORY is returned
Section 3. Excella API
21
Example
char Settings [4096];
DWORD SettingsBufferSize;
// Initialize Settings
// Initialize the Settings variable first
SettingsBufferSize =4096;
// Set a value of “4” to the key “Number” in section “ImageOptions”and store this new
key/value pair in the buffer” Settings”
MTMICRSetIndexValue is similar to the MTMICRSetVaue, except that, MTMICRSetIndexValue adds the Index number
to the pcKey before adding the key/value pair to the given Options buffer.
ULONG MTMICRSetIndexValue (
char *pcOptions,
char *pcSection,
char *pcKey,
unsigned int nIndex,
char *pcValue,
DWORD *pdwLength
);
Parameters
pcOptions
Pointer to null terminated string containing all key/value pairs.
pcSection
Pointer to null terminated string containing the section name.
pcKey
Pointer to null terminated string containing the key name.
nIndex
Index of the key.
pcValue
Pointer to null terminated string containing the key value.
pdwLength:
Pointer to a double word that contains the size of the pcOptions buffer.
The function returns MICR_ST_NOT_ENOUGH_MEMORY, if the memory allocated for pcOptions buffer is not big enough
to store the additional key/value pair. The required size for the buffer is returned in pdwLength;
The minimum size of the buffer should be equal to MTMICR_OPTIONS_BUFFER_SIZE.
The MTMICRSetIndexValue function saves the new key/value pair in the pcOptions buffer only. This function does not
send the new key/value pair to the device. Use function MTMICRProcessCheck to send this key/value pair to the device.
If parameter nIndex is less than zero or greater than 4 then MICR_ST_BAD_PARAMETER is returned.
If pdwLength is less than the length of the results pcOptions string after new key/value pair is added then
MICR_ST_NOT_ENOUGH_MEMORY is returned.
Example
char Settings [4096];
DWORD SettingsBufferSize;
// Initialize Settings
// Intialize the Settings variable first
SettingsBufferSize =4096;
// The following command will set ImageColor1 = BW under the ImageOptions section.
dwStatus=MTMICRSetIndexValue(Settings, "ImageOptions","ImageColor",1, "BW",
&SettingsBufferSize);
MTMICRGetValue
MTMICRGetValue function retrieves a key/value pair that was previously stored in the pcDocInfo parameter using
MTMICRSetValue function .
MTMICRGetValue finds the key in the pcDocInfo buffer then returns its value in the pcValue.
If MTMICRGetValue succeeds it returns MICR_ST_OK.
If pdwLength is less than the size of the returned value then MICR_ST_NOT_ENOUGH_MEMORY is returned
and the required size for the pcValue buffer is returned in the pdwLength.
If the key/value pair can not be found, then a NULL is returned for pcValue and error parameter
MICR_ST_KEY_NOT_FOUND is returned.
// Use function MTMICRGetDevice to get device name for variable “device”
// Call MTMICRProcessCheck function to process a document.
dwStatus = MTMICRProcessCheck (device, Settings, DocInfo, &DocInfoSize);
if (dwStatus != MICR_ST_OK)
// error retrieving key value
else
{
// do further process
}
}
Excella Windows API Specifications
24
MTMICRGetIndexValue
MTMICRGetIndexValue function retrieves a key/value pair that was previously stored in the pcDocInfo parameter.
MTMICRGetIndexValue function is similar to the function MTMICRGetValue. MTMICRGetIndexValue function adds
index to the key name before searching for the value of the key name pcKey in the pcDocInfo.
// Use function MTMICRGetDevice to get device name for variable “device”
// Call MTMICRProcessCheck function to process a document.
dwStatus = MTMICRProcessCheck (device, Settings, DocInfo, &DocInfoSize);
If the function succeeds MICR_ST_OK is returned.
If the device fails to respond, MICR_ST_DEVICE_NOT_RESPONDING is returned.
If the memory allocated for pcSectionData buffer that is not big enough to store the data of the inquiry section,
MICR_ST_NOT_ENOUGH_MEMORY is returned.
Error results from bad connection with device can be one of the following:
MTMICRSendCommand function is used to send a single command to the device.
ULONG MTMICRSendCommand (
char *pcDevName,
char *pcCommand,
char *pcResult,
DWORD *pdwLength
);
Parameters
pcDevName
Pointer to null terminated string containing device name.
pcCommand
Pointer to null terminated string containing the command string. There are two commands available: command
“ClearPathExit” and command “ClearPathEntry.”
pcResult
Pointer to the buffer that is used to store results returning from device.
When sending command “ClearPathExit” or command “ClearPathEntry” to the device, the device is trying to clear the
document path. If there is document in the path, the document is removed through the exit point if the command is
“ClearPathExit” or the document is removed through the entry point if the command is “ClearPathEntry.”
MTMICRProcessCheck function sends a scan check request with the given process options to the given device name. When
the device completes the scan request, the result of the scan is returned in the buffer pcDocInfo.
Pointer to null terminated string containing device name.
pcProcessOptions
Pointer to a buffer containing the options to be used in processing the check. The options are stored in the buffer by using
functionMTMICRSetValueor functionMTMICRSetIndexValue.
pcDocInfo
Pointer to the buffer containing the information returned from the device. The returned information contains command
status, MICR data, and image information.
If the function succeeds MICR_ST_OK is returned.
If there is no data returns from device, error MICR_ST_PROCESS_CHECK_FAILED is returned
If pcProcessOptions is NULL, error MICR_ST_BAD_DATA is returned
If pcDocInfo is NULL, error MICR_ST_BAD_BUFFER is returned
If the size of returned data is larger than the value specified in pdwDocInfoSize, error
MICR_ST_NOT_ENOUGH_MEMORY is returned
If the function fails to get HTTP header information, MICR_ST_HTTP_HEADER_NOT_FOUND is returned.
Error results from bad connection with device can be one of the following:
// Set up options using function MTMICRSetValue or function MTMICRSetIndexValue
// Use function MTMICRGetDevice to get device name for variable “Device”
If the function succeeds, MICR_ST_OK is returned.
If the requested image is not found, MICR_ST_IMAGE_NOT_FOUND is returned.
If the device fails to respond to the command, the return value is MICR_ST_DEVICE_NOT_RESPONDING.
If the size of the buffer uses to store the image is not large enough, MICR_ST_NOT_ENOUGH_MEMORY is returned.
Error results from bad connection with device can be one of the following:
// Get the image size from DocInfo
nValueSize = BUFFER_LEN;
MTMICRGetIndexValue (DocInfo, “ImageInfo”,”ImageSize”, nIndex, cValue, &
nValueSize);
// Convert size to integer
bufferSize = atol (cValue);
// Get the Image Id from DocInfo
nValueSize = BUFFER_LEN;
MTMICRGetIndexValue (DocInfo, “ImageInfo”,”ImageSize, nIndex, cValue, &
nValueSize);
if (bufferSize)
{
pcImageId = ImageURLx returned by the MTMICRProcessCheck in the document information. Where x is the image
index.
pcBuffer = Allocate memory required to store the image. The image size is also returned in the document information
from the MTMICRProcessCheck.
dwBufferLength = Size of pcBuffer in bytes.
dwBytesReturned = MTMICRGetImages will store the number of bytes returned by the device.
dwStatus = MTMICRGetImages fills the status of each image.
dwTotalImages=Number of Images requested.
If the function succeeds, MICR_ST_OK is returned.
If the requested image is not found, MICR_ST_IMAGE_NOT_FOUND is returned.
If the function fails to get data packet information, MICR_ST_QUERY_CONTENT_ERROR is returned.
If the function fails to get HTTP header information, MICR_ST_HTTP_HEADER_NOT_FOUND is returned.
If the device fails to respond to the command, the return value is MICR_ST_DEVICE_NOT_RESPONDING.
If the size of the buffer uses to store the image data is not large enough, MICR_ST_NOT_ENOUGH_MEMORY is returned.
Error results from bad connection with device can be one of the following:
}
}
}
// Use function MTMICRGetDevice to get device name for variable “Device”
error = MTMICRGetImages (Device, getImages, 4);
MTMICRGETSECTIONCOUNT
MTMICRGetSectionCount function returns the number of section present in a null terminated buffer which contains a set of
key/value pairs. The key/value pairs get stored in the buffer using function MTMICRSetValue or MTMICRSetIndexValue.
ULONG MTMICRGetSectionCount (
char *pcData,
DWORD *pdwSectionCount
);
Section 3. Excella API
35
Parameters
pcData
Pointer to null terminated string containing a set of key/value pairs.
pdwSectionCount
When the function returns, this variable contains the number of sections present in the pcData.
If the function succeeds MICR_ST_OK is returned.
If pcData is NULL, MICR_ST_BAD_DATA is returned.
If data in pcData string is not in XML format, MICR_ST_ERR_LOAD_XML is returned.
If there is problem using MSXML, MICR_ST_ERR_GET_DOM_POINTER is returned.
// Use function MTMICRGetDevice to get device name for variable “device”
// Call MTMICRProcessCheck function to process a document.
dwStatus = MTMICRProcessCheck (device, Settings, DocInfo, &DocInfoSize);
if (dwStatus == MICR_ST_OK)
{
// Let us scan through all the key pair values returned in the DocInfo
DWORD sectionCount;
// Get total number of sections
if (MTMICRGetSectionCount (DocInfo, §ionCount) ==MICR_ST_OK)
{
}
}
Excella Windows API Specifications
36
MTMICRGetSectionName
MTMICRGetSectionName function returns the name of the section which has the section number given in variable
dwSectionNumber. MTMICRGetSectionName parses through the buffer pcData containing a set of key/value pairs which
was previously stored in the buffer by using function MTMICRSetValue or function MTMICRSetIndexValue.
Pointer to null terminated string containing a set of key/value pairs. .
dwSectionNumber
The section number of the section requesting for name.
pcSectionName
Pointer to a buffer uses to store the section name.
pdwSectionNameSize
Pointer to a variable that specifies the size, in bytes, of the buffer pointed to by the pcSectionName parameter. When the
function returns, this variable contains the size of the data copied to pcSectionName. If the buffer specified by
pcSectionName parameter is not large enough to hold the data, the function returns the value
MICR_ST_NOT_ENOUGH_MEMORY, and stores the required buffer size, in bytes, into the variable pointed to by
pdwSectionNameSize.
If the function succeeds MICR_ST_OK is returned.
If pdwSectionNameSize is NULL, error MICR_ST_BAD_BUFFER_LENGTH is returned.
If the value of pdwSectionNameSize is not big enough to hold the name of requested section,
MICR_ST_NOT_ENOUGH_MEMORY is returned.
If pcData is NULL, MICR_ST_BAD_DATA is returned.
If data in pcData string is not in XML format, MICR_ST_ERR_LOAD_XML is returned.
If there is problem using MSXML, MICR_ST_ERR_GET_DOM_POINTER is returned.
// Use function MTMICRGetDevice to get device name for variable “device”
// Call MTMICRProcessCheck function to process a document.
dwStatus = MTMICRProcessCheck (device, Settings, DocInfo, &DocInfoSize);
if (dwStatus == MICR_ST_OK)
{
// Let us scan through all the key pair values returned in the DocInfo
DWORD sectionCount;
DWORD sectionIndex;
// Get total number of sections
if (MTMICRGetSectionCount (DocInfo, §ionCount) ==MICR_ST_OK) {
MTMICRGetKeyCount function returns the number of keys that belong to a section with the name specified in variable
pcSection. The function MTMICRGetKeyCount parses through a null terminated string which contains a set of key/value
pairs. The key/value pairs get stored in the buffer using function MTMICRSetValue or MTMICRSetIndexValue.
ULONG MTMICRGetKeyCount (
char *pcData,
char *pcSection,
DWORD *pdwKeyCount
);
Excella Windows API Specifications
38
Parameters
pcData
Pointer to null terminated string containing a set of key/value pairs.
pcSection
Pointer to null terminated string containing the section name.
pdwKeyCount
When the function returns, this variable contains the number of keys under the section name pcSection present in the
If the function succeeds MICR_ST_OK is returned.
If pcData is NULL, MICR_ST_BAD_DATA is returned.
If data in pcData string is not in XML format, MICR_ST_ERR_LOAD_XML is returned.
If there is problem using MSXML, MICR_ST_ERR_GET_DOM_POINTER is returned
// Use function MTMICRGetDevice to get device name for variable “device”
// Call MTMICRProcessCheck function to process a document.
dwStatus = MTMICRProcessCheck (device, Settings, DocInfo, &DocInfoSize);
if (dwStatus == MICR_ST_OK){
// Let us scan through all the key pair values returned in the DocInfo
DWORD sectionCount;
DWORD sectionIndex;
// Get total number of sections
if (MTMICRGetSectionCount (DocInfo, §ionCount) ==MICR_ST_OK) {
// Display the section Name
DWORD keyCount;
if (MTMICRGetKeyCount (DocInfo, SectionName, &keyCount) == MICR_ST_OK){
// Display the key count
}
}
}
}
}
Excella Windows API Specifications
40
MTMICRGetKeyName
MTMICRGetKeyName function returns the name of the key which has the key index number given in variable
dwKeyNumber and belongs to the section group with the section name specified in variable pcSection.
MTMICRGetKeyName parses through the buffer pcSettings containing a set of key/value pairs which was previously stored
in the buffer by using function MTMICRSetValue or function MTMICRSetIndexValue.
ULONG MTMICRGetKeyName (
char *pcSettings,
char *pcSection,
DWORD dwKeyNumber,
char *pcKey,
DWORD *pdwKeySize
);
Parameters
pcSettings
Pointer to null terminated string containing a set of key/value pairs.
pcSection
Pointer to null terminated string containing the section name.
dwKeyNumber
Specifes the key index number of the requested key.
pcKey
When the function returns, this variable contains key name of the key at index dwKeyNumber.
pdwKeySize
Pointer to a variable that specifies the size, in bytes, of the buffer pcKey. If the size of the buffer uses to store the name of
the requested key, the required size is stored in this variable when the function completes execution.
If the function succeeds MICR_ST_OK is returned.
If pcSettings is NULL, MICR_ST_BAD_DATA is returned.
If data in pcSettings string is not in XML format, MICR_ST_ERR_LOAD_XML is returned.
If there is problem using MSXML, MICR_ST_ERR_GET_DOM_POINTER is returned
If pdwKeySize is NULL, error MICR_ST_BAD_BUFFER_LENGTH is returned
If the value of pdwSectionNameSize is not big enough to hold the name of requested section,
MICR_ST_NOT_ENOUGH_MEMORY is returned
Example
char Settings [4096];
char DocInfo [4096];
char device[4096] ="";
DWORD SettingsBufferSize, DocInfoSize, valueSize, dwStatus , dwCount, nIndex ;
char cValue [1024];
DocInfoSize = 4096;
char szSectionName [128];
DWORD dwSize = 128;
// Use function MTMICRGetDevice to get device name for variable “device”
// Call MTMICRProcessCheck function to process a document.
If ( MTMICRProcessCheck (device, Settings, DocInfo, &DocInfoSize) == MICR_ST_OK) {
// Let us scan through all the key pair values returned in the DocInfo
// Get total number of sections
if (MTMICRGetSectionCount (DocInfo, &dwSectionCnt) ==MICR_ST_OK) {
for (nIndex = 0; nIndex < dwSectionCnt; nIndex++){
If (MTMICRGetSectionName(DocInfo, nIndex, szSectionName, &dwSize ==
MICR_ST_OK) {
// Get number of total keys which belong to section
DWORD keyCount;
if (MTMICRGetKeyCount (DocInfo, szSectionName, &keyCount) == MICR_ST_OK){
// Get name of each key
for (int keyIndex = 0; keyIndex < keyCount; keyIndex++) {
char szKeyName [128];
dwStatus = MTMICRGetKeyName(DocInfo, szSectionName, keyIndex,
szKeyName, & dwSize);
if (dwStatus == MICR_ST_OK) {
// We now have the section and key, let get the value
char szValue [1024];
dwStatus = MTMICRGetValue(DocInfo, szSectionName, szKeyName,
szValue, & dwSize);
if (dwStatus == MICR_ST_OK)
{
}
}
}
}
}
}
}
Excella Windows API Specifications
42
MTMICRSetTimeout
MTMICRSetTimeout function sets a duration for timeout in case there is a communication problem with the Excella device.
MTMICRProcessCheck, MTMICRGetImage, MTMICRGetImages, and MTMICRQueryInfo functions use this timeout
value to wait for the device to respond. This timeout should be greater than the total time required to wait for a check feed,
check movement along the path, and image processing. A recommended time is 30 seconds.
Note
This time must always be longer than DocFeedTimeout
when used (see ProcessOptions in Section 5)
ULONG MTMICRSetTimeout (
DWORD dwMilliSeconds
);
Parameters
dwMilliSeconds
Duration for timeout. The timeout is in milliseconds unit.
Return Values
No return value for this function.
Example
#define DEVICE_NAME_LEN 128
int i=1;
DWORD dwResult;
char cDeviceName[DEVICE_NAME_LEN]="";
while ((dwResult = MTMICRGetDevice(i,(char*) cDeviceName)) !=
MICR_ST_DEVICE_NOT_FOUND)
{
if (MTMICROpenDevice (cDevicesNames) == MICR_ST_OK)
{
// Set timeout
MTMICRSetTimeout (15000); // 15 seconds
///close the device
}
i++;
}
Section 3. Excella API
43
MTMICRGetTimeout
MTMICRGetTimeout function returns the set timeout in milliseconds. MTMICRProcessCheck, MTMICRGetImage,
MTMICRGetImages, and MTMICRQueryInfo functions use this timeout value to wait for device to respond. By default
the timeout is 5 seconds.
ULONG MTMICRGetTimeout (
DWORD *pdwMilliSeconds
);
Parameters
pdwMilliSeconds
Pointer to a DWORD. When the function completes, this variable contains the timeout in milliseconds
Return Values
No return value for this function.
Example
#define DEVICE_NAME_LEN 128
int i=1;
DWORD dwResult;
char cDeviceName[DEVICE_NAME_LEN]="";
while ((dwResult = MTMICRGetDevice(i,(char*) cDeviceName)) !=
MICR_ST_DEVICE_NOT_FOUND)
{
if (MTMICROpenDevice (cDevicesNames) == MICR_ST_OK)
{
//Get timeout
DWORD timeout;
MTMICRGetTimeout (&timeout);
///close the device
}
i++;
}
Excella Windows API Specifications
44
MTMICRLogEnable
MTMICRLogEnable enable or disable the logging. If there is a desire to get a log file of all messages and errors, a valid log
file handle must be set with function MTMICRSetLogFileHandle and also a TRUE value is set for parameter of function
MTMICRLogEnable. By default, logging is disable.
void MTMICRLogEnable (
BOOL bEnable
);
Parameters
bEnable
a Boolean value indicates logging enabling or disabling request.
Return Values
No return value for this function.
Example
if (hLogFileHandle != NULL)
{
MTMICRLogEnable(TRUE);
MTMICRSetLogFileHandle (hLogFileHandle);
}
MTMICRSetLogFileHandle
MTMICRSetLogFileHandle specifies a handle for a log file. All messages and errors created by all API functions will be
logged in the log file that has this specified handle. By default, there is no log file.
VOID MTMICRSetLogFileHandle (
HANDLE hFileHandle
);
Parameters
hFileHandle
This is a handle to a file. All the API functions will log errors and information to this log file.
Return Values
No value is returned from this function.
Section 3. Excella API
45
Example
#define DEVICE_NAME_LEN 128
int i=1;
DWORD dwResult;
HANDEL fileHandle;
char cDeviceName[DEVICE_NAME_LEN]="";
while ((dwResult = MTMICRGetDevice(i,(char*) cDeviceName)) !=
MICR_ST_DEVICE_NOT_FOUND)
{
if (MTMICROpenDevice (cDevicesNames) == MICR_ST_OK)
{
//Get timeout
DWORD timeout;
HANDLE fileHandle;
// Create log file and save the handle in fileHandle
// Pass the handle of the log file
MTMICRSetLogFileHandle (fileHandle);
///close the device
// Close the log file
// Close the device
}
i++;
}
if (MTMICROpenDevice (cDevicesNames) == MICR_ST_OK)
{
// Process documents
//close the device
MTMICRCloseDevice (cDeviceName);
}
i++;
}
MTMICRSETLOGLEVEL
MTMICRSetLogLevel sets the desired level of logging details. There are four levels of details: DLL_INTERNAL,
DLL_EXTERNAL, XML_DATA, IMAGE_DATA. By default, none is set.
VOID MTMICRSetLogLevel (
DWORD dwDebugLevel
);
Parameters
dwDebugLevel
This value specifies the type of logging details. The value is composed of one or more of the following:
If DLL_INTERNAL level is set, errors from API functions listed in file MTXMLMCR.h are logged.
If DLL_EXTERNAL level is set, errors from DLL functions which are not listed in MTXMLMCR.h are logged.
If DLL_XMLDATA level is set, the contents of XML document sent to device or received from device are logged,
If DLL_IMAGEDATA level is set, the binary data of an image is logged.
MTMICRCOMInitialize
MTMICRCOMInitialize indirectly executed the function CoInitialize() to enable MSXML COM Object to be instantiable.
By default, CoInitialize() is executed when MTXMLMCR.DLL is loaded.
VOID MTMICRCOMInitialize (
void
);
Parameters
NONE
Return Values
No value is returned from this function.
Example
MTMICRCOMInitialize();
Section 3. Excella API
47
MTMICRCOMUnInitialize
MTMICRCOMInitialize indirectly executed the function CoUninitialize(). By default, CoUninitialize() is executed when
MTXMLMCR.DLL is unloaded.
VOID MTMICRCOMUnInitialize (
void
);
Parameters
NONE
Return Values
No value is returned from this function.
Example
MTMICRCOMUnInitialize();
Remark
When this function is executed, subsequent API calls which require MSXML stop functioning.
Excella Windows API Specifications
48
MTMICRSetConfigFile
MTMICRSetConfigFile function sets the path and file name of the API configuration file. Default filename is
"MICRDEV.INI".
VOID MTMICRSetConfigFile (
LPSTR lpszFile
);
Parameters
lpszFile
Null terminated string containing full path to the configuration file.
Return Values
NONE
Example
MTMICRSetConfigFile(“c:\myconfig.txt”);
Remark
The file must be verified to be accessible before calling this function. Any opened devices should first have its connection
closed and the MTMICRGetDevice function will need to be recalled to retrieve the new device name list.
49
SECTION 4. COMMANDS SENT TO DEVICE
Section 4 describes device commands that can be sent to the device using the API function
MTMICRSendCommand (see Section 3). The device reply will include the CommandStatus and/or
DeviceStatus sections (and their corresponding Key-Value pairs) as described in later chapters.
The command is sent using a string with the following format:
DeviceCommand=[command]&[parameter=value]&[parameter=value]
Note - The total maximum string length is 255 characters.
MSR COMMAND
MSR commands that can be sent to the MagneSafe Reader
MSR command is sent using a string with the following format:
MSRCommand=[Command Number][Data Length][Data]*[Carriage Return 0x0D]**
*For detailed information on [Command Number], [Data Length] and [Data] you can refer to PN
99875398 “COMMANDS” section page 20.
**Each command and response is composed of a series of readable ASCII characters followed by the
ASCII character CR (0x0D). For detailed information on command format, refer to PN 99875398 page
21.
The response from the MagneSafe Reader is saved in
<DeviceInformation><CommandStatus><ReturnMsg> key.
The response format is [Result Code][Data Length][Data]*
* For detailed information on the result code refer to PN 99875398 “COMMANDS” section page 20
If the command is NOT correct, the response will be 0200
SETLED Command
This command allows the application to control the state of the LED’s when the device is in the idle state.
This command overrides the normal/default LED states.
When the device leaves the idle state to execute a transaction, the device resumes control with the
normal/default states for the LED’s.
LEDn Parameter
This parameter defines the state for each LED. Each LED is assigned an individual parameter as follows:
LED1 (left LED), LED2 (middle LED), and LED3 (right LED).
Excella Windows API Specifications
50
Each LED state consists of 4 phases, and each phase can be 1 of 4 options: R=Red, G=Green, A=Amber,
N=None/Off. The LED state is then defined by a 4-character string with one character (R, G, A or N) for
each of the 4 phases.
Examples:
To define a solid green state for the left LED, the following string is used:
LED1=GGGG.
To define slow red/green blinking for the middle LED, the following string is used: LED2=RRGG.
To define fast red/green blinking for the right LED, the following string is used:
LED3=RGRG
When the device is idle, the state reported for each LED by the DeviceStatus will be:
LED1 = NNNN
LED2 = GGGG
LED3 = NNNN
LDURn Parameter
This parameter controls the time duration of the LED state. Each LED is assigned an individual parameter
as follows: LDUR1 (left LED), LDUR2 (middle LED), and LDUR3 (right LED).
For specific time duration, a number in ms must be specified (e.g., 5000 for 5 seconds). For a continuous
time duration, the value ON is used. To relinquish control and return to normal/default LED states, the
value DEFAULT is used.
Example
The SetLED command string can define the state of up to three LED’s. As an example, assume the
following requirements to define the state of the three LED’s:
LED1: steady green, stays on continuously
LED2: off, relinquishing control to device for normal/default states
LED3: slow red/off blinking, duration of 5 seconds.
Section 5 describes all the Sections (and their corresponding Key-Value pairs) to be sent by the
application to the device for document processing. The application can send information the device using
the following sections: Application, ProcessOptions, Endorser, and ImageOptions.
The following keys are included in the Application section:
Transfer
DocUnits
The following keys are included in the ProcessOptions section:
The following keys are included in the MICROptions section:
Threshold
Quality
Section 5. Keys Sent to Device
53
Values
Value Description
HTTP
Default: Transfer files using HTTP protocol
FTP
Transfer files to FTP server
Values
Value Description
ENGLISH
Default: Dimensions in thousandths of an inch
METRIC
Dimensions in millimeters
Values
Value Description
E13B
Decode only E13B character set
CMC7
Decode only CMC7 character set
ALL
Auto-detect and decode both E13B and CMC7
NO
Suppress MICR reading
Values
Value Description
NO
No printing required
BACK
Request printing on the back (endorsing)
FRONT
Request printing on the front (franking). This value is valid for Excella STX
only.
BOTH
Request printing on the back and the front (endorsing and franking). This value
is valid for Excella STX only.
SECTION = Application
The Application section includes keys to configure some required characteristics of the unit.
Transfer
This key determines the file transfer method. This key is supported by Excella and Excella STX.
DocUnits
This key determines the unit of measurement. This key is supported by Excella and Excella STX.
SECTION = ProcessOptions
The ProcessOptions section includes keys that control various operational options during the transaction.
ReadMICR
This key selects the MICR font to be read on the check. This key is supported by Excella and Excella
STX.
Endorse
This key determines what type of printing is required on the check. This key is supported by Excella and
Excella STX.
Excella Windows API Specifications
54
Values
Value Description
YES
Request device to respond as early as possible. Images may not be ready.
NO
Device responds only when all images are completely processed
Values
Value Description
NO
Disable double-pick detection
YES
Enable double-pick detection
Values
Value Description
ALL
Auto-detect & process check, ID card and Magstripe card. This value is valid
for Excella STX with MagneSafe Reader only
MANUAL
Process check from single-feed input tray
AUTOFEED
Process checks from the auto feeder. This value is valid for Excella only.
ID
Process ID card from card input tray. This value is valid for Excella STX only.
MSR
Process Magstripe card from MSR. This value is valid for Excella STX only.
Values
Value Description
numeric value
Specify a time period in seconds
Values
Value Description
NONE
No restriction
VALS
Invalid values halt the transaction
KEYS
Invalid keys halt the transaction
KEYVALS
Invalid keys and values halt the transaction
RespondEarly
This key determines if an early response is required from the device. This key is supported by Excella and
Excella STX.
DblPickDet
This key determines if double-pick detection is required during check processing. This key is supported
by Excella only.
DocFeed
This key determines the input tray to be used for document processing. This key is supported by Excella
and Excella STX.
DocFeedTimeout
This key specifies the waiting period for a document to be fed. This key is supported by Excella STX
only.
KVErrStop
This key determines the type of key/value errors that can halt transaction operation. This key is supported
by Excella and Excella STX.
Section 5. Keys Sent to Device
55
Values
Value Description
numeric string
Specifies the format code number (refer to Appendix A)
Values
Value Description
SEQ_0
The check move starts at the entry point. The check moves forward and it is
pinched at the exit point. At the beginning of this sequence, the LED flashes
green to indicate that a check must be inserted. When the check is inserted,
the LED is turned off. If requested, the following operations can occur during
this sequence: scanning front image, reading MICR line, endorsing, franking,
and scanning back image. The data available after this sequence can include
the MICR line, front image, and back image. Information on the images
includes the image size and the URL string which the host can use to request
the images.
SEQ_1
The check move starts at the entry point. The check moves forward and it
stops at a point near the back printer. At the beginning of this sequence, the
LED flashes green to indicate that a check must be inserted. When the check
is inserted, the LED is turned off. If requested, the following operations can
occur during this sequence: scanning front image and reading MICR line. The
data available after this sequence can include the MICR line and the front
image. Information of the front image includes the image size and the URL
string which the host can use to request the image.
Invalid conditions:
This sequence move is valid only if the path is clear at the beginning of the
move. A jam will be reported if a check is detected in the path. The check
must be cleared off the path before the sequence can begin.
This sequence move is valid only if there is no request for endorsing or
franking. If there is a print request, error 306 ("Selected Print is Invalid For
Selected Sequence") is returned.
This sequence move is also valid only if the requested image is the front
side. If there is a request for the back side image, error 405 ("Scan Side is
Invalid For Selected Sequence Move") is returned.
MICRFmtCode
This key specifies the pre-defined output format to be use for MICR data. This key is supported by
Excella and Excella STX.
Sequence
The Sequence key is used to control the movement of the check document in the path. All available
sequences or check moves are described below. Each check move is identified by the value of the
Sequence key. If the Sequence key is not specified or an invalid value is use, the normal check process is
used. This key is supported by Excella and Excella STX.
Excella Windows API Specifications
56
Values
Value Description
SEQ_2
The check move starts at a point near the back printer. The check moves in
reverse for a short distance, it then moves forward again, and it is pinched at
the exit point. If requested, the following operations can occur during this
sequence: endorsing, franking, and scanning back image. The data available
after this sequence can include the back image. Information of the back image
includes the image size and URL string which the host can use to request the
image.
Invalid conditions:
This sequence move is valid only if there is a check in the path near the
back printer. If there is no check found, error 208 ("Cannot find doc at
location for this sequence move") is returned.
This sequence move is valid only if the request for the image is on the
back side. If the front side image is requested, error 405 ("Scan Side is
Invalid For Selected Sequence Move") is returned.
SEQ_3
The check move starts at a point near the back printer. The check moves in
reverse, and it is pinched at the entry point. There is no data available from
this sequence.
Invalid conditions:
This sequence move is valid only if there is a check in the path near the
back printer. If there is no check found near back printer location, error 208
("Cannot find doc at location for this sequence move") is returned.
The host receives an OK status if the move is successful or an error code
if an error occurs.
SEQ_4
The check move starts at the exit point. The check moves in reverse to the
entry point, it then moves forward again, and it is pinched at the exit point. If
requested, the following operations can occur during this sequence: scanning
front image, and scanning back image. The data available after this sequence
can include the front image and the back image. Information of the images
includes the image size and the URL string which the host can use to request
the image.
The following operations do not occur in this sequence: MICR reading,
endorsing or franking.
Invalid conditions:
If there is request for endorsing and/or franking, error 306 ("Selected Print
is Invalid For Selected Sequence") is returned.
This sequence move is valid only if there is a check in the path at the exit
point. If there is no check found, error 208 ("Cannot find doc at location for
this sequence move") is returned.
Section 5. Keys Sent to Device
57
Values
Value Description
SEQ_5
The check move starts at the exit point. The check moves in reverse to a point
near the back printer, it then moves forward again, and it is pinched at the exit
point. If requested, the following operations can occur during this sequence:
endorsing, franking, and scanning back image. The data available after this
sequence includes the back image. Information of the back image includes the
image size and URL string which the host can use to request the image.
This sequence is similar to sequence SEQ_2, except the move starts at exit
point.
Invalid conditions:
This sequence move is valid only if there is a check at the exit point. If
there is no check found, error 208 ("Cannot find doc at location for this
sequence move") is returned.
This sequence move is valid only if the request for the image is on the
back side. If the front side image is requested, error 405 ("Scan Side is
Invalid For Selected Sequence Move") is returned.
SEQ_6
If there is check found in the check path, the check moves in the forward
direction and it is pinched at the exit point. This operation will not take place if
there is no check found in the check path. No scanning, printing or MICR
reading operations are performed during this sequence.
Invalid Conditions:
This operation will not take place if there is no check found in the check
path.
A check that is pinched at the exit point (after check processing is
completed) is considered to be out of the path.
SEQ_7
If there is check found in the check path, the check moves in the reverse
direction and it is pinched at the entry point. This operation will not take place if
there is no check found in the check path. No scanning, printing or MICR
reading operations are performed during this sequence.
Invalid Conditions:
This operation will not take place if there is no check found in the check
path.
A check that is pinched at the exit point (after check processing is
completed) is considered to be out of the path.
SEQ_8
If there is check found in the check path, the check moves in the forward
direction towards the exit point, and the check leaves the unit. Motor is always
turned on to ensure the path is completely clear. No scanning, printing or
MICR reading operations are performed during this sequence.
Invalid Conditions:
This operation will not take place if there is no check found in the check
path.
A check that is pinched at the exit point (after check processing is
completed) is considered to be out of the path.
Excella Windows API Specifications
58
Values
Value Description
SEQ_9
If there is check found in the check path, the check moves in the reverse
direction towards the entry point, and the check leaves the unit. Motor is
always turned on to ensure the path is completely clear. No scanning, printing
or MICR reading operations are performed during this sequence.
Invalid Conditions:
This operation will not take place if there is no check found in the check
path.
A check that is pinched at the exit point (after check processing is
completed) is considered to be out of the path.
SEQ_10
If there is check found in the check path, the check moves to a point near the
back printer. No scanning, printing or MICR reading operations are performed
during this sequence.
Values
Value Description
YES
If ExpressEnabled is TRUE, the unit will automatically scan the next check.
NO
If ExpressEnabled is TRUE, the unit will scan only one check regardless of the
number of checks in the auto feed tray.
Values
Value Description
string
Specifies text for the endorsement message
Values
Value Description
string
Specifies text for the franking message
ScanOnce
This setting is only for MagUSB express mode.
If this setting is YES, the unit will automatically scan the next check.
If this setting is NO, the unit will scan only one check whether or not there are any other checks in the
auto feed tray.
SECTION = Endorser
The Endorser section includes keys that control various options for printing on the check.
PrintData
This key specifies the text to be printed on the back of the check (i.e., endorsement message). This key is
supported by Excella and Excella STX.
PrintFrontData
This key specifies the text to be printed on the front of the check (i.e., franking message). This key is
supported by Excella and Excella STX.
Section 5. Keys Sent to Device
59
Values
Value Description
INTFONT1
Selects internal Font 1 (5x7 bitmap)
INTFONT2
Selects internal Font 2 (7x10 bitmap)
Values
Value Description
INTFONT1
Selects internal Font 1 (5x7 bitmap)
INTFONT2
Selects internal Font 2 (7x10 bitmap)
Values
Value Description
BOLD
Print Bold style
NORMAL
Print normal
WIDE
Print Wide style
Values
Value Description
BOLD
Print Bold style
NORMAL
Print normal
WIDE
Print Wide style
Values
Value Description
numeric string
Printing rate
PrintFont
This key determines the internal font to be used for the endorsement message. This key is supported by
Excella and Excella STX.
PrintFrontFont
This key determines the internal font to be used for the franking message. This key is supported by
Excella and Excella STX.
PrintStyle
This key determines the style of the selected font for the endorsement message. This key is supported by
Excella STX only.
PrintFrontStyle
This key determines the style of the selected font for the franking message. This key is supported by
Excella STX only.
PrintRate
This key determines the printing rate. This key can be used to control squeezing/condensing of printed
characters. Default print rate is 100%. If the value of this key is larger than the default value, the number
of characters per inch is increased. The Valid range is 50-250. This key is supported by Excella and
Excella STX.
Excella Windows API Specifications
60
Values
Value Description
TRUE
The Excella will print its endorsement message on the image of the check, not
on the check; no ink is required
FALSE
The Excella will print its endorsement message on the check; ink is required
Values
Value Description
numeric string
Font size, default setting is “30”
Values
Value Description
numeric string
Font size, default setting is “30”
Values
Value Description
Virtual
If value of this key is True, Excella will print without ink. It will use third party software to print on the
image and not on the check itself.
This key is supported by Excella only, and will only function if the device is set to operate in Express
Mode. See the DeviceCapabilities/ExpressCapable tag to determine whether the device can be
configured to operate in Express Mode. See 99875310 EXCELLA MICR CHECK READER AND DUAL-SIDED SCANNER INSTALLATION AND OPERATION MANUAL for steps to configure the
device to operate in Express Mode.
Also, if Virtual is True, it supports these additional keys:
This key determines the font size of the selected font for the endorsement message. This key is supported
by the Excella only if the Virtual key is set to True. This key is supported by Excella only.
PrintFrontFontSize
This key determines the font size of the selected font for the franking message. This key is supported by
the Excella only if the Virtual key is set to True. This key is supported by Excella only.
BackXPosition
This key determines the X Position to be used for the endorsement message. This key is supported by the
Excella only if the Virtual key is set to True. This key is supported by Excella only.
Section 5. Keys Sent to Device
61
numeric string
Amount to set X position of endorsement message
Excella Windows API Specifications
62
Values
Value Description
numeric string
Amount to set X position of franking message
Values
Value Description
numeric string
Amount to set Y position of endorsement message
Values
Value Description
numeric string
Amount to set Y position of franking message
Values
Value Description
numeric string
Amount to set Y position offset from the Bottom or Top for Virtual Endorsement
FrontXPostion
This key determines the X Position to be used for the franking message. This key is supported by the
Excella only if the Virtual key is set to True. This key is supported by Excella only.
BackYPosition
This key determines the Y Position to be used for the endorsement message. This key is supported by the
Excella only if the Virtual key is set to True. This key is supported by Excella only.
FrontYPosition
This key determines the Y Position to be used for the franking message. This key is supported by the
Excella only if the Virtual key is set to True. This key is supported by Excella only.
YPositionOffset
This key determines the Y Position offset from the BOTTOM OR TOP for Virtual Endorsement. This
key is supported by the Excella only if the Virtual key is set to True. This key is supported by Excella
only.
Section 5. Keys Sent to Device
63
Values
Value Description
numeric value
Specifies number of images to be captured: 1, 2, 3, or 4.
0
If this number equals zero, no image is captured (supported by Excella STX
only.)
Values
Value Description
BW
Black and white (i.e., bitonal)
GRAY8
8-bit grayscale
COL24
24-bit color (supported by Excella STX only)
Values
Value Description
100X100
100x100 DPI (dots per inch)
200X200
200x200 DPI (dots per inch)
Values
Value Description
GROUP4
Image will be compressed using Group4 compression type
JPEG
Image will be compressed using JPEG compression type
NONE
No compression
SECTION = ImageOptions
The ImageOptions section includes keys that control various options to process the check images. Some
of the keys below include the symbol ‘#’ to indicate a variable for the image number. The image number
can be 1, 2, 3, or 4 (as specified in the Number key). Each image requires its own set of options controlled
by the keys ImageColor#, Resolution#, Compression#, FileType#, and ImageSide#. For example, for
image 2, the key names would be ImageColor2, Resolution2, Compression2, FileType2, and ImageSide2.
If image number equals zero, scanning will not take place. All keys in the ImageOptions section are
ignored. The zero image setting is supported by Excella STX only.
Number
This key determines how many images will be captured for each check that is processed. This key is
supported by Excella and Excella STX.
ImageColor#
This key determines the image rendition for the specified image number. This key is supported by Excella
and Excella STX.
Resolution#
This key determines the image resolution for the specified image number. This key is supported by
Excella and Excella STX.
Compression#
This key determines the algorithm used to compress the captured images. This key is supported by
Excella and Excella STX.
Excella Windows API Specifications
64
Values
Value Description
TIF
Image format type is tiff
JPG
Image format type is jpg
BMP
Image format type is bmp
Values
Value Description
FRONT
Scan the front of image of the check
BACK
Scan the back image of the check
Values
Value Description
numeric string
Filtering B/W images
Values
Value Description
numeric string
Filtering gray scale images
FileType#
This key determines the file type for the specified image number. This key is supported by Excella and
Excella STX.
ImageSide#
This key determines which side of the check will be associated with specified image number. This key is
supported by Excella and Excella STX.
FilterB
This key can be used to change the sharpness and the file size of a black and white (B/W) image. The
Default value of this key is 4. For a sharper image, set the value of this key to a smaller number. For a
softer image, set the value of this key to a higher number. Too much sharpening can lead to a noisy image
and a large file size. The valid range for this key is 1-6. This key is supported by Excella and Excella
STX.
FilterG
This key can be used to change the sharpness and file size of a gray scale image. The default value of this
key is 2. For a sharper image, set the value of this key to a smaller number. For a softer image, set the
value of this key to a higher number. The valid range for this key is 1-6. This key is supported by Excella
and Excella STX.
Section 5. Keys Sent to Device
65
Values
Value Description
numeric string
Quality number for color image
Values
Value Description
numeric string
Quality number for grayscale images
Values
Value Description
YES
SHA1 calculation is required
NO
SHA1 calculation is NOT required
Value
Value Description
1
Green
2
Red
3
Green+Red
4
Blue
5
Blue+Green
6
Blue+Red
7
White
JPEGQC
This key can be used to set the JPEG compression quality number for color images. The default value for
this key is 50. Changing the default value of this key affects the image quality and size of a JPEG file. For
higher quality images, set the value of this key to a higher number. The file size also increases when the
quality number increases. The valid range for this key is 1-100. This key is supported by Excella and
Excella STX.
JPEGQG
This key can be used to set the JPEG compression quality number for grayscale images. The default value
for this key is 50. Changing the default value of this key affects the image quality and size of a JPEG file.
For higher quality images, set the value of this key to a higher number. The file size also increases when
the quality number increases. The valid range for this key is 1-100. This key is supported by Excella and
Excella STX.
CalculateSHA1
This key determines if SHA1 calculation is required for captured images. This key is supported by
Excella and Excella STX.
ScanLED1, ScanLED2
These keys select the illumination color used to scan the front (ScanLED1) and back (ScanLED2) of the
check. The default illumination color is white and it provides the best image quality results. Other colors,
such as Red, may be used to drop out a specific target color on specially designed checks. These keys are
supported on Excella only (Firmware version 1.80J or above). The values for the available illumination
colors are listed in the table below:
Table 5-1. Values for Scan Bar Illumination Colors
Excella Windows API Specifications
66
MagTek Device
ImageColor
Resolution
Compression
FileType
Excella & Excella STX
B/W
200x200
NONE
TIFF
Excella & Excella STX
B/W
200x200
GROUP4
TIFF
Excella & Excella STX
GRAY8
100x100
JPEG
JPG
Excella & Excella STX
GRAY8
200x200
JPEG
JPG
Excella & Excella STX
GRAY8
100x100
NONE
BMP
Excella & Excella STX
GRAY8
200x200
NONE
BMP
Excella STX only
COL24
100x100
JPEG
JPG
Excella STX only
COL24
200x200
JPEG
JPG
Number
4
ImageColor1
GRAY8
Resolution1
100x100
Compression1
JPEG
FileType1
JPG
ImageSide1
FRONT
ImageColor2
GRAY8
Resolution2
100x100
Compression2
JPEG
FileType2
JPG
ImageSide2
BACK
ImageColor3
BW
Resolution3
200x200
Compression3
GROUP4
FileType3
TIF
ImageSide3
FRONT
ImageColor4
BW
Resolution4
200x200
Compression4
GROUP4
FileType4
TIF
ImageSide4
BACK
Example for setting up ImageOptions key-value pairs to obtain 4 Images
In the following example we are requesting four images:
1. Gray scale with resolution 100x100 for the FRONT of the document
2. Gray scale with resolution 100x100 for the BACK of the document
3. BW for the FRONT of the document
4. BW for the BACK of the document
Table 5-2 lists the current valid combination of Image Color, Resolution, Compression, and File Type.
Table 5-2. Possible Combination Values for Image Options
Table 5-3. Example for Section ImageOptions – 1 through 4
Section 5. Keys Sent to Device
67
Values
Value Description
numeric value
The minimum signal value to detect the start of a MICR symbol. The default
value is 15
Values
Value Description
numeric value
Specify what quality is required for a character to be valid. The default value is
90
SECTION = MICROptions
The MICROptions section includes keys that control various options to get MICR character.
Threshold
This value is the minimum signal value used to detect the start of a MICR symbol. This key is supported
by Excella and Excella STX.
Quality
This value is used to determine what quality is required for a character to be valid.
The best range is 85-92. This key is supported by Excella and Excella STX.
69
SECTION 6. KEYS RECEIVED FROM DEVICE
Section 6 describes all the Sections (and their corresponding Key-Value pairs) automatically reported by
the device to the application after the requested document has been processed. The device reports
information using the following sections: CommandStatus, DocInfo, ImageInfo, and MSRInfo.
Note
All Sections and Key-Value pairs described in this Section
are also available from the device upon query by the application.
The following keys are included in the CommandStatus section:
True: a change in the device status has been detected
F
False: everything is OK
Values
Value Description
numeric value
For specific return code information refer to tables 6-1 through 6-8
Values
Value Description
String
For specific return message information refer to tables 6-1 through 6-8
Values
Value Description
numeric value
Count of key/value errors detected (0-9)
Values
Value Description
numeric value
For specific error code numbers refer to table 6-3
SECTION = CommandStatus
This CommandStatus section includes keys that report various error conditions after a document has been
processed.
CheckDS
This key is a general flag for critical device status, and it can be used to prompt applications to check the
device status. This key is supported by Excella and Excella STX.
ReturnCode
This key specifies the return error code reported by the device after each document transaction. This key
is supported by Excella and Excella STX.
ReturnMsg
This key specifies the return error message associated with the ReturnCode key. This key is supported by
Excella and Excella STX.
KVErrCnt
This key specifies the number of key/value errors (i.e., syntax errors) reported by the device. This key is
supported by Excella and Excella STX.
KVErrCode#
This key specifies the key/value error code number reported by the device (up to 9 errors can be reported).
This key is supported by Excella and Excella STX.
Excella Windows API Specifications
72
Values
Value Description
string
Name of the key or value that generated the error
Operation Completed (0-99)
ReturnCode
ReturnMsg
0
“OK”
Operation (100-149)
ReturnCode
ReturnMsg
101
“Internal Device Failure”
102
“Unrecognized Operation”
103
“Command Format Error”
104
“Requested Operation Failed”
105
"Undetermined Path Error"
Data Input (150-199)
ReturnCode
ReturnMsg
150
“Data Format Error”
151
“Illegal Value”
152
“Value Out of Range”
153
“String Too Long”
154
“Unrecognized Key”
155
“Unrecognized Section”
156
“Problem parsing XML”
KVErrVal#
This key specifies the invalid key name or value that generated the error (up to 9 errors can be reported).
This key is supported by Excella and Excella STX.
RETURN CODES AND MESSAGES FROM EXCELLA AND EXCELLA STX
The following tables (Tables 6-1 through 6-8.) list the codes and messages returned by the device using
the ReturnCode and ReturnMsg keys in the CommandStatus section.
Table 6-1. Operation Completed
Table 6-2. Operation
Table 6-3. Data Input
Section 6. Keys Received From Device
73
Path (200-299)
ReturnCode
ReturnMsg
201
“Access Guide Unlatched”
202
“No Doc Present”
203
“Path Not Clear”
204
“Document Jammed”
205
“Multiple doc feed detected”
206
“Manual detect during Autofeed”
207
“Illegal Doc Feed Option”
208
"Cannot find doc at location for this sequence
move"
209
"Check Sequence Aborted by Operator"
210
"Doc Feed Path Error"
250
“Timed out waiting for document”
Printer (300-349)
ReturnCode
ReturnMsg
301
“Print Failed. Internal Error”
302
“Unable to Print Back. No Cartridge”
303
“Unable to Print Front. No Cartridge”
305
“Print Font Not Supported”
306
“Selected Print is Invalid For Selected Sequence ”
307
“Endorsing Failed. Internal Error”
308
“Franking Failed. Internal Error”
MICR (350-399)
ReturnCode
ReturnMsg
351
“MICR Failed. Internal Error”
352
“MICR Not Supported”
Table 6-4. Path
Table 6-5. Printer
Table 6-6. MICR
Excella Windows API Specifications
74
Scan/Image
(400-499)
ReturnCode
ReturnMessage
401
“Scan Failed. Internal Error”
402
“Bad Image”
403
“No Room to Store Image”
404
“Image Store Failed”
405
"Scan Side is Invalid For Selected Sequence"
421
“Scan Calib Black White Delta out of range”
422
“Scan Calib PGA Code out of range”
423
“Scan Calib DAC Code out of range”
424
“Scan Calib Consume and Park Check Failed”
425
“Scan Calib Save Data Failed”
426
“Scan Calib Shade Gain out of range”
427
“Scan Calib VPMAX out of range”
428
“Scan Calib VPAVG out of range”
429
“Scan Calib Get Data Failed, Factory Setting used”
430
“Scan Calib Get Calib Data Failed”
431
“Scan Calib LED Calib failed"
432
"Scan Calib check not found"
433
"Scan Calib Move Check to SB1 failed"
434
“Scan Calib Move Check to SB2 failed"
440
"Sensor Calib failed"
Miscellaneous
(500-599)
Return Code
Return Message
501
"No RTC Support"
502
"RTC Battery Low"
Table 6-7. Scan/Image
Table 6-8. Miscellaneous
Section 6. Keys Received From Device
75
Values
Value Description
ENGLISH
Dimensions in thousands of an inch
METRIC
Dimensions in millimeters
Values
Value Description
numeric value
Width dimension of scanned document
Values
Value Description
numeric value
Height dimension of scanned document
Values
Value Description
E13B
E13B font was detected on the check read
CMC7
CMC7 font was detected on the check read
SECTION = DocInfo
The DocInfo section includes keys that report on various attributes of the check document and
information on the MICR data read from the check.
DocUnits
This key specifies the units of measurement used to report on check document dimensions (see the
DocWidth and DocHeight keys below). This key is supported by Excella and Excella STX.
DocWidth
This key specifies the width of the check document based on the scanned image. This key is supported by
Excella and Excella STX.
DocHeight
This key specifies the height of the check document based on the scanned image. This key is supported by
Excella and Excella STX.
MICRFont
This key specifies the MICR font detected and read from the check. This key is supported by Excella and
Excella STX.
Excella Windows API Specifications
76
Values
Value Description
string
Unformatted MICR data
Values
Value Description
string
Account number MICR field
Values
Value Description
string
Amount MICR field
Values
Value Description
string
Auxiliary On-Us MICR field
Values
Value Description
string
ABA Institution Identifier (bank number) MICR field
Note
The parsed MICR fields below only apply to U.S. checks with E13B font.
CMC7 Checks are not parsed, and only the raw MICR line is reported.
MICRRaw
This key specifies the unformatted (as-is) MICR data read from the check. This key is supported by
Excella and Excella STX.
MICRAcct
This key specifies the account number MICR field read from the check. This key is supported by Excella
and Excella STX.
MICRAmt
This key specifies the amount MICR field read from the check. This key is supported by Excella and
Excella STX.
MICRAux
This key specifies the Auxiliary On-Us MICR field read from the check. This key is supported by Excella
and Excella STX.
MICRBankNum
This key specifies the 4-digit ABA Identifier MICR field read from the check. This key is supported by
Excella and Excella STX.
Section 6. Keys Received From Device
77
Values
Value Description
PERSONAL
Auxiliary On-Us MICR field NOT present
BUSINESS
Auxiliary On-Us MICR field present
Values
Value Description
USA
Check drawn in USA
CANADIAN
Check drawn in Canada
MEXICAN
Check drawn in Mexico
Values
Value Description
NONE
No MICR data detected
OK
MICR decode/read was successful
ERROR
Error detected in MICR decode/read operation
Values
Value Description
string
EPC MICR field
Values
Value Description
string
On-Us MICR field
MICRChkType
This key specifies the check type based on the presence on the Auxiliary On-Us MICR field. This key is
supported by Excella and Excella STX.
MICRCountry
This key specifies the country of origin based on known MICR line formats. This key is supported by
Excella and Excella STX.
MICRDecode
This key indicates whether a MICR decode/read error was detected. This key is supported by Excella and
Excella STX.
MICREPC
This key specifies the EPC MICR field read from the check. This key is supported by Excella and Excella
STX.
MICROnUs
This key specifies the On-Us MICR field read from the check. This key is supported by Excella and
Excella STX.
Excella Windows API Specifications
78
Values
Value Description
string
Formatted MICR output data
Values
Value Description
string
Sequence number (or check number) MICR field
Values
Value Description
string
TPC MICR field
Values
Value Description
string
Transit MICR field
MICROut
This key specifies the formatted MICR output data read from the check as defined by the MICRFmtCode
key in Section=ProcessOptions. This key is supported by Excella and Excella STX.
MICRSerNum
This key specifies the sequence number MICR field read from the check. This key is supported by Excella
and Excella STX.
MICRTPC
This key specifies the TPC MICR field read from the check. This key is supported by Excella and Excella
STX.
MICRTransit
This key specifies the 9-digit Transit MICR field read from the check. This key is supported by Excella
and Excella STX.
Section 6. Keys Received From Device
79
Values
Value Description
numeric value
For specific status/error code information refer to table 6-9
Digit
1st Digit
0 – OK MICR
1 – Low MICR
2 – No MICR
2
nd
Digit
0 – Standard Check
1 – Business Check
2 – Mexican Check
3 – Canadian Check
3rd Digit
0 – No Status
1 – Amount Present
2 – Short Account
3 – Short Account + Amount Present
4 – No Check#
5 – No Check# + Amount Present
6 – No Check# + Short Account
7 – No Check# + Short Account + Amount Present
4th Digit
0 – No Errors
1 – Chk#
2 – Account
3 – Account + Chk#
4 – Transit
5 – Transit + Chk#
6 – Transit + Account
7 – Transit + Account + Chk#
MICRParseSts0
This key specifies a 4-digit status/error code reported by the device after parsing the MICR fields read
from the check. This key is supported by Excella and Excella STX.
Table 6-9. MICRPARSESTS0
Excella Windows API Specifications
80
Values
Value Description
numeric value
For specific status/error code information refer to table 6-10
PRIORITY
MICRParseSts1
TYPE
DESCRIPTION
10
01
Error
No MICR data: no transit and no account found
9
09
Status
Mexican check
8
08
Status
Canadian check
7
05
Error
No transit, bad character, bad length, bad check digit
6
07
Error
No account, bad character
5
04
Error
Bad character in check number
5
04
Status
No check number
4
12
Status
Short Account (maybe caused by mis-parsed check#)
3
03
Status
Low MICR signal, good read
2
10
Status
Business check
1
11
Status
Amount field present
0
00
Status
No error, check OK
MICRParseSts1
This key specifies a 2-digit status/error code reported by the device after parsing the MICR fields read
from the check. This key is supported by Excella and Excella STX.
Table 6-10. MICRPARSESTS1
Notes:
• The LED indicator will turn red on all error conditions.
• The absence of a check number is not considered an error.
• If a multiple error occurs, the error or status code with the highest priority is reported.
• All unreadable MICR characters are transmitted as an “?” ASCII character (hex 3F), except for Format 00xx.
Section 6. Keys Received From Device
81
Tag #
Tag Name
Content
270
IMAGE DESCRIPTION
Contains raw MICR line
271
MAKE
“MagTek, Inc.”
272
MODEL
“Excella (unit’s serial number)”
305
SOFTWARE
[firmware version]
315
AUTHOR
Magtek,FB=#,FG=#,QC=#,QG=#. The # symbol refers to the
settings for FilterB, FilterG, JPEGQC, JPEGQG (see the
ImageOptions section in Section 5).
Values
Value Description
numeric value
Number of bytes
Values
Value Description
string
URL string to indicate internal file path for the Image
Values
Value Description
string
SHA1 Key string for the image
SECTION = ImageInfo
The ImageInfo section includes keys that report on various attributes of the scanned images. Some of the
keys below include the symbol ‘#’ to indicate a variable for the image number. The image number can be
1, 2, 3, or 4 (up to 4 images as specified in the Number key below). The device reports image information
using the keys ImageSize#, ImageURL#, and ImageSHA1#. For example, for image 2, the key names
would be ImageSize2, ImageURL2, and ImageSHA1Key2.
The following tags are included in every image file (TIFF tags for black and white images; EXIF tags for
JPEG files):
ImageSize#
This key specifies the size (in bytes) for the specified Image number. The number of scanned images and
their availability is determined by the Number key in Section=ImageOptions. This key is supported by
Excella and Excella STX.
ImageURL#
This key specifies the URL string needed to request the specified Image number using the
MTMICRGetImage API function. This key is supported by Excella and Excella STX.
ImageSHA1Key#
This key contains the SHA1 key calculation for the specified Image number (if requested and available).
This key is supported by Excella and Excella STX.
Excella Windows API Specifications
82
Values
Value Description
numeric value
Number of scanned images
Values
Value Description
NONE
Unknown Card Type
ISO
ISO format
CADL
Old California Drive License format
AAMVA
American Association Motor Vehicle Administrators format
Values
Value Description
string
Please contact MagTek for the use of MagnePrint data
Values
Value Description
string
Please contact MagTek for the use of MagnePrint data
Values
Value Description
string
Track 1 data on magnetic stripe card
Number
This key specifies the number of scanned images ready and available from the device. This key is
supported by Excella and Excella STX.
SECTION = MSRInfo
The MSRInfo section includes keys that report on the information captured from the magnetic stripe card.
This section is supported by Excella STX only.
CardType
This key specifies the standard encoding format detected on the magnetic stripe card. This key is
supported by Excella STX only.
MPData
This key specifies the MagnePrint data read from the magnetic stripe card. This key is supported by
Excella STX only.
MPStatus
This key specifies the MagnePrint status reported by the device. This key is supported by Excella STX
only.
TrackData1
This key specifies the Track 1 data read from the magnetic stripe card. This key is supported by Excella
STX only.
Section 6. Keys Received From Device
83
Values
Value Description
string
Track 2 data on magnetic stripe card
Values
Value Description
string
Track 3 data on magnetic stripe card
Values
Value Description
NONE
No status
OK
No read error detected
ERROR
Read error detected
Values
Value Description
NONE
No status
OK
No read error detected
ERROR
Read error detected
Values
Value Description
NONE
No status
OK
No read error detected
ERROR
Read error detected
TrackData2
This key specifies the Track 2 data read from the magnetic stripe card. This key is supported by Excella
STX only.
TrackData3
This key specifies the Track 3 data read from the magnetic stripe card. This key is supported by Excella
STX only.
TrackStatus1
This key indicates whether a decode/read error was detected while reading Track 1. This key is supported
by Excella STX only.
TrackStatus2
This key indicates whether a decode/read error was detected while reading Track 2. This key is supported
by Excella STX only.
TrackStatus3
This key indicates whether a decode/read error was detected while reading Track 3. This key is supported
by Excella STX only.
Excella Windows API Specifications
84
Values
Value Description
string
Encrypted Track 1 data on magnetic stripe card
Values
Value Description
string
Encrypted Track 2 data on magnetic stripe card
Values
Value Description
string
Encrypted Track 3 data on magnetic stripe card
Values
Value Description
string
Track 1 data on magnetic stripe card
Values
Value Description
string
Track 2 data on magnetic stripe card
Values
Value Description
string
Track 3 data on magnetic stripe card
EncryptedTrackData1
This key specifies the Encrypted Track 1 data read from the magnetic stripe card. The Encrypted Track
data is only in MagneSafe Reader Security Level 3.
EncryptedTrackData2
This key specifies the Encrypted Track 2 data read from the magnetic stripe card. The Encrypted Track
data is only in MagneSafe Reader Security Level 3.
EncryptedTrackData3
This key specifies the Encrypted Track 3 data read from the magnetic stripe card. The Encrypted Track
data is only in MagneSafe Reader Security Level 3.
DeviceSerialNumber
This key specifies the Device Serial Number from MagneSafe Reader.
EncryptedSessionID
This key specifies the Track Encrypted Session ID from MagneSafe Reader.
DUKPTserialnumber
This key specifies the DUKPT serial number from MagneSafe Reader.
85
SECTION 7. OTHER KEYS AVAILABLE FROM DEVICE
Section 7 describes other Sections (and their corresponding key-value pairs) available from the device
upon query by the application. The device can report these additional sections: DeviceUsage,DeviceCapabilities and DeviceStatus,.
The following keys are included in the DeviceUsage section:
The DeviceUsage section includes keys that report general operational statistics of the device.
ChecksRead
This key specifies the number of checks read throughout the life span of the device. A check is recorded
as read when the MICR line on the check is read, or the image of the check is captured, or both. If there is
no RTC chip available in the device, the value in this key will be the same as in the DocsRead key. This
key is supported by Excella and Excella STX.
DocsRead
This key specifies the number of checks read since Maintenance reset. A check is recorded as read when
the MICR line on the check is read, or the image of the check is captured, or both. This key is supported
by Excella and Excella STX.
CardsRead
This key specifies the number of cards read throughout the life span of the device. A card is recorded as
read when it is detected by card reader. This key is supported by Excella STX only.
CardsScanned
This key specifies the number of cards scanned throughout the life span of the device. A card is recorded
as scanned when the card image is captured. This key is supported by Excella STX only.
HoursOp
This key specifies the number of operating hours throughout the life span of the device. If there is no RTC
chip available in the device, the value in this key will be the same as in the HoursOn key. This key is
supported by Excella and Excella STX.
Excella Windows API Specifications
88
Values
Value Description
numeric value
Number of operating hours since Maintenance reset
Values
Value Description
numeric value
Number of ink drops since consumed
Values
Value Description
numeric value
Number of ink drops since consumed
HoursOn
This key specifies the number of operating hours since Maintenance reset. This key is supported by
Excella and Excella STX.
InkUsed
This key specifies the number of ink drops consumed since the back ink cartridge was installed. This key
is supported by Excella and Excella STX.
FrontInkUsed
This key specifies the number of ink drops consumed since the front ink cartridge was installed. This key
is supported by Excella STX only.
Section 7. Other Keys Available from Device
89
Values
Value Description
T
True: auto-feed input tray is available
F
False: auto-feed input tray is NOT available
Values
Value Description
T
True: ID card scanning is available
F
False: ID card scanning is NOT available
Values
Value Description
T
True: MSR is available
F
False: MSR is NOT available
Values
Value Description
T
True: MagnePrint is available
F
False: MagnePrint is NOT available
SECTION = DeviceCapabilities
The DeviceCapabilities section includes keys that report on the general capabilities of the device.
AutoFeed
This key indicates whether an auto-feed input tray is available on the device. This key is supported by
Excella and Excella STX.
IDScan
This key indicates whether the device is capable ID scanning ID cards. This key is supported by Excella
and Excella STX.
MagStripe
This key indicates whether an integrated MSR (Magnetic Stripe Reader) is available on the device. This
key is supported by Excella STX only.
MagnePrint
This key indicates whether an integrated MagnePrint reader is available on the device. This key is
supported by Excella STX only.
Excella Windows API Specifications
90
Values
Value Description
BOTH
Device can print on the front and the back of the document
FRONT
Device can only print on the front of the document
BACK
Device can only print on the back of the document
NONE
Device does not have printing capabilities
Values
Value Description
string
Firmware version
Values
Value Description
BOTH
The device scans the front and back images of the check
FRONT
The device can only scan the front image of the check
BACK
The device can only scan the back image of the check
NONE
The device cannot scan any images
Values
Value Description
T
True: device can read MICR data
F
False: device can NOT read MICR data
Values
Value Description
string
Device serial number
Endorse
This key indicates what print capabilities are available on the device. This key is supported by Excella and
Excella STX.
Firmware
This key specifies the version of the firmware installed in the device. This key is supported by Excella
and Excella STX.
Image
This key indicates what check scanning capabilities are available on the device. This key is supported by
Excella and Excella STX.
MICR
This key indicates whether the device is capable if reading MICR data. This key is supported by Excella
and Excella STX.
UnitSerialNumber
This key specifies the serial number of the device. This key is supported by Excella and Excella STX.
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.