Slipmill

Quickstart

POST JSON. Receive a PDF.

Authenticate with the x-sm-key header — that is your Slipmill key. The same route lives on the app origin as /api/v1/render.

curl

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

Request

Packing slip

{
  "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"
  }
}

Invoice

Amounts are cents. Tax is printed as sent. Slipmill does not calculate tax.

{
  "template": "invoice",
  "brand": {
    "name": "Northline Goods",
    "accent": "#9E2A22",
    "address": "18 Mercer Street\nHoboken, NJ 07030"
  },
  "data": {
    "invoice_id": "INV-2208",
    "date": "2026-08-31",
    "due_date": "2026-09-14",
    "bill_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,
        "unit_amount_cents": 1800,
        "description": "Natural canvas, 12 oz"
      },
      {
        "sku": "INK-RED",
        "name": "Stamp pad, warehouse red",
        "qty": 2,
        "unit_amount_cents": 650
      },
      {
        "sku": "TWILL-01",
        "name": "Twill apron",
        "qty": 4,
        "unit_amount_cents": 2400
      }
    ],
    "currency": "USD",
    "tax_cents": 0,
    "notes": "Net 14. Tax printed as sent — Slipmill does not calculate tax."
  }
}

Plans

Public names are Starter, Pro, and Scale. Sending plan: "pro" as a machine value is invalid.

Errors

Bad keys, unknown templates, invalid schema, and over-quota on Starter or Pro return JSON and no PDF. Scale continues past the included 15,000 renders and meters overage at $6 per 1,000.