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

# Create a shipment quote

`POST /shipments/quote`

Creates a shipment quote from a given shipment request.

For shipments through Shipmondo's agreement, it determines the **estimated** price for a shipment on Shipmondo's agreement.

For own agreement shipments, it determines the price paid to Shipmondo and an **estimated** price for a shipment from the carrier (if supported by the carrier).

## 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.
  - `label_dpi` 200 | 300 — Specifies the DPI (dots per inch) for the label when printed in ZPL format.
  - `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` integer — 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, nullable — 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, nullable — 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, nullable — E-mail address of the party.
    - `phone` string, nullable — 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, nullable — Valued amount.
      - `currency_code` string, nullable — 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', required — Type of the document.
    - `signed_id` string, required — 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.

- CreateShipmentQuoteResponse
  - `carrier_code` string — Carrier code referring to the carrier of the product that is quoted for.
  - `description` string — Text to describe the quote, which can be used when presenting it.
  - `product_code` string — Product code referring to the product which is quoted for.
  - `service_codes` string — Comma-separated string of service codes referring to the services which are quoted for.
  - `price` number — Estimated price of the shipment, including VAT.
  - `price_before_vat` number — Estimated price of the shipment, excluding VAT.
  - `currency_code` string — Currency code of the price.
  - `carrier_price` object — Quoted price from carrier, if shipment is on own agreement and carrier quote is supported.
    - `price` number, nullable — Quoted price, excluding VAT.
    - `currency_code` string, nullable — Currency code of the quoted price, as returned by the carrier.

## 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/revisions/3b9f91693dec/schema)
