DSV

DSV Document Upload API

Uploads documents against an existing DSV booking or shipment for air, sea, European road and rail traffic.

OpenAPI Specification

dsv-generic-upload-demo-v1-openapi.json Raw ↑
{
  "openapi": "3.0.1",
  "info": {
    "title": "UPLOAD - Air, Sea, Road (EU), Rail (DEMO)",
    "description": "Upload available documents for your bookings and shipments moved by DSV. Supported transport modes: Air, Sea, Road (EU) and Rail.",
    "version": "v1"
  },
  "servers": [
    {
      "url": "https://api.dsv.com/my-demo/upload/v1"
    }
  ],
  "paths": {
    "/shipments/bookingId/{type}/{bookingId}": {
      "post": {
        "tags": [
          "Upload attachment using Booking ID"
        ],
        "summary": "Upload attachment using Booking Id",
        "description": "Upload attachment to shipment. Allowed types: \"CUS\", \"GDS\",\"HAZ\", \"INV\", \"PKL\"",
        "operationId": "uploadDocumentByBookingId",
        "parameters": [
          {
            "name": "bookingId",
            "in": "path",
            "description": "Unique identifier of the DSV booking",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "path",
            "description": "Allowed types:\n- CUS - Customs Declaration\n- GDS - Other Goods Document\n- HAZ - Dangerous Goods Document\n- INV - Commercial Invoice\n- PKL - Packing list",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DSV-Service-Auth",
            "in": "header",
            "description": "Basic Auth header - Will be deprecated",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Oauth header",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "It is not possible to delete documents which have been uploaded via the API to DSV\n\nAll files are scanned for antimalware and the Maximum file size is 3MB.\n\nHere is a list of the most used content-types:\n- .xls = Content-Type: application/vnd.ms-excel\n- .xlsx = Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\n- .pdf = Content-Type: application/pdf\n- .txt = Content-Type: text/plain\n- .doc = Content-Type: application/msword\n- .docx = Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document\n- .ppt = Content-Type: application/vnd.ms-powerpoint\n- .pptx = Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation\n- .jpg = Content-Type: image/x-citrix-jpeg\n- .jpeg = Content-Type: image/x-citrix-jpeg\n- .png = Content-Type: image/x-png\n- .bmp = Content-Type: image/bmp\n- .json = Content-Type: application/json\n- .zip = Content-Type: application/zip",
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "File uploaded successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                },
                "example": "Created"
              }
            }
          },
          "400": {
            "description": "Request contains not valid data",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                },
                "example": {
                  "id": "73f3adf3-c508-4498-b618-5afa042956af",
                  "message": "Incorrect type"
                }
              }
            }
          },
          "401": {
            "description": "Not authorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                },
                "example": {
                  "Code": 401,
                  "Message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription."
                }
              }
            }
          },
          "403": {
            "description": "Lack of privileges to use this method",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                },
                "example": {
                  "code": 403,
                  "message": "Access denied due to missing API role. Please contact DSV via email at developer.support@dsv.com"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                },
                "example": "Internal Server Error"
              }
            }
          }
        }
      }
    },
    "/shipments/tmsId/{type}/{tmsId}": {
      "post": {
        "tags": [
          "Upload attachment using Shipment Id"
        ],
        "summary": "Upload attachment using Shipment Id",
        "description": "Upload an attachment to a shipment identified by TMSID. TMSID is the DSV Shipment ID (also referred to as 'shipmentId' in some UI screens). Allowed document types: CUS, GDS, HAZ, INV, PKL.",
        "operationId": "uploadDocumentByShipmentId",
        "parameters": [
          {
            "name": "tmsId",
            "in": "path",
            "description": "Unique identifier for the DSV shipment (TMSID = Shipment ID).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "path",
            "description": "Allowed types:\n- CUS - Customs Declaration\n- GDS - Other Goods Document\n- HAZ - Dangerous Goods Document\n- INV - Commercial Invoice\n- PKL - Packing list",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DSV-Service-Auth",
            "in": "header",
            "description": "Basic Auth header - Will be deprecated",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Oauth header",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "It is not possible to delete documents which have been uploaded via the API to DSV\n\nAll files are scanned for antimalware and the Maximum file size is 3MB.\n\nHere is a list of the most used content-types:\n- .xls = Content-Type: application/vnd.ms-excel\n- .xlsx = Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\n- .pdf = Content-Type: application/pdf\n- .txt = Content-Type: text/plain\n- .doc = Content-Type: application/msword\n- .docx = Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document\n- .ppt = Content-Type: application/vnd.ms-powerpoint\n- .pptx = Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation\n- .jpg = Content-Type: image/x-citrix-jpeg\n- .jpeg = Content-Type: image/x-citrix-jpeg\n- .png = Content-Type: image/x-png\n- .bmp = Content-Type: image/bmp\n- .json = Content-Type: application/json\n- .zip = Content-Type: application/zip",
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "File uploaded successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                },
                "example": "string"
              }
            }
          },
          "400": {
            "description": "Request contains not valid data",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                },
                "example": "string"
              }
            }
          },
          "401": {
            "description": "Not authorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                },
                "example": "string"
              }
            }
          },
          "403": {
            "description": "Lack of privileges to use this method",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                },
                "example": "string"
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                },
                "example": "string"
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "apiKeyHeader": {
        "type": "apiKey",
        "name": "DSV-Subscription-Key",
        "in": "header"
      },
      "apiKeyQuery": {
        "type": "apiKey",
        "name": "DSV-Subscription-Key",
        "in": "query"
      }
    }
  },
  "security": [
    {
      "apiKeyHeader": []
    },
    {
      "apiKeyQuery": []
    }
  ]
}