---
title: "Create a shipment"
method: POST
path: "/shipments"
tags: ["Shipments"]
---

# Create a shipment

`POST /shipments`

Creates a new shipment with the provided information.

## Request body

- CreateShipmentRequest
  - `test_mode` boolean — This option is deprecated and will be removed soon. Please use the [Sandbox](https://shipmondo.dev/docs/sandbox) instead.
  - `own_agreement` boolean, required — Whether or not the shipment should be booked via your own agreement or Shipmondo's agreement.
  - `customer_number` string — Customer number for the agreement you wish to use. Mostly used if multiple agreements for the same carrier are set up on the account. Defaults to the agreement that was created first.
  - `label_format` 'a4_pdf' | '10x19_pdf' | '10x19_png' | '10x19_zpl' | 'compact_png' | 'compact_pdf' | 'compact_zpl' — If label_format is specified, the shipping labels will be included in the response. Defaults to what is setup for the user.
  - `product_code` string, required — Product code of the product of the shipment.
  - `service_codes` string, required — Comma-separated string of codes of services that are booked with the shipment.
  - `services` string — Use service_codes instead.
  - `reference` string — Reference can be printed on the label and transmitted to carriers, when possible.
  - `additional_reference` string — An secondary reference. When possible, it will be transmitted to the carrier and printed on the label
  - `automatic_select_service_point` boolean — Whether or not the system should automatically select the service point closest to the receiver, when required.
  - `contents` string — General description of the contents of the shipment.
  - `term_of_trade` string — Incoterm for the shipments, e.g., DDP when customs should be paid by the sender.
  - `origin_shipment_id` string — ID of the origin shipment that the shipment is a return for.
  - `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.
  - `sender` object — Legacy object. Use `parties` array with `type` set to `sender` instead. See [migration guide](https://shipmondo.dev/docs/api/parties-migration) for details.
    - `name` string, required — Name of the sender. Can be either a company name or the name of a private person.
    - `attention` string — Attention of the sender. If the sender is a company, it is the contact person.
    - `address1` string, required — Address of the sender, including address number.
    - `address2` string — Second address line of the sender. Can be used for floor/room number, building name etc.
    - `zipcode` string, required — Zip code of the address.
    - `city` string, required — Name of the city that the zip code refers to.
    - `country_code` string, required — ISO 3166-1 alpha-2 country code of the sender.
    - `vat_id` string — Special VAT identification number; for example, GB EORI for Great Britain or VOEC for Norway.
    - `email` string — Email address of the sender
    - `mobile` string — Mobile number of the sender
    - `telephone` string — Landline phone number of the sender
  - `receiver` object — Legacy object. Use `parties` array with `type` set to `receiver` instead. See [migration guide](https://shipmondo.dev/docs/api/parties-migration) for details.
    - `name` string, required — Name of the receiver. Can be either a company name or the name of a private person.
    - `attention` string — Attention of the receiver. If the receiver is a company, it is the contact person.
    - `address1` string, required — Address of the receiver, including address number.
    - `address2` string — Second address line of the receiver. Can be used for, e.g.,apartment number.
    - `zipcode` string, required — Zip code of the address.
    - `city` string, required — Name of the city that the zip code refers to.
    - `country_code` string, required — ISO 3166-1 alpha-2 country code of the receiver address.
    - `vat_id` string — Special VAT identification number; for example, GB EORI for Great Britain.
    - `email` string — Email address of the receiver
    - `mobile` string — Mobile number of the receiver
    - `telephone` string — Landline phone number of the receiver
    - `instruction` string — Delivery instruction to the carrier. Only applicable for products which support receiver instructions.
    - `date` string, date — Requested delivery date.
    - `from_time` string, time — Requested earliest delivery time.
    - `to_time` string, time — Requested latest delivery time.
    - `member_id` string — Carrier member ID. Some products support/require this; e.g., DHL Parcel shipments to Packstations (DHL PostNumber).
    - `access_code` string — Gate/door code for the carrier to access the receiver's address.
  - `pick_up` object — Legacy object. Use `parties` array with `type` set to `pickup` instead. See [migration guide](https://shipmondo.dev/docs/api/parties-migration) for details.
    - `name` string
    - `attention` string
    - `address1` string
    - `address2` string — Second address line. Can be used for floor/room number, building name etc.
    - `country_code` string
    - `zipcode` string
    - `city` string
    - `telephone` string
    - `instruction` string — Pickup instruction to the carrier. Only applicable for products which supports pickup instructions.
    - `date` string, date — Requested pickup date.
    - `from_time` string, time — Requested earliest pickup time.
    - `to_time` string, time — Requested latest pickup time.
  - `bill_to` object — Legacy object. Use `parties` array with `type` set to `importer` instead. See [migration guide](https://shipmondo.dev/docs/api/parties-migration) for details.
    - `name` string
    - `attention` string
    - `address1` string
    - `address2` string — Second address line can be used for floor/room number, building name etc.
    - `zipcode` string
    - `city` string
    - `vat_id` string — VAT no. of the customs billing party.
    - `country_code` string
    - `telephone` string
    - `mobile` string
    - `email` string
    - `customer_number` string — Separate carrier customer number to bill if applicable with the given carrier.
  - `service_point` object — Legacy object. Use `parties` array with `type` set to `service_point` instead. See [migration guide](https://shipmondo.dev/docs/api/parties-migration) for details.
    - `id` string — Identifier of the service point.
    - `name` string — Name of the service point.
    - `address1` string — Address of the service point.
    - `address2` string — Second address line can be used for floor/room number, building name etc.
    - `zipcode` string — Zip code of the service point.
    - `city` string — City of the provided zipcode.
    - `country_code` string — ISO 3166-1 alpha-2 country code of the service point.
  - `return_to` object — Legacy object. Use `parties` array with `type` set to `return` instead. See [migration guide](https://shipmondo.dev/docs/api/parties-migration) for details.
    - `name` string
    - `attention` 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
    - `telephone` string
  - `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`.
  - `pickup_details` object — Details for pickup.
    - `date` string, date — Requested pickup date.
    - `from` string, time — Requested earliest pickup time. Format HH:MM:SS.
    - `to` string, time — Requested latest pickup time. Format HH:MM:SS.
    - `instruction` string — Pickup instruction to the carrier. Only applicable for products which supports pickup instructions.
  - `delivery_details` object — Details for delivery.
    - `date` string, date — Requested delivery date. format: YYYY-MM-DD.
    - `from` string, time — Requested earliest delivery time. Format HH:MM:SS.
    - `to` string, time — Requested latest delivery time. Format HH:MM:SS.
    - `instruction` string — Delivery instruction to the carrier. Only applicable for products which support delivery instructions.
  - `label_overlay` ShipmentLabelOverlay, nullable — Extra section so that shipment label includes a custom barcode and texts. The size of the label will be in 10 x 21 cm instead of 10 x 19 cm.
    - `barcode` string
    - `left_text` string
    - `right_text` string
  - `label_scale` LabelScale — Scale for the label. Only applicable when label_format: a4_pdf, 10x19_pdf, 10x19_zpl, compact_pdf, compact_zpl Note: Use this feature at your own risk. Shipmondo can’t guarantee the scaled labels are usable. Always get the label approved by the carrier before using this feature in production.
    - `scale_by` 'height' | 'width', required — Scale down the labels by either width or height.
    - `size` number, required — Desired scaled length in cm of dimension in "scale_by".If the length is higher or wider than the original labels, the labels will not be scaled.
  - `parcels` object[], required
    - `quantity` integer — Number of parcels of this kind. Maximum quantity depends on the product.
    - `weight` integer, required — 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
    - `running_metre` number — Running metre in metre
    - `description` string — Describes the contents of the parcel.
    - `packaging` string — Package type for the parcel. Must be a valid package type for the customer.
    - `stackable` boolean — Whether the parcel can be stacked.
    - `dangerous_goods` DangerousGood[]
      - `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.
    - `attributes` DynamicAttribute[] — Attributes for the parcel. Used for additional information.
      - `name` string, required — Name of the attribute.
      - `value` string, required — Value of the attribute.
    - `internal_reference` string, nullable — A reference for internal use to track parcels, not sent to the carrier.
  - `documents` UploadedDocument[] — Array of documents to be sent with the shipment. Only applicable for specific products and carriers.
    - `document_type` 'other' | 'proforma_invoice' | 'commercial_invoice' | 'cn_22' | 'cn_23' | 'consignment_note' | 'bill_of_lading' | 'auth_form' | 'certificate_of_origin' | 'export_accompanying_document' | 'export_license' | 'import_permit' | 'one_time_usmca' | 'power_of_attorney' | 'packing_list' | 'sed_document' | 'shippers_letter_of_instruction' | 'declaration' | 'nafta_certificate_of_origin' | 'air_waybill' | 'invoice' | 'customs_declaration' — Type of the document.
    - `signed_id` string — The signed identifier for the document, which can be obtained from the [upload document](https://shipmondo.dev/api-reference/#/operations/document_upload_post) endpoint.
  - `print` boolean — Print the label via the print client. Shipment labels can be sent out to the print queue automatically. Printer and format are specified in the print_at element.
  - `print_at` PrintAt
    - `host_name` string — Name of the PC / host where the print client is installed.
    - `printer_name` string — Name of the printer that is registered within the print client.
    - `label_format` 'a4_pdf' | '10x19_pdf' | '10x19_png' | '10x19_zpl' — The label format that the printer can accept.
  - `send_label` SendLabel — Send out the label as PDF via email after booking.
    - `name` string — Name of the recipient of the label.
    - `email` string — Email address of the recipient of the label, which the label should be sent to.
    - `label_format` 'a4_pdf' | '10x19_pdf' | 'compact_pdf' — The label format that should be attached to the email.
  - `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` CustomsRequest — Custom details used to generate proforma invoice or sent directly to the carrier. This object is only used for shipments where customs declaration is required.
    - `export_reason` 'sale_of_goods' | 'gift' | 'documents' | 'commercial_samples' | 'returned_goods' | 'other' — Reason for exporting the goods.
    - `currency_code` string — Currency code for declared prices.
    - `freight_cost` number — Cost of freight/shipping in the declared currency.
    - `insurance_cost` number — Cost of insurance in the declared currency.
    - `term_of_trade` string — Legacy field. Use `term_of_trade` in the root of the request instead.
    - `billed_to_custom_invoice_text` string — Legacy field. Use `importer` party with attribute `name` = `invoice_note`. See [migration guide](https://shipmondo.dev/docs/api/parties-migration) for details. A custom text for the shipment importer. Will not be transmitted to carriers, but will appear on proforma/commercial invoice under "Importer" if filled.
    - `sender_custom_invoice_text` string — Legacy field. Use `sender` party with attribute `name` = `invoice_note`. See [migration guide](https://shipmondo.dev/docs/api/parties-migration) for details. A custom text for the shipment sender. Will not be transmitted to carriers, but will appear on proforma/commercial invoice under "Sender" if filled.
    - `receiver_custom_invoice_text` string — Legacy field. Use `receiver` party with attribute `name` = `invoice_note`. See [migration guide](https://shipmondo.dev/docs/api/parties-migration) for details. A custom text for the shipment receiver. Will not be transmitted to carriers, but will appear on proforma/commercial invoice under "Delivery to" if filled.
    - `goods` CustomsGood[]
      - `quantity` number — Quantity of the goods in the `unit`. Example: 2.0 pieces or 0.5 m2.
      - `unit` 'piece' | 'm2' — Unit of the `quantity`.
      - `country_code` string — Country code of origin of the good.
      - `content` 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.
  - `replace_http_status_code` boolean — If replace_http_status_code is set to true, request will have HTTP status 200. The real HTTP status will be included in the response header as X-HTTP-Status-Code. This is to prevent runtime errors in some frameworks and make it possible to read the error messages.
  - `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.
  - `dfm` Dfm, nullable — Special object for extra information when shipping with Danske Fragtmænd. Otherwise it can be ignored.
    - `insurance_type` 'A' | 'B' | 'C' | 'D', nullable — Type of insurance to be booked.
    - `insurance_amount` number, nullable — Amount in DKK that should be insured for the shipment.
    - `dot_type` 'DO1' | 'DO2' | 'DO3' | 'DO4', nullable — Type of DOT used for the shipment.
    - `dot_time` string, time, nullable — Requested time of DOT delivery. Only valid for DO2, DO3 and DO4. Format: HH:MM
    - `pallets1` integer, nullable — Legacy field. Use `pallet_exchange` instead.
    - `pallets2` integer, nullable — Legacy field. Use `pallet_exchange` instead.
    - `pallets4` integer, nullable — Legacy field. Use `pallet_exchange` instead.
    - `limited_quantity_weight` integer, nullable — Legacy field. Use `parcels.dangerous_goods` instead.
    - `has_dangerous_goods` boolean, nullable — Legacy field. Use `parcels.dangerous_goods` instead.
  - `carrier_insurance` object — 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.
  - `add_barcode_to_label` boolean, nullable — Add a Code 128 barcode with the shipment ID on the label. Only applicable for product_codes UNI_AL & UNI_ALP.

## Response `200`

Successful.

- CreateShipmentResponse
  - `id` integer — ID of the shipment.
  - `created_at` string, date-time — Date and time the shipment was created.
  - `updated_at` string, date-time — Date and time the shipment was last updated.
  - `carrier_code` string — Carrier code referring to the carrier of the shipment.
  - `description` string — Text to describe the shipment, which can be used when presenting it.
  - `contents` string, nullable — General description of the contents of the shipment.
  - `term_of_trade` string — Incoterm for the shipments, e.g., DDP when customs should be paid by the sender.
  - `product_id` integer — ID of the product of the shipment.
  - `product_code` string — Product code of the product of the shipment.
  - `service_codes` string — Comma-separated string of codes of services that is booked with the shipment.
  - `services` string, nullable — Comma-separated string of IDs of services that are booked with the shipment.
  - `customer_number` string, nullable — Customer number of the agreement used to book the shipment. If value is *null* it is Shipmondo's agreement
  - `price` string — Price of the shipment including VAT.
  - `reference` string, nullable — Sender's reference of the shipment.
  - `additional_reference` string, nullable — An secondary reference. When possible, it will be transmitted to the carrier and printed on the label
  - `order_id` string, nullable — Order no. from webshop, if shipment is based on an order in Shipmondo.
  - `pkg_no` string — Carrier's shipment number, referring to the whole shipment.
  - `external_pkg_no` string, nullable — Package number from an external source.
  - `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.
  - `receiver` ShipmentReceiver — Receiver address for the object
    - `name` string, required — Name of the receiver. Can be either a company name or the name of a private person.
    - `attention` string, nullable — Attention of the receiver. If the receiver is a company, it is the contact person.
    - `address1` string, required — Address of the receiver, including address number.
    - `address2` string, nullable — Second address line of the receiver. Can be used for floor/room number, building name etc.
    - `zipcode` string, required — Zip code of the address.
    - `city` string, required — Name of the city that the zip code refers to.
    - `country_code` string, required — ISO 3166-1 alpha-2 country code of the receiver.
    - `email` string — Email address of the receiver
    - `vat_id` string, nullable — Sender's VAT ID in receiver country.
    - `mobile` string, nullable — Mobile number of the receiver
    - `telephone` string, nullable — Landline phone number of the receiver
    - `instruction` string, nullable — Delivery instruction to the carrier. Only applicable for products which support receiver instructions.
    - `access_code` string, nullable — Gate/door code for the carrier to access the receiver's address.
    - `date` string, date, nullable — Requested delivery date. format: YYYY-MM-DD
    - `from_time` string, time, nullable — Requested earliest delivery time. Format HH:MM
    - `to_time` string, time, nullable — Requested latest delivery time. Format HH:MM
    - `member_id` string, nullable — Carrier member ID. Some products support/require this; e.g., DHL Parcel shipments to Packstations (DHL PostNumber).
  - `sender` ShipmentSender — Sender address for the object
    - `name` string, required — Name of the sender. Can be either a company name or the name of a private person.
    - `attention` string, nullable — Attention of the sender. If the sender is a company, it is the contact person.
    - `address1` string, required — Address of the sender, including address number.
    - `address2` string, nullable — Second address line of the sender. Can be used for floor/room number, building name etc.
    - `zipcode` string, required — Zip code of the address.
    - `city` string, required — Name of the city that the zip code refers to.
    - `country_code` string, required — ISO 3166-1 alpha-2 country code of the sender address.
    - `vat_id` string, nullable — Sender's VAT ID in receiver country, e.g., VOEC for Norway or GB EORI for Great Britain.
    - `email` string — Email address of the sender
    - `mobile` string — Mobile number of the sender
    - `telephone` string — Landline phone number of the sender
  - `parcels` Parcel[]
    - `quantity` integer — Number of parcels of this kind. Maximum quantity depends on the product.
    - `weight` integer — Weight in grams.
    - `weight_kg` string — Weight in kilogram.
    - `pkg_no` string — Carrier's package number refers to the specific package/colli.
    - `pkg_nos` string[] — Carrier's package numbers for all packages if quantity is larger than 1.
    - `external_pkg_no` string, nullable — Relevant tracking information other than package number.
    - `length` integer, nullable — Length in cm
    - `width` integer, nullable — Width in cm
    - `height` integer, nullable — Height in cm
    - `volume` number, nullable — Volume in cubic metres
    - `running_metre` number, nullable — Running metre in metre
    - `content` string, nullable — Describes the contents of the parcel.
    - `packaging` 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.
    - `labelless_code` string, nullable — Labelless code for the parcel. Used for labelless shipments.
    - `dangerous_goods` DangerousGood[]
      - `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.
    - `attributes` DynamicAttribute[] — Attributes for the parcel. Used for additional information.
      - `name` string, required — Name of the attribute.
      - `value` string, required — Value of the attribute.
    - `gls_colli_id` string, nullable — GLS colli ID for the parcel. Used for GLS shipments.
  - `customs` CustomsResponse, nullable — Custom details used to generate proforma invoice or sent directly to the carrier. This object is only used for shipments where customs declaration is required.
    - `export_reason` 'sale_of_goods' | 'gift' | 'documents' | 'commercial_samples' | 'returned_goods' | 'other', nullable — Reason for exporting the goods.
    - `term_of_trade` string, nullable — Incoterm for the shipments, e.g., DDP when customs should be paid by the sender.
    - `declared_value` string, nullable — Total value of the goods in the shipment.
    - `currency_code` string, nullable — Currency code for prices declared in goods
    - `contents` string, nullable — General description of the contents of the shipment.
    - `duty_payment_type` string, nullable — Legacy field. Use `term_of_trade = 'DDP'` instead.
    - `duty_account_number` string, nullable — Legacy field. see `'importer'` with attribute `name = 'customer_number'`.
    - `goods` CustomsGood[]
      - `quantity` number — Quantity of the goods in the `unit`. Example: 2.0 pieces or 0.5 m2.
      - `unit` 'piece' | 'm2' — Unit of the `quantity`.
      - `country_code` string — Country code of origin of the good.
      - `content` 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.
    - `billed_to_custom_invoice_text` string, nullable — Legacy field. See `importer` party with attribute `name` = `invoice_note`. A custom text for the shipment importer. Will appear on proforma/commercial invoice under "Importer" if filled.
    - `sender_custom_invoice_text` string, nullable — Legacy field. See `sender` party with attribute `name` = `invoice_note`. A custom text for the shipment sender. Will appear on proforma/commercial invoice under "Sender" if filled.
    - `receiver_custom_invoice_text` string, nullable — Legacy field. See `receiver` party with attribute `name` = `invoice_note`. A custom text for the shipment receiver. Will appear on proforma/commercial invoice under "Delivery to" if filled.
  - `service_point` ShipmentServicePoint
    - `id` string — Identifier of the service point.
    - `name` string — Name of the service point.
    - `address1` string — Address line 1 of the service point.
    - `address2` string — Second address line can be used for floor/room number, building name etc.
    - `zipcode` string — Zip code of the service point.
    - `city` string — City of the provided zipcode.
    - `country_code` string — ISO 3166-1 alpha-2 country code of the service point.
    - `shipping_agent` string — Carrier code of the carrier that the service point belongs to.
  - `pick_up` PickUp
    - `name` string
    - `attention` string
    - `address1` string
    - `address2` string — Second address line. Can be used for floor/room number, building name etc.
    - `country_code` string
    - `zipcode` string
    - `city` string
    - `telephone` string
    - `instruction` string — Pickup instruction to the carrier. Only applicable for products which supports pickup instructions.
    - `date` string, date — Requested pickup date.
    - `from_time` string, time — Requested earliest pickup time.
    - `to_time` string, time — Requested latest pickup time.
    - `pickup_custom` boolean — Whether the shipment includes a pickup address other than sender address.
  - `bill_to` ShipmentBillTo — Customs billing information if it is other than sender/receiver.
    - `name` string
    - `attention` 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
    - `vat_id` string — VAT no. of the customs billing party.
    - `telephone` string
    - `mobile` string
    - `email` string
    - `bill_to_custom` boolean — Whether the shipment includes a billing address for customs other sender address.
    - `customer_number` string — Separate carrier customer number to bill if applicable with the given carrier.
  - `dfm` Dfm, nullable — Special object for extra information when shipping with Danske Fragtmænd. Otherwise it can be ignored.
    - `insurance_type` 'A' | 'B' | 'C' | 'D', nullable — Type of insurance to be booked.
    - `insurance_amount` number, nullable — Amount in DKK that should be insured for the shipment.
    - `dot_type` 'DO1' | 'DO2' | 'DO3' | 'DO4', nullable — Type of DOT used for the shipment.
    - `dot_time` string, time, nullable — Requested time of DOT delivery. Only valid for DO2, DO3 and DO4. Format: HH:MM
    - `pallets1` integer, nullable — Legacy field. Use `pallet_exchange` instead.
    - `pallets2` integer, nullable — Legacy field. Use `pallet_exchange` instead.
    - `pallets4` integer, nullable — Legacy field. Use `pallet_exchange` instead.
    - `limited_quantity_weight` integer, nullable — Legacy field. Use `parcels.dangerous_goods` instead.
    - `has_dangerous_goods` boolean, nullable — Legacy field. Use `parcels.dangerous_goods` instead.
  - `paperless_trade` boolean — If the shipment is created with paperless trade, then it is not necessary to print out physical proforma invoice.
  - `labelless_code` string, nullable — If labelless is supported on the certain shipment by the carrier, then this element will be available with the code that can be written on the parcel.
  - `source_id` string, nullable — ID of the source of the shipment from which it has been created.
  - `source_type` 'manual' | 'imported' | 'fulfillment' | 'return' | 'repurchase' | 'api' | 'address_book' — The type of the source from which the shipment has been created
  - `return_shipment_id` string, nullable — ID of the return shipment that has been created for the shipment.
  - `origin_shipment_id` string, nullable — ID of the origin shipment that the shipment was created as return for.
  - `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.
  - `insurance` object — Object is deprecated. Use "carrier_insurance" instead.
    - `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.
  - `label_overlay` ShipmentLabelOverlay, nullable — Extra section so that shipment label includes a custom barcode and texts. The size of the label will be in 10 x 21 cm instead of 10 x 19 cm.
    - `barcode` string
    - `left_text` string
    - `right_text` string
  - `waybill_reference` string, nullable — Reference of the bulk waybill that the shipment is included in.
  - `pickup_details` object — Details for pickup.
    - `date` string, date — Requested pickup date.
    - `from` string, time — Requested earliest pickup time. Format HH:MM:SS.
    - `to` string, time — Requested latest pickup time. Format HH:MM:SS.
    - `instruction` string — Pickup instruction to the carrier. Only applicable for products which supports pickup instructions.
  - `delivery_details` object — Details for delivery.
    - `date` string, date — Requested delivery date. format: YYYY-MM-DD.
    - `from` string, time — Requested earliest delivery time. Format HH:MM:SS.
    - `to` string, time — Requested latest delivery time. Format HH:MM:SS.
    - `instruction` string — Delivery instruction to the carrier. Only applicable for products which support delivery instructions.
  - `labels` object[] — Array of labels for the shipment. Will only be included if label_format is specified in the request.
    - `base64` string, base64 — Base64 encoded label
    - `file_format` 'pdf' | 'png' | 'zpl' — File format of the label

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