---
title: "Update a shipment draft"
method: PUT
path: "/shipment_drafts/{id}"
tags: ["Shipment drafts"]
---

# Update a shipment draft

`PUT /shipment_drafts/{id}`

Updates the specified shipment draft by setting the values of the parameters passed. Any parameters not provided will be left unchanged.


The shipment draft is an unbooked shipment with any amount of data that can be created through Shipmondo later.

## Path parameters

- `id` integer, required

## Request body

- ShipmentDraftRequest
  - `own_agreement` boolean, nullable — Whether the shipment is created using an own agreement with the carrier.
  - `customer_number` string, nullable — Customer number used for own agreements with the carrier.
  - `carrier_code` string, nullable — Carrier code for the shipment draft.
  - `product_code` string — Product code for the shipment draft.
  - `service_codes` string[] — Array of service codes applied to the shipment.
  - `terms_of_trade` string, nullable — Incoterms for the shipment.
  - `reference` string, nullable — Reference for the shipment. Shown on labels and in tracking information.
  - `additional_reference` string, nullable — Additional reference for the shipment. Shown on labels and in tracking information.
  - `contents` string, nullable — Description of the contents of the shipment.
  - `origin_shipment_id` integer, nullable — ID of the original shipment if this shipment is a return shipment.
  - `parties` ShipmentParty[] — Array of parties associated with the shipment.
    - `type` 'sender' | 'receiver' | 'pickup' | 'importer' | 'freight_payer' | 'service_point' | 'return', required — Type of party. Parties with `sender` and `receiver` are required for all shipments.
    - `name` string — Name of the party. For companies, this should be the company name.
    - `attention` string — Attention field can be used for the name of a specific person at the address.
    - `address1` string — First address line. This should be the street name and number.
    - `address2` string — Second address line can be used for floor/room number, building name etc.
    - `postal_code` string — Postal code of the address.
    - `city` string — City of the address.
    - `country_code` string — Country code of the address in ISO3166 alpha-2 format.
    - `email` string — E-mail address of the party.
    - `phone` string — Phone number of the party.
    - `attributes` DynamicAttribute[] — Attributes for the party. Used for additional information about the party.
      - `name` string, required — Name of the attribute.
      - `value` string, required — Value of the attribute.
  - `pickup_details` ShipmentScheduleDetails
    - `date` string, date — Scheduled date.
    - `from` string, time — Scheduled earliest time. Format HH:MM:SS.
    - `to` string, time — Scheduled latest time. Format HH:MM:SS.
    - `instruction` string — Instruction to the carrier. Only applicable for products which supports instructions.
  - `delivery_details` ShipmentScheduleDetails
    - `date` string, date — Scheduled date.
    - `from` string, time — Scheduled earliest time. Format HH:MM:SS.
    - `to` string, time — Scheduled latest time. Format HH:MM:SS.
    - `instruction` string — Instruction to the carrier. Only applicable for products which supports instructions.
  - `parcels` ShipmentDraftParcel[]
    - `quantity` integer — Number of parcels of this kind. Maximum quantity depends on the product.
    - `weight` integer — Weight in grams per colli.
    - `length` integer — Length in cm
    - `width` integer — Width in cm
    - `height` integer — Height in cm
    - `volume` number — Volume in cubic metres
    - `loading_meter` number — Loading meter in meters
    - `description` string — Describes the contents of the parcel.
    - `package_type` string — Package type for the parcel. Must be a valid package type for the customer.
    - `stackable` boolean — Whether the parcel can be stacked.
    - `internal_reference` string, nullable — A reference for internal use to track parcels, not sent to the carrier.
    - `dangerous_goods` ShipmentDraftDangerousGood[]
      - `hazard_class` string — ADR class of the dangerous goods.
      - `un_number` string — UN number of the dangerous goods.
      - `net_weight` integer — Net weight in grams of the dangerous goods. Use either this or net_weight_kg.
      - `net_weight_kg` number — Net weight in kilograms of the dangerous goods. Use either this or net_weight.
      - `gross_weight` integer — Gross weight in grams of the dangerous goods. Use either this or gross_weight_kg.
      - `gross_weight_kg` number — gross weight in kilograms of the dangerous goods. Maximum 3 decimal places. Use either this or gross_weight.
      - `quantity` integer — Number of pieces of this kind of dangerous goods.
      - `packaging` string — Packaging the dangerous goods are contained in.
      - `description` string — Description of the dangerous goods.
      - `tunnel_restriction_code` string — Tunnel restriction code that applies to the dangerous goods.
      - `packing_group` string — Packing group that applies to the dangerous goods.
      - `environmentally_hazardous` boolean — Whether or not the dangerous goods are hazardous to the environment.
    - `declared_value` DeclaredValue, nullable — Value of the goods in the parcel. Used in terms of insurance for certain carriers.
      - `amount` number — Valued amount.
      - `currency_code` string — Currency code for the currency of the amount.
  - `pallet_exchange` PalletExchange
    - `pallets1` integer — The number of full pallets to exchange
    - `pallets2` integer — The number of half pallets to exchange
    - `pallets4` integer — The number of quarter pallets to exchange
  - `customs` ShipmentDraftCustoms
    - `attributes` DynamicAttribute[] — List of dynamic attributes for the customs information.
      - `name` string, required — Name of the attribute.
      - `value` string, required — Value of the attribute.
    - `export_reason` 'sale_of_goods' | 'gift' | 'documents' | 'commercial_samples' | 'returned_goods' | 'other', nullable — Reason for exporting the goods.
    - `freight_cost` number, nullable — Cost of freight.
    - `insurance_cost` number, nullable — Cost of insurance.
    - `currency_code` string, nullable — Currency code used for customs values.
    - `goods` ShipmentDraftCustomsGood[] — List of commodities included in the customs declaration.
      - `quantity` integer — Quantity of the good in the shipment.
      - `country_code` string — Country code of origin of the good.
      - `description` string — Description of the good.
      - `commodity_code` string — Commodity code (tariff/HS code) of the good.
      - `unit_value` number — Value of the good per unit.
      - `unit_weight` integer — Weight in grams of the good per unit.
      - `attributes` DynamicAttribute[] — Attributes for the commodity good. Used for additional information.
        - `name` string, required — Name of the attribute.
        - `value` string, required — Value of the attribute.
  - `cod` CashOnDelivery — Used for COD (cash on delivery) shipments, when booking with service code COD
    - `amount` number — The amount to be collected.
    - `currency_code` string — Currency code of the amount.
    - `account_number` string — The account number which should receive the amount that has been collected.
  - `carrier_insurance` CarrierInsurance — Object for indicating carrier insurance on the shipment. Only usable for specific carriers and when an insurance service code is provided.
    - `amount` number, nullable — Amount in the given currency that should be insured for the shipment.
    - `currency_code` string, nullable — Indicates the currency code for the insured value.
  - `attributes` DynamicAttribute[] — List of dynamic attributes for the shipment draft.
    - `name` string, required — Name of the attribute.
    - `value` string, required — Value of the attribute.
  - `service_point_id` string — ID of the service point the shipment should be sent to. Note that the full service point can also be provided in the `parties` array with `type` set to `service_point`.

