Packing slip PDF API for fulfillment workflows
Generate packing slip PDFs from order, shipment, carton, and item data for ecommerce, 3PL, OMS, and warehouse fulfillment workflows.
/api/v1/template-render Render packing slips from shipment, recipient, item, and carton data so fulfillment teams can print or attach a consistent document for each outbound order.
When to use this API
- Your OMS or WMS already has order items, quantities, recipient data, and shipment identifiers.
- You need a PDF packing slip for warehouse print stations or customer parcel inserts.
- You want one approved layout reused across warehouses, brands, or sales channels.
- You may need a barcode or QR code for order lookup or return intake.
What it does not replace
- You need to buy postage, rate a shipment, or create a carrier label.
- You need warehouse inventory management rather than document rendering.
- You need legal invoice or e-invoice semantics.
Which endpoint to call
/api/v1/template-render
Template Render is the default path for this workflow.
/api/v1/pdf/render
Use this when the workflow needs the related API path, template contract, or capabilities lookup.
Minimal request
POST /api/v1/template-render - packing_list template with one shipment.
{
"template_id": "packing_list",
"data": [
{
"shipment": {
"number": "PL-2026-1001",
"date": "2026-05-29"
},
"shipper": {
"name": "Acme Warehouse",
"address": "1200 Logistics Pkwy"
},
"consignee": {
"name": "Receiver Inc.",
"address": "123 Main St"
},
"items": [
{
"item_no": "1",
"description": "Replacement filter",
"quantity": "2",
"unit": "pcs",
"gross_weight": "1.2 kg",
"net_weight": "1.0 kg"
}
]
}
]
}
What gPdf handles
- Template Render for published packing slip layouts.
- JSON Render for custom packing slip pages during design or one-off workflows.
- Tables, item rows, address blocks, optional barcodes, and PDF output.
- Deterministic reprints when the same data and template are used.
What your system owns
- Order data, item quantities, shipment state, warehouse routing, and customer messaging.
- Template field mapping, print station routing, and reprint policy.
- Any carrier, customs, or invoice document that must travel with the parcel.
Production checklist
- Test the longest SKU, item name, and address combinations.
- Validate one-item, multi-carton, backorder, and partial shipment cases.
- Use Template Render after the packing slip layout is approved.
- Log template_id and X-Request-Id for each fulfillment print request.
- Keep carrier label generation separate from packing slip rendering.
Claim boundaries
- gPdf renders the packing slip PDF; it does not manage inventory or fulfillment state.
- A packing slip is not automatically a tax invoice or customs document.
- Carrier label purchase and shipment rating remain outside gPdf.
Packing slips fit the template path
Packing slips usually have a stable structure: shipper, recipient, shipment number, item rows, and optional notes. That makes Template Render a strong fit after the layout is approved.
JSON Render still matters during design. It lets your team tune columns,
spacing, barcode placement, and page breaks before publishing the stable
template_id contract.
FAQ
- Is a packing slip a separate gPdf endpoint?
- No. Use Template Render for an approved packing slip template or JSON Render when your system describes the layout directly.
- Can packing slips include barcodes?
- Yes. gPdf can render barcode elements in the PDF. Your system owns the encoded order, carton, or return payload.
- Does gPdf create carrier labels?
- No. Carrier labels are a separate workflow. gPdf renders PDFs from the data your carrier or shipping system provides.
- Can one request render multiple packing slips?
- Template Render accepts a data array for multiple items in one request, within the public API limits documented for that endpoint.