---
title: "Print from ERP and WMS systems"
description: "Automate invoices, packing documents and labels from an ERP, WMS or other business system with explicit printer routing and job status tracking."
---
<nav class="docs-breadcrumb" aria-label="Breadcrumb"><a href="/docs/">CloudPrint Documentation</a><span aria-hidden="true">/</span><span>Printing workflows</span></nav>

# Print from ERP and WMS systems

<p class="docs-lead">CloudPrint connects an ERP, WMS or another business system to printers in an office, shop or warehouse. The source system decides what to print and prepares the final document; CloudPrint routes it to the selected local queue and reports the result.</p>

## Start from a business event

Create a print operation when a meaningful event occurs: an order is released, a pick is completed, goods are received or an operator approves a document. Generate the invoice, packing slip or label in the source system before calling CloudPrint. This keeps business rules in ERP or WMS instead of hiding them in the printing layer.

## Assign printers by purpose and location

During setup, call `GET /api/v1/printers`, let an administrator choose the queue for each warehouse, workstation and document type, and store its stable `printer_id`. Display names help people, but they are not routing keys. Do not silently fall back to a printer at another site.

## Choose a format the queue can print

Use PDF for invoices, packing lists and page-based documents. For device commands, send RAW data and declare ZPL, TSPL or CPCL for compatible label printers, or ESC/POS for a compatible receipt printer. Compare the document with the capabilities returned for the selected queue; CloudPrint does not translate printer languages.

## Send from a trusted backend

The ERP or WMS integration service should call CloudPrint Public API from a trusted server environment. Keep credentials there, use one stable `Idempotency-Key` for the business operation, and save both your operation ID and the returned `print_job_id`.

## Treat printing as an observable workflow

Follow the job until `printed`, `failed` or `cancelled`. If the agent or printer is offline, show that the operation is waiting or needs attention instead of creating another copy. A network retry keeps the original idempotency key; an operator-approved reprint is a new recorded operation.

## Next steps

<div class="docs-card-grid"><a class="docs-card" href="/docs/guides/web-app-printing/"><strong>Print from a web application to a local printer</strong><span>Add reliable local printing to a SaaS or web application without exposing printer ports or relying on the browser print dialog.</span></a>
<a class="docs-card" href="/docs/guides/print-formats/"><strong>PDF and RAW printer languages</strong><span>Choose PDF or an explicit RAW language—ZPL, TSPL, CPCL or ESC/POS—and route each job only to a compatible printer.</span></a>
<a class="docs-card" href="/docs/api/print-jobs/"><strong>Create and track CloudPrint print jobs</strong><span>Create idempotent print jobs, validate printer options and follow each job safely until it is printed or fails.</span></a></div>

<nav class="docs-resource-links" aria-label="Next steps"><a href="https://cloudprint.me/status/">Service status</a><a href="/docs/api/v1/explorer/">OpenAPI</a><a href="https://developer.cloudprint.me">Developer Portal</a><a href="https://my.cloudprint.me">Open account</a><a href="/docs/legal/privacy/">Privacy Policy</a><a href="/docs/legal/terms/">Terms</a><a href="/docs/legal/data-processing/">DPA</a><a href="/docs/legal/service-level-agreement/">Service Level Agreement</a></nav>