Two-minute setup
Run one small script on the computer next to your printer. The dashboard walks you through it and flips green the moment it connects — then a test page proves it on paper.
14-DAY FREE TRIAL · NO CARD
One API call sends receipts, tickets and documents to any printer behind any firewall — through a tiny agent that connects outward. Flat plans; connect printers without counting them.
ACME CAFE
123 King St W
------------------------------------------
2x Cheeseburger $25.98
1x Fries $4.50
------------------------------------------
Subtotal $30.48
TOTAL $34.44
------------------------------------------
Thank you!
Send receipt_json — the server renders it to your printer’s exact column width. 42 shown.
For your business
The dashboard walks you from signup to your first printed page — create a bridge, copy one command, watch it connect, send a test page.
Run one small script on the computer next to your printer. The dashboard walks you through it and flips green the moment it connects — then a test page proves it on paper.
Plans are flat by print volume, not per device — the per-printer line items disappear from your bill. Bridge devices are unlimited on every plan.
A live queue shows every receipt from queued to printed, with automatic retries. Failed jobs tell you why — and one click sends them again.
For developers
Sign up, mint an sk_pf_ key, queue a job. The bridge agent does the rest. This is the entire integration:
curl -X POST https://printforge.yagnotech.com/v1/jobs \
-H "authorization: Bearer sk_pf_YOUR_KEY" \
-H "content-type: application/json" \
-d '{
"printerId": "6a565751728001297b00a699",
"contentType": "receipt_json",
"dedupeKey": "order-1042",
"content": {
"header": "ACME CAFE\n123 King St W",
"lines": [{ "name": "Cheeseburger", "qty": 2, "price": 25.98 },
{ "name": "Fries", "qty": 1, "price": 4.50 }],
"totals": [{ "label": "Subtotal", "amount": 30.48 },
{ "label": "TOTAL", "amount": 34.44 }],
"footer": "Thank you!"
}
}'
{
"job": {
"printerId": "6a565751728001297b00a699",
"contentType": "receipt_json",
"content": { … },
"rendered": " ACME CAFE \n…",
"state": "queued",
"attempts": 0,
"maxAttempts": 3,
"dedupeKey": "order-1042",
"error": null,
"queuedAt": "2026-07-14T15:35:45.856Z",
"createdAt": "2026-07-14T15:35:45.856Z",
"id": "6a565751728001297b00a6a1"
},
"replayed": false
}
GET /bridge/v1/jobs?wait=25, claims the job, prints it, and acks — the state flips queued → dispatched → printed.escpos_base64 passthrough, plain text, or receipt_json rendered server-side to each printer’s width (16–64 columns, default 42).dedupeKey idempotency on submit, and a queued → dispatched → printed / failed state machine with bounded auto-retry (3 attempts).Pricing
Pick by print volume. Every plan includes unlimited bridge devices and all three content types.
Starter
$19 CAD/mo
MOST POPULAR
Growth
$49 CAD/mo
Scale
$119 CAD/mo
Prices in CAD. 14-day trial on every plan, no card. Trials run with Starter limits.
FAQ
Any printer the bridge machine can reach. The agent hands raw ESC/POS bytes to thermal receipt printers, and plain or server-rendered text to anything else — USB, network, CUPS or the Windows spooler. You own the last inch, so there’s no driver lock-in.
No. The bridge agent connects outward over HTTPS and long-polls for work; nothing ever dials into your network. If the machine can browse the web, it can print.
Jobs queue safely in the cloud. The agent reconnects with backoff and claims whatever is waiting. A failed print requeues automatically — up to 3 attempts — then parks as failed with the reason, one click from a retry.
Yes — it’s the same integration pattern: a cloud API plus a small local agent. Your existing ESC/POS payloads are carried verbatim as escpos_base64, and plans are flat by volume instead of per printer.
14-DAY FREE TRIAL · NO CARD
Start your free trial, run the guided first print, and watch a receipt land on your counter in minutes.