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: ' value: type: string description: Reference value description: References that can be used to identify linked information. It is allowed to send several references of the same reference type. DatesFilter: type: object properties: bookingDate: $ref: '#/components/schemas/DateFilter' pickupDate: $ref: '#/components/schemas/DateFilter' deliveryDate: $ref: '#/components/schemas/DateFilter' description: Allows for searching Bookings/Shipments where the Booking/Pickup/Delivery date matches custom date range GoodsSummaryDto: type: object properties: totalColli: type: number description: Total number of collis in the shipment totalWeight: type: number description: Total weight of the shipment totalVolume: type: number description: Total volume of the shipment totalLoadMeters: type: number description: 'Total loading meters of the shipment. Only available for transport mode "ROAD"' ShipmentSummaryParties: type: object properties: sender: $ref: '#/components/schemas/Sender' receiver: $ref: '#/components/schemas/Receiver' delivery: $ref: '#/components/schemas/Delivery' pickup: $ref: '#/components/schemas/Pickup' description: All parties of the shipment summary are mentioned in this structure. See party definition for details. securitySchemes: apiKeyHeader: type: apiKey name: DSV-Subscription-Key in: header apiKeyQuery: type: apiKey name: DSV-Subscription-Key in: query