Overview
The POS can drive up to four kinds of printer, each with its own role:
| Printer | What it's for |
|---|---|
| Customer (receipt) printer | The receipt you hand to a walk-in customer. 80mm thermal. |
| Kitchen printers | Order tickets for the kitchen/prep area, in a larger font. 80mm thermal or 76mm dot-matrix. You can run several. |
| Dispatch printer | A bag/dispatch ticket for delivery and collection orders. |
| Label printers | Per-item allergen and prep labels on a Zebra label printer. |
You set them all up in the same place — Settings > Select Printers — but how a printer is connected and discovered depends on whether you're running the POS on the Web (in a browser, on Windows) or on an Android terminal such as a Sunmi. The differences are called out in each section below.
Recover a missing printout
Open Settings > Select Printers > Print history on the terminal that sent the document. Each entry shows the document's role or copy, physical printer name or network address, order reference, last attempt time and delivery status. Printer not configured means you need to select that printer in Settings before retrying. History is saved locally on that device or browser profile; it is not a history of every terminal in your business. Clearing browser or app data removes local history.
| Status | What to do |
|---|---|
| Not sent yet or Not sent | Restore the printer connection and paper, then choose Retry this printer. Only that saved document and destination are retried. |
| Sending — please wait | Wait for the current attempt to finish, then choose Refresh. Another attempt is blocked while sending. |
| Sent to printer | The printing service accepted the document. Check the paper: this status does not prove that paper came out. |
| Delivery uncertain | Check the paper and print queue first. If another copy is needed, choose Check and reprint, read the warning, then Reprint this document. This can produce a duplicate. |
| Closed by staff | A member of staff confirmed that no further print was needed. This does not confirm the printer produced paper. |
- Check that the correct printer is powered on, has paper and has its cover closed.
- On Web, also check JSPrintManager and the Windows print queue. A disconnected printer can retain a job in its queue and print it after reconnecting. Do not reprint a queued copy without checking it first.
- On Android, check the network connection or built-in printer status. A lost connection after sending begins may leave delivery uncertain even if some or all of the document printed.
- Use the action on the affected printer's entry. Do not reprint the whole order to fix one missing kitchen ticket: printers that already received it could produce extra copies.
- Choose Refresh and check the actual paper after recovery. If the POS stopped during an attempt, history may show Delivery uncertain after restarting.
If the paper is already present or a copy is no longer needed, choose No further print needed, then Close this delivery. This sends nothing and removes the recovery actions for that entry. You cannot close an active sending attempt.
Note: Recovery actions are available only where the saved document is still available. Older entries may have status information only. Saved recovery documents can contain the same customer information as the original receipt; use your normal terminal access controls.
Before you start
How you connect a printer depends on your terminal:
- Android terminals (e.g. Sunmi): printers must be on the network — Ethernet or Wi-Fi — and on the same subnet as the terminal (for example, both on
192.168.0.x). USB and Bluetooth printers are not supported on Android. - Web terminals (browser on Windows): any connection Windows itself can drive works — USB, Ethernet, or Wi-Fi — because printing goes through the JSPrintManager helper and addresses each printer by its Windows printer name. This needs a one-time setup; see the next section.
Note: Whatever the connection, the printer must be powered on and ready before you try to discover it.
Printing on the Web (JSPrintManager)
When you run the POS in a web browser, the browser can't talk to your printers directly. A small free helper called JSPrintManager (JSPM) bridges the gap: it runs quietly in the background on Windows and lets the POS print to any printer installed on that computer.
One-time setup:
- On the computer that runs the web POS, install JSPrintManager v6 from Neodynamic: neodynamic.com/downloads/jspm/?v=6.
- Make sure your printers are installed in Windows first (Settings > Bluetooth & devices > Printers & scanners) — a USB receipt printer, a network printer, or a Zebra label printer all count.
- Open the POS and go to Settings > Select Printers. The printers installed in Windows are listed automatically — pick the one you want for each role.
Note: Only JSPrintManager v6 is supported. If the POS doesn't detect it, you'll see a banner at the top of the Printers screen with a one-click Download JSPM button and a Retry button — install it, then click Retry.
Important: JSPrintManager only talks to the same computer it's installed on. Run the web POS on that machine — you can't print to it from a different computer or tablet across the network.
This whole section is for Web only. Android/Sunmi terminals don't use JSPrintManager — they print straight to network printers.
Open the Printers screen
Go to Settings > Select Printers. You'll see the Customer, Kitchen, Dispatch and Label printer sections (some only appear if your terminal has that feature switched on in Back Office).
- On Web, the list of available printers fills in automatically when you open the screen.
- On Android, you start the scan yourself by tapping Discover — this keeps the terminal responsive on busy networks. See Find and assign network printers with Discover for the full walkthrough.
Customer (receipt) printer
This is the receipt you hand to a walk-in customer. Use an 80mm thermal printer.
- In the Customer Printer section, tap Discover (Android) or pick from the auto-filled list (Web).
- Select your printer — by IP address on Android, or by its Windows printer name on Web.
- Tap Test Print (Android) or Test Connection (Web) to confirm it works. On Web, your browser may show a print confirmation dialog.
Note: A cash drawer connects physically to the Customer printer only — it opens via the receipt printer's drawer port, so it must be wired to that printer.
Kitchen printers
Kitchen printers print order tickets for the prep area in a larger, easier-to-read font. They support 80mm thermal and 76mm dot-matrix printers, and you can run several at once (for different stations).
The Kitchen Printers section only appears if Kitchen is enabled for this terminal in Back Office. Discover, select and test each printer the same way as the Customer printer.
Dispatch printer
The dispatch printer produces a ticket for delivery and collection bags. It combines the customer-receipt layout with kitchen-style timing, so it prints when the kitchen ticket would.
This section only appears if the Dispatch printer option is switched on for this terminal in Back Office. Supports 80mm thermal printers.
Label printers (Zebra ZD230D)
What changed: Label printing is no longer "coming soon" — it's fully supported.
Label printers print a small allergen and prep label per item, which helps you meet UK food-labelling rules (Natasha's Law) at the point of handover.
Supported hardware: any Zebra ZPL label printer that uses 4" × 2" (101 × 50 mm) direct-thermal labels at 203 dpi. The Zebra ZD230D is the tested and recommended model, but comparable 203 dpi 4-inch Zebra models such as the GK420D work too — the POS sends standard ZPL and doesn't lock you to a single model.
Note: The label layout is designed for 203 dpi printers and 4" × 2" media. A 300 dpi printer, or a different label size, will print the layout at the wrong physical size.
Connecting: on Android, the label printer connects over the network (by IP). On Web, it can be USB or network, installed as a Windows printer and reached through JSPrintManager.
To set one up:
- Switch on the label-printer flag for the terminal in Back Office, then reload the POS.
- Go to Settings > Select Printers. The Label Printers (Zebra ZD230D) section now appears.
- Discover and select your Zebra (by IP on Android, by Windows printer name on Web).
- Tap Print test label — a sample 4" × 2" label should print within a few seconds.
For the full hardware walkthrough and routing options, see the dedicated guides:
- Set up your Zebra ZD230D label printer for allergen labels — hardware setup and what gets printed
- Set up multiple label printers for different prep stations — route items to the right station by Kitchen Category
- Find and assign network printers with Discover — using the Discover button and the IPP badge
Test your printers
Before going live, test each printer from Settings > Select Printers:
- Receipt, kitchen and dispatch printers: tap Test Print (Android) or Test Connection (Web). On Web you may also get a browser print dialog.
- Label printers: tap Print test label — a sample 4" × 2" label confirms the printer is reachable and using the right media.
If a test fails, the POS shows the error so you can fix the connection before taking orders.
Troubleshooting
Web: no printers in the list, or a "JSPrintManager not found" banner is showing. Install JSPrintManager v6 (use the Download JSPM button on the banner), make sure it's running, and confirm the web POS is open on the same computer as the service. Then click Retry. Also check the printer is installed in Windows under Printers & scanners.
Android: my printer isn't in the Discover list. Confirm the printer and terminal are on the same network and subnet, power-cycle the printer, and tap Discover once and wait — a full scan can take up to a minute. Discovery looks on port 9100 and port 631; if your network blocks both, ask your network administrator to open them. See Find and assign network printers with Discover for more.
My Bluetooth printer won't connect. Bluetooth printers aren't supported on Android terminals — use a network or USB printer instead. On Web, install the printer in Windows first (including Bluetooth ones), and it'll appear via JSPrintManager.