Thermal printers and receipts
How to connect thermal printers to the POS, configure receipt templates and troubleshoot printing issues.
Updated: April 5, 2026
contable.io’s POS prints receipts on standard 58 mm or 80 mm thermal printers, connected via USB, LAN or Bluetooth. Setup is one-time per station and printing is automatic after each confirmed sale.
Compatible models
contable.io works with any thermal printer supporting ESC/POS (industry standard). Tested models:
| Brand | Models |
|---|---|
| Epson | TM-T20, TM-T88, TM-m30 |
| Bixolon | SRP-275, SRP-330 |
| Star | TSP143, TSP100 |
| Generic Chinese (XPrinter, Rongta) | XP-58, XP-80, RP58, RP80 |
If your printer isn’t listed but supports ESC/POS, it should work. Try it under the “Generic Text Only” driver.
How printing works
The POS doesn’t connect directly to the printer from the browser (browsers don’t allow free USB access for security). Instead it uses the OS native print dialog: when you confirm a sale, the system opens the print screen and the thermal printer appears as an option.
For automatic silent printing (no dialog), set the thermal printer as default in your OS and enable “print without prompting” in the browser.
Set the printer as default
Windows
- Connect the printer (USB or LAN) and turn it on.
- Go to Settings → Devices → Printers and scanners.
- Tap Add printer. If not auto-detected, use The printer I want isn’t listed and pick the manufacturer driver or “Generic / Text Only”.
- Right-click the printer → Set as default.
- Print a test page from Windows to confirm.
macOS
- Go to System Settings → Printers & Scanners.
- Tap
+and select the detected printer. - macOS downloads the driver automatically.
- Set as default from the dropdown.
Linux
Install CUPS and add the printer from http://localhost:631.
Configure paper width in the POS
- In the POS, go to side menu → Print settings.
- Pick paper width: 58 mm or 80 mm.
- Choose the receipt template (standard, compact, with logo).
- Upload your logo (recommended 200×200 px PNG with transparent background).
- Tap Print test to verify.
Enable automatic printing (no dialog)
By default, every confirmed sale shows the print dialog. To print silently:
Chrome / Edge (recommended)
Launch with this flag:
chrome.exe --kiosk-printing
On macOS:
open -a "Google Chrome" --args --kiosk-printing
Firefox
No direct equivalent. Use Chrome or Edge for silent printing.
Receipt templates
contable.io includes three predefined templates:
| Template | Content |
|---|---|
| Standard | Logo + business data + customer + items + totals + CUDE/QR + footer |
| Compact | No logo, small font, optimized for 58 mm |
| With copy | Prints two copies in a row (business + customer) |
You can edit header and footer text from Print settings → Edit template. Supports variables like {company_name}, {phone}, {nit}.
Common errors
- “Printer not found”: verify it’s on, connected and set as default in the OS.
- “Prints weird characters”: the driver isn’t UTF-8 compatible. Switch to “Generic Text Only” or install the manufacturer driver.
- “Prints too small / too large”: review paper width configured in the POS (58 vs 80 mm).
- “Doesn’t auto-cut paper”: your model has no cutter or the cut command isn’t enabled in the driver.