Common printing patterns
Build labels, receipts, documents, and design experiences around printer profiles rather than vendor settings.
Shipping and fulfilment labels
Create one native profile for each stock or finishing setup. Store the profile-backed target ID with your warehouse configuration, then send the order PDF with a stable order/label idempotency key.
await customer.printPdf({
targetId: warehouse.targets.shippingLabel4x6,
title: `Order ${order.number} label`,
pdf,
idempotencyKey: `order-${order.id}-label-v2`
});Point of sale
Use a physical destination with one or more compatible printer routes. The scheduler fences each attempt to one fresh route and may choose another route only before native acceptance. Keep the receipt request short-lived, show observation freshness before checkout, and require explicit operator reconciliation when delivery becomes uncertain.
Batch documents
Create one job per independently retryable document. Bound concurrency in your application and use webhooks to drive progress rather than polling every job.
Design and template applications
List profiles and stock metadata before rendering. Use the profile’s page dimensions, printable area, orientation, stock identifier, and native validation state to size the canvas. The installed driver remains authoritative for trays, colour, cutters, black-mark sensors, and vendor PostScript options.
Multiple nodes
A physical printer exposed by two computers is one destination with two node-specific routes only when strong identity evidence matches unambiguously or an operator confirms it. A fenced reservation selects exactly one fresh compatible route. Piqae may choose another route before native acceptance, but never after an ambiguous handoff.