Squirrel Credit/Gift/debit Card Workflow and Architecture
The Squirrel Restaurant POS system provides core support for credit/gift/debit card payment methods. They also provide the infrastructure to allow some customization of this support and require customization for communicating with the Payment Processor.
Squirrel is a client-server system. The Squirrel POS workstation is a Java application which usually runs on a diskless POS workstation with a touch screen and magnetic card reader (as well as peripheral interfaces for printers, etc). The POS workstation itself usually runs an embedded Linux OS which is booted over the network. It is possible to run the Squirrel POS workstation application under Linux or Windows, though this is rare.
The Squirrel Application Server
(called the Squirrel Host) runs under Windows XP or Server and communicates with Microsoft SQL Server and the Squirrel POS Workstation applications. It is also the hub for communication with Payment Processors (and other third party systems such as Hotel Property Management Systems, Kitchen Video Systems etc).
Custom Interface/Connection to Payment Processor
To provide Credit/Gift Card Payment support, normally an interface driver is written in a proprietary Squirrel language and this interface driver is loaded at runtime. The interface driver receives requests from the Squirrel Host to authorize a purchase, void a purchase, credit the card (a refund), fund a gift card, show the balance of a gift card. The interface driver then communicates with the Payment processor (via serial or IP usually) and parses the reply and informs the Squirrel Host of the result (payment is authorized, tip is added, payment is voided, card is credited etc). These transactions may be online and realtime, or may be stored for processing at the end of the day. Normally for credit card, authorization is realtime and all other transactions are end of day. For Gift/PrePaid/Debit cards, normally all supported operations are realtime.
Custom Receipts and Vouchers
It is also possible to replace the Squirrel Receipts and Vouchers with custom receipts and vouchers by writing a Java class to replace the existing Squirrel class (actually inheritance is used and the class is loaded dynamically). Other customizations are possible with additional effort and advanced integration techniques. Almost anything can be accomplished with sufficient effort, though the above
customizations are reasonably straightforward and are what the infrastructure is designed to support.
The flow of operation is normally:
The waiter prints and presents the bill or check to the customer.
The customer gives the payment (usually magnetic stripe) card to the waiter.
The waiter takes the card to the POS workstation, swipes it, requesting the use of the card as the payment method for the check.
There are variations allowed for balance inquiry, or partial payment of a check etc.
The POS workstation application then sends the request to the Squirrel Host which then queues the request for the appropriate interface driver (a single system may support multiple payment processors, one per payment method. The POS workstation application is normally available for other use while the transaction is being processed. The normal configuration is one for credit card and a separate processor for gift/prepaid processing).
The Squirrel Host then calls the interface driver to process one request at a time, waiting for the response (while this is happening, the Squirrel Host is also handling requests for checks, orders, settlements etc from any and all other workstations in the system). For Gift/PrePaid cards, this request may remove funds from the card account. Funds removal at this point is normally only done for transactions that will NOT have a tip entered. If a tip is to be entered, this is usually a Balance Inquiry which just verifies that sufficient funds are available. It is also possible to support a partial approval, where for example the request may be for $27.34 and the card account only has $25.00 funds, so $25.00 is approved and the waiter must collect the balance of $2.34 through another payment method, often cash or another payment card.
When the interface driver returns with a result (successful or not), the Squirrel Host will initiate voucher printing and store the result with the payment.
At some point the waiter will pick up the voucher, present it to the customer for signature and tip addition, and then take the completed and signed voucher back to the POS workstation to enter the tip and settle the transaction. At this point, either the check is closed and the final transaction occurs at the end of the day (normal for credit card) or the tip and the check amount are sent to the Payment Processor in realtime.
Develop your Own Interface or Hire an Expert
Payment interfaces are conceptually simple. Squirrel requests the interface to accept or reject payment for a specific dollar amount. The interface communicates with the Payment Processor and sends the approval/rejection back to Squirrel. The details of implementing this and all of the different variations and additional features Squirrel requires can make this a much more complex task. That is where having an expert develop your interface has many advantages. Items to consider are:
Do you need a custom voucher/receipt or is the default Squirrel Credit Card Voucher adequate?
Do you want your custom voucher to coexist with another custom payment card voucher at the customer site?
Do you know how to handle realtime voids/reversals, alternate IP paths
Our companies, Cool Balance Inc and Adept Computing Inc are experts in developing payment interfaces for the Squirrel POS System. If you are a payment processor or a customer that wishes a customized integration I would encourage you to consider directly contracting the services of Cool Balance Inc or Adept Computing Inc. We have over 20 years experience in developing Payment Interfaces for Squirrel POS Systems and you will not find anyone that has more expertise in this field. Contact Greg Bruce, Managing Director of CoolBalance Inc. to discuss your needs and request a quote/proposal.
You can also procure a Driver Development Kit from Squirrel Systems to develop your own interface/customization. If you wish to follow this route, contact Chris Pedersen at Squirrel Systems. Chris heads the Professional Services Group and can also arrange custom development through Squirrel for you.