Skip to content

Printing (on the POS)

Overview

A printer turns each sale into paper — a customer receipt, a kitchen chit for the line, a delivery docket, or a product label. The POS tablet drives the printers attached to its register, choosing the right template by printer type, paper width, and the job at hand.

Printing is set up in two places. The hardware for each register — make, connection, header text — is defined once in the admin dashboard under POS Settings. On the tablet, Printer Settings lets staff add printers, point them at the kitchen or the counter, and reprint anything. This page covers the tablet side.

Settings live on the register

Everything you add under Printer Settings is saved to the register the tablet is logged in to — not the device. Swap tablets on the same register and the printers come with it. A tablet with no register assigned shows an empty-register prompt instead.

Opening Printer Settings

  1. On the POS tablet open Settings (bottom of the tab bar).
  2. Under Main, tap Printer Settings.
  3. You'll see the list of printers already on this register, plus Add printer to create a new one.

Tapping a printer opens its detail form. The trash icon on a printer's form deletes it from the register.

Adding a printer

Every printer shares a few core fields, then shows extra connection fields that depend on its type.

FieldWhat it does
Printer typeThe driver to use — see the table below. Picking a type changes which connection fields appear. Required.
Printer nameA label so staff can tell printers apart (e.g. Kitchen or Front Counter).
Copy CountHow many copies this printer produces on an automatic job (Auto Print / Socket Print). Manual prints and reprints always come out as a single copy.
Paper width58mm or 80mm for receipt printers; 40, 50, or 60mm for label printers. The width auto-selects the matching template.

Printer types and how they connect

Printer typeHow it connects
EpsonNetwork — auto-discovery of printers on the LAN, plus an IP address.
StarLAN, Bluetooth or USB — pick the Connection type first. On LAN the field is the Printer IP; on Bluetooth or USB you enter the device identifier instead. Discover Star printers scans all three connection types and fills the details in for you.
TSCNetwork — IP address. A label printer (barcodes / kitchen labels).
iMin / iMin v2Built-in printer on iMin Android hardware — no IP address. The only connection detail is paper width (58mm or 80mm). Not available on iOS.
NyxBuilt-in printer on Nyx Android hardware — no IP address. The only connection detail is paper width (58mm or 80mm). Not available on iOS.
Rongta USBUSB — Android POS only. The app detects the connected USB device and requests permission; no IP address is used.
SunmiBuilt-in printer on Sunmi hardware — no connection details.
Sunmi-cloudCloud — App Id, App Key, Serial number, and Shop Id.
BLE BluetoothBluetooth — the device address.
AdyenAdyen terminal — API Key, POIID (Terminal ID), and Live Endpoint URL Prefix.
PAXBuilt-in printer on PAX hardware — no connection details.
ZPLA label printer (Zebra-style barcodes / kitchen labels).
OtherA generic network printer — IP address.

Network printers need a fixed address

Network printers (Epson, TSC, Other — and Star when its connection type is LAN) are reached by IP address, so give each one a static IP on your router. If the address changes the POS can't find it. Epson and Star can both discover printers for you and fill the details in — Star's search also covers Bluetooth and USB devices.

Rongta USB is different

Rongta USB printing is supported by the Android POS app. If a Rongta printer is connected over LAN instead, configure it as Other / ESC/POS LAN and enter its IP.

What each printer is for

A printer isn't just hardware — you also tell it which jobs to take. These options sit on the same detail form.

SettingWhat it does
Support Printing TypesWhich jobs this printer accepts: kitchen_chit, delivery_chit, and/or receipt. A printer with no matching type is skipped for that job.
Auto PrintPrint automatically at the right moment — receipts on payment, kitchen chits on confirm — without anyone tapping print.
Socket PrintPrint orders pushed in over the network (see below), with a channel picker.
Print QR CodeAdd a QR code to the printout (e.g. a member sign-up or feedback QR).
Print LogoPrint the uploaded Logo image at the top of receipts. Upload the image and set Logo width (in printer dots — try 300–400 on 80mm paper; the default is 400). Kitchen chits never carry the logo.
Raster mode (image)Render receipts and chits as an image instead of the printer's built-in font — see Raster mode below.
TagsRoute products carrying matching product or category tags — so a drinks station only prints drinks and a hot kitchen only prints food. Leave one kitchen printer without tags as the default fallback.
Copy CountNumber of copies (also shown above) — it applies to automatic prints only. A print you start yourself — the reprint from the Orders screen, anything printed from the basket, the reprint on the Payment successful! screen, or a test print — always produces exactly one copy, whatever this is set to. A tip option is available for receipts.

TSC printers can't print receipts

The receipt type isn't available on TSC label printers — they print labels and chits only. Pick a receipt-capable printer (Epson, Sunmi, Star, and so on) for the counter.

Raster mode (image printing)

Most ESC/POS printers only carry a limited built-in character set — so product names in Vietnamese, Thai, Chinese-plus-accents, or any mixed script can come out garbled on paper. Raster mode fixes that: instead of sending text for the printer's own font, the app draws the whole receipt or chit as a bitmap image and sends that. Whatever renders on screen prints on paper, in any language.

