openapi: 3.2.0 info: title: QUOTE API DEMO Public API description: Submit a quote request version: v1 servers: - url: https://api.dsv.com/qs-demo/quote/v1 security: - apiKeyHeader: [] - apiKeyQuery: [] tags: - name: Public paths: /quotes: post: tags: - Public summary: Submit quote request description: Send a quote request to DSV to receive offers for Air, Sea, and Road freight operationId: Create parameters: - name: Authorization in: header description: 'OAuth 2.0 Bearer token. Format: Bearer .' required: true schema: type: string - name: DSV-Subscription-Key in: header description: Subscription key required to access the API. Provided by DSV required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/QuoteRequest' example: requestedBy: userId: string firstName: string lastName: string email: string language: string phone: string bookingParty: mdm: string mainMdm: string name: string address1: string address2: string address3: string country: string state: string zipCode: string city: string from: mdm: string mainMdm: string name: string address1: string address2: string address3: string country: string state: string zipCode: string city: string to: mdm: string mainMdm: string name: string address1: string address2: string address3: string country: string state: string zipCode: string city: string cargoType: LCL pickupType: DSV pickupDate: string deliveryType: DDS deliveryDate: string references: - name: string type: Shipper reference value: TestReference1 insurance: insuranceType: DSVProtect goodsType: STD goodsValue: value: 100 currency: EUR packages: - id: string goodsDescription: string packageType: BAG quantity: 0 totalWeight: 0 length: 0 width: 0 height: 0 totalVolume: 0 stackable: NotStackable palletSpace: 0 loadMeters: 0 temperatureControlled: minTemperature: 0 maxTemperature: 0 dangerousGoods: - unCode: string grossWeight: 0 subRisk: string packingGroup: string properShippingName: string cargoAircraftOnly: true shippingMark: string containers: - type: 40HC totalWeight: 0 description: string dangerousGoods: - unCode: string grossWeight: 0 subRisk: string packingGroup: string properShippingName: string cargoAircraftOnly: true temperatureControlledGoods: minTemperature: 0 maxTemperature: 0 temperatureControlledContainer: genSet: true temperature: 0 totalWeight: 0 air: originAirport: string destinationAirport: string batteries: None - No battery incoterms: code: EXW location: string serviceLevel: string notes: string sea: originPort: string destinationPort: string incoterms: code: EXW location: string serviceLevel: string notes: string road: incoterms: code: EXW location: string serviceAndSurchargeCodes: - string serviceLevel: string notes: string unitsOfMeasurement: dimension: CM weight: KG volume: M3 temperature: C source: myDSV files: - type: INV fileName: string file: string text/json: schema: $ref: '#/components/schemas/QuoteRequest' example: requestedBy: userId: string firstName: string lastName: string email: string language: string phone: string bookingParty: mdm: string mainMdm: string name: string address1: string address2: string address3: string country: string state: string zipCode: string city: string from: mdm: string mainMdm: string name: string address1: string address2: string address3: string country: string state: string zipCode: string city: string to: mdm: string mainMdm: string name: string address1: string address2: string address3: string country: string state: string zipCode: string city: string cargoType: LCL pickupType: DSV pickupDate: string deliveryType: DDS deliveryDate: string references: - name: string type: Shipper reference value: TestReference1 insurance: insuranceType: DSVProtect goodsType: STD goodsValue: value: 100 currency: EUR packages: - id: string goodsDescription: string packageType: BAG quantity: 0 totalWeight: 0 length: 0 width: 0 height: 0 totalVolume: 0 stackable: NotStackable - Goods are not stackable palletSpace: 0 loadMeters: 0 temperatureControlled: minTemperature: 0 maxTemperature: 0 dangerousGoods: - unCode: string grossWeight: 0 subRisk: string packingGroup: string properShippingName: string cargoAircraftOnly: true shippingMark: string containers: - type: 40HC totalWeight: 0 description: string dangerousGoods: - unCode: string grossWeight: 0 subRisk: string packingGroup: string properShippingName: string cargoAircraftOnly: true temperatureControlledGoods: minTemperature: 0 maxTemperature: 0 temperatureControlledContainer: genSet: true temperature: 0 totalWeight: 0 air: originAirport: string destinationAirport: string batteries: None - No battery incoterms: code: EXW - Ex works location: string serviceLevel: string notes: string sea: originPort: string destinationPort: string incoterms: code: EXW location: string serviceLevel: string notes: string road: incoterms: code: EXW location: string serviceAndSurchargeCodes: - string serviceLevel: string notes: string unitsOfMeasurement: dimension: CM weight: KG volume: M3 temperature: C source: myDSV files: - type: INV fileName: string file: string application/*+json: schema: $ref: '#/components/schemas/QuoteRequest' example: requestedBy: userId: string firstName: string lastName: string email: string language: string phone: string bookingParty: mdm: string mainMdm: string name: string address1: string address2: string address3: string country: string state: string zipCode: string city: string from: mdm: string mainMdm: string name: string address1: string address2: string address3: string country: string state: string zipCode: string city: string to: mdm: string mainMdm: string name: string address1: string address2: string address3: string country: string state: string zipCode: string city: string cargoType: LCL pickupType: DSV pickupDate: string deliveryType: DDS deliveryDate: string references: - name: string type: Shipper reference value: TestReference1 insurance: insuranceType: DSVProtect goodsType: STD goodsValue: value: 100 currency: EUR packages: - id: string goodsDescription: string packageType: BAG - Bag quantity: 0 totalWeight: 0 length: 0 width: 0 height: 0 totalVolume: 0 stackable: NotStackable - Goods are not stackable palletSpace: 0 loadMeters: 0 temperatureControlled: minTemperature: 0 maxTemperature: 0 dangerousGoods: - unCode: string grossWeight: 0 subRisk: string packingGroup: string properShippingName: string cargoAircraftOnly: true shippingMark: string containers: - type: 40HC totalWeight: 0 description: string dangerousGoods: - unCode: string grossWeight: 0 subRisk: string packingGroup: string properShippingName: string cargoAircraftOnly: true temperatureControlledGoods: minTemperature: 0 maxTemperature: 0 temperatureControlledContainer: genSet: true temperature: 0 totalWeight: 0 air: originAirport: string destinationAirport: string batteries: None - No battery incoterms: code: EXW location: string serviceLevel: string notes: string sea: originPort: string destinationPort: string incoterms: code: EXW location: string serviceLevel: string notes: string road: incoterms: code: EXW location: string serviceAndSurchargeCodes: - string serviceLevel: string notes: string unitsOfMeasurement: dimension: CM weight: KG volume: M3 temperature: C source: myDSV files: - type: INV fileName: string file: string responses: '200': description: Quote request submitted successfully content: application/json: schema: $ref: '#/components/schemas/QuoteResponse' example: createdDate: string lastModifiedDate: string quoteRequestId: string code: string requestedBy: userId: string firstName: string lastName: string email: string language: string phone: string requestDate: string readyForBookDate: string status: Draft bookingParty: mdm: string mainMdm: string name: string address1: string address2: string address3: string country: string state: string zipCode: string city: string pickupType: DSV deliveryType: DDS from: mdm: string mainMdm: string name: string address1: string address2: string address3: string country: string state: string zipCode: string city: string to: mdm: string mainMdm: string name: string address1: string address2: string address3: string country: string state: string zipCode: string city: string pickupDate: string deliveryDate: string references: - name: string type: Shipper reference value: TestReference1 insurance: insuranceType: DSVProtect goodsType: STD goodsValue: value: 100 currency: EUR cargoType: LCL source: myDSV packages: - id: string goodsDescription: string packageType: BAG quantity: 0 totalWeight: 0 length: 0 width: 0 height: 0 totalVolume: 0 stackable: NotStackable palletSpace: 0 loadMeters: 0 temperatureControlled: minTemperature: 0 maxTemperature: 0 dangerousGoods: - unCode: string grossWeight: 0 subRisk: string packingGroup: string properShippingName: string cargoAircraftOnly: true shippingMark: string containers: - type: 40HC totalWeight: 0 description: string dangerousGoods: - unCode: string grossWeight: 0 subRisk: string packingGroup: string properShippingName: string cargoAircraftOnly: true temperatureControlledGoods: minTemperature: 0 maxTemperature: 0 temperatureControlledContainer: genSet: true temperature: 0 air: originAirport: string destinationAirport: string batteries: None incoterms: code: EXW location: string serviceLevel: string notes: string sea: originPort: string destinationPort: string incoterms: code: EXW location: string serviceLevel: string notes: string road: incoterms: code: EXW location: string serviceAndSurchargeCodes: - string serviceLevel: string notes: string unitsOfMeasurement: dimension: CM weight: KG volume: M3 temperature: C quotes: - id: string quoteId: string code: string version: string quoteRequestId: string quoteProvider: Air status: AvailableForCalculation submissionDate: string responseDate: string validUntil: string type: Tariff modeOfTransport: Road revocationReason: string serviceLevel: string attachmentId: string price: value: 0 currency: string serviceAndSurcharges: - name: string amount: value: 0 currency: string id: string type: Undefined selected: true productCode: string activityCode: string serviceCode: string myDSVServiceType: string manualReview: true wasManualReview: true validStart: string frequency: string transitTime: string scheduledDeparture: string surchargeInclusive: true hideSurchargePricing: true notes: string showNotes: true manualReviewReason: string quoteProviderStatus: string bookingId: string quoteProviderCreatedDate: string totalWeight: 0 quotingCountry: string financialOwners: - modeOfTransport: Road country: string includedInRwf: true acceptanceDate: string reconfigurationTimestamp: string attachments: - modeOfTransport: Road attachmentId: string type: INV contentType: string fileName: string errors: - source: string code: string field: string message: string arg: {} '400': description: Request contains not valid data or internal server error content: application/json: schema: $ref: '#/components/schemas/CommandResult' example: success: true errors: - source: string code: string field: string message: string arg: {} '401': description: Not authorized '403': description: Lack of privileges to use this method '404': description: Quote request not found /quotes/{quoteRequestId}: get: tags: - Public summary: Get quote request description: Get quote request details by specifying the Quote request ID or Quote ID operationId: GetQuoteRequest parameters: - name: quoteRequestId in: path required: true schema: type: string - name: Authorization in: header description: 'OAuth 2.0 Bearer token. Format: Bearer .' required: true schema: type: string - name: DSV-Subscription-Key in: header description: Subscription key required to access the API. Provided by DSV required: true schema: type: string responses: '200': description: Quote request was returned successfully content: application/json: schema: $ref: '#/components/schemas/QuoteResponse' example: createdDate: string lastModifiedDate: string quoteRequestId: string code: string requestedBy: userId: string firstName: string lastName: string email: string language: string phone: string requestDate: string readyForBookDate: string status: Draft bookingParty: mdm: string mainMdm: string name: string address1: string address2: string address3: string country: string state: string zipCode: string city: string pickupType: DSV deliveryType: DDS from: mdm: string mainMdm: string name: string address1: string address2: string address3: string country: string state: string zipCode: string city: string to: mdm: string mainMdm: string name: string address1: string address2: string address3: string country: string state: string zipCode: string city: string pickupDate: string deliveryDate: string references: - name: string type: Shipper reference value: TestReference1 insurance: insuranceType: DSVProtect goodsType: STD goodsValue: value: 100 currency: EUR cargoType: LCL source: myDSV packages: - id: string goodsDescription: string packageType: BAG quantity: 0 totalWeight: 0 length: 0 width: 0 height: 0 totalVolume: 0 stackable: NotStackable palletSpace: 0 loadMeters: 0 temperatureControlled: minTemperature: 0 maxTemperature: 0 dangerousGoods: - unCode: string grossWeight: 0 subRisk: string packingGroup: string properShippingName: string cargoAircraftOnly: true shippingMark: string containers: - type: 40HC totalWeight: 0 description: string dangerousGoods: - unCode: string grossWeight: 0 subRisk: string packingGroup: string properShippingName: string cargoAircraftOnly: true temperatureControlledGoods: minTemperature: 0 maxTemperature: 0 temperatureControlledContainer: genSet: true temperature: 0 air: originAirport: string destinationAirport: string batteries: None - No battery incoterms: code: EXW location: string serviceLevel: string notes: string sea: originPort: string destinationPort: string incoterms: code: EXW location: string serviceLevel: string notes: string road: incoterms: code: EXW location: string serviceAndSurchargeCodes: - string serviceLevel: string notes: string unitsOfMeasurement: dimension: CM weight: KG volume: M3 temperature: C quotes: - id: string quoteId: string code: string version: string quoteRequestId: string quoteProvider: Air status: AvailableForCalculation submissionDate: string responseDate: string validUntil: string type: Tariff - Tariff modeOfTransport: Road revocationReason: string serviceLevel: string attachmentId: string price: value: 0 currency: string serviceAndSurcharges: - name: string amount: value: 0 currency: string id: string type: Undefined selected: true productCode: string activityCode: string serviceCode: string myDSVServiceType: string manualReview: true wasManualReview: true validStart: string frequency: string transitTime: string scheduledDeparture: string surchargeInclusive: true hideSurchargePricing: true notes: string showNotes: true manualReviewReason: string quoteProviderStatus: string bookingId: string quoteProviderCreatedDate: string totalWeight: 0 quotingCountry: string financialOwners: - modeOfTransport: Road country: string includedInRwf: true acceptanceDate: string reconfigurationTimestamp: string attachments: - modeOfTransport: Road attachmentId: string type: INV contentType: string fileName: string errors: - source: string code: string field: string message: string arg: {} '400': description: Request contains not valid data or internal server error content: application/json: schema: $ref: '#/components/schemas/CommandResult' example: success: true errors: - source: string code: string field: string message: string arg: {} '401': description: Not authorized '403': description: Lack of privileges to use this method '404': description: Quote request not found /quotes/filter: post: tags: - Public summary: Filter quote request description: Apply Filters to Quote API Requests operationId: FilterQuoteRequest parameters: - name: Authorization in: header description: 'OAuth 2.0 Bearer token. Format: Bearer .' required: true schema: type: string - name: DSV-Subscription-Key in: header description: Subscription key required to access the API. Provided by DSV required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/QuoteRequestFilter' example: pageNumber: 0 pageSize: 0 sort: property: CREATED_BY direction: ASC searchText: string statuses: - Draft mots: - Road fromCountry: string toCountry: string createdBy: string text/json: schema: $ref: '#/components/schemas/QuoteRequestFilter' example: pageNumber: 0 pageSize: 0 sort: property: CREATED_BY direction: ASC searchText: string statuses: - Draft mots: - Road fromCountry: string toCountry: string createdBy: string application/*+json: schema: $ref: '#/components/schemas/QuoteRequestFilter' example: pageNumber: 0 pageSize: 0 sort: property: CREATED_BY direction: ASC searchText: string statuses: - Draft mots: - Road fromCountry: string toCountry: string createdBy: string responses: '200': description: List of quote requests was returned successfully content: application/json: schema: $ref: '#/components/schemas/QuoteRequestResult' example: pageNumber: 0 pageSize: 0 totalPages: 0 totalResults: 0 results: - createdDate: string lastModifiedDate: string quoteRequestId: string code: string requestedBy: userId: string firstName: string lastName: string email: string language: string phone: string requestDate: string readyForBookDate: string status: Draft bookingParty: mdm: string mainMdm: string name: string address1: string address2: string address3: string country: string state: string zipCode: string city: string pickupType: DSV deliveryType: DDS from: mdm: string mainMdm: string name: string address1: string address2: string address3: string country: string state: string zipCode: string city: string to: mdm: string mainMdm: string name: string address1: string address2: string address3: string country: string state: string zipCode: string city: string pickupDate: string deliveryDate: string references: - name: string type: Shipper reference value: TestReference1 insurance: insuranceType: DSVProtect goodsType: STD goodsValue: value: 100 currency: EUR cargoType: LCL source: myDSV packages: - id: string goodsDescription: string packageType: BAG quantity: 0 totalWeight: 0 length: 0 width: 0 height: 0 totalVolume: 0 stackable: NotStackable palletSpace: 0 loadMeters: 0 temperatureControlled: minTemperature: 0 maxTemperature: 0 dangerousGoods: - unCode: string grossWeight: 0 subRisk: string packingGroup: string properShippingName: string cargoAircraftOnly: true shippingMark: string containers: - type: 40HC totalWeight: 0 description: string dangerousGoods: - unCode: string grossWeight: 0 subRisk: string packingGroup: string properShippingName: string cargoAircraftOnly: true temperatureControlledGoods: minTemperature: 0 maxTemperature: 0 temperatureControlledContainer: genSet: true temperature: 0 air: originAirport: string destinationAirport: string batteries: None incoterms: code: EXW location: string serviceLevel: string notes: string sea: originPort: string destinationPort: string incoterms: code: EXW location: string serviceLevel: string notes: string road: incoterms: code: EXW location: string serviceAndSurchargeCodes: - string serviceLevel: string notes: string unitsOfMeasurement: dimension: CM weight: KG volume: M3 temperature: C quotes: - id: string quoteId: string code: string version: string quoteRequestId: string quoteProvider: Air status: AvailableForCalculation submissionDate: string responseDate: string validUntil: string type: Tariff modeOfTransport: Road revocationReason: string serviceLevel: string attachmentId: string price: value: 0 currency: string serviceAndSurcharges: - name: string amount: value: 0 currency: string id: string type: Undefined selected: true productCode: string activityCode: string serviceCode: string myDSVServiceType: string manualReview: true wasManualReview: true validStart: string frequency: string transitTime: string scheduledDeparture: string surchargeInclusive: true hideSurchargePricing: true notes: string showNotes: true manualReviewReason: string quoteProviderStatus: string bookingId: string quoteProviderCreatedDate: string totalWeight: 0 quotingCountry: string financialOwners: - modeOfTransport: Road country: string includedInRwf: true acceptanceDate: string reconfigurationTimestamp: string attachments: - modeOfTransport: Road attachmentId: string type: INV contentType: string fileName: string errors: - source: string code: string field: string message: string arg: {} '400': description: Request contains not valid data or internal server error content: application/json: schema: $ref: '#/components/schemas/CommandResult' example: success: true errors: - source: string code: string field: string message: string arg: {} '401': description: Not authorized '403': description: Lack of privileges to use this method '404': description: None of quote requests were found using the criteria /quotes/{quoteRequestId}/cancel: post: tags: - Public summary: Cancel quote request description: Cancel previously submitted quote requests operationId: CancelQuoteRequest parameters: - name: quoteRequestId in: path required: true schema: type: string - name: Authorization in: header description: 'OAuth 2.0 Bearer token. Format: Bearer .' required: true schema: type: string - name: DSV-Subscription-Key in: header description: Subscription key required to access the API. Provided by DSV required: true schema: type: string responses: '200': description: OK '204': description: Quote request was canceled successfully '400': description: Request contains not valid data or internal server error content: text/plain: schema: $ref: '#/components/schemas/CommandResult' examples: default: value: null application/json: schema: $ref: '#/components/schemas/CommandResult' example: success: true errors: - source: string code: string field: string message: string arg: {} text/json: schema: $ref: '#/components/schemas/CommandResult' example: success: true errors: - source: string code: string field: string message: string arg: {} '401': description: Not authorized '403': description: Lack of privileges to use this method '404': description: Quote request not found /quotes/{quoteRequestId}/attachments/{attachmentId}: get: tags: - Public summary: Get quote attachment description: Get a specific quote attachment by providing the Quote Request ID or Attachment ID operationId: GetQuoteAttachment parameters: - name: quoteRequestId in: path required: true schema: type: string - name: attachmentId in: path required: true schema: type: string - name: Authorization in: header description: 'OAuth 2.0 Bearer token. Format: Bearer .' required: true schema: type: string - name: DSV-Subscription-Key in: header description: Subscription key required to access the API. Provided by DSV required: true schema: type: string responses: '200': description: Quote attachment was returned successfully content: application/json: schema: type: string format: binary example: string application/octet-stream: schema: type: string format: binary examples: default: value: null '400': description: Request contains not valid data or internal server error content: application/json: schema: $ref: '#/components/schemas/CommandResult' example: success: true errors: - source: string code: string field: string message: string arg: {} application/octet-stream: schema: $ref: '#/components/schemas/CommandResult' examples: default: value: null '401': description: Not authorized '403': description: Lack of privileges to use this method '404': description: Quote attachment not found components: schemas: WeightUOM: enum: - KG - LB type: string description: Weight unit of measure. KG = Kilogram. LB = Pound. FromAddress: allOf: - $ref: '#/components/schemas/Address' - required: - country - zipCode - city type: object properties: country: type: string description: ISO 3166-1 alpha-2 country code (e.g., DK, US). zipCode: type: string description: Postal/ZIP code. city: type: string description: City name. description: Origin (shipper) address details from where the cargo will be picked up. ServiceAndSurchargeType: enum: - Undefined - TransportServices - Surcharges type: string description: Defines whether a charge relates to a service or a surcharge (e.g.,Undefined = Undefined type. TransportServices = Transport services. Surcharges = Surcharges) BaseUpload: type: object properties: type: $ref: '#/components/schemas/AttachmentType' fileName: type: - string - 'null' description: Uploaded file name. example: invoice-12345.pdf file: type: - string - 'null' description: Base64-encoded file content. format: byte additionalProperties: false description: Base file upload with metadata VolumeUOM: enum: - M3 - F3 - FT3 type: string description: Volume unit of measure. M3 = Cubic meter. F3 = Cubic feet. FT3 = Cubic feet. IncotermsCode: enum: - EXW - FCA - CPT - CIP - DAP - DPU - DDP - FAS - FOB - CFR - CIF type: string description: Incoterms 2020 code. EXW = Ex works. FCA = Free carrier. CPT = Carriage paid to. CIP = Carriage and insurance paid to. DAP = Delivered at place. DPU = Delivered at place unloaded. DDP = Delivered duty paid. FAS = Free alongside ship. FOB = Free on board. CFR = Cost and freight. CIF = Cost insurance and freight. QuoteResponse: required: - bookingParty - cargoType - from - pickupDate - pickupType - requestedBy - source - to - unitsOfMeasurement - deliveryType type: object properties: createdDate: type: - string - 'null' description: Created date-time (UTC). format: date-time lastModifiedDate: type: - string - 'null' description: Last modified date-time (UTC). format: date-time quoteRequestId: type: - string - 'null' description: Quote request ID code: type: - string - 'null' description: Quote request code requestedBy: $ref: '#/components/schemas/Requestor' requestDate: type: - string - 'null' description: Quote request date-time (UTC). format: date-time readyForBookDate: type: - string - 'null' description: Ready-for-booking date-time (UTC). format: date-time status: $ref: '#/components/schemas/QuoteRequestStatus' bookingParty: $ref: '#/components/schemas/Address' pickupType: $ref: '#/components/schemas/PickupType' from: $ref: '#/components/schemas/Address' to: $ref: '#/components/schemas/Address' pickupDate: type: - string - 'null' description: Pickup date (YYYY-MM-DD). format: date deliveryType: $ref: '#/components/schemas/DeliveryType' deliveryDate: type: - string - 'null' description: Delivery date (YYYY-MM-DD). format: date references: type: - array - 'null' items: $ref: '#/components/schemas/Reference' description: Quote request references insurance: $ref: '#/components/schemas/Insurance' cargoType: $ref: '#/components/schemas/CargoType' source: $ref: '#/components/schemas/Source' packages: type: - array - 'null' items: $ref: '#/components/schemas/Package' description: List of packages included in the shipment containers: type: - array - 'null' items: $ref: '#/components/schemas/Container' description: List of containers in the shipment air: $ref: '#/components/schemas/AirDetails' sea: $ref: '#/components/schemas/SeaDetails' road: $ref: '#/components/schemas/RoadDetails' unitsOfMeasurement: $ref: '#/components/schemas/SelectedUOM' quotes: type: - array - 'null' items: $ref: '#/components/schemas/Quote' description: Quotes list totalWeight: type: - number - 'null' description: Shipment total weight in kilograms (kg) or as per unitsOfMeasurement.weight. format: double quotingCountry: type: - string - 'null' description: Quoting country (ISO 3166-1 alpha-2). financialOwners: type: - array - 'null' items: $ref: '#/components/schemas/FinancialOwner' description: List of financial owners acceptanceDate: type: - string - 'null' description: Acceptance date-time (UTC). format: date-time reconfigurationTimestamp: type: - string - 'null' description: Reconfiguration timestamp (UTC). format: date-time attachments: type: - array - 'null' items: $ref: '#/components/schemas/QuoteAttachment' description: List of saved attachments errors: type: - array - 'null' items: $ref: '#/components/schemas/Error' description: List of errors additionalProperties: false description: Details of quote request QuoteProvider: enum: - Air - Sea - Road - Xpress - AirSeaRoad type: string description: Identifies the DSV system or service responsible for providing the quote (e.g., Air = Air. Sea = Sea. Road = Road. Xpress = Express. AirSeaRoad = A&S road.) CargoType: enum: - LCL - FCL - LTL type: string description: Indicates the type of cargo handling mode — LCL (Loose Cargo), FCL (Full Container Load), or LTL (Less Truck Load). FinancialOwner: type: object properties: modeOfTransport: allOf: - $ref: '#/components/schemas/ModeOfTransport' description: Mode of transport for which this financial owner applies (e.g., Road, Air, Sea, Rail, Xpress). country: type: - string - 'null' description: ISO 3166-1 alpha-2 country code (e.g., US, DK). includedInRwf: type: - boolean - 'null' description: Indicates whether the financial owner participates in the Revenue & Freight Workflow (RWF). additionalProperties: false description: Financial owner details by mode and country. QuoteRequest: required: - requestedBy - bookingParty - from - to - cargoType - pickupType - deliveryType - pickupDate - deliveryDate - totalWeight - unitsOfMeasurement - source type: object properties: requestedBy: $ref: '#/components/schemas/Requestor' bookingParty: $ref: '#/components/schemas/BookingPartyAddress' from: $ref: '#/components/schemas/FromAddress' to: $ref: '#/components/schemas/ToAddress' cargoType: $ref: '#/components/schemas/CargoType' pickupType: $ref: '#/components/schemas/PickupType' pickupDate: type: string description: Pickup date (YYYY-MM-DD) format: date deliveryType: $ref: '#/components/schemas/DeliveryType' deliveryDate: type: string description: Delivery date (YYYY-MM-DD) format: date references: type: - array - 'null' items: $ref: '#/components/schemas/Reference' description: Quote request references insurance: $ref: '#/components/schemas/Insurance' packages: type: - array - 'null' items: $ref: '#/components/schemas/Package' description: List of packages included in the shipment containers: type: - array - 'null' items: $ref: '#/components/schemas/Container' description: List of containers in the shipment totalWeight: type: number description: Shipment total weight format: double air: $ref: '#/components/schemas/AirDetails' sea: $ref: '#/components/schemas/SeaDetails' road: $ref: '#/components/schemas/RoadDetails' unitsOfMeasurement: $ref: '#/components/schemas/SelectedUOM' source: $ref: '#/components/schemas/Source' files: type: - array - 'null' items: $ref: '#/components/schemas/BaseUpload' description: Optional attachments; supported for Air and Sea only. additionalProperties: false description: Details of quote request PickupType: enum: - DSV - DropOff type: string description: Defines the pickup method. DSV = Pickup by DSV. DropOff = Cargo handover to DSV at warehouse or terminal. TemperatureUOM: enum: - C - F type: string description: Unit of measurement for temperature — Celsius (C) or Fahrenheit (F). Incoterms: required: - code - location type: object properties: code: $ref: '#/components/schemas/IncotermsCode' location: type: string description: Named place for the selected Incoterms® 2020 rule. additionalProperties: false description: Details of Incoterms® 2020 rule and named place. Reference: required: - type - value type: object properties: name: type: string description: Reference name type: $ref: '#/components/schemas/ReferenceType' value: type: string description: Reference value as provided by the customer or system. additionalProperties: false description: Typed reference attached to the quote/booking (e.g., CustomerReference, OrderNumber). Amount: required: - value - currency type: object properties: value: type: number description: Amount value format: double currency: type: string description: ISO 4217 currency code. (e.g. USD, EUR) additionalProperties: false description: Monetary amount with currency AttachmentType: enum: - INV - GDS - CUS - HAZ - PKL - QUO type: string description: Attachment type. INV = Invoice document. GDS = Goods description. CUS = Customs document. HAZ = Hazardous materials document. PKL = Packing list. QUO = Quote with prices for customer. ModeOfTransport: enum: - Road - Air - Sea - Rail - Xpress type: string description: Indicates the primary mode of transportation — Road, Air, Sea, Rail, or Express. ServiceAndSurcharge: type: object properties: name: type: - string - 'null' description: Name of the service or surcharge (e.g., Fuel Surcharge, Linehaul). amount: allOf: - $ref: '#/components/schemas/Amount' description: Price or charge amount with currency. id: type: - string - 'null' description: Unique identifier for the service or surcharge. type: allOf: - $ref: '#/components/schemas/ServiceAndSurchargeType' description: Indicates whether this is a transport service or surcharge. selected: type: - boolean - 'null' description: Indicates whether this service or surcharge has been selected by the user. productCode: type: - string - 'null' description: Product code associated with the service or surcharge. activityCode: type: - string - 'null' description: Service or surcharge activity code serviceCode: type: - string - 'null' description: Service or surcharge code myDSVServiceType: type: - string - 'null' description: myDSV-specific service type additionalProperties: false description: Details about individual services or surcharges applicable to the quote. InsuranceGoodsType: enum: - STD - MTR - HHD - FRAGILE - UUG type: string description: Insurance goods type. STD = Standard goods. MTR = Motor vehicles, aircrafts, water- and pleasure crafts. HHD = Household goods. FRAGILE = Fragile goods, furniture, marble ceramics, art, antiques. UUG = Used and/or unpacked goods. BookingPartyAddress: allOf: - $ref: '#/components/schemas/Address' - required: - mdm - country - zipCode - city type: object properties: mdm: type: string description: DSV debtor number (MDM number) identifying the customer in DSV systems. country: type: string description: ISO 3166-1 alpha-2 country code (e.g., DK, US). zipCode: type: string description: Postal/ZIP code. city: type: string description: City name. description: Name and address of the party that created the booking. Package: required: - goodsDescription - packageType - quantity - totalWeight - length - width - height - totalVolume - stackable type: object properties: id: type: - string - 'null' description: Package ID goodsDescription: type: string description: Package contents description packageType: allOf: - $ref: '#/components/schemas/PackageType' description: Packaging unit (e.g., pallet, box, crate). quantity: type: integer description: Item quantity in the package format: int32 totalWeight: type: number description: Package total weight in kilograms (kg) or as per SelectedUOM.weight. format: double length: type: number description: Package length format: double width: type: number description: Package width format: double height: type: number description: Package height format: double totalVolume: type: number description: Package total volume (typically L×W×H) in cubic units per SelectedUOM.volume. format: double stackable: allOf: - $ref: '#/components/schemas/Stackable' description: Whether packages can be stacked. palletSpace: type: - integer - 'null' description: Pallet space for package format: int32 loadMeters: type: - number - 'null' description: Load meters for package format: double temperatureControlled: $ref: '#/components/schemas/TemperatureControlledGoods' dangerousGoods: type: - array - 'null' items: $ref: '#/components/schemas/PackageDangerousGoods' description: Details about dangerous goods in package shippingMark: type: - string - 'null' description: Marks & numbers printed on the package. additionalProperties: false description: Package details, dimensions, weight, and handling. example: goodsDescription: Printed brochures packageType: PLL - Pallet - 120cm x 80cm quantity: 10 totalWeight: 220.5 length: 120 width: 80 height: 150 totalVolume: 1.44 stackable: Stackable palletSpace: 1 loadMeters: 0.4 shippingMark: PO#12345 / Box 1-10 InsuranceType: enum: - DSVProtect - CargoInsurance type: string description: Defines the selected insurance coverage option, DSVProtect = DSV Protect. CargoInsurance = DSV Cargo Insurance ContainerDangerousGoods: required: - unCode - grossWeight - subRisk - packingGroup - properShippingName - cargoAircraftOnly type: object properties: unCode: type: string description: UN number identifying the dangerous goods (e.g., 1203 for Gasoline). grossWeight: type: number description: Gross weight of the dangerous goods in kilograms (kg). format: double subRisk: type: - string - 'null' description: Sub-risk classification, if applicable (e.g., Class 3 for flammable liquids). packingGroup: type: - string - 'null' description: Packing group according to UN classification — I (high danger), II (medium danger), or III (low danger). properShippingName: type: - string - 'null' description: Proper Shipping Name (PSN) as per the UN dangerous goods list (e.g., Gasoline). cargoAircraftOnly: type: boolean description: Indicates whether the dangerous goods shipment is restricted to cargo aircraft only (not permitted on passenger aircraft). additionalProperties: false description: Details about dangerous goods loaded within a shipping container, including UN number, weight, and classification data. RoadDetails: required: - incoterms - serviceLevel type: object properties: incoterms: allOf: - $ref: '#/components/schemas/Incoterms' description: Incoterms® 2020 rule and named place. Defines responsibilities, cost, and risk transfer between buyer and seller. For more information check https://www.dsv.com/en/insights/expert-opinions/what-are-incoterms serviceAndSurchargeCodes: type: - array - 'null' items: type: string description: Service and surcharge codes for road shipment serviceLevel: type: string description: Please enter the 3 letter/digit code of the requested service level. Please contact your local DSV contact for more information. notes: type: - string - 'null' description: Additional notes or special instructions for the road shipment. additionalProperties: false description: Details of road transport shipment, including incoterms, service level, and applicable surcharge codes. QuoteRequestStatus: enum: - Draft - AwaitingForOptions - CannotProvideQuotes - AwaitingUserInformation - AwaitingForQuotes - Cancelled - ReadyForBook - NoLongerValid - Accepted - Close type: string description: Displays the processing status of a submitted quote request (e.g., Draft = Draft. AwaitingForOptions = Awaiting for options. CannotProvideQuotes = Cannot provide quotes. AwaitingUserInformation = Awaiting user information. AwaitingForQuotes = Awaiting for quotes. Cancelled = Cancelled. ReadyForBook = Ready for book. NoLongerValid = No longer valid. Accepted = Accepted. Closed = Closed.) AirDetails: required: - originAirport - destinationAirport - batteries - incoterms - serviceLevel type: object properties: originAirport: type: string description: 'UN/LOCODE (5-character) of the first departure airport (e.g., DKCPH, USNYC). Note: IATA 3-letter codes (e.g., CPH, JFK) are not supported.' destinationAirport: type: string description: 'UN/LOCODE (5-character) of the final arrival airport (e.g., DKCPH, USNYC). Note: IATA 3-letter codes (e.g., CPH, JFK) are not supported.' batteries: allOf: - $ref: '#/components/schemas/BatteryType' description: Battery type classification for air transport compliance (e.g., None, Lithium, Dry). incoterms: allOf: - $ref: '#/components/schemas/Incoterms' description: Incoterms® 2020 rule and named place for the air shipment. serviceLevel: type: string description: 3-character service level code (contact your DSV representative for valid codes). notes: type: - string - 'null' description: Additional notes or special instructions for the air shipment. additionalProperties: false description: Details of the air transport shipment, including airports, battery declaration, Incoterms®, and service level. Error: type: object properties: source: type: - string - 'null' description: Error source code: type: - string - 'null' description: Error code field: type: - string - 'null' description: Field related to error message: type: - string - 'null' description: Error message arg: description: Value of the field that the error concerns additionalProperties: false description: Error in reponse PackageType: enum: - BAG - CAN - CAS - CLL - CON - CRT - CTN - DRM - EUR - GIB - HPL - IBC - IPL - JCN - LOT - PKG - PLL - PLT - PXL - QPL - UPL - LOAD - RLL - LD - PPL type: string description: Describes the physical packaging or load unit of the shipment. BAG = Bag. CAN = Can. CAS = Case. CLL = Colli. CON = Pallet container. CRT = Crate. CTN = Carton / box. DRM = Drum. EUR = Euro pallet. GIB = Gitterbox. HPL = Half pallet. IBC = IBC. IPL = Pallet 120x100. JCN = Jerry can. LOT = Lot. PKG = Package. PLL = Pallet 120x80. PLT = Pallet 110x110. PXL = Pallet 120x120. QPL = Quarter pallet. UPL = Pallet 120x110. LOAD = Load. RLL = Roll. LD = Load. PPL = Pallet 110x110. SortProperty: enum: - CREATED_BY - CREATED_DATE type: string description: Sort property. CREATED_BY = Sort by user who created quote request. CREATED_DATE = Sort by date when quote request was created. QuoteRequestFilter: type: object properties: pageNumber: type: integer description: Page number (1-based). format: int32 pageSize: type: integer description: Items per page (pagination) format: int32 sort: allOf: - $ref: '#/components/schemas/Sort' description: Sort criteria (property and direction). searchText: type: - string - 'null' description: Search text in quote requests statuses: type: - array - 'null' items: $ref: '#/components/schemas/QuoteRequestStatus' description: Filter by quote request statuses. format: Accepted, AwaitingForOptions, AwaitingForQuotes, AwaitingUserInformation, Cancelled, CannotProvideQuotes, Closed, Draft, NoLongerValid, ReadyForBook mots: type: - array - 'null' items: $ref: '#/components/schemas/ModeOfTransport' description: List of main transport mode the shipment format: Air, Road, Sea fromCountry: pattern: ^[A-Z]{2}$ type: - string - 'null' description: Origin country (ISO 3166-1 alpha-2). example: DE toCountry: pattern: ^[A-Z]{2}$ type: - string - 'null' description: Destination country (ISO 3166-1 alpha-2). example: US createdBy: type: - string - 'null' description: Identifier of the user who created the quote request (user ID or email). additionalProperties: false description: Search criteria for filtering and paging quote requests. example: pageNumber: 1 pageSize: 25 sort: property: CREATED_DATE direction: DESC searchText: booking party acme statuses: - AwaitingForQuotes - ReadyForBook mots: - Air - Air - Sea - Sea fromCountry: DK toCountry: US createdBy: XYZ@testsample.com BatteryType: enum: - None - Lithium - Dry type: string description: Battery type. None = No battery. Lithium = Lithium battery. Dry = Dry battery. TemperatureControlledContainer: required: - genSet - temperature type: object properties: genSet: type: boolean description: Indicates whether a generator set (GenSet) is required to maintain the container’s temperature during transit. temperature: type: number description: Target temperature setting for the container, as specified in the selected temperature unit (°C or °F) format: double additionalProperties: false description: Details of a temperature-controlled container, including GenSet requirement and target temperature setting. SelectedUOM: required: - dimension - weight - volume - temperature type: object properties: dimension: allOf: - $ref: '#/components/schemas/DimensionUOM' description: Unit for length/width/height (applies to fields such as package length/width/height). weight: allOf: - $ref: '#/components/schemas/WeightUOM' description: Unit for weight values (e.g., package totalWeight, shipment totalWeight). volume: allOf: - $ref: '#/components/schemas/VolumeUOM' description: Unit for volume values (e.g., package totalVolume). temperature: allOf: - $ref: '#/components/schemas/TemperatureUOM' description: Unit for temperature values used in temperature-controlled goods/containers. additionalProperties: false description: Units of measurement (UOM) used for all dimensional, weight, volume, and temperature fields. Provided by the requester in the quote request and echoed in the response to confirm the applied measurement units. Container: required: - description type: object properties: type: $ref: '#/components/schemas/ContainerType' totalWeight: type: - number - 'null' description: Total container weight in kilograms. format: double description: type: string description: Description of the container contents. dangerousGoods: type: - array - 'null' items: $ref: '#/components/schemas/ContainerDangerousGoods' description: Dangerous goods included in the container. temperatureControlledGoods: $ref: '#/components/schemas/TemperatureControlledGoods' temperatureControlledContainer: $ref: '#/components/schemas/TemperatureControlledContainer' additionalProperties: false description: Details of a shipping container Insurance: required: - insuranceType - goodsType - goodsValue type: object properties: insuranceType: allOf: - $ref: '#/components/schemas/InsuranceType' description: Selected insurance coverage option (e.g., DSV Protect or Cargo Insurance). goodsType: allOf: - $ref: '#/components/schemas/InsuranceGoodsType' description: Risk category of the shipped goods used for insurance rating (e.g., standard, fragile, used). goodsValue: allOf: - $ref: '#/components/schemas/Amount' description: Insured value of the goods including currency (ISO 4217). additionalProperties: false description: Insurance details for the quote, including coverage type, goods risk category, and insured value. SortDirection: enum: - ASC - DESC type: string description: Defines the sorting order for query results — ascending (ASC) or descending (DESC). TemperatureControlledGoods: required: - maxTemperature - minTemperature type: object properties: minTemperature: type: number description: Minimum allowable temperature for the goods, expressed in the selected temperature unit (°C or °F). format: double maxTemperature: type: number description: Maximum allowable temperature for the goods, expressed in the selected temperature unit (°C or °F). format: double additionalProperties: false description: Details of temperature-controlled goods, specifying the acceptable minimum and maximum temperature thresholds in the selected unit of measurement. Stackable: enum: - NotStackable - Stackable - Stacked type: string description: Defines whether goods can be stacked during transport (e.g., NotStackable = Goods are not stackable. Stackable = Goods are capable of being stacked with other goods. Stacked = Goods are stacked prior to pickup.) PackageDangerousGoods: required: - unCode - grossWeight - packingGroup - cargoAircraftOnly - subRisk - properShippingName type: object properties: unCode: type: string description: UN number identifying the dangerous goods (e.g., 1203 for Gasoline). grossWeight: type: number description: Gross weight of the dangerous goods in kilograms (kg). format: double subRisk: type: - string - 'null' description: Sub-risk classification, if applicable (e.g., Class 3 for flammable liquids). packingGroup: type: string description: Packing group according to UN classification — I (high danger), II (medium danger), or III (low danger). properShippingName: type: - string - 'null' description: Proper Shipping Name (PSN) as per UN dangerous goods list (e.g., Gasoline). cargoAircraftOnly: type: boolean description: Indicates whether the dangerous goods shipment is restricted to cargo aircraft only (not permitted on passenger aircraft). additionalProperties: false description: Details about dangerous goods contained within a package, including UN number, packing group, and weight specifications. DimensionUOM: enum: - CM - IN type: string description: Unit of measurement used for dimensions like length, width, and height (e.g., CM, IN). Source: enum: - myDSV - Road - AirSea - CRM - Public type: string description: Indicates the originating source of the request, such as myDSV = myDSV. Road = Road. AirSea = A&S. CRM = CRM. Public = Request originated from Public API. DeliveryType: enum: - DDS - CCX type: string description: Defines whether delivery is handled by DSV (DDS) or if cargo is handover by DSV at warehouse or terminal (CCX). QuoteAttachment: required: - type - fileName - file type: object properties: modeOfTransport: allOf: - $ref: '#/components/schemas/ModeOfTransport' description: Mode of transport associated with the attachment (e.g. Air, Sea only). attachmentId: type: - string - 'null' description: Unique identifier of the uploaded or generated attachment file. type: allOf: - $ref: '#/components/schemas/AttachmentType' description: Attachment type identifying the kind of file uploaded (e.g., INV - Invoice document, PKL - Packing list). contentType: type: - string - 'null' description: MIME type of the file (e.g., application/pdf, image/png). file: type: string description: File content encoded as a Base64 string. format: byte example: JVBERi0xLjQKJcTl8uXrp/Og0MTGCi4uLg== fileName: type: string description: Original file name including extension. example: test-invoice-0001.pdf additionalProperties: false description: Metadata and identification details of a quote-related file or document. example: type: INV - Invoice document fileName: test-invoice-0001.pdf file: JVBERi0xLjQKJcTl8uXrp/Og0MTGCi4uLg== CommandResult: type: object properties: success: type: boolean description: Indicates whether the request completed successfully. errors: type: - array - 'null' items: $ref: '#/components/schemas/Error' description: List of validation or processing errors, if any. additionalProperties: false description: Standard result wrapper containing success status and errors. Quote: type: object properties: id: type: - string - 'null' description: Quote ID — Internal unique identifier for the quote within DSV systems. quoteId: type: string description: Provider's quote ID code: type: - string - 'null' description: Quote reference code used for business tracking. version: type: - string - 'null' description: Quote version number when multiple revisions exist. quoteRequestId: type: - string - 'null' description: Identifier of the quote request from which this quote was generated. quoteProvider: $ref: '#/components/schemas/QuoteProvider' status: allOf: - $ref: '#/components/schemas/QuoteStatus' description: Current lifecycle status of the quote (e.g., ReadyForBook, Accepted, Expired). submissionDate: type: - string - 'null' description: Date and time when the quote was submitted for processing. format: date-time example: '2025-10-07T10:25:32.0000000+00:00' responseDate: type: - string - 'null' description: Date and time when the quote provider returned a response. format: date-time example: '2025-10-07T10:45:32.0000000+00:00' validUntil: type: - string - 'null' description: Expiration date of the quote validity. format: date-time example: '2025-10-15T11:59:59.0000000+00:00' type: $ref: '#/components/schemas/QuoteType' modeOfTransport: allOf: - $ref: '#/components/schemas/ModeOfTransport' description: Primary mode of transport (Air, Sea, Road, etc.). revocationReason: type: - string - 'null' description: Quote revocation reason serviceLevel: type: - string - 'null' description: Quote service level attachmentId: type: - string - 'null' description: Quote attachment ID price: $ref: '#/components/schemas/Amount' serviceAndSurcharges: type: - array - 'null' items: $ref: '#/components/schemas/ServiceAndSurcharge' description: List of services and surcharges manualReview: type: boolean description: Manual review requirement wasManualReview: type: - boolean - 'null' description: Manual review status validStart: type: - string - 'null' description: Start date from which the quote becomes valid. format: date-time example: '2025-10-07T12:00:00.0000000+00:00' frequency: type: - string - 'null' description: Service frequency transitTime: type: - string - 'null' description: Transit time in quote scheduledDeparture: type: - string - 'null' description: Scheduled departure date format: date surchargeInclusive: type: - boolean - 'null' description: Surcharge inclusion in quote hideSurchargePricing: type: - boolean - 'null' description: Surcharge pricing visibility notes: type: - string - 'null' description: Additional quote notes showNotes: type: - boolean - 'null' description: Notes visibility in quote manualReviewReason: type: - string - 'null' description: Manual review reason quoteProviderStatus: type: - string - 'null' description: Provider-reported quote status bookingId: type: - string - 'null' description: Booking ID quoteProviderCreatedDate: type: - string - 'null' description: Provider creation date format: date-time additionalProperties: false description: Detailed quote information including pricing, transport mode, validity, and conditions. QuoteType: enum: - Tariff - Spot - Tender type: string description: Specifies the category of the quote — Tariff (contract rate), Spot (ad-hoc rate), or Tender. ContainerType: enum: - 20DC - 40DC - 40HC - 45HC - 20RE - 40RE - 40REHC - 45REHC - 20OT - 40OT - 20FR - 20PL - 40PL - 20GOH - 40GOH - 20DC_HT - 20GP_SO - 20HC - 20OT_SO - 22T0 - 20TC_SO - 40DC_HT - 40HC_HT - 40HC_SO - 40OT_SO - 40DC_PW - 40HC_PW - 45HC_SO - 45GPHC - 45CS - 20GP - 40GP - 20GP_FG - 40GP_FG - 40HC_FG - 40RT type: string description: 'Container type. Examples: 20DC = 20'' dry. 40HC = 40'' high cube. 20RE = 20'' reefer.' QuoteStatus: enum: - AvailableForCalculation - Expired - Pending - RejectedByDSV - Cancelled - ReadyForBook - RevokedByDSV - RejectedByUser - Accepted - Closed type: string description: Represents the current lifecycle status of a quote (e.g., AvailableForCalculation = Available for calculation. Expired = Expired. Pending = Pending. RejectedByDSV = Rejected by DSV. Cancelled = Cancelled. ReadyForBook = Ready for book. RevokedByDSV = Revoked by DSV. RejectedByUser = Rejected by user. Accepted = Accepted. Closed = Closed.) Address: required: - city - country type: object properties: mdm: type: - string - 'null' description: DSV debtor number (MDM number) identifying the customer in DSV systems. mainMdm: type: - string - 'null' description: Main DSV debtor number (MDM number) identifying the customer in DSV systems. name: type: - string - 'null' description: Party or company name. address1: type: - string - 'null' description: Address line 1 address2: type: - string - 'null' description: Address line 2 address3: type: - string - 'null' description: Address line 3 country: pattern: ^[A-Z]{2}$ type: string description: ISO 3166-1 alpha-2 country code. state: type: - string - 'null' description: State/province/region (use official short code where applicable). zipCode: type: - string - 'null' description: Postal/ZIP code (country-appropriate format). city: type: string description: City/locality. additionalProperties: false description: Details of the address ReferenceType: enum: - Shipper - Consignee - OrderNumber - Other - Invoice type: string description: Classifies reference numbers linked to the shipment, such as Shipper = Sender reference. Consignee = Receiver reference. OrderNumber = Order reference. Other = Other. Invoice = Invoicing reference. Requestor: required: - userId - firstName - lastName - email - language - phone type: object properties: userId: type: string description: Requestor unique ID firstName: type: string description: Requestor first name lastName: type: string description: Requestor last name email: type: string description: Requestor email address format: email language: type: string description: Requestor preferred language phone: type: string description: Requestor phone number additionalProperties: false description: Details of the user who initiated the quote request. Sort: required: - property - direction type: object properties: property: allOf: - $ref: '#/components/schemas/SortProperty' description: 'Field used for sorting the results. Common values: CREATED_BY, CREATED_DATE.' direction: allOf: - $ref: '#/components/schemas/SortDirection' description: 'Sorting order: ASC for ascending, DESC for descending.' additionalProperties: false description: Sorting criteria for query results (e.g., sort quote requests by creation date or creator). ToAddress: allOf: - $ref: '#/components/schemas/Address' - required: - mdm - country - zipCode - city type: object properties: mdm: type: string description: DSV debtor number (MDM number) identifying the customer in DSV systems. country: type: string description: ISO 3166-1 alpha-2 country code (e.g., DK, US). zipCode: type: string description: Postal/ZIP code. city: type: string description: City name. description: Destination address details where the cargo will be delivered. QuoteRequestResult: type: object properties: pageNumber: type: integer description: Current page number (1-based). format: int32 pageSize: type: integer description: Number of items per page. format: int32 totalPages: type: integer description: Total number of pages available. format: int32 totalResults: type: integer description: Total number of results matching the filter. format: int32 results: type: array items: allOf: - $ref: '#/components/schemas/QuoteResponse' description: Page of results. Returns an empty array when no data is found. additionalProperties: false description: Paged result set for quote requests. SeaDetails: required: - originPort - destinationPort - incoterms - serviceLevel type: object properties: originPort: type: string description: UN/LOCODE of the origin port (e.g., DEHAM for Hamburg). destinationPort: type: string description: UN/LOCODE of the destination port (e.g., NLRTM for Rotterdam). incoterms: allOf: - $ref: '#/components/schemas/Incoterms' description: Incoterms® 2020 rule and named place for the sea shipment. serviceLevel: type: string description: 3-character service level code (contact your DSV representative for valid codes e.g., STD ). notes: type: - string - 'null' description: Additional notes or special instructions for the sea shipment. additionalProperties: false description: Details of the sea transport shipment, including UN/LOCODE ports, Incoterms®, and service level. securitySchemes: apiKeyHeader: type: apiKey name: DSV-Subscription-Key in: header apiKeyQuery: type: apiKey name: DSV-Subscription-Key in: query