GuideGetting started
- Create your workspace — sign up with your work email and confirm it. You become the Owner of a new company workspace; your labels are private to it.
- Design your first label — the designer opens with a sample. Set your label stock size (millimetres or dots), then add text, barcodes, lines, boxes and images. Every save keeps a version you can restore.
- Save a printer — in the designer's Print dialog (or the Printers page), enter a name, the printer's IP address, port (usually 9100) and its language: Honeywell for Fingerprint printers, Zebra for ZPL.
- Install the Print Bridge on the PC you print from (see below), then print a test label.
- Invite your team — Team page → Invite, choosing each person's role. Users who only print get exactly that and nothing more.
GuideThe Print Bridge
Browsers can't open raw network connections to printers, so a small helper does it: the Print Bridge runs on the PC you print from, listens locally, and forwards each job over your own network to the printer. Nothing is sent anywhere else, and no inbound firewall rules are needed.
Install
- Download it from the Print Queue page ("Download Print Bridge") or the designer's Print dialog.
- Windows: run the installer and approve the admin prompt. The bridge installs as a background Windows service — it starts with the PC and there's no window to keep open — and a spool icon appears in the taskbar showing its status (blue = running, grey = stopped, with a right-click menu to re-check or restart). Uninstall from Settings → Apps → Spool Print Bridge.
- macOS: extract with
tar xzf, thenchmod +x XileitPrintBridge && xattr -d com.apple.quarantine XileitPrintBridgeand run it in a terminal.
Things to know
- The bridge must run on the same PC as the browser you click Print in, and that PC must be able to reach the printer's IP.
- Install it on each workstation people print from — one bridge serves all printers that workstation can reach.
- If the app says "Print bridge not detected", check the bridge is running, then click re-check.
GuideUsing the Print Queue
The queue separates creating a label job from physically printing it — so nothing prints to an unattended, empty or wrongly-loaded printer.
- Pending lists jobs waiting for release — sent by your systems via the API, imported from CSV, or queued by hand with "+ Queue a job".
- Review & print opens a job: the approved data (read-only), a preview of the exact label, and the release controls. If the source system left the design, copies or printer open, you choose them here — and your choices stick for reprints.
- Cancel (with confirmation) moves a job to History without printing; Restore to queue brings a cancelled job back.
- History is searchable by transaction, PO, delivery, material or SSCC. Reprinting requires a reason and reuses the original data unchanged.
- Every action is audited: who, when, which printer, how many copies, and why.
Queueing by hand or from CSV
"+ Queue a job" lets Managers (and Users an owner has ticked "Queue jobs" for) pick a design, fill in its {tags}, set copies and a printer — or switch to From CSV to create one job per spreadsheet row, with a Qty column for per-row copies.
IntegrationThe Print API
Owners generate a Print API key on the Team page. Your systems then queue jobs with a single POST:
curl -X POST https://www.spool.nz/api/print/jobs \
-H "X-Api-Key: lvk_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"transactionId": "ORDER-10042",
"labelType": "Carton 4x2",
"copies": 3,
"product": "Frozen Snapper Fillets 5kg",
"batchNo": "B-2026-0825",
"bestBefore": "2026-09-25",
"barcode": "9421023610046"
}'
| Field | Meaning |
|---|---|
transactionId | Required. Your reference. Re-sending the same id updates the pending job; re-sending after it printed queues a replacement. |
labelType | Optional (alias format) — the exact name of a design in your library. Omit it and the person printing picks the design at release. |
copies | Optional (aliases qty, quantity), 1–99. Omitted = asked at print time. |
printer | Optional — a saved printer's name, pre-selected at release. |
| anything else | Becomes a {tag}: a design containing {batchNo} gets that value filled in. Names match case-insensitively; unmatched tags print as-is. |
Also: GET /api/print/jobs/<transactionId> returns status and history; DELETE cancels an unprinted job. Errors come back as JSON with a clear error message.
IntegrationSupplier keys — one system, many companies
When a central system (your ERP) creates labels that other companies print — suppliers printing inbound labels, for example — use a Supplier key (Company menu → Supplier Keys):
- Create a key for the source system.
- Map the system's supplier codes (e.g.
SUPPLIER_07) to companies. Each job'ssupplierIdroutes it to that company's queue. - Map the system's label codes (e.g.
ASN_CARTON) to your approved designs — pinned to a version, so later edits never silently change what suppliers print.
Suppliers see only their own jobs and release them on their own printers; you get a dashboard across all suppliers. The payload is the same as the Print API, plus the required supplierId.
ReferenceTeam roles
| Role | Print queue | Printer setup | Label design | Team & keys |
|---|---|---|---|---|
| User | ✓ | — | — | — |
| Manager | ✓ | ✓ | — | — |
| Admin | ✓ | ✓ | ✓ | — |
| Owner | ✓ | ✓ | ✓ | ✓ |
Owners can additionally tick "Queue jobs" on any User so they can create jobs manually without gaining other rights. Roles take effect within a few minutes of changing (or immediately on next sign-in).
FAQCommon questions
Which printers are supported?
Honeywell / Intermec printers speaking Fingerprint, and Zebra printers speaking ZPL — networked (TCP, usually port 9100). Set the language on each saved printer.
Does my label data leave my network?
Designs and job data are stored in the service so your team shares one library and queue; the printing itself goes straight from the Print Bridge on your PC to your printer over your own LAN.
Can I keep using my existing Fingerprint labels?
Yes — paste the code into the designer's import and keep editing visually. Export back to code any time.
Why does a reprint ask for a reason?
Reprints are the classic source of duplicate-label problems, so each one records who, why, and on which printer. Replacement labels reuse the original data; a genuinely new carton or pallet should come from your source system as a new job.
What happens if a printer is offline when I release?
The job is marked Failed with the error, stays visible, and can be released again once the printer is back.
I sent a job via the API but nothing printed.
That's by design — API jobs wait in the Print Queue until a person releases them. Check the queue's Pending tab.