Skip to main content

Mobile vendor printing

Feature 053-mobile-vendor-printing (2026-09-04, #733). This page is the product-facing companion to the generic-printing topology. Implementation detail lives in Printer Vendor Port.


What changed for a merchant who already set up printers under 052​

Saved printers are upgraded in place when passive evidence identifies a manufacturer. Name, stations, and identity stay. Printed bytes stay receipt-escpos — the vendor path changes delivery and status, not the slip.

A merchant who force-locks a printer back to generic (vendorLockedGeneric) is left alone by later backfills.


What works in this tree​

CapabilityRuntime status
Identify Star / Epson / Bixolon / Sunmi from scan or saved evidenceShipped (resolveVendor)
Drive Star via StarIO10 (LAN, BLE, classic BT, USB)Shipped when the native module loads
Android classic Bluetooth (SPP) and USB for any ESC/POS printerShipped (generic:spp, generic:usb)
Paper / cover stateStar adapter only. Generic status() reports supported: false
Cash drawer with a receiptPrinterSession.openCashDrawer() on the print path
Cash drawer with no saleBackend POST /cash-drawer/open + CashDrawer permission
Epson / Bixolon vendor SDK adaptersProfiled, not registered. They print on the generic path
Sunmi built-in AIDL printerProfiled, not registered. No generic fallback
Auto-provision of a Sunmi built-in rowColumn is_auto_provisioned exists; no application writer in this tree

What sales may now say​

Update the older "no vendor SDK in this release" line:

  • Android reaches network, BLE, classic Bluetooth, and USB printers. A recognised Star uses Star's software and can report paper out.
  • iPhone / iPad still print to network and BLE. Star Bluetooth is available when StarIO10 is in the binary. Epson Bluetooth on iOS waits on an MFi PPID and is declared awaiting_mfi_approval rather than offered as working.
  • A no-sale drawer open is an audited permission, not a hidden button.

Full wording: Mobile printing limits.