Receipt Printer for ERPNext POS: It Prints Through the Browser

Quick answer: ERPNext's built-in Point of Sale prints through the browser. When a sale completes it opens a print view and calls the browser's print function — it does not send ESC/POS commands to the printer. So what a receipt printer needs for ERPNext is a working driver on the till, set as the default printer, with an 80mm roll paper size.

Frappe also offers Raw Printing through QZ Tray, which can send native printer commands for cutting and cash drawers — but it needs QZ Tray and Java on every till and custom scripting to use from the POS. For a standard counter, the NBTP-8080 (80mm, auto cutter, USB + LAN) on the browser route is the straightforward choice.

How ERPNext POS actually prints

This is worth understanding before choosing hardware, because it is not how most POS software works.

A POS Profile in ERPNext has two print settings: the Print Format used for receipts, and Print Receipt on Order Complete, which ERPNext describes as opening the print preview for the invoice automatically when an order completes. It is off by default.

When it fires, Frappe opens a new browser window on the print view with a print trigger. That page calls the browser's print function, then closes itself after five seconds. Everything after that — which printer, what paper size, what margins — is decided by the browser and the operating system's printer driver, not by ERPNext.

Three consequences follow:

  • The driver matters more than the command set. An ESC/POS printer with a poor or missing driver is a bad ERPNext printer. A printer with a clean driver and correct paper sizes is a good one.
  • Test outside ERPNext first. If a Windows test page prints correctly on an 80mm roll, the hardware is fine. Anything still wrong in ERPNext is page setup or print format.
  • ERPNext can be hosted anywhere. The till only needs a browser and a local printer. A cloud-hosted ERPNext prints to a USB printer on the counter perfectly well on this route.

Three ways to print, and what each costs

Route How it works What it needs Good for
Browser print (default) POS opens print view, browser prints through the local driver Driver installed, printer set as default, 80mm paper size Most counters — start here
Raw Printing (QZ Tray) Print format holds raw printer commands; QZ Tray sends them to the printer QZ Tray and Java on each till, printer mapping on each machine, scripting to trigger from POS Integrators who need command-level control
Print server (Network Printer Settings) The ERPNext server renders a PDF and sends it to a CUPS print queue pycups installed on the server, and a server that can reach the printer Self-hosted ERPNext on the same network as the printers

Two details on the other routes that are easy to miss. Frappe's Raw Printing documentation says the printer mapping is stored locally on each computer and has to be set on every client machine, and that writing raw commands requires knowledge of the printer's native language. And the print server route sends a PDF, not ESC/POS — which also means a cloud-hosted ERPNext usually cannot use it, because the server cannot see printers on your shop's local network.

Setting up the browser route properly

  1. Install the printer's Windows driver and print a Windows test page on an 80mm roll. Stop here if this fails.
  2. Set the receipt printer as the default printer on the till, so the print dialog opens on it.
  3. Set the driver's paper size to the 80mm roll, not A4 or Letter. The standard POS Invoice print format in ERPNext defines its width for screen display only and sets no page size for printing, so the printed page size comes from here.
  4. Allow pop-ups for your ERPNext site. The print view opens in a new window; if the browser blocks it, nothing prints, and Frappe will ask you to enable pop-ups.
  5. In the POS Profile, choose the receipt Print Format and tick Print Receipt on Order Complete if you want a receipt after every sale.
  6. Remove the dialog if you want one-click printing. By default staff see the browser's print dialog on every sale. Chrome can be started with its kiosk printing option so it prints silently to the default printer. That is a browser setting, not an ERPNext one, and it applies to everything printed from that browser.

One behaviour to know about: Frappe's own code notes that the print window does not close if printing is cancelled in Chrome. A cashier who cancels a print ends up with an extra window open behind the POS.

Receipts look faint or badly laid out

On the browser route, receipt quality is mostly the driver's job. The usual fixes, in order: confirm the paper size is the 80mm roll; raise the print density in the driver; set margins to none in the print dialog; and use solid black, reasonably large fonts in the print format rather than grey text. Thermal printers print black or nothing — grey text is turned into a dot pattern that looks washed out.

