STS’ payment application, G8, has a simple programming interface for accepting payments. The interface was originally designed to allow an electronic point of sale (EPOS) to instruct G8 to accept payments from “any card, using any payment gateway”. This design principle means that G8’s API is pretty useful for accepting any type of payment, including accepting cash using an automatic cash acceptance device, including dispensing cashback!
Cash acceptance/dispensing devices
Cash acceptance devices accept money (coins or notes) and generally are able to accurately count that cash, detect counterfeits and dispense change, and are perhaps able to accept multiple currencies and to dispense cash when requested to by the POS. These machines have complex APIs to drive these transactions, and to generate reports on the stored cash, and to allow cash to be removed by the merchant or the cash-machine owner, and for a float to be added to the machine. STS leverages its depth of experience in driving different devices from difference manufacturers using a single encompassing API to try to simplify the process of driving cash acceptance devices. Using G8’s new cash acceptance features reduces the time and effort required by a POS / business application provider and also means that there is one fewer integration to be maintained.
G8 must be configured to support cash devices: this is done by setting cash.accepted=yes in tender.properties, and by defining a cash.driver (in addition to the driver) in device.properties. The G8 Configuration Guide included with the G8 SDK has more details.
If you have already integrated to G8 (see the G8 Programming Guide quick start guide for more details), G8 will now be able to accept cash payments and dispense cashback, as well as card payments. If a cash or card (or any other type) payment is made, G8 will report that the tender was “approved”; and can report errors and declined cards and cancellation; G8 will make receipt requests during the transaction for all payment types. Depending on the level of feedback to the EPOS required, this level of integration could be sufficient – if not, G8 provides feedback in the form of events, and extra details on the Tender result. The first cash acceptance / dispensing devices that are supported by G8 are from Glory Global and include the CI-10 model.
If G8 is controlling a cash acceptance device that is capable of dispensing cash, it will use that device to dispense the requested cashback amount for cashback transactions. For example, if a transaction for £30 is started, and a card that allows cashback is presented, the EPOS will be prompted to specify a cashback amount. If the EPOS supplies a cashback amount (for example £10), G8 will make the cash acceptance device dispense that £10.
More detailed integration
G8 fire tender status events to the EPOS to allow it to present additional messages to the attendant or on additional cardholder-facing screens. For all payments, G8 will fire events like TENDER_STARTED, WAITING_FOR_CARD_PRESENTED, PRELIMINARY_RESULT_KNOWN and TENDER_COMPLETE. For card payments, G8 fires events like CARD_PRESENTED and WAITING_FOR_CARD_REMOVAL. If a cash payment is made, G8 will fire some new events like CASH_DISPENSING_STARTING and CASH_DISPENSING_COMPLETE.
The TenderResult interface represents the final result of a tender. This interface has some new methods that allow the POS to distinguish between cash and card payments: TenderResult.getPaymentType() returns one of CARD_PAYMENT, CASH_PAYMENT (or NO_PAYMENT in the event of errors or cancellation). Additionally, the actual amount of cash inserted can be retrieved using TenderResult.getCashIn(), and the amount of change or cashback dispensed is returned by TenderResult.getCashOut().
G8’s card and capture-type agnostic API is now also payment-type agnostic, allowing card acceptance to be augmented with automated cash acceptance with little or no additional work. EPOS vendors integrated to G8 can add a new string to their bow; payment service providers reselling G8 can respond to merchants’ concerns; merchants can reduce risk and fraud and add an eye-catching new technology to their stores. STS is initially working closely with Glory Global but will in future support devices from other cash acceptance manufacturers.