openapi: 3.2.0 info: title: BOOKING (DEMO) - Air, Sea, Road (EU), Rail Draft API description: 'Submit bookings to DSV via the Booking API. Supported transport modes: Air, Sea, Road (EU) and Rail.' version: v2 servers: - url: https://api.dsv.com/my-demo/booking/v2 security: - apiKeyHeader: [] - apiKeyQuery: [] tags: - name: Draft paths: /bookings/getLabel/{bookingId}/{sscc}: get: tags: - Draft summary: 6. Get labels by bookingId and SSCC description: Generate labels for given bookingId and SSCC. operationId: getLabelBySSCC parameters: - name: bookingId in: path required: true schema: type: string - name: sscc in: path required: true schema: type: string - name: labelType in: query schema: type: string - name: printFormat in: query schema: type: string - name: Authorization in: header description: OAuth header required: true schema: type: string - name: DSV-Subscription-Key in: header description: DSV Subscription Key required: true schema: type: string responses: '200': description: Labels created content: x-application/zpl+json: schema: type: string example: string '400': description: Request contains not valid data content: application/json: schema: $ref: '#/components/schemas/ErrorDTO' example: code: ERR12345 message: 'Not found booking: 40257145990010785188' fields: - name: field_name message: validation error code: ERR12345 development: message: string exception: string '401': description: Not authorized content: application/json: schema: $ref: '#/components/schemas/SingleResponseEntityObject' '403': description: Lack of privileges to use this method content: application/json: schema: $ref: '#/components/schemas/SingleResponseEntityObject' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorDTO' example: code: ERR12345 message: 'Not found booking: 40257145990010785188' fields: - name: field_name message: validation error code: ERR12345 development: message: string exception: string /bookings/addPackages/{bookingId}: put: tags: - Draft summary: 4. Add packages to draft booking description: Add packages to existing drafts bookings. operationId: addPackages parameters: - name: bookingId in: path required: true schema: type: string - name: labelType in: query description: 'These are the supported label types - pdf - zpl If a "labelType" is not added to the request the label response will default to "pdf"' schema: enum: - pdf - zpl type: string default: pdf - name: printFormat in: query description: 'These are the supported print formats - Landscape - Portrait If a "printFormat" is not added to the request the label response will default to "Landscape"' schema: enum: - Landscape - Portrait type: string default: Landscape - name: Authorization in: header description: OAuth header required: true schema: type: string - name: DSV-Subscription-Key in: header description: DSV Subscription Key required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/OrderUpdates' example: OrderUpdates responses: '200': description: Packages added successfully content: application/json: schema: $ref: '#/components/schemas/PlaceBookingResponse' example: bookingId: '40257145990010780000' '400': description: Request contains not valid data content: application/json: schema: $ref: '#/components/schemas/ErrorDTO' example: code: ERR12345 message: 'Not found booking: 40257145990010785188' fields: - name: field_name message: validation error code: ERR12345 development: message: string exception: string '401': description: Not authorized content: application/json: schema: type: object '403': description: Lack of privileges to use this method content: application/json: schema: type: object '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorDTO' example: code: ERR12345 message: 'Not found booking: 40257145990010785188' fields: - name: field_name message: validation error code: ERR12345 development: message: string exception: string /bookings/createDraftBooking: post: tags: - Draft summary: 3. Create draft booking description: Create a draft booking with DSV. operationId: createDraftApiOnlyBooking parameters: - name: labelType in: query description: 'These are the supported label types - pdf - zpl If a "labelType" is not added to the request the label response will default to "pdf"' schema: enum: - pdf - zpl type: string default: pdf - name: printFormat in: query description: 'These are the supported print formats - Landscape - Portrait If a "printFormat" is not added to the request the label response will default to "Landscape"' schema: enum: - Landscape - Portrait type: string default: Landscape - name: Authorization in: header description: OAuth header required: true schema: type: string - name: DSV-Subscription-Key in: header description: DSV Subscription Key required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/Order' example: autobook: false templateName: string parties: sender: address: companyName: Test Company Name Inc. addressId: AddressID123 addressLine1: Test Address Line 1 addressLine2: Test Address Line 2 addressLine3: string city: Test Address City countryCode: DK state: string zipCode: '1234' instructions: Specific Address Party Instrution mdm: '6412345678' eori: DE123456789012AZ approvedShipper: string contact: name: Test Name email: testemail@testcompany.com telephone: '+4512345678' receiver: address: companyName: Test Company Name Inc. addressId: AddressID123 addressLine1: Test Address Line 1 addressLine2: Test Address Line 2 addressLine3: string city: Test Address City countryCode: DK state: string zipCode: '1234' instructions: Specific Address Party Instrution mdm: '6412345678' eori: DE123456789012AZ approvedShipper: string contact: name: Test Name email: testemail@testcompany.com telephone: '+4512345678' delivery: address: companyName: Test Company Name Inc. addressId: AddressID123 addressLine1: Test Address Line 1 addressLine2: Test Address Line 2 addressLine3: string city: Test Address City countryCode: DK state: string zipCode: '1234' instructions: Specific Address Party Instrution mdm: '6412345678' eori: DE123456789012AZ approvedShipper: string contact: name: Test Name email: testemail@testcompany.com telephone: '+4512345678' pickup: address: companyName: Test Company Name Inc. addressId: AddressID123 addressLine1: Test Address Line 1 addressLine2: Test Address Line 2 addressLine3: string city: Test Address City countryCode: DK state: string zipCode: '1234' instructions: Specific Address Party Instrution mdm: '6412345678' eori: DE123456789012AZ approvedShipper: string contact: name: Test Name email: testemail@testcompany.com telephone: '+4512345678' notify: address: companyName: Test Company Name Inc. addressId: AddressID123 addressLine1: Test Address Line 1 addressLine2: Test Address Line 2 addressLine3: string city: Test Address City countryCode: DK state: string zipCode: '1234' instructions: Specific Address Party Instrution mdm: '6412345678' eori: DE123456789012AZ approvedShipper: string contact: name: Test Name email: testemail@testcompany.com telephone: '+4512345678' freightPayer: address: companyName: Test Company Name Inc. addressId: AddressID123 addressLine1: Test Address Line 1 addressLine2: Test Address Line 2 addressLine3: string city: Test Address City countryCode: DK state: string zipCode: '1234' instructions: Specific Address Party Instrution mdm: '6412345678' eori: DE123456789012AZ approvedShipper: string contact: name: Test Name email: testemail@testcompany.com telephone: '+4512345678' bookingParty: address: companyName: Test Company Name Inc. addressId: AddressID123 addressLine1: Test Address Line 1 addressLine2: Test Address Line 2 addressLine3: string city: Test Address City countryCode: DK state: string zipCode: '1234' instructions: Specific Address Party Instrution mdm: '6412345678' eori: DE123456789012AZ approvedShipper: string contact: name: Test Name email: testemail@testcompany.com telephone: '+4512345678' carrier: address: companyName: Test Company Name Inc. addressId: AddressID123 addressLine1: Test Address Line 1 addressLine2: Test Address Line 2 addressLine3: string city: Test Address City countryCode: DK state: string zipCode: '1234' instructions: Specific Address Party Instrution mdm: '6412345678' eori: DE123456789012AZ approvedShipper: string contact: name: Test Name email: testemail@testcompany.com telephone: '+4512345678' product: name: Sea billOfLading: Original containerMode: FCL containers: - ref: TestContainerNumber1 type: 20RE genset: true temp: -20 dropOff: false services: serviceLevel: '401' cashOnDelivery: amount: value: 123.45 currency: DKK insurance: amount: value: 123.45 currency: DKK category: STD palletExchange: quantity: 2 type: EUR preAdvice: phone: '+4512345678' email: PreAdvice@companyname.com b2C: phone: '+4512345678' email: B2CService@companyname.com spotQuoteNumber: number: string thermotransport: true driverLoading: true tailLiftDelivery: true dangerousGoods: true getePallet: true geteParcel: true seaPortSelection: portOfLoading: code: DK FDH name: Frederikshavn portOfDischarge: code: DK FDH name: Frederikshavn airportSelection: airportOfDeparture: code: DK FDH name: Frederikshavn airportOfDestination: code: DK FDH name: Frederikshavn railPortSelection: portOfLoading: code: DK FDH name: Frederikshavn portOfDischarge: code: DK FDH name: Frederikshavn simpleServices: - name: string preAdviceMailPickUp: true preAdviceMailDelivery: true privateDeliveryCurbSide: true tailLiftPickUp: true fixPickUpTime: true fixDeliveryTime: true fixDayDelivery: true amPickUp: true pmPickUp: true amDelivery: true pmDelivery: true exportCustomsClearance: BY_DSV importCustomsClearance: BY_DSV airlineExpress: true incoterms: code: EXW location: TestCityPickup1 detailedGoodsDescription: - string packages: - quantity: 2 packageType: EUR totalWeight: 1900 netWeight: 1500 length: 120 height: 110 width: 80 stackable: 'No' totalVolume: 2.112 palletSpace: 1 loadingMeters: 0.8 description: Test Goods 1 shippingMarks: Test Shipping Marks 1 shippingMarksList: - string harmonizedCodes: - 0 temperatureMin: -22 temperatureMax: -18 containerNo: 0 battery: batteryType: DRY batteryPackageType: IN_EQUIPMENT isDangerous: true trackingNumbers: '[”00157145990039103076”,”00157145990039103083”]' dangerousGoods: - className: '''9''' subRisk: 9A flashPoint: 0 limitedQuantity: true marinePollutant: true packingGroup: II properShippingName: LITHIUM ION BATTERIES CONTAINED IN EQUIPMENT technicalName: string technicalNameNational: string temperatureMin: 0 temperatureMax: 0 type: ADR unCode: '3481' tunnelCode: E packagesCount: 2 packingKind: BOX netWeight: 800 grossWeight: 1000 netWeightUnit: KG grossWeightUnit: KG grossWeight: 1900 cargoAircraftOnly: false temperatureControlled: true references: - value: Test Reference type: SHIPPER_REFERENCE pickupInstructions: Test Pickup Instruction deliveryInstructions: Test Delivery Instruction additionalInstructions: - string pickupTime: date: '2020-08-30' start: '2025-05-30' end: '2025-05-30' deliveryTime: date: '2020-08-30' start: '2025-05-30' end: '2025-05-30' units: dimension: CM weight: KG volume: M3 loadingSpace: LM temperature: C controllingCountry: string productCode: string responses: '200': description: Booking submitted successfully content: application/json: schema: $ref: '#/components/schemas/PlaceBookingResponse' example: bookingId: '40257145990010780000' '400': description: Request contains not valid data content: application/json: schema: $ref: '#/components/schemas/ErrorDTO' example: code: ERR12345 message: 'Not found booking: 40257145990010785188' fields: - name: field_name message: validation error code: ERR12345 development: message: string exception: string '401': description: Not authorized content: application/json: schema: type: object '403': description: Lack of privileges to use this method content: application/json: schema: type: object '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorDTO' example: code: ERR12345 message: 'Not found booking: 40257145990010785188' fields: - name: field_name message: validation error code: ERR12345 development: message: string exception: string /bookings/submitDraftBooking/{bookingId}: post: tags: - Draft summary: 5. Submit draft booking description: Submit the existing draft booking. operationId: submitDraftBooking_1 parameters: - name: bookingId in: path required: true schema: type: string - name: labelType in: query description: 'These are the supported label types - pdf - zpl If a "labelType" is not added to the request the label response will default to "pdf"' schema: enum: - pdf - zpl type: string default: pdf - name: printFormat in: query description: 'These are the supported print formats - Landscape - Portrait If a "printFormat" is not added to the request the label response will default to "Landscape"' schema: enum: - Landscape - Portrait type: string default: Landscape - name: Authorization in: header description: OAuth header required: true schema: type: string - name: DSV-Subscription-Key in: header description: DSV Subscription Key required: true schema: type: string responses: '204': description: Booking is created content: application/json: schema: type: string example: string '400': description: Request contains not valid data content: application/json: schema: $ref: '#/components/schemas/ErrorDTO' example: code: ERR12345 message: 'Not found booking: 40257145990010785188' fields: - name: field_name message: validation error code: ERR12345 development: message: string exception: string '401': description: Not authorized content: application/json: schema: type: object '403': description: Lack of privileges to use this method content: application/json: schema: type: object '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorDTO' example: code: ERR12345 message: 'Not found booking: 40257145990010785188' fields: - name: field_name message: validation error code: ERR12345 development: message: string exception: string components: schemas: Order: required: - bookingReferenceCode - packages - parties - product type: object properties: autobook: type: boolean description: 'This option provides two ways to submit a booking to DSV, either by as a final booking to DSV without the need for further involvement by the customer (flag set to: True) or sending the booking to DSV’s myDSV customer portal as a draft booking (flag set to: False). In case autobook is true, several fields become business mandatory even if technically they are optional.' default: false example: true labelRequest: type: boolean description: 'This option provides two ways to process a booking to DSV, either by requesting the generation of a label and returning the label information (Base64) in the booking response (flag set to: True), or by processing the booking without generating a label (flag set to: False).' default: false example: true bookingReferenceCode: type: string description: Booking Reference Code example: '123' spotQuoteNumber: type: string description: Spot Quote Number example: 2f6192e1-f29c-ad1c-96c2-3501a361bdc1 templateName: enum: - range[-infinity, 64] type: string description: Name of a previously created template in myDSV customer portal. The template must be accessible in the current upload context. Values present in the template do not need to be included in the booking, even if they are marked as mandatory. parties: $ref: '#/components/schemas/Parties' product: $ref: '#/components/schemas/Product' services: $ref: '#/components/schemas/Services' incoterms: $ref: '#/components/schemas/Incoterms' detailedGoodsDescription: type: array items: type: string description: A description of the cargo commodity. xml: name: line description: A description of the cargo commodity. xml: wrapped: true packages: type: array items: $ref: '#/components/schemas/Package' description: Contains all package lines included in the booking. xml: wrapped: true references: type: array items: $ref: '#/components/schemas/OrderReference' description: A section to include references that can later be used to identify linked information. Multiple references of the same type are allowed. See the reference list for details. xml: wrapped: true pickupInstructions: type: array items: type: string description: Additional pickup instructions for the booking. xml: name: line example: Test Pickup Instruction description: Additional pickup instructions for the booking. xml: wrapped: true example: Test Pickup Instruction deliveryInstructions: type: array items: type: string description: Additional delivery instructions for the booking. xml: name: line example: Test Delivery Instruction description: Additional delivery instructions for the booking. xml: wrapped: true example: Test Delivery Instruction additionalInstructions: type: array items: type: string description: 'Additional instructions for the booking. Available options: Pickup, Delivery, Additional. Additional instructions are only available for transport modes: Air, Sea and Rail.' xml: name: line description: 'Additional instructions for the booking. Available options: Pickup, Delivery, Additional. Additional instructions are only available for transport modes: Air, Sea and Rail.' xml: wrapped: true pickupTime: $ref: '#/components/schemas/DateTimeRange' deliveryTime: $ref: '#/components/schemas/DateTimeRange' units: $ref: '#/components/schemas/Units' controllingCountry: type: string description: Specifies the controlling country. productCode: type: string description: Specifies the product code. description: Main structure, represents the booking Units: type: object properties: dimension: enum: - KG - M3 - DM3 - CM - M - LM - LTR - C - LB - FT3 - IN - FT - F type: string description: 'Dimension UOM: CM = Centimeter M = Meter (only for Air, Sea and Rail) IN = Inch FT = Feet (only for Air, Sea and Rail)' default: CM weight: enum: - KG - M3 - DM3 - CM - M - LM - LTR - C - LB - FT3 - IN - FT - F type: string description: 'Weight UOM: - KG = Kilo - LB = Pound' default: KG volume: enum: - KG - M3 - DM3 - CM - M - LM - LTR - C - LB - FT3 - IN - FT - F type: string description: 'Volume UOM: M3 = Cubic meter DM3 = Cubic decimetre (only for Air, Sea and Rail) LTR = Litre FT3 = Cubic feet' default: M3 loadingSpace: enum: - KG - M3 - DM3 - CM - M - LM - LTR - C - LB - FT3 - IN - FT - F type: string description: 'Loading Meters UOM: LM = Load Meter (only for Road)' default: LM temperature: enum: - KG - M3 - DM3 - CM - M - LM - LTR - C - LB - FT3 - IN - FT - F type: string description: 'Temperature UOM: - C = Celsius - F = Fahrenheit' default: C description: Defines the units of measurement (UOM) used for all measurements within the package section. It is recommended to use either all metric or all imperial UOM. DangerousGoods: required: - className - grossWeight - packagesCount - packingGroup - packingKind - type - unCode type: object properties: className: type: string description: "The UN className can be derived from the mandatory unCode.\n If this value is supplied, it needs to match the UN className that is stored for the provided unCode." example: '''9''' subRisk: type: string description: "The UN subRisk can be derived from the mandatory unCode.\n If this value is supplied, it needs to match the UN subRisk that is stored for the provided unCode." example: 9A flashPoint: type: number description: "The flashPoint must be provided in the \"Unit of Measure\" selected for temperature in the units object.\nThis can only be used for dangerous goods type = \"IMDG\". \nThis value can be mandatory depending on the UN code." limitedQuantity: type: boolean description: This value can be mandatory depending on the UN code. example: true marinePollutant: type: boolean description: This value can be mandatory depending on the UN code. example: true packingGroup: type: string description: This value can be mandatory depending on the UN code. example: II properShippingName: type: string description: "The UN properShippingName can be derived from the mandatory unCode.\n If this value is supplied, it needs to match the UN properShippingName that is stored for the provided unCode." example: LITHIUM ION BATTERIES CONTAINED IN EQUIPMENT technicalName: type: string description: This value can be mandatory depending on the UN code. technicalNameNational: type: string description: This value can be mandatory depending on the UN code. temperatureMin: type: number description: This value can be mandatory depending on the UN code. temperatureMax: type: number description: This value can be mandatory depending on the UN code. type: enum: - ADR - IMDG - IATA - DGR - RID type: string description: 'Classification type used for the declaration. ADR = according to “Agreement concerning the International Carriage of Dangerous Goods by Road” IMDG = according to “International Maritime Dangerous Goods Code” ' example: ADR unCode: type: string description: The UN code identifying the Dangerous Goods. example: '3481' tunnelCode: type: string description: This value can be mandatory depending on the UN code. example: E packagesCount: type: integer description: Number of Packages containing these dangerous goods format: int64 example: 2 packingKind: enum: - BAG - BOX - DRUM - IBC - JERRY - CP - LGM - BOB - PD - SB - DRM - JCN type: string description: '"Package type containing these dangerous goods. Possible values are: BAG - Bag BOX - Carton / Box IBC - Intermediate Bulk Container CP - Composite Packaging LGM - Light Gauge Metal Packaging BOB - Bundle of Bottles PD - Pressure Drum SB - Steel Bottle DRM - Drum JCN - Jerry Can" ' example: BOX netWeight: type: number description: Net weight of the dangerous goods example: 800 grossWeight: type: number description: Gross weight of the dangerous goods example: 1000 netWeightUnit: enum: - KG - M3 - DM3 - CM - M - LM - LTR - C - LB - FT3 - IN - FT - F type: string description: "Net Weight UOM: \nKG = Kilo \nLB = Pound\nLTR = Liter" grossWeightUnit: enum: - KG - M3 - DM3 - CM - M - LM - LTR - C - LB - FT3 - IN - FT - F type: string description: 'Gross Weight UOM: - KG = Kilo - LB = Pound' description: 'This section contains the details of the dangerous goods that need to be provided to DSV to execute a booking that contains dangerous goods. This section can only be used for product “Road”. For products “Air”, “Sea” and “Rail” the booking needs to be accompanied by shipper’s declaration for dangerous goods by document upload, email or other means. Please consult the white paper for Dangerous Goods here: https://www.dsv.com/en/insights/expert-opinions/dangerous-goods for details what needs to be submitted in this section.' RailPortSelectionService: type: object properties: portOfLoading: $ref: '#/components/schemas/PortType' portOfDischarge: $ref: '#/components/schemas/PortType' description: The service allows to request the departure/arrival of the cargo on a specified port of loading/discharge. The UN location code is mandatory, the name is optional. This service can only be selected for bookings with mode of transport "Rail". Product: required: - name type: object properties: name: enum: - Road - Air - Sea - Rail - Xpress type: string description: 'Main transport mode selection: - Road - Air - Sea - Rail' example: Sea billOfLading: enum: - Express - Original type: string description: 'Select the Bill of Lading type. Mandatory when product.name = "Sea". - Original = physical Bill of Lading - Express = electronic Bill of Lading Not required for Air, Road, or Rail.' example: Original containerMode: enum: - LCL - FCL type: string description: 'Select the Container mode. Mandatory when product.name = "Sea". Optional when product.name = "Rail". - FCL = full container load - LCL = less than container load Not available for Air or Road.' example: FCL containers: type: array items: $ref: '#/components/schemas/Container' description: "This section is only available for the products \"Sea\" and \"Rail\" while the Container mode is \"FCL\". \n\nIt is used to specify the required containers of a certain type. Additional attributes can be submitted for certain container types.\n\nMore details on container types can be found at https://www.dsv.com/en/our-solutions/modes-of-transport/sea-freight/shipping-container-dimensions" xml: wrapped: true dropOff: type: boolean description: "\"Select the Pickup mode\n\n- false = Pickup by DSV, \n- true = Cargo handover to DSV at Warehouse or Terminal \n\"Drop Off\" service is available in Shippers country and product mode is either \"Air\", \"Sea\" or \"Rail\"" example: false handover: type: boolean description: 'Select the Delivery mode: - false = Delivery by DSV - true = Cargo handover by DSV (dropOff becomes mandatory when "Handover" service is available in Shippers country and product is either "AIR", "SEA" or "RAIL")' example: false description: 'Dependency rules: - If product.name = "Sea": billOfLading and containerMode are mandatory. - If product.name = "Rail": containerMode is optional; billOfLading is not required. - If product.name is "Air" or "Road": billOfLading and containerMode are not applicable. - If product.name is "Rail" or "Sea" and containerMode = "FCL": the containers section becomes available. - dropOff and handover may become mandatory depending on country/service availability.' FieldDTO: type: object properties: name: type: string description: Error name example: field_name message: type: string description: Description of error example: validation error code: type: string description: Type of error example: ERR12345 description: Field Pickup: type: object properties: address: $ref: '#/components/schemas/Address' contact: $ref: '#/components/schemas/ContactPerson' description: Name and address of the party shipment is picked up. SeaPortSelectionService: type: object properties: portOfLoading: $ref: '#/components/schemas/PortType' portOfDischarge: $ref: '#/components/schemas/PortType' description: The service allows to request the departure/arrival of the cargo on a specified port of loading/discharge. This service can only be selected for bookings with mode of transport "Sea". The port UN location code is mandatory, the port name is optional. Party: required: - role type: object properties: address: $ref: '#/components/schemas/Address' contact: $ref: '#/components/schemas/ContactPerson' role: type: string description: Business role of the party description: Reserved for future use. Incoterms: required: - code - location type: object properties: code: enum: - EXW - FCA - FAS - FOB - DDP - CPT - CIP - DAF - DES - DEQ - DDU - DAT - DAP - CFR - CIF - DPU type: string description: 'Incoterms® Code according to Incoterms® 2020 Ex Works (EXW) Free Carrier (FCA) Carriage Paid to (CPT) Carriage and Insurance paid to (CIP) Delivered at Place (DAP) Delivered at Place Unloaded (DPU) NEW Delivered Duty Paid (DDP) The rules for sea and inland waterway transport also include: Free Alongside Ship (FAS) Free On Board (FOB) Cost and Freight (CFR) Cost Insurance and Freight (CIF)" ' example: EXW location: type: string description: The place should always be specified as precisely as possible, and not just be a city name. example: TestCityPickup1 description: Incoterms® describe the rights and obligations applicable between the buyer and seller of the goods being transported. They set out when transfer of liability and control take place, who pays for what and who is liable in the event of any damage or loss of goods in transit. The place should always be specified as precisely as possible, and not just be a city name. For more information check the Incoterms® Information on https://www.dsv.com/en/insights/expert-opinions/what-are-incoterms Amount: required: - currency - value type: object properties: value: type: number description: Cash amount requested example: 123.45 currency: enum: - AED - AFN - ALL - AMD - ANG - AOA - ARS - AUD - AWG - AZM - BAM - BBD - BDT - BGN - BHD - BIF - BMD - BND - BOB - BRL - BSD - BTN - BWP - BYR - BZD - CAD - CDF - CHF - CLP - CNY - COP - CRC - CUP - CVE - CYP - CZK - DJF - DKK - DOP - DZD - EEK - EGP - ERN - ETB - EUR - FJD - FKP - GBP - GEL - GHC - GIP - GMD - GNF - GTQ - GYD - HKD - HNL - HRK - HTG - HUF - IDR - ILS - INR - IQD - IRR - ISK - JMD - JOD - JPY - KES - KGS - KHR - KMF - KPW - KRW - KWD - KYD - KZT - LAK - LBP - LKR - LRD - LSL - LTL - LVL - LYD - MAD - MDL - MGF - MKD - MMK - MNT - MOP - MRO - MTL - MUR - MVR - MWK - MXN - MYR - MZM - NAD - NGN - NIO - NOK - NPR - NZD - OMR - PAB - PEN - PGK - PHP - PKR - PLN - PYG - QAR - ROL - RON - RUB - RWF - SAR - SBD - SCR - SDD - SEK - SGD - SHP - SIT - SKK - SLL - SOS - SRG - STD - SVC - SYP - SZL - THB - TJS - TMM - TND - TOP - TRL - TRY - TTD - TWD - TZS - UAH - UGX - USD - UYU - UZS - VEB - VEF - VND - VUV - WST - XAF - XAG - XAU - XCD - XDR - XOF - XPD - XPF - XPT - YER - YUM - ZAR - ZMK - ZWD type: string description: 3 letter ISO 4217 currency code of the cash amount Must be present if an amount is posted. (e.g. USD) xml: attribute: true example: DKK description: Represents the insurance amount OrderReference: required: - type - value type: object properties: value: enum: - range[-infinity, 30] type: string description: Reference value example: Test Reference type: enum: - SHIPPER_REFERENCE - CONSIGNEE_REFERENCE - INVOICING_REFERENCE - CUSTOMS_REFERENCE - ORDER_NUMBER - OTHER type: string description: 'The reference type for the associated reference. This must be present if the reference is posted.' xml: attribute: true example: SHIPPER_REFERENCE description: References to be send along booking that can be later on used to identify linked information. SingleResponseEntityObject: type: object PalletExchangeService: required: - quantity - type type: object properties: quantity: type: integer description: Number of pallets requested to be exchanged format: int64 example: 2 type: enum: - BAG - CAN - CAS - CLL - CON - CRT - CTN - DRM - EUP - EUR - GIB - HPL - IBC - IPL - JCN - KPL - LOAD - LOD - LOT - PKG - PLL - PLT - PXL - QPL - UPL - RLL - PPL type: string description: 'Currently only supported for Euro pallets. Must be present if quantity is posted: EUR' example: EUR description: Instruct DSV to exchange EUR pallets at the collection/delivery location. This service can only be selected for bookings with mode of transport “Road” in some countries. Please contact your local DSV office for more information. FreightPayer: type: object properties: address: $ref: '#/components/schemas/Address' contact: $ref: '#/components/schemas/ContactPerson' description: Name and address of the party that receives the freight invoice.
This address type is only available for product "Road".
If provided for product "Air", "Sea", or "Rail" it will be ignored. Package: required: - description - packageType - quantity - totalWeight type: object properties: quantity: enum: - null type: integer description: Quantity of packages in this package line. format: int64 example: 2 packageType: enum: - BAG - CAN - CAS - CLL - CON - CRT - CTN - DRM - EUP - EUR - GIB - HPL - IBC - IPL - JCN - KPL - LOAD - LOD - LOT - PKG - PLL - PLT - PXL - QPL - UPL - RLL - PPL type: string description: "Package type to be used for this package line. Note that some Package types have default dimensions and therefore can only be used if units of measure are centimetres. \n- BAG = Bag \n- CAS = Case \n- CLL = Colli\n- CRT = Crate\n- CTN = Carton / box\n- RLL = Roll\n- CAN = Can\n- PPL = Pallet - 110cm x 110cm\n- PLL = Pallet - 120cm x 80cm\n- EUR = Euro pallet - 120cm x 80cm\n- GIB = Gitterbox - 120cm x 80cm\n- HPL = Half pallet - 80cm x 60cm\n- IBC = IBC - 120cm x 100cm\n- IPL = Pallet - 120cm x 100cm\n- JCN = Jerry can\n- QPL = Quarter pallet - 60cm x 40cm\n- LOAD = Load - is used when Mode of transport is Road. It is used when the number of packages is unknown at the moment during booking but the space a load requires is known\n- PLT = Pallet - unspecified\n- CON = Pallet container\n- PXL = Pallet - 120cm x 120cm\n- PKG = Package \n- LOT = Lot - is used when Mode of transport is Air&Sea\n- UPL = Pallet - 120cm x 110cm\n- RLL = Roll \n- PPL = Pallet - 110cm x 110cm (Only available for MoT Air, Sea, Rail)" example: EUR totalWeight: enum: - null type: number description: Total weight for this package line. For product "ROAD" the minimum weight allowed is 1 KG and no decimal is allowed after the decimal point. example: 1900 netWeight: enum: - null type: number description: Net weight for this package line. Net weight cannot exceed total Weight. For product "ROAD" the minimum weight allowed is 1 KG and no decimal is allowed after the decimal point. example: 1500 length: enum: - null type: number description: 'Dimension of single package in UOM : length. It becomes mandatory if dimensions are not present in packageType or if the packageType is not LOAD.' example: 120 height: enum: - null type: number description: 'Dimension of single package in UOM : height.' example: 110 width: enum: - null type: number description: 'Dimension of single package in UOM : width. It becomes mandatory if dimensions are not present in packageType or if the packageType is not LOAD.' example: 80 stackable: enum: - STACKABLE - STACKED - 'NO' - Stackable, Stacked, No type: string description: 'STACKABLE = the goods are capable of being stacked with other goods. STACKED = the goods are stacked prior to pickup. By using this value on a ""Road"" booking you must also provide ""palletSpace"" NO = the goods are not stackable. (default) For transport mode ""ROAD"" above enumeration is used as-is in the goods line. For transport modes ""AIR"", ""SEA"" and ""RAIL"" both ""STACKABLE"" and ""STACKED"" will flag the goods line as ""STACKABLE"".' example: 'No' totalVolume: enum: - null type: number description: "Total volume of this package line.\n If package dimensions are present the volume can be auto calculated and this element omitted" example: 2.112 palletSpace: enum: - null type: integer description: Number of pallets on the ground floor (e.g. if 6 pallets are stacked 2 by 2, palletSpace will be equal to 3). This is only available for product "Road" format: int64 example: 1 loadingMeters: enum: - null type: number description: Loading meter of this package line (one meter of length of goods on a trailer). This is only available for product "Road" example: 0.8 description: enum: - range[-infinity, 30] type: string description: Cargo description at package level. example: Test Goods 1 shippingMarks: enum: - range[-infinity, 30] type: string description: Marks and numbers at package level. This is only available for product "Road". example: Test Shipping Marks 1 shippingMarksList: type: array items: type: string description: Package level Marks and Numbers. Available for transport modes "Air", "Sea" and "Rail" xml: name: shippingMark description: Package level Marks and Numbers. Available for transport modes "Air", "Sea" and "Rail" xml: wrapped: true harmonizedCode: type: array items: type: string description: The HS code short for Harmonized Commodity Description and Coding System. List of numbers used by customs to classify a product. Consists of 6 to 15 digits. Available for transport modes "Air", "Sea" and "Rail" xml: name: hsc description: The HS code short for Harmonized Commodity Description and Coding System. List of numbers used by customs to classify a product. Consists of 6 to 15 digits. Available for transport modes "Air", "Sea" and "Rail" xml: wrapped: true temperatureMin: enum: - null type: number description: Minimum level temperature requirement for temperature controlled cargo. This is mandatory if "temperatureControlled" is TRUE. example: -22 temperatureMax: enum: - null type: number description: Maximum level temperature requirement for temperature controlled cargo. This is mandatory if "temperatureControlled" is TRUE. example: -18 containerNo: enum: - null type: integer description: "Reference to an FCL container line (see container section above).\n This is only to be used for products \"RAIL\" and \"SEA\".\n Use the running number of the container, not the value of the \"Ref\" tag of the container line." format: int64 example: 0 battery: $ref: '#/components/schemas/Battery' isDangerous: type: boolean description: Set to "true" if the contents of your shipment are classified as dangerous goods. For product "Road" it is mandatory to send the dangerousGoods element. For products "Air", "Sea" and "Rail" the booking needs to be accompanied by shipper’s declaration for dangerous goods by document upload, email or other means. example: true trackingNumbers: type: array items: type: string description: 'SSCC tracking number for the package element. The attribute must repeat as many times as stated in package/quantity. The format has to be conform with the specifications outlined on the GS1 web site: https://www.gs1.org/standards/id-keys/sscc' xml: name: trackingNumber example: '[”00157145990039103076”,”00157145990039103083”]' description: 'SSCC tracking number for the package element. The attribute must repeat as many times as stated in package/quantity. The format has to be conform with the specifications outlined on the GS1 web site: https://www.gs1.org/standards/id-keys/sscc' xml: wrapped: true example: '[”00157145990039103076”,”00157145990039103083”]' dangerousGoods: type: array items: $ref: '#/components/schemas/DangerousGoods' description: "This section contains the details of the dangerous goods that need to be provided to DSV to execute a booking that contains dangerous goods. \nThis section can only be used for product \"ROAD\".\nFor products \"AIR\", \"SEA\" and \"RAIL\" the booking needs to be accompanied by shipper’s declaration for dangerous goods by document upload, email or other means.\n\nPlease consult the white paper for Dangerous Goods here: https://www.dsv.com/en/insights/expert-opinions/dangerous-goods for details what needs to be submitted in this section." xml: wrapped: true grossWeight: enum: - null type: number description: Total gross weight for this package line. Gross weight cannot exceed Total weight. For product "ROAD" the minimum weight allowed is 1 KG and no decimal is allowed after the decimal point. example: 1900 deprecated: true cargoAircraftOnly: type: boolean description: Only used for dangerous goods packages, only used for product "AIR" example: false temperatureControlled: type: boolean description: Set to "true" if the package require a certain temperature (or temperature range) during transport. "temperatureMin" and "temperatureMax" attributes are required in case this is flagged as "true" example: true description: Contains a single package line with all associated attributes like type, quantity, weight, etc. Notify: type: object properties: address: $ref: '#/components/schemas/Address' contact: $ref: '#/components/schemas/ContactPerson' description: Name and address of the party who will be notified OrderUpdates: required: - packages type: object properties: packages: type: array items: $ref: '#/components/schemas/Package' description: The packages section contains all package lines that shall be included in the booking units: $ref: '#/components/schemas/Units' description: This structure contains the parameters for updating packages in draft bookings default: OrderUpdates xml: name: orderUpdates namespace: http://www.mydsv.com/Order Sender: type: object properties: address: $ref: '#/components/schemas/Address' contact: $ref: '#/components/schemas/ContactPerson' description: 'Name and address of the party sending the goods (shipper). If address is not already available, it will be created from supplied address data.' PortType: required: - code type: object properties: code: enum: - range[-infinity, 32] type: string description: A valid UN location code with an seaport / airport / rail terminal example: DK FDH name: type: string description: The associated location name example: Frederikshavn description: UN Location code and Name of the departure rail terminal LocalTime: type: object properties: hour: type: integer format: int32 minute: type: integer format: int32 second: type: integer format: int32 nano: type: integer format: int32 description: The requested pickup/delivery time (end of time window) using the 24 hours format hh:mm:ss example: '14:15:00' CashOnDeliveryService: required: - amount type: object properties: amount: $ref: '#/components/schemas/Amount' description: Request DSV to collect payment for the goods you are sending. This service can only be selected for bookings with mode of transport "Road" in some countries. Please contact your local DSV office for more information. Carrier: type: object properties: address: $ref: '#/components/schemas/Address' contact: $ref: '#/components/schemas/ContactPerson' description: Name and address of the carrier DevelopmentDTO: type: object properties: message: type: string description: verbose, plain language description of the problem for the app developer with hints on how to fix it exception: type: string description: dump from exception description: Development deprecated: true ContactPerson: required: - name type: object properties: name: type: string description: Name of the contact person example: Test Name email: type: string description: Email address of the contact person example: testemail@testcompany.com telephone: enum: - range[-infinity, 16] type: string description: Phone number of the contact person. example: '+4512345678' description: All fields related to Contact Person e.g. Name, Phone, email SpotQuoteNumberService: required: - number type: object properties: number: type: string description: This field carries the quotation number as received on the spot quotation description: You can fill in the reference received from DSV in a spot quotation to be used for invoicing this booking. CustomsClearance: type: object properties: customsClearance: enum: - 'NO' - BY_DSV - BY_3RD - BY_OWN type: string example: BY_DSV customsExportDeclaration: enum: - 'NO' - BY_DSV - BY_3RD - BY_OWN type: string example: BY_OWN FixTimeDeliveryService: type: object Container: type: object properties: ref: type: string description: A reference identifying the container example: TestContainerNumber1 type: enum: - 20DC - 20GP - 40DC - 40GP - 40HC - 45HC - 20RE - 40RE - 40REHC - 45REHC - 20OT - 40OT - 20FR - 40FR - 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_FG - 40GP_FG - 40HC_FG - UNDEFINED type: string description: "A container type is selected on the basis of the type and size of goods. \n- 20DC = 20' dry container\n- 20GP = 20' dry container\n- 40DC = 40' dry container\n- 40GP = 40' dry container\n- 20GP_SO = 20' dry - Shipper's Own container\n- 20HC = 20' high cube dry container\n- 40HC = 40' high cube dry container\n- 45HC = 45' high cube dry container\n- 20RE = 20' reefer container\n- 40RE = 40' reefer container\n- 40REHC = 40' high cube reefer container\n- 45REHC = 45' reefer container\n- 20OT = 20' open top container\n- 40OT = 40' open top container\n- 20OT_SO = 20' open top - Shipper's Own container\n- 40OT_SO = 40' open top - Shipper's Own container\n- 20DC_HT = 20' dry - Hard Top container\n- 40DC_HT = 40' Hard Top container\n- 40HC_HT = 40' high cube - Hard Top container\n- 40HC_SO = 40' high cube dry - Shipper's Own container\n- 45HC_SO = 45' high cube dry - Shipper's Own container\n- 40DC_PW = 40' dry pallet wide container\n- 40HC_PW = 40' high cube pallet wide container\n- 45GPHC = 45' high cube pallet wide container\n- 45CS = 45' cassette\n- 20FR = 20' flat rack container\n- 40FR = 40' flat rack container\n- 20PL = 20' platform container\n- 40PL = 40' platform container\n- 20GOH = 20' GOH container\n- 40GOH = 40' GOH container\n- 22T0 = 20' Tank container\n- 20TC_SO = 20' Tank - Shipper's Own container\n- 20GP_FG = 20' Food Grade Container\n- 40GP_FG = 40' Food Grade Container\n- 40HC_FG = 40' High cube dry (food grade) container\n- UNDEFINED = Other container type" example: 20RE genset: type: boolean description: A genset (generator set) is used to power the reefer container when normal power source is not available. E.g. when trucking over long distances or when chilled or sensitive cargo is being moved. Only available for reefer container types. example: true temp: type: number description: Maximum temperature allowed for moving the content in this container.Only available for reefer container types. UOM as specified in section “unitOfMeasure”. Accepted format decimal(3.1) example: -20 description: Specify the required containers of a certain type. Additional attributes can be submitted for certain container types. More details on container types can be found at https://www.dsv.com/en/our-solutions/modes-of-transport/sea-freight/shipping-container-dimensions SimpleService: required: - name type: object properties: name: type: string description: "This is a subcategory used for additional services of local agreements.\n Please contact your local DSV contact for more information." description: This is a subcategory used for additional services of local agreements. Please contact your local DSV contact for more information. BookingParty: type: object properties: address: $ref: '#/components/schemas/Address' contact: $ref: '#/components/schemas/ContactPerson' description: Name and address of the party that created the booking. DateTimeRange: required: - date type: object properties: date: type: string description: The requested pickup/delivery date using the format YYYY-MM-DD format: date example: '2020-08-30' start: $ref: '#/components/schemas/LocalTime' end: $ref: '#/components/schemas/LocalTime' description: Date with time range. Used e.g., for Pickup Date and Time. PlaceBookingResponse: required: - bookingId type: object properties: bookingId: type: string description: Unique identifier of the DSV booking example: '40257145990010780000' description: Contains information about submitted booking ErrorDTO: required: - code - message type: object properties: code: type: string description: Unique error code example: ERR12345 message: type: string description: Error message passed to the user example: 'Not found booking: 40257145990010785188' fields: type: array items: $ref: '#/components/schemas/FieldDTO' description: List of fields that didn't pass validation development: $ref: '#/components/schemas/DevelopmentDTO' description: Error InsuranceService: required: - amount - category type: object properties: amount: $ref: '#/components/schemas/Amount' category: enum: - STD - MTR - HHD - FRA - UUG type: string description: 'Insurance category. Must be present if an amount is posted. STD = Standard Goods MTR = Motor vehicles, aircrafts, water- and pleasure crafts HHD = Household goods FRA = Fragile goods, furniture, marble ceramics, art, antiques, etc. UUG = used and/or unpacked goods Must be present if an amount is posted.' example: STD description: Insure your goods at DSV’s own insurance company. More information about this service can be found at https://www.dsv.com/en/our-solutions/modes-of-transport/value-added-services/cargo-insurance Receiver: type: object properties: address: $ref: '#/components/schemas/Address' contact: $ref: '#/components/schemas/ContactPerson' description: Name and address of the party receiving the shipment (consignee). Services: type: object properties: serviceLevel: enum: - A01 - A02 - A03 - A04 - A05 - A06 - A07 - A08 - A09 - A10 - A11 - A12 - A13 - A14 - A15 - A16 - A17 - AAA - AAX - ABH - ABI - ABN - ABX - ACD - ACH - ACN - ADD - ADG - ADH - ADN - ADP - ADZ - AEC - AED - AEF - AEH - AEI - AEN - AES - AEX - AFA - AFD - AFH - AFI - AFN - AFX - AM - AMF - AMM - AMV - ANF - AOG - AON - APD - APP - APS - AS - ASS - AST - ATA - ATD - AUT - AUTOMOTIVE - AUTOMOTIVE_FORD - AUTOMOTIVE_MAN - AUTOMOTIVE_VW_AUDI_SKODA - AXS - B1A - B1B - B1C - B1D - B1E - B1F - B1G - B1H - B1I - B2A - B2B - B2C - B2D - B2E - B2F - B2G - B2H - B2I - B3A - B3B - B3C - B3D - B3E - B3F - B3G - B3H - B3I - B4A - B4B - B4C - B4D - B4E - B4F - B4G - B4H - B4I - BAA - BAR - BAT - BBB - BBK - BC - BCC - BCN - BDD - BDP - BEL - BPD - BPP - BS1 - BS2 - BUD - CAA - CAI - CAO - CDD - CDF - CDP - CDT - CIS - CLA - CME - CLD - COL - CON - COO - COT - COU - CPD - CPP - CRI - CRO - CRT - CSC - CSL - CUS - D2A - D2D - D2P - DCA - DDS - DCB - DDD - DDI - DDP - DEF - DGR - DGS - DHE - DHS - DHX - DID - DIN - DIR - DLV - DOT - DPA - DPB - DPD - DPI - DSC - DSI - DSVAirExpress - DSVEconomy - DSVParcels - DSVSpecialService - DSVAirExpressImport - DSVEconomyImport - DSVParcelsImport - DSVSpecialServiceImport - DSVLondonVan - DsvCrossTrade - DTF - DUM - E1A - E1B - E1C - E1D - E1E - E1F - E1G - E1H - E1I - E2A - E2B - E2C - E2D - E2E - E2F - E2G - E2H - E2I - E3A - E3B - E3C - E3D - E3E - E3F - E3G - E3H - E3I - E4A - E4B - E4C - E4D - E4E - E4F - E4G - E4H - E4I - ECB - ECG - ECN - ECO - ECV - EDD - EDG - EDP - EDS - ELD - EMD - EMR - EP1 - EPD - EPP - ETS - EXP - FCH - FDD - FDP - FEC - FLA - FIN - FOC - FPD - FPP - FRO - FXE - FXS - FXX - GEN - HAA - HAD - HAH - HAI - HAN - HAX - GAT - GRP - HUM - ICE - IMF - JPA - JPD - LCC - LCD - LCL - LD - LDC - LDD - LDP - LPD - LPP - LRO - MD - MED - MI1 - MI2 - MW - NDD - NDP - NFO - NON - NPD - NPP - NTW - '401' - '402' - '403' - '412' - '413' - O12 - O14 - O24 - O36 - O48 - O72 - O96 - OCC - OCD - OCE - OCY - ODD - ODG - ODP - ODY - OFP - ONP - OPD - OPP - OSC - OSP - OST - OWN - OYC - OYD - OYY - P1 - P1A - P1B - P1C - P1D - P1E - P1F - P1G - P1H - P1I - P2 - P2A - P2B - P2C - P2E - P2F - P2G - P2H - P2I - P2J - P3A - P3B - P3C - P3D - P3E - P3F - P3G - P3H - P3I - P4A - P4B - P4C - P4D - P4E - P4F - P4G - P4H - P4I - PAD - PAX - PBA - PBB - PBC - PBD - PBE - PBF - PBG - PBH - PBI - PBS - PBU - PBV - PBX - PBZ - PCA - PCB - PCC - PCD - PCE - PCF - PCG - PCH - PCI - PCJ - PCN - PCS - PCU - PCV - PCX - PCZ - PDA - PDD - PDH - PDI - PDN - PDX - PEA - PEH - PEI - PEN - PER - PEX - PFA - PFD - PFH - PFI - PFN - PFX - PMD - PPD - PPI - PRI - PRJ - PRM - PRO - PS - PUB - PV2 - PV3 - PY2 - PY3 - PR2 - PR3 - P2D - P2P - RA - RAC - RAI - RAL - RGL - ROU - S1A - S2A - S2D - S12 - S14 - S16 - S19 - S24 - S36 - S48 - S60 - S72 - S96 - SA - SAI - S1D - SCA - SCB - SCG - SCN - SCO - SCV - SDD - SDP - SEC - SFX - SHU - SL1 - SL2 - SL3 - SL4 - SL5 - SL6 - SLD - SMB - SMD - SPD - SPL - SPP - SPT - SS - SSA - SSI - SSQ - SST - STA - STB - STD - STO - TA1 - TA2 - TA3 - TDD - TDE - TDI - TDQ - TE - TE1 - TE2 - TE3 - TE4 - TE5 - TEA - TEC - TED - TEI - TEP - TEQ - TER - TIC - TID - TIQ - TP1 - TP2 - TP3 - TRK - TRU - TSA - TSG - TSO - TSP - TSR - ULD - UNK - UPE - UPS - UPX - USA - VOR - WAS - WE - WH - XA - XAI - XDD - XDP - XE - XEI - XPD - XPP - XPS - ZDA - ZWE type: string description: 'Please enter the 3 letter/digit code of the requested service level. This service can only be selected for bookings with mode of transport "AIR", "SEA" or "RAIL". Please contact your local DSV contact for more information.' example: '401' cashOnDelivery: $ref: '#/components/schemas/CashOnDeliveryService' insurance: $ref: '#/components/schemas/InsuranceService' palletExchange: $ref: '#/components/schemas/PalletExchangeService' customsClearance: $ref: '#/components/schemas/CustomsClearance' preAdvice: $ref: '#/components/schemas/PreAdviceService' b2C: $ref: '#/components/schemas/B2CService' spotQuoteNumber: $ref: '#/components/schemas/SpotQuoteNumberService' thermotransport: type: boolean description: Temperature-controlled handling of the cargo during the entire transport. Please specify the required temperature range within the package section. example: true fixTimeDelivery: $ref: '#/components/schemas/FixTimeDeliveryService' driverLoading: type: boolean description: Driver required to load truck on his own. This is only available for product "Road" example: true tailLiftDelivery: type: boolean example: true dangerousGoods: type: boolean description: "The service needs to be selected when sending a package containing dangerous goods.\n Please specify the required details within the package section by adding \"dangerousGoods\" details." example: true getePallet: type: boolean description: This is only available for product "Road" example: true geteParcel: type: boolean description: This is only available for product "Road" example: true seaPortSelection: $ref: '#/components/schemas/SeaPortSelectionService' airportSelection: $ref: '#/components/schemas/AirportSelectionService' railPortSelection: $ref: '#/components/schemas/RailPortSelectionService' simpleServices: type: array items: $ref: '#/components/schemas/SimpleService' description: This is a subcategory used for additional services of local agreements. Please contact your local DSV office for more information. preAdviceMailPickUp: type: boolean description: Instruct DSV to notify the sender of a booking about the planned collection date in advance. A valid email address on the sender/pickup contact is mandatory when the service is selected. This is only available for product "Road". example: true preAdviceMailDelivery: type: boolean description: Instruct DSV to notify the receiver of a booking about the planned delivery date in advance. A valid email address on the receiver/delivery contact is mandatory when the service is selected. This is only available for product "Road". example: true privateDeliveryCurbSide: type: boolean description: Delivery of cargo at ground level to a private address. It is mandatory to register a valid email address or phone number on the receiver/delivery contact. This is only available for product "Road". example: true tailLiftPickUp: type: boolean example: true fixPickUpTime: type: boolean description: Collection of the cargo within a 2h time window between 08:00-16:00 on a fixed date. The service requires the selection of a preferred pickup date in the pickupTime segment and cannot be combined with other pickup date & time related services such as "amPickUp"/"pmPickUp". This is only available for product "Road". example: true fixDeliveryTime: type: boolean description: Delivery of the cargo within a 2h time window between 08:00-16:00 on a fixed date. The service requires the selection of a preferred delivery date in the deliveryTime segment and cannot be combined with other delivery date & time related services such as "amDelivery"/"pmDelivery". This is only available for product "Road". example: true fixDayDelivery: type: boolean description: Delivery of the cargo on a fixed date. The service requires the selection of a preferred pickup date in the pickupTime segment and cannot be combined with other pickup date & time related services such as "amPickUp"/"pmPickUp". This is only available for product "Road". example: true amPickUp: type: boolean description: Collection of the cargo between 08:00-12:00 AM. The AM pickup service require the selection of a preferred pickup date and it cannot be combined with other pickup date & time related services such as "pmPickUp"/"fixPickUpTime". This is only available for product "Road". example: true pmPickUp: type: boolean description: Collection of the cargo between 12:00-04:00 PM. The PM pickup service require the selection of a preferred pickup date and it cannot be combined with other pickup date & time related services such as "amPickUp"/"fixPickUpTime". This is only available for product "Road". example: true amDelivery: type: boolean description: Delivery of the cargo between 08:00-12:00 AM. The AM delivery service require the selection of a preferred delivery date and it cannot be combined with other delivery date & time related services such as "pmDelivery"/"fixDeliveryTime". This is only available for product "Road". example: true pmDelivery: type: boolean description: Delivery of the cargo between 12:00-04:00 PM. The PM delivery service require the selection of a preferred delivery date and it cannot be combined with other delivery date & time related services such as "amDelivery"/"fixDeliveryTime". This is only available for product "Road". example: true exportCustomsClearance: enum: - 'NO' - BY_DSV - BY_3RD - BY_OWN type: string description: "Instruct DSV to create your customs documents or inform if this will be done by another party when selecting the export customs clearance service. This service can only be selected for bookings out of/into the European Union with mode of transport \"\"Road\"\". \n•\tBY_DSV = made by DSV \n•\tBY_3RD = made by 3rd party \n•\tBY_OWN = made by own means" example: BY_DSV importCustomsClearance: enum: - 'NO' - BY_DSV - BY_3RD - BY_OWN type: string description: "Instruct DSV to create your customs documents or inform if this will be done by another party when selecting the export customs clearance service. This service can only be selected for bookings out of/into the European Union with mode of transport \"\"Road\"\". \n•\tBY_DSV = made by DSV \n•\tBY_3RD = made by 3rd party \n•\tBY_OWN = made by own means" example: BY_DSV airlineExpress: type: boolean description: Airline Express service. Only available for transport modes "Air" description: Specifies additional services that can be selected for a booking. Service availability depends on factors such as transport mode, route, and country. Some services may incur additional costs. Contact your local DSV representative for more details. AirportSelectionService: type: object properties: airportOfDeparture: $ref: '#/components/schemas/PortType' airportOfDestination: $ref: '#/components/schemas/PortType' description: The service allows to request the departure/arrival of the cargo on a specified airport. The airport UN location code is mandatory, the airport name is optional. This service can only be selected for bookings with mode of transport "Air". PreAdviceService: type: object properties: phone: enum: - range[-infinity, 32] type: string example: '+4512345678' email: enum: - range[-infinity, 32] type: string example: PreAdvice@companyname.com description: "This service will be deprecated.\n Please use \"preAdviceMailPickUp\" or \"preAdviceMailDelivery\"" Battery: type: object properties: batteryType: enum: - DRY - LITHIUM type: string description: Battery type batteryPackageType: enum: - IN_EQUIPMENT - SEPARATE - WITH_EQUIPMENT type: string description: Battery Package type description: Battery information Parties: required: - bookingParty - receiver - sender type: object properties: sender: $ref: '#/components/schemas/Sender' receiver: $ref: '#/components/schemas/Receiver' delivery: $ref: '#/components/schemas/Delivery' pickup: $ref: '#/components/schemas/Pickup' notify: $ref: '#/components/schemas/Notify' freightPayer: $ref: '#/components/schemas/FreightPayer' bookingParty: $ref: '#/components/schemas/BookingParty' carrier: $ref: '#/components/schemas/Carrier' party: type: array items: $ref: '#/components/schemas/Party' description: reserved for future use description: Contains all parties involved in the booking. See the party definition section for more details. Address: type: object properties: companyName: enum: - range[-infinity, 36] type: string description: Company Name is mandatory if the address is not provided via "mdm", "addressId" or based on a myDSV template. (length 36) example: Test Company Name Inc. addressId: enum: - range[-infinity, 40] type: string description: 'Customer addressId refers to an entry in the address book within DSV’s myDSV customer portal. If a unique match is found, that address will be used and all other address fields will be ignored. This validation has lower priority than the "mdm" field. If the addressId is not unique, full address details must be provided. When the provided address matches an existing one, it will be used; otherwise, a new entry will be created in the myDSV address book. (Length: 40)' example: AddressID123 addressLine1: enum: - range[-infinity, 36] type: string description: Address line 1 example: Test Address Line 1 addressLine2: enum: - range[-infinity, 36] type: string example: Test Address Line 2 addressLine3: type: string readOnly: true city: enum: - range[-infinity, 40] type: string description: City name is mandatory if the address is not provided via "mdm", "addressId" or based on a myDSV template. example: Test Address City countryCode: enum: - AF - AL - DZ - AS - AD - AO - AI - AQ - AG - AR - AM - AW - AU - AT - AZ - BS - BH - BD - BB - BY - BE - BZ - BJ - BM - BT - BO - BQ - BA - BW - BR - IO - BN - BG - BF - BI - KH - CM - CA - CV - KY - CF - TD - CL - CN - CX - CC - CO - KM - CG - CD - CK - CR - CI - HR - CU - CW - CY - CZ - DK - DJ - DM - DO - EC - EG - SV - GQ - ER - EE - ET - FK - FO - FJ - FI - FR - GF - PF - TF - GA - GM - GE - DE - GH - GI - GR - GL - GD - GP - GU - GT - GG - GN - GW - GY - HT - HM - VA - HN - HK - HU - IS - IN - ID - IR - IQ - IE - IM - IL - IT - JM - JP - JE - JO - KZ - KE - KI - KP - KR - KW - KG - LA - LV - LB - LS - LR - LY - LI - LT - LU - MO - MK - MG - MW - MY - MV - ML - MT - MH - MQ - MR - MU - YT - MX - FM - MD - MC - MN - ME - MS - MA - MZ - MM - NA - NR - NP - NL - NC - NZ - NI - NE - NG - NU - NF - MP - 'NO' - OM - PK - PW - PS - PA - PG - PY - PE - PH - PN - PL - PT - PR - QA - RE - RO - RU - RW - BL - SH - KN - LC - MF - PM - VC - WS - SM - ST - SA - SN - RS - SC - SL - SG - SX - SK - SI - SB - SO - ZA - GS - SS - ES - LK - SD - SR - SJ - SZ - SE - CH - SY - TW - TJ - TZ - TH - TL - TG - TK - TO - TT - TN - TR - TM - TC - TV - UG - UA - AE - GB - US - UM - UY - UZ - VU - VE - VN - VG - VI - WF - EH - YE - ZM - ZW - AX - XK type: string description: 2 letter ISO country code (e.g. US) is mandatory if the address is not provided via "mdm", "addressId" or based on a myDSV template. example: DK state: enum: - range[-infinity, 40] type: string description: State name or state code. zipCode: enum: - range[-infinity, 10] type: string description: Postal code is mandatory if the address is not provided via "mdm", "addressId" or based on a myDSV template. example: '1234' instructions: enum: - range[-infinity, 36] type: string description: Instructions related to this party on the booking (e.g. pickup instructions for the pickup address) example: Specific Address Party Instrution deprecated: true mdm: enum: - range[-infinity, 10] type: string description: DSV debitor number ( MDM number) example: '6412345678' eori: enum: - EU Member State ISO 3166-1 alpha-2 Country Code + up to 15 alphanumeric uppercased characters type: string description: Economic Operators Registration and Identification number (EORI number). example: DE123456789012AZ approvedShipper: type: string description: Information about the sender/pickup being an approved shipper. Only available for transport modes "Air". description: All fields related to the address of the business partner. Delivery: type: object properties: address: $ref: '#/components/schemas/Address' contact: $ref: '#/components/schemas/ContactPerson' description: Name and address of the party where shipment is delivered B2CService: type: object properties: phone: enum: - range[-infinity, 32] type: string example: '+4512345678' email: enum: - range[-infinity, 32] type: string example: B2CService@companyname.com securitySchemes: apiKeyHeader: type: apiKey name: DSV-Subscription-Key in: header apiKeyQuery: type: apiKey name: DSV-Subscription-Key in: query