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