Skip to main content
Version: 1.x

Printer Setup

Printer settings are found under POS > Settings > Printing. Each device manages its own printer configuration — printers are stored locally and not synced between devices.

Printing to a printer that isn't on this device?

This page covers printers attached to the till by USB, Bluetooth, or the local network. For a printer in another room or location — or one you want every device to share — see Cloud Printing. Cloud printers you've set up for your store appear automatically in every device's printer list — you don't add them here.

Supported Printers by Platform

The Add Printer form adapts to the app you're using — each platform shows only the connections and options it can actually use.

PlatformSupported PrintersConnections
Web appEpson and Star printers with a built-in web server (network); Epson and Star printers via WebUSB/Web Bluetooth (USB/Bluetooth, Chrome/Edge only)Network (HTTP), USB, Bluetooth
Desktop appAny network receipt printerNetwork (raw TCP), USB, Bluetooth
iOS appEpson and StarNetwork, Bluetooth
Android appEpson and StarNetwork, Bluetooth, USB
Why only Epson and Star over the network on the web?

Web browsers cannot open raw TCP connections. Epson and Star receipt printers include a built-in web server that accepts print jobs over HTTP — this is the only way to send ESC/POS commands to a network printer from a browser. The desktop app doesn't have this limitation because it can connect directly over TCP.

USB and Bluetooth printing in the browser work too, but only in Chrome or Microsoft Edge (they use the WebUSB and Web Bluetooth APIs) — Safari and Firefox don't support them.

On the mobile apps, Bluetooth and USB printing go through Epson's and Star's official SDKs, so those connections require an Epson or Star printer. Generic printers work over the network only.

Adding a Printer

1

Open Printer Settings

Go to POS > Settings > Printing. If no printers are configured yet, you'll see an empty state with an Add Printer button. Every printer gets a Printer Name — just a label, auto-filled as "Receipt Printer" (then "Receipt Printer 2", and so on) — which you can change to anything that helps you tell your printers apart.

2

Choose How the Printer Connects

Every platform starts with the same question — Connection Type — and shows only the options that platform supports. The fields below update to match your choice.

  • Web appNetwork, USB, or Bluetooth (USB and Bluetooth need Chrome or Edge). For a Network printer you then choose the Vendor — Epson or Star — because the browser reaches a network printer through that brand's built-in web server.
  • Desktop appNetwork, USB, or Bluetooth.
  • Mobile appsNetwork or Bluetooth, plus USB on Android (iOS has no USB support).
3

Identify the Printer

Network printers — enter the IP Address (for example 192.168.1.100). WCPOS probes the address to detect whether it's an Epson or Star device, and auto-fills the port, command language, and vendor. You'll see a "Detected: Epson" or "Detected: Star" label once detection completes. On the web app, it also shows the exact endpoint URL it will connect to.

Bluetooth or USB printers (mobile) — pick your printer from the discovered-device list. Selecting a device fills in its name and vendor automatically. Tap Scan for printers (Bluetooth) or Refresh (USB) if your printer isn't listed yet.

If automatic detection doesn't get everything right, you can adjust it all under Advanced Settings.

4

Save and Test

Click Save. WCPOS sends a test print first, and only saves the printer if it succeeds.

The test print is a short diagnostic — a numbered column ruler, centered normal and double-size text, a left/right alignment row, and a paper cut. It's designed so you can confirm the paper width, alignment, sizing, and cut are all configured correctly, not just that the printer is reachable.

Test fails? You can still save

If the test fails, you'll see the error along with a Save without testing option to save the profile anyway.

Connection Types

You start by picking the Connection Type at the top of the Add Printer form, and the connection fields update to match. The types available depend on the platform (see the table above).

Network

The printer is on the same Wi-Fi network as your device. On the desktop and mobile apps, tap Scan Network to discover printers automatically, or enter the IP address manually — see Finding Your Printer's IP Address. The web app uses manual IP entry only. On the desktop and mobile apps a network printer can be Epson, Star, or Generic; on the web it must be Epson or Star, and you pick which under the Network connection.

Bluetooth

The printer is paired to your device over Bluetooth. Choose yours from the list — its name and vendor fill in automatically. On mobile, Bluetooth printing uses Epson's and Star's native SDKs, so the printer must be an Epson or Star model; on the web, Bluetooth works in Chrome or Edge via the Web Bluetooth API.

USB

The printer is connected by a USB cable. Pick it from the connected-device list. USB is available on the web (Chrome or Edge, via WebUSB), the desktop app, and Android — but not iOS, which has no general USB peripheral support. On mobile, USB printing requires an Epson or Star printer.

note

The Port setting only applies to network printers — it's hidden for Bluetooth and USB connections.