Turn it on per printer with the Raster mode (image) toggle on the printer's detail form. It applies to ESC/POS receipt/chit printers (Epson, Rongta, Sunmi, iMin, Nyx, Star, and generic Other network printers) — label printers (TSC/ZPL) are unaffected.

What changes with raster mode on:

  • Multilingual names print correctly — the main reason to enable it.
  • The logo prints on any printer. With Print Logo on, the logo is drawn into the receipt image itself, so it works even on printers with no native logo support (Rongta USB, generic network printers). Receipts only — chits stay lean.
  • Layout is identical across printer brands, since every printer receives the same rendered image.

Content is unchanged

Raster mode changes how the document is printed, not what's on it. Items, prices, routing by tags, combo splitting, copy counts, QR codes — everything follows the same register settings as text printing.

If the print sits too far right

A few printer models report a wider print head than they really have, shifting raster output toward the right edge. Setting the printer's Print density to 190 or lower switches it to the narrower safe width and re-centers the layout.

Socket Print channels

When Socket Print is on, this printer listens for orders arriving over the network and prints the ones whose source you've ticked:

  • customer — orders placed in the member app
  • kiosk — self-service kiosk orders
  • pos — orders rung up on a POS
  • grab — GrabFood
  • foodpanda — foodpanda
  • keeta — Keeta

This is how an incoming online order lands on the kitchen printer with no one touching the tablet. See Socket auto-print below for how paid online orders are handled.

What's on each printout

Receipt

The customer receipt prints, top to bottom:

  • the merchant header (name, outlet)
  • the table / order / daily-order number
  • a document title — TAX RECEIPT when the order is paid, or PRE-SETTLEMENT BILL when it isn't yet
  • the customer name, and the order / receipt / printing / payment times
  • the line items with prices
  • Sub Total
  • Discounts, itemised
  • Service Charge
  • BCRS Deposit (the SG $0.10 container-return deposit, where it applies)
  • GST / Tax
  • the Grand Total
  • the Payments taken and any Change Amount
  • optional total-macros and, for pre-orders, the pickup or delivery time

The 58mm and 80mm layouts are chosen automatically from the printer's type and paper width. Whether the total-macros block prints is set per printer (isPrintTotalMacros).

Bean & Brew example: a customer orders two flat whites. The 80mm counter printer prints a TAX RECEIPT with the two lines, a 9% GST line, the 10% Service Charge, the Grand Total, and PayNow as the payment — all in one tap when Auto Print is on.

Kitchen chit

Kitchen chits print per batch — each time staff confirm an order, the last batch of items fires to the kitchen. A chit lists the items, their modifiers, and any remarks (special requests, best-before notes) so the line can make the order. Subsequent confirms print as Order 2, Order 3, and so on.

Dining mode on the chit

Every kitchen chit states where the food is going. The wording follows the outlet's Operation Type:

Dining modeQSRFSR
Eat inEAT INDINE IN
TakeawayTAKE AWAYTAKE OUT
DeliveryDELIVERYDELIVERY

The same wording is used everywhere on the chit — the banner, a product-level chit's own heading, and the marker beside an item whose mode differs from the order's. Earlier builds spelled the item-level takeaway as one word, TAKEOUT; that no longer appears anywhere, so one chit never shows two spellings of the same mode.

40 mm labels are the exception. Their header bracket is a fixed 21 characters, so takeaway always prints there as the shorter TAKE OUT, whatever the Operation Type.

Orders with more than one dining mode

When every item shares one mode, the chit prints a single dining-mode banner, placed according to Order Mode Position.

When the items don't share a mode — a guest eats in and takes the rest away — the banner is dropped, because the order's mode would contradict half the list. The chit is split into one labelled section per mode instead, eat-in first, then what leaves the shop:

text
            Order: 27
Pickup Time:  07-Aug-2026 02:01 PM
Order No:     27
--------------------------------
                          EAT IN
1  Cream Pasta
1  Teriyaki Sauce
--------------------------------
                       TAKE AWAY
1  Cream Pasta
--------------------------------

The section label obeys the same Order Mode Position setting as the single banner:

  • Top — the label heads its items, right-aligned, as above.
  • Bottom — the label trails its items, after a blank row:
text
--------------------------------
1  Cream Pasta
1  Teriyaki Sauce

EAT IN
--------------------------------
1  Cream Pasta

TAKE AWAY
--------------------------------

A pager number normally rides the banner, so on a sectioned chit it moves to whichever label stands where the banner would have been — the first section with Top, the last with Bottom. It still prints only once.

Sections apply to consolidated chits only. Product-level and per-unit chits carry a single item, so they can never be mixed and keep their own banner.

Interaction with category sorting

Items are grouped by dining mode first. With Sort Kitchen Chit by Category on, category order is preserved within each section — so a category holding items in both modes appears in both sections rather than once.

Kiosk orders are always single-mode

The kiosk has no per-item dining-mode control: every item takes the order's mode. A kiosk order therefore never produces a sectioned chit. Mixed-mode orders come from the POS, where staff can set an item's mode individually.

