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:

BrandModels
EpsonTM-T20, TM-T88, TM-m30
BixolonSRP-275, SRP-330
StarTSP143, 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

  1. Connect the printer (USB or LAN) and turn it on.
  2. Go to Settings → Devices → Printers and scanners.
  3. Tap Add printer. If not auto-detected, use The printer I want isn’t listed and pick the manufacturer driver or “Generic / Text Only”.
  4. Right-click the printer → Set as default.
  5. Print a test page from Windows to confirm.

macOS

  1. Go to System Settings → Printers & Scanners.
  2. Tap + and select the detected printer.
  3. macOS downloads the driver automatically.
  4. Set as default from the dropdown.

Linux

Install CUPS and add the printer from http://localhost:631.

Configure paper width in the POS

  1. In the POS, go to side menu → Print settings.
  2. Pick paper width: 58 mm or 80 mm.
  3. Choose the receipt template (standard, compact, with logo).
  4. Upload your logo (recommended 200×200 px PNG with transparent background).
  5. Tap Print test to verify.

Enable automatic printing (no dialog)

By default, every confirmed sale shows the print dialog. To print silently:

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:

TemplateContent
StandardLogo + business data + customer + items + totals + CUDE/QR + footer
CompactNo logo, small font, optimized for 58 mm
With copyPrints 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.

See also