Cashdraw Default Trigger Setting/Code location?

I am looking to have the cashdraw triggered just for cash and that seems to be a well documented thing to do. But everything I see with regard to the existing cash draw trigger suggests its found in a printing template? I cannot see the code in any of the default printing templates.

I am working under the assumption that if I implement a cash draw trigger just for cash without removing the default trigger then it will not work as intended?

I used the default demo setup as the base for my POS setup and the cash draw is connected via rj11.

Can anyone help with this?

Is the drawer kicking open now? If so, for all payment types?

If not, then you need to:

  • create an Open Drawer Template with the correct <XCT> Kick-code for your ESC/POS Printer

  • create an Open Drawer Print Job using your ESC/POS Printer and the Open Drawer Template

  • create an Action for Execute Print Job for the above Open Drawer Print Job

  • put the above Action in a Rule, such as Payment Processed, and constrain the Rule for Cash Payment Type

EDIT: Some useful background in my post, but @QMcKay’s method is nicer. Infact, I am not even sure if mine works now, can you use XCT commands conditionally Q?

Cash drawers are usually triggered using RJ11 cable connected to your printer.

Your printer will normally call this functionality a “kick”

You printer will normally also have additional functionality such as a cutter.

Inside the configuration software for your printer you can normally specify if the printer should cut and/or kick at the end of each ticket it prints. So, first, using the diagnostics for your printer, check that it is able to successfully ‘kick’ your drawer.

Since you DO NOT want the drawer to open for every ticket (only ones which involve cash) you should NOT enable “kick every ticket” inside your printer configuration.

Many thermal printers use the ESC/POS protocol to communicate. This protocol provides the ability of your to specify printer functions in real time. The types of things you can typically change are:

  • Font style
  • Font size
  • Inverse (white text on black background)
  • Print speed
  • Trigger cutter
  • Trigger kick

You can send these commands directly to the printer from within the SambaPOS printer template using <XCT> commands.

You’ll need to double check the specific codes that will be required for your printer by taking a close look at the product manual, but for me the command <XCT>27,112,0,50,250 will trigger the printer to kick the drawer.

If you put this command in your printer template then the drawer will always open.

If you want to only only kick the drawer when someone pays using cash, then you can take a look at IF statements within the printer template. Take a look at this example…

[= TN('{PAYMENT TOTAL:Cash}') > 0 ? '<L00>You paid using cash!']
[= TN('{PAYMENT TOTAL:Cash}') > 0 ? '<XCT>27,112,0,50,250']

The above example will print a message on the ticket confirming the client paid in cash and will then kick the drawer.

Thank you for the replies. Its currently opening for all payment types. The printer is connected via Ethernet but I’ll look to see if the kick is being triggered under the printer’s settings - they (software/drivers) are a nightmare though, its far from a brand name printer.

Is the kick happening even if you just print something from notepad?

By default, there is no code in the SambaPOS printer template that will trigger the kick and there are no other settings within SambaPOS that would do this either, so it probably is set as a default within your printer config - Good luck, let us knowhow you get on.

You could put the Kick-code in your regular “Ticket / Bill” Template and use the “IF” Ternary operator if you wish.

But for more control and functionality elsewhere in SambaPOS, it is recommended to simply create a Print Job that does nothing else other than fire the Kick-code.


##Print Job

##Action - Execute Print Job for Open Drawer

##Action - Generic Execute Automation Command

You can use this Action in many scenarios, so it is good to have one of these in your setup.

##Automation Command - Open Drawer Button (optional)

This will show a button along the left side of the Ticket and on the Payment Screen that you click on at any time to open the drawer.

##Rule - Automation Command Executed for Open Drawer

This Rule will be triggered when an Automation Command named Open Drawer is fired. This could be caused by clicking the (optional) Button we previously created, or it could be triggered by an Execute Automation Command Action like the GEN ExecAMC Action that we previously created.

##Rule - Payment Processed for Cash

Here you can see we use the GEN ExecAMC Action to fire an Automation Command named Open Drawer, which will trigger the Above Rule. The Rule is Constrained to fire only when Payment Type Name Equals Cash.

You could also leave out the GEN ExecAMC Action, and instead just put the Execute Open Drawer Action here.

Thank you for taking the time to post that guide. I’ve followed it but no success yet, does anybody know the kick code for a EPSON TM-T88V? I’ve had a look online, and can’t seem to find a code for that model?

It is shown in the image of the Printer Template above.


Hi QMcKay, thank you for reply.

Its still not kicking with that code.

I am wondering what I am doing wrong at this point. Would it help if I uploaded screenshots?

I’ve just checked the print logs via Window’s event viewer and the print job is being sent to the receipt printer. So that hopefully nears it down to the print template or print job yes?

Usually the drivers for the printer can also control drawer kick. Maybe check there or try a different kick code. Screenshots will help for sure.

Also, try sending some other XCT commands (font type, bold, inverse etc)… Are those working on the printed output?

Be sure your Printer Configuration in SambaPOS is set to ESC/POS.

<XCT> commands are only valid for ESC/POS Printers.

Try Drawer Kick from the Printer Utility to ensure your Printer, RJ11 cable and drawer are functioning properly.