Advanced Settings

Expand Advanced Settings to fine-tune the printer configuration. Most of these are filled in automatically once the vendor is known.

These settings apply on every platform:

SettingOptionsDescription
LanguageESC/POS, StarPRNT, Star Line ModeThe command protocol the printer speaks. Auto-filled from the detected vendor.
Printer text width58mm (32 chars), 80mm standard (42 chars), 80mm wide (48 chars)How many characters fit on a line. Match this to your paper and printer — most 80mm printers are 42 characters per line, some are 48.
Full receipt rasterOff / OnPrint the whole receipt as an image instead of text — see Full receipt raster below.

These two settings behave differently depending on the platform and connection type:

SettingOptionsWhere it applies
VendorEpson, Star, GenericPrinter manufacturer. On the web app you pick the vendor directly under the Network connection (Epson or Star only), not as an advanced setting. Generic is available for network printers on the desktop and mobile apps, but not for Bluetooth or USB connections.
PortAuto-filledNetwork port for the printer, shown next to the IP address. Network only — hidden for Bluetooth and USB. It's filled in for you based on the vendor (and, on the web, whether your POS is served over HTTP or HTTPS); change it only if your network remaps it.

Printer Options

These toggles sit at the bottom of the Add Printer form:

OptionDescription
Auto-cut paperCut the paper automatically after each receipt
Auto-open cash drawerSend a kick command to open a connected cash drawer after printing
Set as defaultMake this the default printer — used for any receipt that isn't routed to a specific printer
Looking for "auto-print after checkout"?

Automatically printing a receipt when a sale completes is a cart setting, not a printer setting — turn on Auto-print receipt in the POS cart settings. Which printer it uses is decided by your default printer and any per-template printer routing.

If you use more than one template — say a thermal receipt and an A4 invoice — print routing decides which printer each template prints to. Routing has three layers, checked in this order:

  1. Per-job override. On the receipt screen, a printer dropdown sits next to the template switcher. Picking a printer here overrides everything for that one print job. Switching templates resets it back to Auto.
  2. Settings override. Go to POS > Settings > Printing, then use the Receipt templates section to assign a specific printer to each template. For example, route your thermal receipt to the Epson network printer and your HTML invoice to the system print dialog. Set a template back to Auto to remove the override.
  3. Auto-match. When no override is set, WCPOS matches automatically:
    • Thermal templates route to thermal printers whose character width matches. A 58mm thermal template prefers 32-column printers; an 80mm template prefers 42- or 48-column printers.
    • HTML templates route to the system print dialog.
    • If multiple printers match, the default printer wins.

If you manually send a template to an incompatible printer — say, a thermal template to the system dialog — an amber mismatch warning appears on the receipt screen. The print still proceeds but the output may not render correctly.

Routing overrides are stored per device. Each iPad, phone, or computer manages its own routing — there is no server-side sync.

note

The Receipt templates printer controls under POS > Settings > Printing only appear once you've added at least one printer. With no printers configured, every template uses the system print dialog implicitly. Cloud printers set up for your store count here too — they appear as routing targets automatically, without being added on the device.

Full receipt raster

By default, WCPOS sends receipts to thermal printers as text — fast, compact, and crisp, using the printer's built-in fonts. The catch: thermal printer fonts only cover a limited set of characters. Scripts the printer has no font for — many non-Latin alphabets, right-to-left text, some symbols — can come out as blank boxes or garbled characters.

Full receipt raster fixes this. When it's on, WCPOS renders the whole receipt as an image and sends that image to the printer, so the printout matches exactly what's on screen — in any language or script.

Turn it on per-printer under Advanced Settings. Things to know:

  • It's slower. An image is much larger than a line of text, so the receipt takes longer to send and print.
  • Use it only when you need it. If your receipts print fine as text, leave it off.
  • It applies to thermal printers on any connection (network, Bluetooth, USB). It doesn't apply to the system print dialog, which already prints from a full-page rendering.

Discovering Printers

How you find a printer depends on the connection:

  • Bluetooth and USB — on the mobile apps, tap Scan for printers (Bluetooth) or Refresh (USB) and pick yours from the list; its name and vendor fill in automatically. On the web (Chrome or Edge), click Connect and choose the printer from the browser's own device chooser.
  • Network — on the desktop and mobile apps, tap Scan Network to find printers on your local network automatically (the desktop discovers them over mDNS/Bonjour; mobile uses the Epson and Star SDKs), then pick yours from the list. You can also enter the IP address directly — see Finding Your Printer's IP Address below. Browsers can't scan networks, so the web app always uses manual IP entry.

Finding Your Printer's IP Address

