Skip to content
CastPDF
Free shipping template

A packing slip in every box, made from the order

Send each order and print a packing slip that lists what is in the box. No prices, just items, codes, quantities and a tick box for the packer.

  • A4, portrait
  • 1 page
  • Updated
The packing slip template filled with sample data, page 1. A packing slip to put in the box: who it ships to and who pays, the shipping method, each item with its code, the quantity ordered and shipped and a tick box, with no prices shown.
Page 1, rendered by CastPDF from the sample data on this page.

What is inside the packing slip template

  1. Order code. The order number in large type, beside a striped strip made from its digits.
  2. Ship to and bill to. The delivery address in a framed box, with the billing address next to it.
  3. Shipment facts. Order date, dispatch date, method, tracking number, parcels and weight.
  4. Items. A tick box, the SKU, the name and variant, then ordered and shipped quantities.
  5. Note and returns. A short message to the customer and how to report a problem.
  6. Packed by. Lines for the packer, the checker and the date.

What this packing slip template is for

A packing slip travels inside the parcel. The customer checks it against what arrived, and your packer uses it to pick the order. Online shops, wholesalers and subscription boxes print one for every shipment.

It shows the ship-to and bill-to addresses, the order and dispatch dates, the method and the tracking number. Each item has its SKU, a short variant line, the quantity ordered and the quantity shipped.

Prices stay off the slip on purpose. Gifts and orders paid by someone else can go out without showing what anything cost.

What a good packing slip includes

  • The order number, easy to spot at the top.
  • The delivery address and, if different, the billing address.
  • The shipping method, the tracking number and the number of parcels.
  • Every item with its code, name and variant.
  • The quantity ordered and the quantity actually shipped.
  • A note on anything that follows in a later parcel.
  • How to report a missing or damaged item.

The fields it fills

Each field fills one part of your packing slip. Send new details and the packing slip keeps its design. Leave out an optional field and its line simply disappears.

Fields of the packing slip template and what each one fills
FieldWhat it fills
General
localeHow numbers and dates are written, such as en-GB.
Shop
shop.nameYour shop’s name (your brand settings win).
shop.websiteYour website address.
shop.emailYour customer service email.
Order
order.numberThe order number.
order.barcodeDigits for the striped strip at the top.
order.dateThe date of the order.
order.messageA short note to the customer.
order.returnsHow to report a missing or damaged item.
Ship to
ship_to.nameWho the parcel is for.
ship_to.addressWhere it goes, one line per line.
Bill to
bill_to.nameWho paid.
bill_to.addressThe billing address.
Shipment
shipment.dateThe day it left.
shipment.methodThe shipping service.
shipment.trackingThe tracking number.
shipment.parcelsHow many parcels.
shipment.weightThe total weight.
shipment.packed_byWho packed it, printed on the packed-by line.
Items
items[].skuYour product code.
items[].nameThe product name.
items[].variantSize, colour or pack (optional).
items[].orderedHow many were ordered.
items[].shippedHow many are in this shipment.

Make it automatically

Use the template in the dashboard once, then let your systems fill it. Every way below uses the same template, so a change to the design shows up everywhere.

From your app, with the API

One request per packing slip: the template id and your data in, the finished PDF out. Add deliver.email and CastPDF emails it too. The PDF endpoint.

From a spreadsheet

Upload a CSV or XLSX file with one row per order. One batch makes every PDF and hands them back in one ZIP. PDFs from a spreadsheet.

In a no-code workflow

One request from your app

Copy the template id from the editor and save it with your data in request.json. Then send the file. The reply is the finished PDF.

Request
curl https://api.castpdf.com/v1/pdf \
  -H "Authorization: Bearer $CASTPDF_API_KEY" \
  -H "Content-Type: application/json" \
  -d @request.json \
  --output packing-slip.pdf
import { readFile, writeFile } from 'node:fs/promises';

const res = await fetch('https://api.castpdf.com/v1/pdf', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.CASTPDF_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: await readFile('request.json', 'utf8'),
});
if (!res.ok) throw new Error((await res.json()).error.message);
await writeFile('packing-slip.pdf', Buffer.from(await res.arrayBuffer()));
import json, os
import requests

with open("request.json") as f:
    body = json.load(f)

res = requests.post(
    "https://api.castpdf.com/v1/pdf",
    headers={"Authorization": f"Bearer {os.environ['CASTPDF_API_KEY']}"},
    json=body,
    timeout=60,
)
res.raise_for_status()
with open("packing-slip.pdf", "wb") as f:
    f.write(res.content)
