DocsSign in

Public API

Thermal printers (ESC/POS)

How kitchen and till tickets reach a POS thermal printer (WDLink, Epson TM, Star, etc.) — not office inkjet/laser printers. Configuration lives in the admin console; this page is the integrator and operator reference.

What this guide is about

This is the receipt / kitchen ticket printer: a small thermal roll printer on the restaurant LAN, usually with an Ethernet port (and sometimes Wi‑Fi). It speaks ESC/POS over raw TCP on port 9100. A cash drawer often plugs into the printer with an RJ11/RJ12 cable.

Office printers (Brother inkjet, HP laser, AirPrint, CUPS A4) are a separate transport used only for tests. Do not use this page for them.

Creating an order through POST /orders is enough for a ticket to be eligible to print. Your website never talks to the printer. The printer is reached only by something already on the restaurant Wi‑Fi or Ethernet.

KitchensFlow servers cannot open a socket to 192.168.x.x. There is no public API that “prints now”. A browser tab on a tablet also cannot silently send ESC/POS. Printing always happens on the LAN.

Two ways a ticket actually prints

CloudPRNT (the printer polls us by itself) is modelled but not enabled in the station editor. Ignore it for WDLink.

PathWho talks to the printerWorks from a tablet?Needs internet at print time?
LAN print agentA small always-on PC / Mac / Raspberry Pi on the restaurant network pulls jobs from KitchensFlow, then sends ESC/POS to printer:9100The tablet (Safari / Chrome /ops) only taps Accept or Pay. The agent, not the tablet, prints.The agent needs internet to claim jobs. The printer only needs LAN.
Native waiter appThe iPhone / iPad app opens TCP 9100 itself and writes ESC/POS bytesYes — this is the only tablet path that prints without a PC.No. Stations are cached locally. Offline send still prints if the printer is on the same Wi‑Fi.

Configure the printer in the console

Printers are not created through the public API. Open Admin → Settings → Printing (Paramètres → Impression) for the location.

  • Tick “Activer l'impression des tickets” (printing.enabled). If this is off, phones report no printer and the agent has nothing to claim.
  • Add a station (kitchen or receipt). Transport must be ESC/POS TCP (IP :9100) for a WDLink / Epson-style till printer.
  • Host = the printer’s LAN IPv4 (example: 192.168.8.50). Port = 9100 unless the manufacturer says otherwise.
  • Paper width 80 mm or 58 mm to match the roll.
  • Events: “Acceptée” prints the kitchen ticket when the order is accepted / sent. “Payée” prints the customer receipt when the order is marked paid. Check both only if this physical printer should fire on both events.
  • “Ouvrir le tiroir-caisse” sends ESC p (drawer kick) on that station’s events. Use it with “Payée”, not with kitchen send.
The pairing wizard (“Connecter une imprimante”) installs the LAN print agent on a PC. That is optional if you only print from the native app. You still must save the station IP here so both the agent and the phone know where to send bytes.

Printing from a tablet

iPad in Safari on /ops: the browser cannot open TCP 9100. Accept/Pay still enqueue cloud print jobs. A LAN agent on a PC must be running, or nothing comes out.

iPad / iPhone with the KitchensFlow waiter app: the app fetches stations (see below), caches them, and prints over Wi‑Fi. Pair the device (Admin → Team → waiter phones), enable printing, save an escpos-tcp station, then send or pay from the app.

  • Kitchen ticket: printed on send/accept by stations whose events include “accepted”.
  • Receipt + cash drawer: printed/kicked on pay by stations whose events include “paid” (and openDrawer for the kick).
  • Réglages → printer picker only chooses which already-configured station this phone uses. It does not set the IP.