Combo products and tagged kitchen printers

Turn on Route Combo Items to Matching Printers to enable child-level station matching. With Also Print Combo as a Product off, routing follows the same precedence for ordinary products and combo children:

  1. A direct product tag that matches any configured tagged printer wins.
  2. Category tags are used only when no direct product tag matches a configured printer.
  3. If neither matches, the item goes to the default kitchen printer with no tags.

An unconfigured direct tag therefore still permits category fallback. If two printers share a matching tag, both receive the item.

For example, a Fried rice set can contain:

  • Egg fried rice
  • Drink in a category tagged with drink

If a Rongta USB, Epson, or iMin kitchen printer has target kitchen_chit and tag drink, then a kiosk or POS order for the set can print:

  • the customer receipt on the receipt printer
  • a kitchen chit for Drink on the drink printer

Every child routes independently while Route Combo Items to Matching Printers is on. If Print Combo Product Name is on, children from the same combo line print under one heading:

text
Fried rice set
1 Egg fried rice
1 Drink

Two separate lines of the same combo each keep their own heading, so the chit never reads as one combo holding twice the items:

text
Fried rice set
1 Egg fried rice
Fried rice set
1 Egg fried rice

Also Print Combo as a Product only ever adds a chit. Every component still gets its own ticket at the station that makes it; the combo prints as one further chit of its own, headed --- SUMMARY --- and listing the components, so whoever plates the order can see the whole dish.

A component therefore appears twice on paper, and the two are doing different jobs: the ticket tells a station to cook something, the summary describes what the finished dish is. Only the ticket is an instruction.

The summary follows the combo's own tag — to that station if the combo carries one, to the untagged catch-all printer if it does not. A kiosk order prints the same summary, with the same components under the same --- SUMMARY --- heading.

Keep one kitchen printer with no tag

Step 3 needs a kitchen printer that carries no tag. If every kitchen printer is tagged, an item matching none of those tags reaches no printer at all and prints nowhere — silently, with nothing on the order to say it was dropped. This applies on the POS and the kiosk alike. Leave one untagged kitchen printer as the catch-all, even if it rarely prints.

Product-level print splitting

These printer-level options control physical chit or label splitting after routing:

Product LevelProduct Bundle LevelOutput
OffOffOne combined chit with all items assigned to the printer.
OnOffOne chit per top-level product and quantity; a combo remains one product.
OffOnEach combo child gets a separate chit; ordinary products remain grouped.
OnOnEvery ordinary product and every combo child gets a separate chit.

Product Bundle Level only splits a combo when Route Combo Items to Matching Printers is off. With routing on, the components are already separated by station, and any combo still on a chit is the summary — splitting that would reprint food being made elsewhere, so it stays whole.

Delivery chit

Delivery orders print a delivery chit alongside the kitchen chit, carrying the delivery details for the driver.

Labels (TSC / ZPL)

Label printers print product barcodes and kitchen labels rather than full receipts. TSC uses TSC templates and ZPL uses Zebra templates; both are driven by the label paper widths (40 / 50 / 60mm).

Adyen terminal receipts

When you take payment on an Adyen terminal, the receipt and kitchen text are built from the terminal's own output rather than the standard template, so the card details print exactly as the terminal reports them.

Reprinting

You rarely need to reprint by hand, but you can.

  • From the basket — header icons print a quotation/invoice for the current items, a take-out bill, or Print All (a take-out bill for every basket that has items).
  • From an order — open the order in the Orders tab, then use its print popover to print the receipt, kitchen chit, or delivery chit again. The Payment successful! screen also offers PRINT/REPRINT RECEIPT and PRINT/REPRINT KITCHEN CHIT straight after a sale.

If no suitable printer is configured you'll see "No printer found to print {type}".

Socket auto-print

The POS keeps a live connection to the order server. When a paid online order arrives — one matching the register's default-paid status, or a cash-on-delivery order fulfilled before payment — and it isn't assigned to the staff member on this tablet, the POS auto-prints its kitchen chit and receipt (plus a delivery chit for delivery orders) and plays a notification sound.

Full-service dine-in doesn't chit on arrival

On an outlet whose Operation Type is FSR, a dine-in online order is the exception: it auto-prints its receipt but deliberately no kitchen chit. That chit is produced later, when a waiter seats the order at a table. Nothing prints in between, and no later sweep fills the gap — so if the order is never seated, the kitchen never sees it.

Pre-orders are the mirror image. An FSR dine-in pre-order prints its advance kitchen chit the moment it arrives, and no receipt — the order isn't fired to the line yet, so only the kitchen gets paper.

Everything else auto-prints as described above: all QSR orders, and takeaway and delivery on FSR.

Reprints are safe

Auto-print is idempotent — the same order won't print twice, even if the socket reconnects or the order updates again. So you can leave a kitchen printer running on Socket Print without worrying about duplicate tickets.

This pairs with Socket Print above: tick the channels you want the printer to listen to (customer, kiosk, grab, foodpanda, keeta), and incoming orders print themselves.