Skip to content
Slipmill

JSON in

Generate a packing slip from JSON

The payload is the product. Copy the curl. Open the live sample. Then POST your own order JSON.

Most commerce stacks already serialize the order. The remaining work is usually a designer, a Word template, or an HTML page that nobody wants to maintain. Slipmill skips that. You map order, ship-to, and items into the packing-slip schema and POST.

Use the sample payloads and the JSON validator to check the shape before you wire production. Then call /v1/render. One request is one PDF. Fail closed on a bad key or a bad body.

This is generate-from-JSON, not generate-from-a-blank-form. There is no wizard. There is a schema. The live US Letter file is at /sample.

The payload

This is a packing-slip body. POST it to /v1/render with x-sm-key. The live PDF is at /sample.

{
  "template": "packing-slip",
  "brand": {
    "name": "Northline Goods",
    "accent": "#9E2A22",
    "address": "18 Mercer Street\nHoboken, NJ 07030"
  },
  "data": {
    "order_id": "NL-10428",
    "date": "2026-08-31",
    "ship_to": {
      "name": "Cedar & Pine Outfitters",
      "address": "440 Warehouse Ave, Dock 3",
      "city": "Newark",
      "region": "NJ",
      "postal": "07105",
      "country": "US"
    },
    "from": {
      "name": "Northline Goods",
      "address": "18 Mercer Street\nHoboken, NJ 07030"
    },
    "items": [
      {
        "sku": "TOTE-12",
        "name": "Canvas tote — natural",
        "qty": 12
      },
      {
        "sku": "INK-RED",
        "name": "Stamp pad, warehouse red",
        "qty": 2
      },
      {
        "sku": "TWILL-01",
        "name": "Twill apron",
        "qty": 4
      }
    ],
    "notes": "Leave on dock if closed. Pack totes upright.",
    "tracking": "1Z999AA10123456784"
  }
}
curl -X POST https://slipmill.com/v1/render \
  -H "x-sm-key: YOUR_SLIPMILL_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "template": "packing-slip",
    "brand": {
      "name": "Northline Goods",
      "accent": "#9E2A22",
      "address": "18 Mercer Street, Hoboken, NJ 07030"
    },
    "data": {
      "order_id": "NL-10428",
      "date": "2026-08-31",
      "ship_to": {
        "name": "Cedar & Pine Outfitters",
        "address": "440 Warehouse Ave, Dock 3",
        "city": "Newark",
        "region": "NJ",
        "postal": "07105",
        "country": "US"
      },
      "from": {
        "name": "Northline Goods",
        "address": "18 Mercer Street, Hoboken, NJ 07030"
      },
      "items": [
        { "sku": "TOTE-12", "name": "Canvas tote — natural", "qty": 12 }
      ]
    }
  }' \
  --output packing-slip.pdf