request.json (the sample data)
{
  "template_id": "YOUR_TEMPLATE_ID",
  "data": {
    "locale": "en-GB",
    "shop": {
      "name": "Thistle & Pine Tea Co.",
      "website": "thistlepine.example",
      "email": "[email protected]"
    },
    "order": {
      "number": "TP-482913",
      "barcode": "4829 1307 7316",
      "date": "2026-10-07",
      "message": "Thank you for your order. Every tea in this box was packed by hand in our Perthshire blending room.",
      "returns": "Something missing or damaged? Email [email protected] within 14 days and quote your order number."
    },
    "ship_to": {
      "name": "Morgan Ellery",
      "address": "Flat 3, 41 Rowan Street\nPerth PH1 5LT\nUnited Kingdom"
    },
    "bill_to": {
      "name": "Ellery Design Studio",
      "address": "12 Mill Wynd\nDundee DD1 4QZ\nUnited Kingdom"
    },
    "shipment": {
      "date": "2026-10-09",
      "method": "Tracked, 48 hours",
      "tracking": "SL 7731 0482 913",
      "parcels": 2,
      "weight": "3.4 kg",
      "packed_by": "Station 4, Aileen"
    },
    "items": [
      {
        "sku": "TP-BRK-250",
        "name": "Highland Breakfast loose leaf",
        "variant": "250 g pouch",
        "ordered": 2,
        "shipped": 2
      },
      {
        "sku": "TP-EGR-100",
        "name": "Smoky Earl Grey loose leaf",
        "variant": "100 g tin",
        "ordered": 1,
        "shipped": 1
      },
      {
        "sku": "TP-SEN-050",
        "name": "Sencha Kirishima",
        "variant": "50 g pouch",
        "ordered": 1,
        "shipped": 1
      },
      {
        "sku": "TP-CHM-020",
        "name": "Wild chamomile, pyramid bags",
        "variant": "Box of 20",
        "ordered": 3,
        "shipped": 3
      },
      {
        "sku": "TP-RBS-020",
        "name": "Rooibos and orange peel, pyramid bags",
        "variant": "Box of 20",
        "ordered": 2,
        "shipped": 1
      },
      {
        "sku": "TP-INF-001",
        "name": "Glass teapot with steel infuser",
        "variant": "600 ml",
        "ordered": 1,
        "shipped": 1
      },
      {
        "sku": "TP-CUP-002",
        "name": "Stoneware cups, pair",
        "variant": "Moss glaze",
        "ordered": 1,
        "shipped": 1
      },
      {
        "sku": "TP-CAD-001",
        "name": "Tea caddy, brushed tin",
        "ordered": 2,
        "shipped": 2
      },
      {
        "sku": "TP-SMP-005",
        "name": "Taster set, five teas",
        "variant": "Gift wrapped",
        "ordered": 1,
        "shipped": 1
      },
      {
        "sku": "TP-CRD-001",
        "name": "Gift card with handwritten message",
        "ordered": 1,
        "shipped": 1
      }
    ]
  }
}

New to the API? The quickstart gets you from a free key to your first PDF in about five minutes.

Make one without code

  1. Sign up free. You do not need a card. "Use this template" opens the editor with this template ready.
  2. Open the packing slip template. Put your own details into the packing slip’s sample data, and change the words and colours.
  3. Check the preview. It updates as you type and is free. Every page carries a small “Preview” label.
  4. Generate the PDF. Verify your email and press Generate PDF for a clean copy. It counts as one PDF on your plan.

Make it yours

  • Print it on plain A4 or Letter paper and fold it into the box.
  • Put your returns address and time limit in the returns note.
  • Add a bin or shelf column if your packers pick from locations.
  • Change the note to the customer for each season or campaign.
  • Every save is a new version, and your last 50 versions are kept.

Short shipments, explained on the slip

Sometimes one item is out of stock and the rest ships anyway. A plain list makes the customer think something went missing.

This template compares the two quantities on every line. When fewer were shipped, a small label says how many follow in a separate parcel. The totals row shows units ordered and units shipped.

The striped strip by the order number is only decoration made from its digits. Scanners cannot read it.

Questions about packing slip templates

What is a packing slip?

A list of what is inside a parcel, without prices. It helps the customer check the delivery and helps your team pack the right items.

What is the difference between a packing slip and an invoice?

An invoice asks for money and shows prices and tax. A packing slip shows only the goods and quantities. Many shops print both from the same order, and only the slip goes in the box.

Should a packing slip show prices?

Usually not. Leaving prices off protects gift orders and keeps the slip simple. If you want them, add a column to the template and send the prices with each item.

Can I print packing slips for every new order?

Yes. Your shop system sends each order in one request, as orders arrive or in a daily run, and gets that order’s slip back as a PDF. Print them in one go before packing starts.

Can I add a real barcode or QR code?

Yes, as an image. Make the code in your shop or warehouse system and send it with the order. The strip in the sample is decoration and cannot be scanned.

Is there a free packing slip generator?

The Free plan includes 100 PDFs a month. Start from this template, change the shop details and try your own orders in the preview.

What paper should I print packing slips on?

Plain A4 or US Letter is fine, in black and white. The layout fits both sizes, so pick the one your printer uses in the template settings.
All templates

Make your first packing slip PDF

Sign up free and this template is ready for you. Add your logo and details, and download your first packing slip in minutes. 100 PDFs a month are free, and you never need a card to start.