openapi: 3.2.0
info:
title: TRACKING (DEMO)- Air, Sea, Road (EU), Rail Shipment list API
description: 'Submit trackings to DSV via the tracking API. Supported transport modes: Air, Sea, Road (EU) and Rail.'
version: v2
servers:
- url: https://api.dsv.com/my-demo/tracking/v2
security:
- apiKeyHeader: []
- apiKeyQuery: []
tags:
- name: Shipment list
paths:
/shipments/list:
post:
tags:
- Shipment list
summary: Shipment list
description: 'Retrieve a list of shipments for a specific period, transport mode or shipment status.
DEMO ACCOUNT
Authorization: client_id: api.demo@demo.dsv.com, client_secret: Demo12345 '
operationId: listPost
parameters:
- name: Authorization
in: header
description: DSV Oauth header
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ListParamsDTO'
example: ListParams
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ShipmentSummaryAPI'
example:
- mainTmsShipmentId: string
shipmentId: string
bookingId: string
carrierTrackingId: 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: range[-infinity, 40]
zipCode: '1234'
instructions: Specific Address Party Instrution
mdm: '6412345678'
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: range[-infinity, 40]
zipCode: '1234'
instructions: Specific Address Party Instrution
mdm: '6412345678'
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: range[-infinity, 40]
zipCode: '1234'
instructions: Specific Address Party Instrution
mdm: '6412345678'
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: range[-infinity, 40]
zipCode: '1234'
instructions: Specific Address Party Instrution
mdm: '6412345678'
contact:
name: Test Name
email: testemail@testcompany.com
telephone: '+4512345678'
fromDate: string
toDate: string
SubmodeOfTransport: string
status: Draft
references:
- type: string
value: string
bookedBy: string
incoTerms: string
incoTermsLocation: string
goods:
totalColli: 0
totalWeight: 0
totalVolume: 0
totalLoadMeters: 0
requestedPickup: string
actualPickup: string
requestedDelivery: string
actualDelivery: string
barcode: string
barcodeLatestEvent: string
fromDateType: Booking
fromDateStart: string
fromDateEnd: string
toDateType: Booking
toDateStart: string
toDateEnd: string
components:
schemas:
ShipmentSummaryAPI:
required:
- parties
type: object
properties:
mainTmsShipmentId:
type: string
description: Identifier of the shipment as used in TMS
shipmentId:
type: string
description: DSV Shipment id - Identifier of the shipment
bookingId:
type: string
description: myDSV booking ID
carrierTrackingId:
type: string
description: 'Tniskracking ID as used by the underlying carrier.
Only available for "XPRESS" shipments.'
parties:
$ref: '#/components/schemas/ShipmentSummaryParties'
fromDate:
type: string
description: "The date/time the shipment starts from the Sender / Pickup location. Depending on the main transport mode and the current status of the shipment this is derived from the first matching event in the following sequence: \nActual Pickup / Trailer arrived at loading location / Actual Departure / Cargo received / Estimated pickup / Requested pickup / Estimated departure / Creation \nformat: 2020-07-13T22:00:00"
format: date-time
toDate:
type: string
description: 'The date/time the shipment stops at the Receiver / Delivery location. Depending on the main transport mode and the current status of the shipment this is derived from the first matching event in the following sequence:
Actual delivery / Handover responsibility of cargo / Trailer arrived at delivery location / Estimated delivery / Requested delivery / Actual arrival / Estimated arrival
format: 2020-07-13T22:00:00'
format: date-time
modeOfTransport:
type: string
description: 'Main mode of transport:
- AIR - Airfreight
- ROAD - Roadfreight
- SEA - Seafreight
- RAIL - Railway
- XPRESS - Express parcel shipments'
subModeOfTransport:
enum:
- FAS
- FSA
type: string
description: 'Sub-mode of shipment transport:
- FSA = First sea then air
- FAS = First air then sea'
status:
enum:
- API Draft
- Draft
- Booked
- In progress
- In Transit
- Completed
- Canceled
- Rejected
- Delivered
- Picked Up
- Template
- Submitted
type: string
description: 'Overall Booking/Shipment status:
- DRAFT - Booking not yet submitted
- BOOKED - Booking submitted, waiting for response from TMS
- IN_PROGRESS - Shipment created but not yet moving
- IN_TRANSIT - Shipment picked-up/cargo received, depending on the movement type.
- COMPLETED - Shipment delivered / handed over at destination, depending on the movement type.
- CANCELED - Shipment has been canceled
- REJECTED - Booking was rejected'
references:
type: array
items:
$ref: '#/components/schemas/TypeValueDTO'
description: All references that where used in the booking and/ or shipment to identify linked information. It is possible to receive several references of the same reference type.
bookedBy:
type: string
description: Name of the user that submitted the booking
incoTerms:
type: string
incoTermsLocation:
type: string
description: 'Incoterms® Code according to Incoterms® 2020
- EXW = Ex Works
- FCA= Free Carrier
- CPT = Carriage Paid to ''location''
- CIP = Carriage and Insurance paid to ''location''
- DAP = Delivered at Place
- DPU = Delivered at Place Unloaded
- DDP = Delivered Duty Paid
The rules for sea and inland waterway transport only include:
- FAS = Free Alongside Ship
- FOB = Free On Board
- CFR = Cost and Freight
- CPT = Cost Insurance and Freight
Older Incoterms® that may still be used in the message:
- DAF = Delivered at frontier
- DAT = Delivered at terminal
- DES = Delivered ex ship
- DEQ = Delivered ex quay
- DDU = Delivered duty unpaid'
goods:
$ref: '#/components/schemas/GoodsSummaryDto'
requestedPickup:
type: string
description: 'The date/time of the requested pickup at the pickup location.
Format: 2020-07-13T22:00:00'
format: date-time
actualPickup:
type: string
description: 'The date/time of the actual pickup at the pickup location.
Format: 2020-07-13T22:00:00'
format: date-time
requestedDelivery:
type: string
description: 'The date/time of the requested delivery at the delivery location.
Format: 2020-07-13T22:00:00'
format: date-time
actualDelivery:
type: string
description: 'The date/time of the actual delivery at the delivery location.
Format: 2020-07-13T22:00:00'
format: date-time
barcode:
type: string
barcodeLatestEvent:
type: string
fromDateType:
enum:
- Booking
- Creation
- Actual pickup
- Cargo received
- Estimated pickup
- Requested pickup
- Actual Departure
- Estimated Departure
- Actual delivery
- Handover
- Estimated delivery
- Requested delivery
- Actual arrival
- Estimated arrival
- Empty container picked up at depot - Origin
- Arrived Terminal
- Left Terminal
- Arrived at terminal
- Left at terminal
- Held at terminal
- Customs reported
- Import Customs Commenced
- Customs hold
- Customs cleared
- Export Customs Commenced
- Export Customs cleared
- Handover responsibility of cargo
- Handover of documents
- Empty container returned to depot
- Trailer at unloading point
- Trailer at loading point
- Delivery order received
- Customs File Created
- Receipt Commenced
- Cargo Available
- Customs created
- Actual arrival
- Actual Departure
- Actual delivery
- Actual pickup
- Handover
- Cargo received
- Canceled
- ''
- ''
- ''
- ''
- ''
- ''
- ''
type: string
description: 'The underlying event the "From Date" is based on.
Depending on the main transport mode and the current status of the shipment this is derived from the first matching event in the following sequence:
PCF - Actual Pickup
IGC - Trailer arrived at loading location
DEP - Actual Departure
IRP - Cargo received
ESTIMATED_PICKUP - Estimated pickup
REQUESTED_PICKUP - Requested pickup
ETD - Estimated departure
CREATION - Creation'
fromDateStart:
type: string
description: "The date/time of the event at the location the event took place. \nIn case the date type support ranges, this is the earliest date/time\nformat: 2020-07-13T22:00:00"
format: date-time
fromDateEnd:
type: string
description: "The date/time of the event at the location the event took place. \nIn case the date type support ranges, this is the latest date/time\nformat: 2020-07-13T22:00:00"
format: date-time
toDateType:
enum:
- Booking
- Creation
- Actual pickup
- Cargo received
- Estimated pickup
- Requested pickup
- Actual Departure
- Estimated Departure
- Actual delivery
- Handover
- Estimated delivery
- Requested delivery
- Actual arrival
- Estimated arrival
- Empty container picked up at depot - Origin
- Arrived Terminal
- Left Terminal
- Arrived at terminal
- Left at terminal
- Held at terminal
- Customs reported
- Import Customs Commenced
- Customs hold
- Customs cleared
- Export Customs Commenced
- Export Customs cleared
- Handover responsibility of cargo
- Handover of documents
- Empty container returned to depot
- Trailer at unloading point
- Trailer at loading point
- Delivery order received
- Customs File Created
- Receipt Commenced
- Cargo Available
- Customs created
- Actual arrival
- Actual Departure
- Actual delivery
- Actual pickup
- Handover
- Cargo received
- Canceled
- ''
- ''
- ''
- ''
- ''
- ''
- ''
type: string
description: 'The underlying event the "To Date" is based on.
Depending on the main transport mode and the current status of the shipment this is derived from the first matching event in the following sequence:
DCF - Actual delivery
Z70 - Handover responsibility of cargo
IGD - Trailer arrived at delivery location
ESTIMATED_DELIVERY - Estimated delivery
REQUESTED_DELIVERY - Requested delivery
ARV - Actual arrival
ETA - Estimated arrival'
toDateStart:
type: string
description: 'The date/time of the event at the location the event took place. In case the date type support ranges, this is the earliest date/time
format: 2020-07-13T22:00:00'
format: date-time
toDateEnd:
type: string
description: 'The date/time of the event at the location the event took place. In case the date type support ranges, this is the latest date/time
format: 2020-07-13T22:00:00'
format: date-time
DateFilter:
required:
- option
type: object
properties:
option:
enum:
- TOMORROW
- TODAY
- NEXT_WEEK
- NEXT_MONTH
- YESTERDAY
- PAST_WEEK
- PAST_MONTH
- BETWEEN
- TOMORROW
- TODAY
- NEXT_WEEK
- NEXT_MONTH
- YESTERDAY
- PAST_WEEK
- PAST_MONTH
- BETWEEN
type: string
description: 'Available filter options for dates:
- PAST_MONTH - Past 30 days
- PAST_WEEK - Past 7 days
- YESTERDAY - Yesterday
- TODAY - Today
- TOMORROW - Tomorrow
- NEXT_WEEK - Next 7 days
- NEXT_MONTH - Next 30 days
- BETWEEN - Custom date range. Fields from and to must be present when this option is selected'
from:
type: string
description: "Start date of custom date range.\n Minimum value is 90 days ago. Format: 2024-07-13"
to:
type: string
description: "End date of custom date range (inclusive).\n Format: 2024-07-15"
description: Only include Bookings/Shipments where the Delivery date (actual/estimated/requested) matches selected filter
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).
ContactPerson:
required:
- name
type: object
properties:
name:
maxLength: 34
type: string
description: Name of the contact person
example: Test Name
email:
maxLength: 34
type: string
description: Email address of the contact person
example: testemail@testcompany.com
telephone:
maxLength: 16
type: string
description: Phone number of the contact person.
example: '+4512345678'
description: All fields related to Contact Person e.g. Name, Phone, email
Address:
type: object
properties:
companyName:
maxLength: 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:
maxLength: 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:
maxLength: 36
type: string
description: Address line 1
example: Test Address Line 1
addressLine2:
maxLength: 36
type: string
description: additional address line
example: Test Address Line 2
addressLine3:
maxLength: 36
type: string
description: additional address line
readOnly: true
city:
maxLength: 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:
maxLength: 40
type: string
description: State name or state code.
zipCode:
maxLength: 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:
maxLength: 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:
maxLength: 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
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.
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.'
ListParamsDTO:
type: object
properties:
types:
enum:
- SENDER, RECEIVER, DOMESTIC, CROSS_TRADE
type: array
items:
enum:
- SENDER, RECEIVER, DOMESTIC, CROSS_TRADE
type: string
description: 'Only inlcude Bookings/Shipments where
- SENDER - the sender is in the same country as I am.
- RECEIVER - the receiver is in the same country as I am.
- DOMESTIC - the sender and the receiver are in the same country as I am.
- CROSS_TRADE - the sender and the receiver are in different countries as I am.'
description: 'Only inlcude Bookings/Shipments where
- SENDER - the sender is in the same country as I am.
- RECEIVER - the receiver is in the same country as I am.
- DOMESTIC - the sender and the receiver are in the same country as I am.
- CROSS_TRADE - the sender and the receiver are in different countries as I am.'
statuses:
enum:
- DRAFT, BOOKED, IN_PROGRESS, IN_TRANSIT, COMPLETED
type: array
items:
enum:
- DRAFT, BOOKED, IN_PROGRESS, IN_TRANSIT, COMPLETED
type: string
description: 'Only include Bookings/Shipments with this status:
- DRAFT - Booking not yet submitted
- BOOKED - Booking submitted, waiting for response from TMS
- IN_PROGRESS - Shipment created but not yet moving
- IN_TRANSIT - Shipment picked-up/cargo received, depending on the movement type.
- COMPLETED - Shipment delivered / handed over at destination, depending on the movement type.
- CANCELED - Shipment has been canceled
- REJECTED - Booking was rejected'
description: 'Only include Bookings/Shipments with this status:
- DRAFT - Booking not yet submitted
- BOOKED - Booking submitted, waiting for response from TMS
- IN_PROGRESS - Shipment created but not yet moving
- IN_TRANSIT - Shipment picked-up/cargo received, depending on the movement type.
- COMPLETED - Shipment delivered / handed over at destination, depending on the movement type.
- CANCELED - Shipment has been canceled
- REJECTED - Booking was rejected'
pickupDate:
enum:
- TOMORROW, TODAY, NEXT_WEEK, NEXT_MONTH, YESTERDAY, PAST_WEEK, PAST_MONTH
type: string
description: 'Only include Bookings/Shipments where the Pickup date (actual/estimated/requested) matches.
- PAST_MONTH - Past 30 days
- PAST_WEEK - Past 7 days
- YESTERDAY - Yesterday
- TODAY - Today
- TOMORROW - Tomorrow
- NEXT_WEEK - Next 7 days
- NEXT_MONTH - Next 30 days'
deliveryDate:
enum:
- TOMORROW, TODAY, NEXT_WEEK, NEXT_MONTH, YESTERDAY, PAST_WEEK, PAST_MONTH
type: string
description: 'Only include Bookings/Shipments where the Delivery date (actual/estimated/requested) matches.
- PAST_MONTH - Past 30 days
- PAST_WEEK - Past 7 days
- YESTERDAY - Yesterday
- TODAY - Today
- TOMORROW - Tomorrow
- NEXT_WEEK - Next 7 days
- NEXT_MONTH - Next 30 days'
transports:
enum:
- AIR, ROAD, SEA, RAIL
type: array
items:
enum:
- AIR, ROAD, SEA, RAIL
type: string
description: 'Only include Bookings/Shipments with this primary mode of transport:
- AIR - Airfreight
- ROAD - Roadfreight
- SEA - Seafreight
- RAIL - Railway
- XPRESS - Express parcel shipments'
description: 'Only include Bookings/Shipments with this primary mode of transport:
- AIR - Airfreight
- ROAD - Roadfreight
- SEA - Seafreight
- RAIL - Railway
- XPRESS - Express parcel shipments'
bookedBy:
type: array
items:
type: string
description: Only include Bookings/Shipments booked by this user ID
description: Only include Bookings/Shipments booked by this user ID
size:
type: integer
description: Number of returned bookings/shipments, min 1, max value 1000
format: int32
dates:
$ref: '#/components/schemas/DatesFilter'
mdm:
type: string
description: MDM number
description: This structure contains the filter parameters to limit the response
default: ListParams
xml:
name: params
TypeValueDTO:
type: object
properties:
type:
type: string
description: 'Type of reference: