Texify

Packing lists

Packing list PDF API

Warehouse packing list with order details, destination, package counts, weights, and item rows. Built for ecommerce and fulfillment APIs. Send this LaTeX template and JSON data to Texify in one /render request.

Packing list PDF preview

JSON schema

Fields this template expects.

FieldTypeRequiredDescription
order_numberstringYesOrder or shipment reference.
ship_toobjectYesDestination address.
packagesarrayYesPackages, weights, dimensions, and item rows.
notesstringNoWarehouse or customs notes.

API examples

POST LaTeX and JSON. Receive PDF bytes.

curl
cat > packing-list-standard-payload.json <<'JSON'
{
  "entrypoint": "main.tex",
  "resources": {
    "main.tex": "\\documentclass[10pt]{article}\n\\usepackage[margin=0.65in]{geometry}\n\\usepackage{array,booktabs}\n\\pagestyle{empty}\n\\begin{document}\n{\\Huge\\bfseries Packing List}\\\\[4pt]\nOrder [[ .order_number ]]\\\\[0.2in]\n\\noindent\\textbf{Ship to}\\\\\n[[ .ship_to.name ]]\\\\\n[[ .ship_to.address ]]\\\\[0.25in]\n[[ range .packages ]]\\section*{Package [[ .box ]] --- [[ .weight_lb ]] lb}\n\\begin{tabular}{p{0.22\\textwidth}p{0.45\\textwidth}r p{0.2\\textwidth}}\n\\toprule\nSKU & Item & Qty & Barcode\\\\\n\\midrule\n[[ range .items ]][[ .sku ]] & [[ .name ]] & [[ .quantity ]] & \\texttt{[[ with .barcode ]][[ . ]][[ end ]]}\\\\\n[[ end ]]\\bottomrule\n\\end{tabular}\n[[ end ]]\n[[ with .notes ]]\\vspace{0.2in}\\noindent\\textbf{Notes:} [[ . ]][[ end ]]\n\\end{document}"
  },
  "data": {
    "order_number": "ORD-2026-8812",
    "ship_to": {
      "name": "Jordan Lee",
      "address": "44 Pine St, Seattle"
    },
    "packages": [
      {
        "box": "1 of 2",
        "weight_lb": 3.4,
        "items": [
          {
            "sku": "TSHIRT-BLK-M",
            "name": "Black tee",
            "quantity": 2,
            "barcode": ""
          }
        ]
      }
    ],
    "notes": "Gift note enclosed"
  }
}
JSON

curl -sS -X POST https://api.texify.dev/render \
  -H "Content-Type: application/json" \
  --data @packing-list-standard-payload.json \
  --output packing-list-standard.pdf
Python
import json
import requests

payload = json.loads(r'''{
  "entrypoint": "main.tex",
  "resources": {
    "main.tex": "\\documentclass[10pt]{article}\n\\usepackage[margin=0.65in]{geometry}\n\\usepackage{array,booktabs}\n\\pagestyle{empty}\n\\begin{document}\n{\\Huge\\bfseries Packing List}\\\\[4pt]\nOrder [[ .order_number ]]\\\\[0.2in]\n\\noindent\\textbf{Ship to}\\\\\n[[ .ship_to.name ]]\\\\\n[[ .ship_to.address ]]\\\\[0.25in]\n[[ range .packages ]]\\section*{Package [[ .box ]] --- [[ .weight_lb ]] lb}\n\\begin{tabular}{p{0.22\\textwidth}p{0.45\\textwidth}r p{0.2\\textwidth}}\n\\toprule\nSKU & Item & Qty & Barcode\\\\\n\\midrule\n[[ range .items ]][[ .sku ]] & [[ .name ]] & [[ .quantity ]] & \\texttt{[[ with .barcode ]][[ . ]][[ end ]]}\\\\\n[[ end ]]\\bottomrule\n\\end{tabular}\n[[ end ]]\n[[ with .notes ]]\\vspace{0.2in}\\noindent\\textbf{Notes:} [[ . ]][[ end ]]\n\\end{document}"
  },
  "data": {
    "order_number": "ORD-2026-8812",
    "ship_to": {
      "name": "Jordan Lee",
      "address": "44 Pine St, Seattle"
    },
    "packages": [
      {
        "box": "1 of 2",
        "weight_lb": 3.4,
        "items": [
          {
            "sku": "TSHIRT-BLK-M",
            "name": "Black tee",
            "quantity": 2,
            "barcode": ""
          }
        ]
      }
    ],
    "notes": "Gift note enclosed"
  }
}''')
response = requests.post(
    "https://api.texify.dev/render",
    json=payload,
    timeout=90,
)
response.raise_for_status()

