DocMake
The PDF DocMake makes from the Delivery Note template

The first page of the document DocMake makes from the sample values on this page.

Logistics

Delivery Note

A delivery note is the sheet a driver hands across at the door. It says what is being given to the customer, carries no prices, and becomes proof of delivery the moment the receiver signs it, which is why the signature block deserves more care than the logo.

Goods inwards staff read three columns and nothing else: what the order said, what actually came off the vehicle, and what is still to follow. Anything short, damaged or substituted belongs on the discrepancy line before anyone signs, because that sentence is what customer service will quote back when the invoice is queried a month later. Two copies is the normal habit, one left with the goods and one signed back to the carrier.

Rendering one per delivery straight from the sales order keeps the reference numbers identical across the order confirmation, the note and the invoice that follows. Position the address block for a window envelope or a document wallet, and the same payload can produce a customer copy with the internal picking comments left out.

Blanks to fill

delivery_note_number Delivery note number
delivery_date Delivery date
order_reference Order reference
customer_name Customer
customer_account Customer account
delivery_address Delivery address
contact_person Site contact
carrier Carrier
vehicle_registration Vehicle registration
driver_name Driver
number_of_parcels Parcels delivered
short_or_damaged Anything short or damaged
delivery_notes Delivery notes
received_by Received by
received_at Received at
company_name Company
goods[] One per item, so a row is added for every item in the list

The data behind the preview

This is the exact JSON that produced the document above. Change the values, POST them to the API, and you get your version back as DOCX or PDF. Lists grow and shrink with your data; the layout adapts.

  1. 01 Sign up free and duplicate this template into your workspace.
  2. 02 Adjust the wording and branding in the visual editor.
  3. 03 Fill it in the app, share it as a form link, or call the API.
sample-data.json
{
  "company_name": "Northwind Medical Supplies",
  "delivery_note_number": "DN-2026-3390",
  "delivery_date": "August 18, 2026",
  "order_reference": "ORD-2026-1244",
  "customer_name": "Harbour Point Dental Group",
  "customer_account": "HPD-0417",
  "delivery_address": "Goods inwards, 8 Quay Road, Bristol BS1 6EA, United Kingdom",
  "contact_person": "Sam Whitfield, Practice Manager",
  "carrier": "Own fleet",
  "vehicle_registration": "WV24 KLM",
  "driver_name": "Petra Simms",
  "number_of_parcels": "4",
  "goods": [
    {
      "item": "Autoclave pouches, 90 x 230 mm, box of 200",
      "item_code": "AP-90230",
      "ordered": "12",
      "delivered": "12",
      "to_follow": "0"
    },
    {
      "item": "Surface disinfectant wipes, tub of 200",
      "item_code": "SD-WIPE-200",
      "ordered": "20",
      "delivered": "14",
      "to_follow": "6"
    },
    {
      "item": "Nitrile gloves, medium, box of 100",
      "item_code": "GL-NIT-M",
      "ordered": "30",
      "delivered": "30",
      "to_follow": "0"
    },
    {
      "item": "Suction tips, disposable, bag of 50",
      "item_code": "ST-DISP-50",
      "ordered": "8",
      "delivered": "8",
      "to_follow": "0"
    }
  ],
  "short_or_damaged": "Six tubs of surface disinfectant held back at the depot, allocated from the next inbound pallet and due August 21.",
  "delivery_notes": "Delivered to the rear entrance as agreed. Empty roll cage collected on the same visit.",
  "received_by": "Sam Whitfield",
  "received_at": "August 18, 2026, 09:42"
}

Generate this document via the API

One template plus changing data is the whole point. The list of blanks above is the contract, and every new set of values comes back in the same layout: fill it in the app, hand someone a form link, or POST the JSON and get the file straight back.

The request below carries this page's own values, so it runs as soon as the template exists in your workspace. Swap the values for yours and the response is your document.

make-delivery-note.sh
curl -X POST https://app.docmake.io/api/v1/render \
  -H "Authorization: Bearer $DOCMAKE_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  --output delivery-note.pdf \
  --data-binary @- <<'JSON'
{
  "template_id": "tmpl_your_template_id",
  "format": "pdf",
  "data": {
    "company_name": "Northwind Medical Supplies",
    "delivery_note_number": "DN-2026-3390",
    "delivery_date": "August 18, 2026",
    "order_reference": "ORD-2026-1244",
    "customer_name": "Harbour Point Dental Group",
    "customer_account": "HPD-0417",
    "delivery_address": "Goods inwards, 8 Quay Road, Bristol BS1 6EA, United Kingdom",
    "contact_person": "Sam Whitfield, Practice Manager",
    "carrier": "Own fleet",
    "vehicle_registration": "WV24 KLM",
    "driver_name": "Petra Simms",
    "number_of_parcels": "4",
    "goods": [
      {
        "item": "Autoclave pouches, 90 x 230 mm, box of 200",
        "item_code": "AP-90230",
        "ordered": "12",
        "delivered": "12",
        "to_follow": "0"
      },
      {
        "item": "Surface disinfectant wipes, tub of 200",
        "item_code": "SD-WIPE-200",
        "ordered": "20",
        "delivered": "14",
        "to_follow": "6"
      },
      {
        "item": "Nitrile gloves, medium, box of 100",
        "item_code": "GL-NIT-M",
        "ordered": "30",
        "delivered": "30",
        "to_follow": "0"
      },
      {
        "item": "Suction tips, disposable, bag of 50",
        "item_code": "ST-DISP-50",
        "ordered": "8",
        "delivered": "8",
        "to_follow": "0"
      }
    ],
    "short_or_damaged": "Six tubs of surface disinfectant held back at the depot, allocated from the next inbound pallet and due August 21.",
    "delivery_notes": "Delivered to the rear entrance as agreed. Empty roll cage collected on the same visit.",
    "received_by": "Sam Whitfield",
    "received_at": "August 18, 2026, 09:42"
  }
}
JSON

tmpl_your_template_id is a stand-in: build this template in the visual editor and copy the id it shows, or create one with POST /api/v1/templates. Keys, formats, strict mode and batches are in the API reference.

Or let an AI assistant do it

The DocMake MCP server lets Claude and other assistants make this document the same way. Install it once:

claude mcp add docmake \
  --env DOCMAKE_API_KEY=dm_your_api_key \
  -- npx -y @docmake/mcp@latest

Then ask for the document in plain words:

Make a PDF from my Delivery Note template with delivery note number "DN-2026-3390" and delivery date "August 18, 2026".

How the MCP server works →

More logistics templates