A POINT-OF-SALE TRANSACTION PROCESSING SYSTEM

Abstract: A point-of-sale transaction processing system (1, 10, 30) may be used in a versatile manner either directly at points-of-sale or at a retailing back-office. The system has a controller (34) which has initialisation, processing, external communications, and reply modules which operate autonomously. Control is passed between the modules in a cyclic manner by a scheduler, however, each module controls the length of time during which it operates in each cycle. Messages are passed between the modules to progress a transaction through the controller. The messages are written to dedicated queues in memory for the reply modules.

Description: "A point-of-sale transaction processing system" The invention relates to a point-of-sale transaction processing system for use in a retail outlet, either directly at a point-of-sale or in a retail back office interfacing between point-of-sale terminals and a bank authorisation processor. The retail outlet may be a retailer receiving purchase requests from "home shoppers" such as via the Internet. The requirements of such a system are to handle on-line credit and debit card authorisation signals, and to capture data for later generation of reports and possibly batch transmissions. Several systems have been developed for such functionality. For example, US 5500890 (Exxon) describes a protocol allowing multiple point-of-sale terminals to multi-thread transactions to a host computer and to interleave mail messages and file transfers. European Patent Specification No. 485090 (Visa) describes a central processor connected between point-of-sale terminals and issuer systems. The central processor calculates a level of risk associated with transaction records and updates the stored risk calculation criteria of the terminals. PCT Patent Specification No. WO 95/12269 (Visa) describes a system which insulates a retail information system from changes to network access methods. British Patent Specification No. GB 2281648 (Turquoise Holdings) describes a system which interfaces between point-of-sale terminals and a card authorisation agency system. The interface system controls the flow of communication between the point-of-sale terminals and a dedicated communications line connecting it to the card authorisation agency system in order to ensure integrity of the communication. While these systems are effective at addressing particular problems which arise in the transaction processing environment, there still remains the problem of a lack of flexibility in adopting a system for use in different situations. For example, in the retail trading environment, there is a need for a system which interfaces with the point-of-sale on one side and with the bank host system on the other side in a number of different configurations. One such configuration is in the form of an electronic cash register (ECR) which both interfaces with the retail operator and with the bank host system. Another configuration is to interface between separate point-of-sale terminals and the bank host system to centrally process transactions at the retail outlet. A still further configuration is to allow a home user to interface with the bank host system, possibly via a network such as the Internet. There is therefore a need for a system which is flexible and adaptable for use in different retail trading environments and yet performs the same core functionality in all of these different situations. According to the invention, there is provided a point-of- sale transaction processing system comprising: - a point-of-sale interface; a host system interface; and a controller comprising a processing module, a point-of- sale reply module, and an external communications module, wherein: - the processing module comprises means for determining if internal of external processing is required, for performing internal processing and directing replies to the reply module, and for transferring transaction signals to the external communications module if external processing is required; the external communications module comprises means for transmitting transaction signals to a host system, for receiving replies from the host system, and for transferring the replies to the reply module; and the reply module comprises means for transmitting replies to the originating point-of-sale terminals . In one embodiment, the system further comprises an initialisation module which comprises means for receiving transaction signals from the point-of-sale interface and for automatically transferring them to the processing module. Preferably, the reply module comprises means for logging the identifiers of the originating terminals to enable reply to the correct terminal . In one embodiment, the system further comprises means for automatically activating each module in sequence in a cyclic manner. Preferably, the modules are autonomous and comprise means for intelligently operating according to pre-set time constraints, the length of time to operate being variable. In another embodiment, each module comprises means for operating in a cycle including read, process, and write operations to perform a task, and for immediately allowing transfer of control to a next module if this cycle of operations may not be performed. In a further embodiment, the modules comprise means for transferring messages via random access memory. In another embodiment, each module has a dedicated section of memory forming a dedicated queue, and each module comprises means for writing a message to the queue of a module to which it is passing control. In one embodiment, the modules write to the queues and read from their dedicated queues on the first-in-first-out principle . Preferably, each queue has a capacity of up to 100 messages . Preferably, the initialisation module comprises means for configuring incoming signals to a fixed length. Ideally, the external communication module comprises means for flagging transmission of a message to the reply module and the reply module comprises means for monitoring time for receipt of a response from an external host system and transmitting hold signals to the originating point-of-sale terminal . The invention will be more clearly understood from the following description of some embodiments thereof, given by way of example only, with reference to the accompanying drawings, in which:- Fig. 1 is a diagram illustrating the context of a point-of-sale transaction processing system of the invention - interfacing between separate point-of- sale terminals and a bank host system; Fig. 2 is a diagram illustrating a system of the invention interfacing between electronic cash registers and a store terminal controller on one side and a bank host system on the other side; Fig. 3 is a diagram illustrating a system of the invention connected in a network comprising electronic cash registers and a server; Fig. 4 is a diagram illustrating operation of the internal controller of a system of the invention; and Fig. 5 is a diagram illustrating message transfer mechanisms within the system controller; and Fig. 6 is a timing diagram illustrating signal throughput. Referring to the drawings, there are shown in Figs. 1 to 3 inclusive different situations in which a point-of-sale transaction processing system of the invention may be utilised. As shown in Fig. 1, a system 1 is connected on one side to a number of point-of-sale terminals 2 via a multi-port adaptor 3, and on the other side via an X.25 network to a bank host system. As shown in Fig. 2, a system 10 of the invention is connected on one side to a number of electronic cash registers (ECR's) via a store terminal controller 12, and on the other side to a bank host system via X.25 and modem links. A still further situation is shown in Fig. 3 in which a system 30 of the invention is connected in a network comprising electronic cash registers 31, an ECR server 32, all being interconnected by a local area network 33. The system 30 is also configured for communication with a bank host system via X.25 and modem links. Although not illustrated, the system of the invention could take the form of a single point-of-sale intelligent terminal which interfaces directly between the retail operator and the bank host system. Such a system may be used as an electronic cash register in a store, or for communication with a home system via a network such as the Internet on one side and with a bank host system on the other. The function of each of the systems 1, 10 and 30, is to perform message routing and file format conversion and therefore act as an essential link in the chain between the points-of-sale and the bank host system. It receives transaction signals including authorisation requests and provides a response in real time. Referring now to Figs. 4 to 6 inclusive, the controller 34 of the systems 1, 10 and 30 is illustrated. The controller 34 is connected to a set of serial ports 35 connected to a serial bus 36 which provides buffering of received signals to sequence them in order of receipt from a point-of-sale terminal. The controller 34 comprises the following autonomous processing modules :- an initialisation module 40, a processing module 41, an X.25 communications module 42, a dial-up communications module 43, and a reply module 44. These modules operate in communication with each other in a particular manner which allows for a very fast throughput of signals to provide a fast response time to the point-of-sale terminals. They also operate in such a way which is independent of the nature of the interface which provides the point-of-sale transaction signals - operating equally well in a single electronic cash register and in a microcomputer connected to a number of point-of-sale terminals or electronic cash registers. Each module is activated in turn by a scheduler which makes function calls in a cyclic manner, one full cycle being the full set of five modules 40 to 44 inclusive. The sequence of calls is not changed. The interrupted arrows T in Fig. 4 indicate the sequencing cycle whereby each module in turn is activated. However, each module is programmed to perform its task in a manner which minimises the amount of processor time which it occupies, to the maximum benefit. This length of time is variable, depending on the nature of the operation performed. However, the basic time slot for each module is a read operation/process operation/write operation cycle. Typically, this cycle takes a time of less than 0.5 sec. However, if a process is not required such as an X.25 or a dial-up connection the module will immediately allow transfer of control to the next module in order to optimise processor utilisation. Referring in particular to Fig. 5, the manner in which transaction signals are passed between the module is now illustrated. The full arrows Q of Fig. 4 indicate the transfer of signals between the modules. The signals are transferred as discrete fixed-length messages. The length of the messages is set at initialisation of the controller 34 and is typically 80 Bytes. The controller 34 uses a random access memory (RAM) of 0.5MB in size to transfer messages between the modules. Each module is programmed to refer to a dedicated block of the RAM 50 to retrieve messages stored in dedicated queues. As shown in Fig. 5 there are queues Q 40, Q 41, Q 42, Q 43 and Q 44. The messages are indicated generally by the numeral 51 and individually by subscripts such as Mi, M ι+i/ M ι+ 2 - The messages are stored in a FIFO basis. The modules 40, 41, 42 and 43 each receive messages from one other module only, as indicated in Fig. 5. However, the reply module 44 receives messages from all of the other four modules. The initialisation module 40 is programmed to receive transaction signals from the ports 35. The following illustrates the typical format of a signal which is received:- <STX><DATA><ETX><LRC> <STX> and <ETX> are characters which determine the start and end of a signal respectively. <LRC> means longitudinal redundancy check and is a check byte over all the characters preceding it in the signal i.e. the <STX> character, all the <DATA> characters, and the <ETX> character. The initialisation module 40 monitors the following fields of the transaction signal. It calculates the <LRC> frame in the incoming signal and compares it to the transmitted <LRC> frame. A mismatch indicates that the signal is corrupt, in which case the initialisation module transmits a <NAK> frame and awaits a resend of the signal. Should the link with the point-of-sale terminal be interrupted for any reason during transmission of a signal, the initialisation module 40 will time-out for that particular point-of-sale terminal and will await a reconnect/resend of that signal. After receiving a valid transaction signal, the initialisation module 40 typically monitors the following fields of the signal which are contained in the <DATA> part of the signal :- Message number Unique message number for each transaction. Terminal ID ID which identifies a terminal or cash register to a bank's host system. Merchant ID ID which identifies a merchant to a bank's host system. Card Number credit/debit card number. Transaction amount transaction amount. Cashback amount Used for purchase-with-cashback transactions . Expiry date Expiry date of card. Track 2 data Extra data provided if a card is swiped through a card reader. These validation operations are very important as they filter out invalid signals at an early stage and thus avoid wasted operation of the other modules. If invalid, the initialisation module 40 immediately flags this to the reply module 44. An error signal is generated by the initialisation module 40 and inserted in the message which is transferred to the reply module 44, which immediately transmits it back to the point-of-sale terminal. If the data in the signal is valid, the transaction message is passed to the processing module 41. The processing module 41 reads the above data fields in the transaction message together with additional data from an internal database in order to determine whether internal or external processing is required. If internal processing is required, the module 41 performs this processing itself and ultimately sends a response message to the reply module 44 for transmission back to the point- of-sale terminal. This message has the general format shown below: - <STX><DATA><ETX><LRC> <STX>, <ETX> and <LRC> are as explained above. The <DATA> part of the signal typically contains the following fields :- Message Number Unique message number for each transaction. Terminal ID ID which identifies a terminal or cash register to a bank's host system. Message type Indicates the type of message being sent. Response code A code indicating whether a transaction was authorised, referred or declined. Auth code This field contains a 6 digit authorisation code if the transaction was authorised. Transaction amount Transaction amount Reply text message This field contains an informative response text message . Where external processing is required, the module 41 immediately transfers the message to either the X.25 communications module 42 or the dial-up communications module 43. The decision as to which module 42 or 43 to use is determined by a system configuration file. Both the X.25 and the dial-up communications modules 42 and 43 are programmed to transmit a message to a remote bank host system and to receive the return signal and immediately prepare a response message and pass it to the reply module 44. An important aspect of operation of the modules 42 and 43 is that they flag to the reply module 44 when they transmit a signal to the external system. This flagging takes place by use of a special hold message having a similar format to that described above and inserted in the queue Q 44. The reply module 44 then monitors the time involved and transmits a signal to the originating point-of-sale terminal to indicate that there is a delay and that the communication should be maintained. This helps to ensure that the point-of-sale terminals do not disconnect by default on a "time out" basis. It will be appreciated that the manner in which messages are transferred between the modules is particularly effective at achieving efficient and reliable routing of signals in a concentrated manner. This allows a large amount of versatility as the controller 34 operates very efficiently at handling a single signal at a time from one or a small number of point-of-sale terminals, or a large number of signals concurrently. This is achieved with the requirement for only a single processor because of the manner in which the processor time is optimised by use of the modules. Indeed, the way in which the modules operate provides the illusion of parallel processing, as illustrated in Fig. 6. In Fig. 6, a time axis 60 indicates progress of time in a sequence, t, t+1, t+2, t+3, and t+4. These time periods are multiples of the time slots during which each module operates, the breakdown to time slot granularity not being illustrated for clarity. By time t, the module 40 has received a transaction signal for a transaction A in step 61. By time t+1, the appropriate message has been transferred to the processing module 41 which monitors the message and determines that it must be processed externally. Also by time t+1, a further signal for a transaction B has been received by the module 40 in step 63. By time t+2 the dial-up module 43 has received the appropriate message and has transmitted a remote signal to the external bank host system in step 64. Also by time t+2 the module 41 has processed the message for transaction B in step 65 and both decided that internal processing is required and has performed this processing. By time t+3, the reply module 44 has transmitted a reply in step 66 to the originating point-of-sale terminal. At a later time, t+4, the reply module 44 has received the response from the dial-up module 43 and has transmitted it back to the originating terminal for transaction A in step 67. This simple diagram illustrates the manner in which transactions are processed apparently independently in parallel using the simple mechanisms of the modules 42,44. Because many signals may be received concurrently, this feature of the invention is extremely important. It will also be noted that the controller 35 is capable of interfacing with any type of point-of-sale interface such as a direct keypad and card reader interface on a single terminal, or serial ports connected to portable terminals. The various possible configurations are illustrated in Figs. 1 to 3 inclusive. This versatility is achieved because of the manner in which a transaction signal is immediately handled as a message which is transferred between the autonomous modules in the manner described. The invention is not limited to the embodiments hereinbefore described but may be varied in construction and detail within the scope of the claims.

Claims: CLAIMS 1. A point-of-sale transaction processing system comprising:- a point-of-sale interface; a host system interface; and a controller comprising a processing module, a point- of-sale reply module, and an external communications module, wherein: - the processing module comprises means for determining if internal of external processing is required, for performing internal processing and directing replies to the reply module, and for transferring transaction signals to the external communications module if external processing is required; the external communications module comprises means for transmitting transaction signals to a host system, for receiving replies from the host system, and for transferring the replies to the reply module; and the reply module comprises means for transmitting replies to the originating point- of-sale terminals. 2. A system as claimed in claim 1, wherein the controller further comprises an initialisation module which comprises means for receiving transaction signals from the point-of-sale interface and for automatically transferring them to the processing module . 3. A system as claimed in claims 1 or 2 , wherein the reply module comprises means for logging the identifiers of the originating terminals to enable reply to the correct terminal. 4. A system as claimed in any of claims 1 to 3 , further comprising means for automatically activating each module in sequence in a cyclic manner. 5. A system as claimed in claim 4, wherein the modules are autonomous and comprise means for intelligently operating according to pre-set time constraints, the length of time to operate being variable. 6. A system as claimed in claim 5, wherein each module comprises means for operating in a cycle including read, process, and write operations to perform a task, and for immediately allowing transfer of control to a next module if this cycle of operations may not be performed. 7. A system as claimed in any preceding claim, wherein the modules comprise means for transferring messages via random access memory. 8. A system as claimed 7, wherein each module has a dedicated section of memory forming a dedicated queue, and each module comprises means for writing a message to the queue of a module to which it is passing control. 9. A system as claimed in claim 7 or 8, wherein the modules write to the queues and read from their dedicated queues on the first-in-first-out principle. 10. A system as claimed in claim 8 or 9 , wherein each queue has a capacity of up to 100 messages. 11. A system as claimed in any preceding claim, wherein the initialisation module comprises means for configuring incoming signals to a fixed length. 12. A system as claimed in any preceding claim, wherein the external communication module comprises means for flagging transmission

Inventors: BURNE GEORGE, CLARKE PATRICK, FLOOD EOIN, GUERIN DAVID, MCCARTHY PEARSE, MCGUIRE CYRIL, MCGUIRE JOHN, MEEHAN CHRISTOPHER, O'DONOGHUE HUBERT, PROUDFOOT PAUL, BURNE, GEORGE, CLARKE, PATRICK, FLOOD, EOIN, GUERIN, DAVID, MCCARTHY, PEARSE, MCGUIRE, CYRIL, MCGUIRE, JOHN, MEEHAN, CHRISTOPHER, O'DONOGHUE, HUBERT, PROUDFOOT, PAUL
Applicants: BURNE GEORGE, CLARKE PATRICK, DONOGHUE HUBERT O, FLOOD EOIN, GUERIN DAVID, MCCARTHY PEARSE, MCGUIRE CYRIL, MCGUIRE JOHN, MEEHAN CHRISTOPHER, PROUDFOOT PAUL, TRINTECH LTD, BURNE, GEORGE, CLARKE, PATRICK, FLOOD, EOIN, GUERIN, DAVID, MCCARTHY, PEARSE, MCGUIRE, CYRIL, MCGUIRE, JOHN, MEEHAN, CHRISTOPHER, O'DONOGHUE, HUBERT, PROUDFOOT, PAUL, TRINTECH LIMITED
Application year: 1997
Main classification: G07G1
IPC codes: G07G1, H04L29