with open("packing-list-standard.pdf", "wb") as pdf:
    pdf.write(response.content)
Node fetch
import { writeFile } from "node:fs/promises";

const payload = {
  "entrypoint": "main.tex",
  "resources": {
    "main.tex": "\\documentclass[10pt]{article}\n\\usepackage[margin=0.65in]{geometry}\n\\usepackage{array,booktabs}\n\\pagestyle{empty}\n\\begin{document}\n{\\Huge\\bfseries Packing List}\\\\[4pt]\nOrder [[ .order_number ]]\\\\[0.2in]\n\\noindent\\textbf{Ship to}\\\\\n[[ .ship_to.name ]]\\\\\n[[ .ship_to.address ]]\\\\[0.25in]\n[[ range .packages ]]\\section*{Package [[ .box ]] --- [[ .weight_lb ]] lb}\n\\begin{tabular}{p{0.22\\textwidth}p{0.45\\textwidth}r p{0.2\\textwidth}}\n\\toprule\nSKU & Item & Qty & Barcode\\\\\n\\midrule\n[[ range .items ]][[ .sku ]] & [[ .name ]] & [[ .quantity ]] & \\texttt{[[ with .barcode ]][[ . ]][[ end ]]}\\\\\n[[ end ]]\\bottomrule\n\\end{tabular}\n[[ end ]]\n[[ with .notes ]]\\vspace{0.2in}\\noindent\\textbf{Notes:} [[ . ]][[ end ]]\n\\end{document}"
  },
  "data": {
    "order_number": "ORD-2026-8812",
    "ship_to": {
      "name": "Jordan Lee",
      "address": "44 Pine St, Seattle"
    },
    "packages": [
      {
        "box": "1 of 2",
        "weight_lb": 3.4,
        "items": [
          {
            "sku": "TSHIRT-BLK-M",
            "name": "Black tee",
            "quantity": 2,
            "barcode": ""
          }
        ]
      }
    ],
    "notes": "Gift note enclosed"
  }
};

const response = await fetch("https://api.texify.dev/render", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify(payload),
  signal: AbortSignal.timeout(90_000),
});

if (!response.ok) throw new Error(await response.text());

const pdf = Buffer.from(await response.arrayBuffer());
await writeFile("packing-list-standard.pdf", pdf);

The template

LaTeX source sent as resources["main.tex"].

main.tex
\documentclass[10pt]{article}
\usepackage[margin=0.65in]{geometry}
\usepackage{array,booktabs}
\pagestyle{empty}
\begin{document}
{\Huge\bfseries Packing List}\\[4pt]
Order [[ .order_number ]]\\[0.2in]
\noindent\textbf{Ship to}\\
[[ .ship_to.name ]]\\
[[ .ship_to.address ]]\\[0.25in]
[[ range .packages ]]\section*{Package [[ .box ]] --- [[ .weight_lb ]] lb}
\begin{tabular}{p{0.22\textwidth}p{0.45\textwidth}r p{0.2\textwidth}}
\toprule
SKU & Item & Qty & Barcode\\
\midrule
[[ range .items ]][[ .sku ]] & [[ .name ]] & [[ .quantity ]] & \texttt{[[ with .barcode ]][[ . ]][[ end ]]}\\
[[ end ]]\bottomrule
\end{tabular}
[[ end ]]
[[ with .notes ]]\vspace{0.2in}\noindent\textbf{Notes:} [[ . ]][[ end ]]
\end{document}

Live render

Try sample data now.

Posts this LaTeX template and sample JSON to /render, then opens the returned PDF bytes.

Sample data
{
  "order_number": "ORD-2026-8812",
  "ship_to": {
    "name": "Jordan Lee",
    "address": "44 Pine St, Seattle"
  },
  "packages": [
    {
      "box": "1 of 2",
      "weight_lb": 3.4,
      "items": [
        {
          "sku": "TSHIRT-BLK-M",
          "name": "Black tee",
          "quantity": 2,
          "barcode": ""
        }
      ]
    }
  ],
  "notes": "Gift note enclosed"
}

FAQ

FAQ

Can I use Packing list as a packing list PDF API?

Yes. Copy the LaTeX template, send it in resources with your data to /render, and Texify returns PDF bytes.

Can I change colors, copy, or field names?

Yes. Edit the LaTeX source and JSON placeholders to match your data model and brand before posting to /render.

Does this render real PDF text?

Yes. Texify compiles LaTeX to PDF, so text remains selectable, searchable, and stable across environments.