---
title: "Create a bulk waybill"
method: POST
path: "/waybills"
tags: ["Bulk waybills"]
---

# Create a bulk waybill

`POST /waybills`

Creates a new bulk waybill and associated routing label shipments.

## Request body

- CreateWaybillRequest
  - `carrier_code` 'bring' | 'pdk', required
  - `customer_number` string — Used if you have more than one agreement for the selected carrier. If not given, it defaults to the first agreement found.
  - `status` 'open' | 'closed'
  - `label_format` '10x19_pdf' | 'a4_pdf' — Format of routing labels. Defaults to default label format of the user. Note that this is only used if status is set to "closed"
  - `sender` object, required — Required
    - `name` string, required
    - `address1` string, required
    - `address2` string — Second address line can be used for floor/room number, building name etc.
    - `zipcode` string, required
    - `city` string, required
    - `country_code` string, required
  - `receiver` object, required — Required
    - `name` string, required
    - `address1` string, required
    - `address2` string — Second address line can be used for floor/room number, building name etc.
    - `zipcode` string, required
    - `city` string, required
    - `country_code` string, required
  - `loading` object — Optional, except date if carrier is Bring. If no fields are included sender is copied
    - `name` string
    - `address1` string
    - `address2` string — Second address line can be used for floor/room number, building name etc.
    - `zipcode` string
    - `city` string
    - `country_code` string
    - `date` string, date-time
  - `delivery` object — Optional. If all fields are not included receiver is copied to these fields
    - `name` string
    - `address1` string
    - `address2` string — Second address line can be used for floor/room number, building name etc.
    - `zipcode` string
    - `city` string
    - `country_code` string
  - `packages` object[], required — Required if status is set to "closed"
    - `product_code` 'BRI_PPB' | 'BRI_BPB' | 'PDK_BP' | 'PDK_M' | 'PDK_TB' | 'PDK_PL' — Product code of the parcels that the pallet contains. If pallets contain multiple products, the codes must be comma-separated, e.g., "PDK_M,PDK_BP".
    - `package_type` 'PARCEL' | 'PALLET' — Type of pallet. Determines whether it is a pallet for individual parcel shipments or the shipment is the pallet itself.
    - `amount` integer — PARCEL: The amount of parcels in the pallet. PALLET: x amount of pallets. This is be split into x routing labels.
    - `weight` integer — Total weight of the pallet/parcels in grams

## Response `200`

Successful.

- Waybill
  - `id` integer — ID of the bulk waybill. Used when referencing a specific bulk waybill.
  - `reference` string — Carrier's reference of the bulk waybill.
  - `status` 'open' | 'closed' — Current status of the bulk waybill. If open, more shipments can be added to the bulk waybill.
  - `carrier_code` string — Carrier code, identifying which carrier the bulk waybill is created for.
  - `customer_number` string — The customer number that is attached to the bulk waybill.
  - `created_at` string, date-time — When the bulk waybill was created.
  - `sender` object — Information regarding the sender on the bulk waybill.
    - `name` string
    - `address1` string
    - `address2` string — Second address line can be used for floor/room number, building name etc.
    - `zipcode` string
    - `city` string
    - `country_code` string
  - `receiver` object — Information regarding the receiver on the bulk waybill.
    - `name` string
    - `address1` string
    - `address2` string — Second address line can be used for floor/room number, building name etc.
    - `zipcode` string
    - `city` string
    - `country_code` string
  - `loading` object — Information regarding the loading place on the bulk waybill.
    - `name` string
    - `address1` string
    - `address2` string — Second address line can be used for floor/room number, building name etc.
    - `zipcode` string
    - `city` string
    - `country_code` string
    - `date` string, date-time
  - `delivery` object — Information regarding the delivery place on the bulk waybill.
    - `name` string
    - `address1` string
    - `address2` string — Second address line can be used for floor/room number, building name etc.
    - `zipcode` string
    - `city` string
    - `country_code` string
  - `shipment` object — Shipment that contains the routing labels.
    - `id` integer
    - `label_base64` string — Base64-encoded string of the routing labels as PDF.
  - `invoice_base64` string — Base64-encoded string of invoice as PDF
  - `base64` string — Base64-encoded string of bulk waybill as PDF

## Other responses

- `401` — Unauthorized.
- `404` — Resource not found.
- `422` — Invalid or not found parameter(s)

---

[API](https://skmtc.net/shipmondo/apis/shipmondo-api.md) · [All operations](https://skmtc.net/shipmondo/apis/shipmondo-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/shipmondo/shipmondo-api/versions/dbe9a4ea0826/schema)
