Check Serial Number
Parsing the Check Serial Number
Most banks print the check serial number in three easily recognizable spots. The printer firmware will look for the number in these spots, using the following ordered algorithm. The examples use letters to represent symbols on the check:
t |
Transit symbol |
o |
“on us” symbol |
$ |
Amount symbol |
- |
Dash |
c |
Check serial number |
x |
Any other number |
A number bracketed by “on us” symbols in the auxiliary “on us” field is the check serial number.
occcccco txxxxxxxxxt xxxxxxxxo
Otherwise, a three or more digit number to the right of the rightmost “on us” symbol, and to the left of the leftmost amount symbol if an amount field is present, is the check serial number.
txxxxxxxxxt xxxxxxxxo cccc
txxxxxxxxxt xxxxxxxxo cccc $xxxxxx$
If both of these searches fail to produce the check serial number, extract the whole account number field from between the rightmost transit symbol and the rightmost “on us” symbol. A three, four, or five-digit number to the right of the rightmost transit symbol, separated by a space or a dash from the rest of the account number is the check serial number.
txxxxxxxxxt cccc xxxxxxxxo
txxxxxxxxxt cccc-xxxxxxxxo
txxxxxxxxxt cccc xxxxxxxxo xx
If all of these searches fail to produce the distinct check serial number, and the check serial number field has been specified in the parsing parameter string options, no check serial number will be returned. If it is imbedded within the account number field, it will be returned as part of that variable length field.
Exceptions
Some banks print the check serial number in a location that cannot be electronically distinguished without specific exception information, although it can be visually distinguished because it is repeated in the upper right corner of the check. For these cases, the printer can hold up to nine exceptions for specific banks in its non-volatile memory (NVRAM), which is accessed by the read and write NVRAM commands. The specific bank is picked out by its transit number, and the firmware will look in the exception table for a transit number match before looking in the normal check serial number locations.
In this example, without an exception table entry, the firmware would always pick the rightmost four-digit number as the check serial number following rule two above. The bank with the three digit check serial number and the four digit extension after the “on us” symbol would need to be exceptionally recognized:
txxxxxxxxxt ccc-xxxxxxxxxxoxxxx
txxxxxxxxxt xxx-xxxxxxxxxxocccc
In this example, without an exception table entry, the firmware would not be able to pick out the check serial number because it is not separated from the rest of the account number:
txxxxxxxxxt ccccxxxxxxxxxxo
In this example, without an exception table entry, the firmware would not be able to pick out the check serial number correctly, because it is imbedded within the rest of the account number:
txxxxxxxxxt xxx-ccc-xxxxxxxxxxo
Loading the Exception Table
The exception table begins at word 20 in NVRAM. Each entry takes five words. There is room for eight exceptions with a sumcheck written in the last word. An application can load local exceptions into the printer using the write NVRAM command:
0x1B 0x73 n1 n2 k
which writes the two byte word n1:n2 to word k in NVRAM.