## Response `200`

Successful.

- ShipmentDraftResponse
  - `id` integer — ID of the shipment draft.
  - `created_at` string, date-time — Timestamp of when the shipment draft was created.
  - `updated_at` string, date-time — Timestamp of when the shipment draft was last updated.
  - `own_agreement` boolean, nullable — Whether the shipment is created using an own agreement with the carrier.
  - `customer_number` string, nullable — Customer number used for own agreements with the carrier.
  - `carrier_code` string, nullable — Carrier code for the shipment draft.
  - `product_code` string — Product code for the shipment draft.
  - `service_codes` string[] — Array of service codes applied to the shipment.
  - `terms_of_trade` string, nullable — Incoterms for the shipment.
  - `reference` string, nullable — Reference for the shipment. Shown on labels and in tracking information.
  - `additional_reference` string, nullable — Additional reference for the shipment. Shown on labels and in tracking information.
  - `contents` string, nullable — Description of the contents of the shipment.
  - `origin_shipment_id` integer, nullable — ID of the original shipment if this shipment is a return shipment.
  - `parties` ShipmentParty[] — Array of parties associated with the shipment.
    - `type` 'sender' | 'receiver' | 'pickup' | 'importer' | 'freight_payer' | 'service_point' | 'return', required — Type of party. Parties with `sender` and `receiver` are required for all shipments.
    - `name` string — Name of the party. For companies, this should be the company name.
    - `attention` string — Attention field can be used for the name of a specific person at the address.
    - `address1` string — First address line. This should be the street name and number.
    - `address2` string — Second address line can be used for floor/room number, building name etc.
    - `postal_code` string — Postal code of the address.
    - `city` string — City of the address.
    - `country_code` string — Country code of the address in ISO3166 alpha-2 format.
    - `email` string — E-mail address of the party.
    - `phone` string — Phone number of the party.
    - `attributes` DynamicAttribute[] — Attributes for the party. Used for additional information about the party.
      - `name` string, required — Name of the attribute.
      - `value` string, required — Value of the attribute.
  - `pickup_details` ShipmentScheduleDetails
    - `date` string, date — Scheduled date.
    - `from` string, time — Scheduled earliest time. Format HH:MM:SS.
    - `to` string, time — Scheduled latest time. Format HH:MM:SS.
    - `instruction` string — Instruction to the carrier. Only applicable for products which supports instructions.
  - `delivery_details` ShipmentScheduleDetails
    - `date` string, date — Scheduled date.
    - `from` string, time — Scheduled earliest time. Format HH:MM:SS.
    - `to` string, time — Scheduled latest time. Format HH:MM:SS.
    - `instruction` string — Instruction to the carrier. Only applicable for products which supports instructions.
  - `parcels` ShipmentDraftParcel[]
    - `quantity` integer — Number of parcels of this kind. Maximum quantity depends on the product.
    - `weight` integer — Weight in grams per colli.
    - `length` integer — Length in cm
    - `width` integer — Width in cm
    - `height` integer — Height in cm
    - `volume` number — Volume in cubic metres
    - `loading_meter` number — Loading meter in meters
    - `description` string — Describes the contents of the parcel.
    - `package_type` string — Package type for the parcel. Must be a valid package type for the customer.
    - `stackable` boolean — Whether the parcel can be stacked.
    - `internal_reference` string, nullable — A reference for internal use to track parcels, not sent to the carrier.
    - `dangerous_goods` ShipmentDraftDangerousGood[]
      - `hazard_class` string — ADR class of the dangerous goods.
      - `un_number` string — UN number of the dangerous goods.
      - `net_weight` integer — Net weight in grams of the dangerous goods. Use either this or net_weight_kg.
      - `net_weight_kg` number — Net weight in kilograms of the dangerous goods. Use either this or net_weight.
      - `gross_weight` integer — Gross weight in grams of the dangerous goods. Use either this or gross_weight_kg.
      - `gross_weight_kg` number — gross weight in kilograms of the dangerous goods. Maximum 3 decimal places. Use either this or gross_weight.
      - `quantity` integer — Number of pieces of this kind of dangerous goods.
      - `packaging` string — Packaging the dangerous goods are contained in.
      - `description` string — Description of the dangerous goods.
      - `tunnel_restriction_code` string — Tunnel restriction code that applies to the dangerous goods.
      - `packing_group` string — Packing group that applies to the dangerous goods.
      - `environmentally_hazardous` boolean — Whether or not the dangerous goods are hazardous to the environment.
    - `declared_value` DeclaredValue, nullable — Value of the goods in the parcel. Used in terms of insurance for certain carriers.
      - `amount` number — Valued amount.
      - `currency_code` string — Currency code for the currency of the amount.
  - `pallet_exchange` PalletExchange
    - `pallets1` integer — The number of full pallets to exchange
    - `pallets2` integer — The number of half pallets to exchange
    - `pallets4` integer — The number of quarter pallets to exchange
  - `customs` ShipmentDraftCustoms
    - `attributes` DynamicAttribute[] — List of dynamic attributes for the customs information.
      - `name` string, required — Name of the attribute.
      - `value` string, required — Value of the attribute.
    - `export_reason` 'sale_of_goods' | 'gift' | 'documents' | 'commercial_samples' | 'returned_goods' | 'other', nullable — Reason for exporting the goods.
    - `freight_cost` number, nullable — Cost of freight.
    - `insurance_cost` number, nullable — Cost of insurance.
    - `currency_code` string, nullable — Currency code used for customs values.
    - `goods` ShipmentDraftCustomsGood[] — List of commodities included in the customs declaration.
      - `quantity` integer — Quantity of the good in the shipment.
      - `country_code` string — Country code of origin of the good.
      - `description` string — Description of the good.
      - `commodity_code` string — Commodity code (tariff/HS code) of the good.
      - `unit_value` number — Value of the good per unit.
      - `unit_weight` integer — Weight in grams of the good per unit.
      - `attributes` DynamicAttribute[] — Attributes for the commodity good. Used for additional information.
        - `name` string, required — Name of the attribute.
        - `value` string, required — Value of the attribute.
  - `cod` CashOnDelivery — Used for COD (cash on delivery) shipments, when booking with service code COD
    - `amount` number — The amount to be collected.
    - `currency_code` string — Currency code of the amount.
    - `account_number` string — The account number which should receive the amount that has been collected.
  - `carrier_insurance` CarrierInsurance — Object for indicating carrier insurance on the shipment. Only usable for specific carriers and when an insurance service code is provided.
    - `amount` number, nullable — Amount in the given currency that should be insured for the shipment.
    - `currency_code` string, nullable — Indicates the currency code for the insured value.
  - `attributes` DynamicAttribute[] — List of dynamic attributes for the shipment draft.
    - `name` string, required — Name of the attribute.
    - `value` string, required — Value of the attribute.

## 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)