If the layout itself is wrong — too wide, wrapped, or with letterhead space — that is the print format. ERPNext print formats have their own margin and font size settings, and Print Settings controls whether a letterhead is printed.

Cash drawers

ERPNext's POS has no cash drawer button or drawer logic of its own. Frappe's Raw Printing documentation mentions kicking out cash drawers as one of the things raw commands can do, but it gives no ready-made setup for the POS.

In practice there are two routes. On the browser route, some printer drivers can open the drawer whenever they print — a driver setting, so it needs no ERPNext change. On the raw route, the drawer-kick command is sent through QZ Tray, which means scripting. We have not tested either with ERPNext. If a drawer is in scope, tell us and we will confirm what our driver offers before you order.

80mm or 58mm?

80mm for any counter. ERPNext receipts carry item tables, taxes and totals, and 48 characters a line at 203dpi gives them room. 58mm works for short tickets but crowds an ERPNext invoice layout.

NETBYE models for ERPNext

Model Paper Speed Cutter Interfaces Best for
NBTP-8080 80mm 160mm/s Auto USB / USB+LAN Standard counter — the default
NBTP-8050 80mm 200mm/s Auto USB / Serial / Ethernet Busier checkout
NBTP-8020 80mm 180–200mm/s Auto USB / USB+LAN Standard counter, budget
NBTP-5880 58mm 90mm/s Manual USB, Serial, Ethernet, Bluetooth options Short tickets only

All are 203dpi direct thermal printers with ESC/POS command compatibility and Windows drivers. Browse all thermal receipt printers or narrow to 80mm.

Ordering advice for ERPNext: tell us whether your ERPNext is cloud-hosted or on your own server and what the tills run. For almost every setup, an 80mm auto-cutter model on the browser route is the answer. If you are planning Raw Printing through QZ Tray, say so and we will send a sample for your integrator to build against.

Frequently asked questions

Does ERPNext support thermal receipt printers?

Yes. By default the POS prints through the browser, so any thermal printer with a working driver on the till can be used. Frappe also supports Raw Printing to thermal printers through QZ Tray.

Do I need QZ Tray?

Not for normal receipts. QZ Tray is only needed for Raw Printing, where the print format holds native printer commands. The standard POS receipt prints through the browser without it.

Why does a print dialog appear on every sale?

Because ERPNext POS uses the browser's print function. To print without the dialog, configure the browser for silent printing to the default printer.

Nothing prints when I complete a sale.

Check that Print Receipt on Order Complete is ticked in the POS Profile, and that the browser is not blocking pop-ups from your ERPNext site — the print view opens in a new window.

Can a cloud-hosted ERPNext print to a printer in my shop?

Yes, on the browser route: the till's browser prints to its local printer. The server-side print route is different — it needs the ERPNext server to reach the printer through CUPS, which a cloud server usually cannot.

A note on this guide. The printer side above — ESC/POS, interfaces, paper widths, cutters, driver page setup — is what we know from the products we supply. The ERPNext-specific parts, including the POS Profile print settings, the browser print behaviour, Raw Printing and QZ Tray, the print server route and the standard POS print format, are drawn from ERPNext and Frappe's published documentation and source code. We have not tested our printers against ERPNext ourselves, and we have not claimed we have. ERPNext changes between versions, so confirm details against the version you run. If something here did not match your installation, tell us and we will correct this page. We would rather publish something accurate than something impressive.

Get pricing

NETBYE supplies distributors, system integrators and retailers worldwide. Our printers are built by our partner factories in Shenzhen and sold under our own model range — we handle specification, quality control and support, so you deal with one supplier rather than several factories. Direct wholesale pricing, low MOQ on first orders, and OEM/ODM covering branding, packaging and firmware defaults.

Tell us how your ERPNext is hosted, how many tills, what quantity and which country, and you will get an accurate quote in one reply. For an ERPNext rollout we will send a sample to validate against your setup before you commit to volume. Request a quote.

Related guides

The same hardware for other POS systems: