Docs / Hardware

Bring your own printer

The Adapter SDK — write 100 lines, get a new vendor on halopos.

If your printer isn't on the list, the Adapter SDK lets you ship a driver. The contract is in @halopos/adapter-sdk in the repo and lives under the Apache-2.0 licence. At a high level:

You implement

export interface Printer {
  print(job: PrintJob): Promise<string>;
}

One method. A PrintJob carries the payload kind (receipt, kitchen, test), the structured data (lines, totals, modifiers), and the tenant-scoped metadata (venue name, printed-at timestamp).

You return

A target URI the cloud logs for the audit trail (tcp://192.168.1.50:9100 or similar). Print failures throw; the bridge handles retry and queues the job for re-delivery.

Reference implementations

  • apps/bridge/src/printer/escpos-tcp.ts — Epson.
  • apps/bridge/src/printer/star-tcp.ts — Star.
  • apps/bridge/src/printer/bixolon-tcp.ts — Bixolon.

Three adapters, three pages of code each. The encoder sits in a separate file; it's pure and unit-tested.

Shipping as a partner

See Partners → Hardware vendors for the certification process and revenue-share terms.