Most receipt printers can print a self-test page that includes the IP address:

  • Epson: Hold the feed button while powering on
  • Star: Hold the feed button for 5 seconds while powered on

Alternatively, check your router's connected-devices list or your printer's configuration utility.

Receipt printers should use a static IP address to prevent the address from changing when the printer restarts. Configure this either:

  • In your printer's built-in web interface (usually accessible at http://<printer-ip>)
  • In your router's DHCP settings (assign a reserved IP to the printer's MAC address)

Epson Printers

Epson printers with ePOS support communicate over HTTP. WCPOS sends SOAP/XML requests to the printer's built-in web server.

Connection details:

  • Port 8008 (HTTP) or 8043 (HTTPS) — auto-filled to match whether your POS is served over HTTP or HTTPS
  • Endpoint: /cgi-bin/epos/service.cgi

Confirmed working models:

  • Epson TM-T70-i 2 (network)
  • Epson TM-m30iii (with Printus middleware)
tip

Make sure your Epson printer has ePOS enabled in its configuration. Access the printer's web interface at http://<printer-ip> to check and enable ePOS settings.

On the mobile apps, Epson printers can also connect over Bluetooth or USB through Epson's native SDK — no IP address or ePOS web server required.

Star Printers

Star printers with WebPRNT support communicate over HTTP. WCPOS sends commands to the Star WebPRNT endpoint.

Connection details:

  • Port 80 (HTTP) or 443 (HTTPS) — auto-filled to match whether your POS is served over HTTP or HTTPS
  • Endpoint: /StarWebPRNT/SendMessage

On the mobile apps, Star printers can also connect over Bluetooth or USB through Star's native SDK.

Generic Printers

The desktop app supports any network receipt printer via raw TCP. Enter the printer's IP address and port (usually 9100). This works with most thermal printers regardless of manufacturer, as long as they accept ESC/POS commands.

On the mobile apps, Generic printers are also supported — but for network connections only, not over Bluetooth or USB (those require an Epson or Star printer). The web app does not support Generic printers at all.

Cash Drawers

Cash drawers connected to a receipt printer can be triggered automatically after each sale:

  1. Enable Auto-open cash drawer in the printer options
  2. The POS sends an ESC/POS kick command after printing
note

Cash drawer control requires a thermal printer profile — the browser print dialog cannot trigger cash drawers.

Troubleshooting

Printer not detected during setup
  • Confirm the printer is powered on and connected to the same network as your device
  • For network printers: on the desktop or mobile app, try Scan Network to find it automatically; otherwise check the IP address is correct (print a self-test page)
  • For the web app: confirm the printer is an Epson or Star model with ePOS/WebPRNT support
  • For the desktop app: try the Generic vendor option with port 9100
  • For Bluetooth: pair the printer in your device's Bluetooth settings first, then tap Scan for printers
  • For USB (Android): check the cable and approve the USB permission prompt if one appears
  • Check that no firewall is blocking the connection
Printer detected but nothing prints
  • Check the paper roll — it may be empty or jammed
  • Verify the Printer text width setting matches your paper (58mm or 80mm)
  • Try printing a self-test from the printer itself to confirm it works
  • Check the command language matches your printer (ESC/POS for Epson, StarPRNT or Star Line Mode for Star)
Receipt is garbled or has wrong characters
  • The command language setting may be wrong — try switching between ESC/POS, StarPRNT, and Star Line Mode
  • Make sure the Printer text width setting is correct
  • If the receipt is in a non-Latin script or a right-to-left language, turn on Full receipt raster in Advanced Settings — it prints the receipt as an image so any language renders correctly
Cash drawer doesn't open
  • Confirm Auto-open cash drawer is enabled in the printer options
  • Check the drawer is connected to the printer's DK port (not a separate power source)
  • Not all printers support the drawer kick command — consult your printer's documentation
Cannot connect from the web app
  • Over the network, the web app reaches only Epson and Star printers (through their built-in web servers) — generic raw-network printers aren't supported in a browser; use the desktop or mobile app, or a cloud printer
  • USB and Bluetooth printers do work on the web, but only in Chrome or Microsoft Edge (Safari and Firefox don't support the WebUSB / Web Bluetooth APIs)
  • If your site uses HTTPS but the printer only speaks HTTP, the browser may block the connection as mixed content — the printer must use the same HTTP/HTTPS as your POS
Bluetooth printer won't connect (mobile)
  • Pair the printer in your device's system Bluetooth settings before adding it in WCPOS
  • Bluetooth printing supports Epson and Star printers only — Generic Bluetooth printers aren't supported
  • If the printer doesn't appear in the list, tap Scan for printers again and make sure it's powered on and in range