Labels API
v1Render transport labels for order products, whole orders, and containers as ready-to-print PDFs.
These endpoints render ready-to-print PDF labels so goods entering the Zendera network from your warehouse carry scannable transport labels.
Where this fits in your operation
- Print at pack time: after picking, your WMS fetches the order’s labels and sends them straight to the warehouse printer — one call per order, or per colli if you label as you pack.
- Reprint a damaged label for one specific colli using its order product number, without reprinting the whole order.
- Container labels for terminal flows: print the label for a container by its ID.
Interactive API Explorer
Loading API Documentation...
Authentication
Authorization: apikey YOUR_API_KEY_HEREBase URLs
- Production:
https://app.zenderatms.com/api/ - Staging:
https://staging.zenderatms.com/api/
Endpoints
All three return the PDF bytes directly (Content-Type: application/pdf) — there is no JSON wrapper. Pipe the body to a file or printer.
Label for one order product (colli)
GET /v1/labels?order_product_id=501
GET /v1/labels?internal_order_product_number=PROD_A_001Provide exactly one of the two parameters — the call is rejected with 400 when neither is given. internal_order_product_number is the number your system set on import.
Labels for a whole order
GET /v1/labels/order?order_id=12345
GET /v1/labels/order?internal_order_number=ERP-001Same one-of-two pattern: order_id (Zendera ID) or internal_order_number (your order number from import). 404 when the order doesn’t exist.
Label for a container
GET /v1/labels/container?container_id=88container_id is required and must be a positive integer.
Example: save a label to a file
curl -H "Authorization: apikey YOUR_API_KEY" \
"https://app.zenderatms.com/api/v1/labels/order?internal_order_number=ERP-001" \
-o ERP-001-labels.pdfCommon gotchas
- The response is a PDF, not JSON. Don’t run it through your JSON client — stream the bytes.
- Identify by your own numbers.
internal_order_number/internal_order_product_numberare the IDs your system used on import, so you don’t need to store Zendera’s IDs to print labels. - One identifier per call. Each endpoint takes its identifiers as alternatives, and at least one is required.
Related documentation
- Orders Import — where
internal_order_numberand product numbers are set - Atoms API — how colli/products are structured on an order