{
  "openapi": "3.0.1",
  "info": {
    "title": "Shipmondo API",
    "description": "This is the official API for Shipmondo. The current version is v3.\nThe Shipmondo API is documented using OpenAPI. You can find the OpenAPI spec here: https://app.shipmondo.com/api/public/v3/openapi.json\n\n\nWe recommend that new implementations should be based on this version.\n\n\nWe provide an official library for PHP, which you can find here: https://github.com/shipmondo/shipmondo_php_sdk\n\n\nIf you need further assistance for your implementation, feel free to contact us at support@shipmondo.com",
    "version": "3"
  },
  "servers": [
    {
      "url": "https://sandbox.shipmondo.com/api/public/v3",
      "description": "Sandbox server"
    },
    {
      "url": "https://app.shipmondo.com/api/public/v3",
      "description": "Production server"
    }
  ],
  "tags": [],
  "paths": {
    "/account/": {
   "get": {
      "tags": [
         "Account"
      ],
      "summary": "Retrieve account infomation",
      "description": "Returns infomation on the currenctly logged in account.",
      "operationId": "account",
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "type": "object",
                     "properties": {
                        "name": {
                          "description": "Account name.",
                           "type": "string",
                           "example": "Shipmondo"
                        },
                        "attention": {
                           "description": "Associated attention of the account.",
                            "type": "string",
                            "example": "John Doe"
                         },
                         "address_1": {
                           "description": "Account address 1.",
                            "type": "string",
                            "example": "Hvilehøjvej 25"
                         },
                         "address_2": {
                           "description": "Account address 2.",
                            "type": "string",
                            "example": "Hvilehøjvej 25"
                         },
                         "zip_code": {
                           "description": "Account zip code.",
                            "type": "string",
                            "example": "5220"
                         },
                         "city": {
                           "description": "Account city.",
                            "type": "string",
                            "example": "Odense SØ"
                         },
                         "country_code": {
                           "description": "Account country code.",
                            "type": "string",
                            "example": "DK"
                         },
                         "phone": {
                           "description": "Account phone number.",
                            "type": "string",
                            "example": "70400407"
                         },
                         "email": {
                           "description": "Account email.",
                            "type": "string",
                            "example": "contact@shipmondo.com"
                         },
                         "vat_no": {
                           "description": "Account vat number.",
                            "type": "string",
                            "example": "DK36399066"
                         },
                         "billing_email": {
                           "description": "Account billing email.",
                            "type": "string",
                            "example": "contact@shipmondo.com"
                         },
                         "home_page": {
                           "description": "Account home page.",
                            "type": "string",
                            "example": "shipmondo.com"
                         },
                        "updated_at": {
                           "description": "Date and time of retrieval of account information.",
                           "type": "string",
                           "format": "date-time",
                           "example": "2017-06-18T22:00:00.000Z"
                        }
                     }
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   }
},
"/account/balance": {
   "get": {
      "tags": [
         "Account"
      ],
      "summary": "Retrieve balance",
      "description": "Returns the current balance of your account.",
      "operationId": "account_balance_get",
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "type": "object",
                     "properties": {
                        "amount": {
                          "description": "Remaining balance on the account.",
                           "type": "number",
                           "example": 1000.5
                        },
                        "currency_code": {
                           "description": "Currency code of the balance.",
                           "type": "string",
                           "example": "DKK"
                        },
                        "updated_at": {
                           "description": "Date and time of retrieval of balance.",
                           "type": "string",
                           "format": "date-time",
                           "example": "2017-06-18T22:00:00.000Z"
                        }
                     }
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   }
},
"/account/payment_requests": {
   "get": {
      "tags": [
         "Account"
      ],
      "summary": "List all payment requests",
      "description": "Returns a list of your payment requests. If there are unsettled payment requests, they can block you from using the API.\n\nUnsettled payment requests must settled through the Shipmondo app, unless the account is set to automatic settlement.",
      "operationId": "payment_requests_get",
      "parameters": [
         {
            "name": "created_at_min",
            "in": "query",
            "description": "\"From\" timestamp for the payment requests to be included in the filter. Examples:\n* 2017-06-19T11:00:03.305+02:00\n* 2017-06-19 will be transformed into 2017-06-19T00:00:00.000+02:00\n",
            "schema": {
               "type": "string",
               "format": "date-time"
            }
         },
         {
            "name": "created_at_max",
            "in": "query",
            "description": "\"To\" timestamp for the payment requests to be included in the filter. Examples:\n* 2017-06-29T11:00:03.305+02:00\n* 2017-06-29 will be transformed into 2017-06-29T00:00:00.000+02:00\n",
            "schema": {
               "type": "string",
               "format": "date-time"
            }
         },
         {
            "name": "per_page",
            "in": "query",
            "description": "For pagination. Defines how many entries are returned per page.",
            "schema": {
               "type": "integer",
               "default": 20,
               "maximum": 50
            }
         },
         {
            "name": "page",
            "in": "query",
            "description": "For pagination. Defines which page the results are fetched\nfrom.",
            "schema": {
               "type": "integer",
               "default": 1
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "headers": {
               "X-Current-Page": {
                  "description": "Pagination - Current Page.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Per-Page": {
                  "description": "Pagination - Per Page.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Total-Count": {
                  "description": "Pagination - Total Count.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Total-Pages": {
                  "description": "Pagination - Total Pages Count.",
                  "schema": {
                     "type": "integer"
                  }
               }
            },
            "content": {
               "application/json": {
                  "schema": {
                     "type": "array",
                     "items": {
                        "$ref": "#/components/schemas/PaymentRequest"
                     }
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   }
},
    "/bookkeeping_integrations": {
   "get": {
      "tags": [
         "Bookkeeping integrations"
      ],
      "summary": "List all bookkeeping integrations",
      "description": "Returns a list of your bookkeeping integrations.\n\n\nBookkeeping integrations are used to automatically create invoices from your orders and transfer them to your external bookkeeping system.",
      "operationId": "bookkeeping_integrations_get",
      "parameters": [
         {
            "name": "id",
            "in": "query",
            "description": "ID for the bookkeeping integrations to be included in the filtered results.",
            "schema": {
               "type": "integer"
            }
         },
         {
            "name": "per_page",
            "in": "query",
            "description": "For pagination. Defines how many entries are returned per page.",
            "schema": {
               "type": "integer",
               "default": 20,
               "minimum": 1,
               "maximum": 50
            }
         },
         {
            "name": "page",
            "in": "query",
            "description": "For pagination. Defines which page the results are fetched from.",
            "schema": {
               "type": "integer",
               "default": 1
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "headers": {
               "X-Current-Page": {
                  "description": "Pagination - Current Page.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Per-Page": {
                  "description": "Pagination - Per Page.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Total-Count": {
                  "description": "Pagination - Total Count.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Total-Pages": {
                  "description": "Pagination - Total Pages Count.",
                  "schema": {
                     "type": "integer"
                  }
               }
            },
            "content": {
               "*/*": {
                  "schema": {
                     "type": "array",
                     "items": {
                        "$ref": "#/components/schemas/BookkeepingIntegration"
                     }
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   }
},
"/bookkeeping_integrations/{id}": {
   "get": {
      "tags": [
         "Bookkeeping integrations"
      ],
      "summary": "Retrieve a bookkeeping integration",
      "description": "Returns the details of a bookkeeping integration.\n\n\n      \n Bookkeeping integrations are used to automatically create invoices from your orders and transfer them to your external bookkeeping system.",
      "operationId": "bookkeeping_integration_get",
      "parameters": [
         {
            "name": "id",
            "in": "path",
            "description": "ID for the bookkeeping integration to be included in the filter",
            "required": true,
            "schema": {
               "type": "integer"
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "*/*": {
                  "schema": {
                     "$ref": "#/components/schemas/BookkeepingIntegration"
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   }
}
,
    "/waybills": {
  "get": {
    "tags": [
      "Bulk waybills"
    ],
    "summary": "List all bulk waybills",
    "description": "Returns a list of bulk waybills (excluding Base64 PDF).",
    "operationId": "waybills_get",
    "parameters": [
      {
        "name": "id",
        "in": "query",
        "description": "ID for the bulk waybill to be included in the filter",
        "schema": {
          "type": "integer"
        }
      },
      {
        "name": "reference",
        "in": "query",
        "description": "Reference for the bulk waybill that need to be considered for\nfilter",
        "schema": {
          "type": "string"
        }
      },
      {
        "name": "carrier_code",
        "in": "query",
        "description": "Carrier code to be included in the filter\n\nExamples: bring\n",
        "schema": {
          "type": "string",
          "enum": [
            "bring",
            "pdk"
          ]
        }
      },
      {
        "name": "status",
        "in": "query",
        "description": "Status to be included in the filter",
        "schema": {
          "type": "string",
          "enum": [
            "open",
            "closed"
          ]
        }
      },
      {
        "name": "per_page",
        "in": "query",
        "description": "For pagination. Defines how many entries are returned per page.",
        "schema": {
          "type": "integer",
          "default": 20,
          "maximum": 50
        }
      },
      {
        "name": "page",
        "in": "query",
        "description": "For pagination. Defines which page the results are fetched from.",
        "schema": {
          "type": "integer",
          "default": 1
        }
      }
    ],
    "responses": {
      "200": {
        "description": "Successful.",
        "headers": {
          "X-Current-Page": {
            "description": "Pagination - Current Page.",
            "schema": {
              "type": "integer"
            }
          },
          "X-Per-Page": {
            "description": "Pagination - Per Page.",
            "schema": {
              "type": "integer"
            }
          },
          "X-Total-Count": {
            "description": "Pagination - Total Count.",
            "schema": {
              "type": "integer"
            }
          },
          "X-Total-Pages": {
            "description": "Pagination - Total Pages Count.",
            "schema": {
              "type": "integer"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/WaybillNoBase64"
              }
            }
          }
        }
      },
      "401": {
        "$ref": "#/components/responses/Unauthorized"
      }
    },
    "security": [
      {
        "basicAuth": []
      }
    ]
  },
  "post": {
    "tags": [
      "Bulk waybills"
    ],
    "summary": "Create a bulk waybill",
    "description": "Creates a new bulk waybill and associated routing label shipments.",
    "operationId": "waybills_post",
    "requestBody": {
      "description": "Bulk Waybill Object.\n\n**Note**: loading (except date if carrier is Bring) and delivery are optional.\n\nIf not all fields are given, loading will be overwritten by sender (except date) and delivery will be overwritten by receiver.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/CreateWaybillRequest"
          }
        }
      },
      "required": true
    },
    "responses": {
      "200": {
        "description": "Successful.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Waybill"
            }
          }
        }
      },
      "401": {
        "$ref": "#/components/responses/Unauthorized"
      },
      "404": {
        "$ref": "#/components/responses/NotFound"
      },
      "422": {
        "$ref": "#/components/responses/InvalidRequest"
      }
    },
    "security": [
      {
        "basicAuth": []
      }
    ],
    "x-codegen-request-body-name": "body"
  }
},
"/waybills/{id}": {
  "get": {
    "tags": [
      "Bulk waybills"
    ],
    "summary": "Retrieve a bulk waybill",
    "description": "Returns the details of a bulk waybill. The response includes the Base64 for the bulk waybill PDF.",
    "operationId": "waybills_show",
    "parameters": [
      {
        "name": "id",
        "in": "path",
        "description": "ID for the bulk waybill to be included in the filter",
        "required": true,
        "schema": {
          "type": "integer"
        }
      },
      {
        "name": "label_format",
        "in": "query",
        "description": "Format of routing labels. Defaults to default label format of the user.",
        "schema": {
        "type": "string",
          "enum": ["10x19_pdf", "a4_pdf"]
        }
      }
    ],
    "responses": {
      "200": {
        "description": "Successful.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Waybill"
            }
          }
        }
      },
      "401": {
        "$ref": "#/components/responses/Unauthorized"
      },
      "404": {
        "$ref": "#/components/responses/NotFound"
      }
    },
    "security": [
      {
        "basicAuth": []
      }
    ]
  }
},
"/waybills/{id}/close": {
  "put": {
    "tags": [
      "Bulk waybills"
    ],
    "summary": "Close an open bulk waybill",
    "description": "Closes an open bulk waybill and returns its details. The response include the Base64 for the bulk waybill PDF.",
    "operationId": "waybills_close",
    "parameters": [
      {
        "name": "id",
        "in": "path",
        "description": "ID for the bulk waybill to be included in the filter",
        "required": true,
        "schema": {
          "type": "integer"
        }
      }
    ],
    "requestBody": {
      "description": "",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/CloseWaybillRequest"
          }
        }
      },
      "required": true
    },
    "responses": {
      "200": {
        "description": "Successful.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Waybill"
            }
          }
        }
      },
      "401": {
        "$ref": "#/components/responses/Unauthorized"
      },
      "404": {
        "$ref": "#/components/responses/NotFound"
      }
    },
    "security": [
      {
        "basicAuth": []
      }
    ]
  }
},
"/waybills/{waybill_id}/load_carriers": {
  "post":{
    "tags":[
      "Bulk waybills"
    ],
    "summary":"Creates and adds a new load carrier to the bulk waybill",
    "description":"Creates and adds a new load carrier to the bulk waybill. The response includes the details of the created load carrier. \n\n**Note**: Load carriers are only available on waybills with PostNord.\n\n",
    "operationId":"load_carriers_post",
    "parameters":[
      {
        "name":"waybill_id",
        "in":"path",
        "description":"ID of the bulk waybill to add a load carrier to.",
        "required":true,
        "schema":{
          "type":"integer"
        }
      }
    ],
    "requestBody":{
      "description":"",
      "content":{
        "application/json":{
          "schema":{
            "$ref":"#/components/schemas/AddLoadCarrierRequest"
          }
        }
      },
      "required":true
    },
    "responses":{
      "200":{
        "description":"Successful.",
        "content":{
          "application/json":{
            "schema":{
              "$ref":"#/components/schemas/LoadCarrier"
            }
          }
        }
      },
      "401":{
        "$ref":"#/components/responses/Unauthorized"
      },
      "404":{
        "$ref":"#/components/responses/NotFound"
      }
    },
    "security":[
      {
        "basicAuth":[]
      }
    ]
  },
  "get":{
    "tags":[
      "Bulk waybills"
    ],
    "summary":"List all load carriers",
    "description":"Returns a list of all load carriers that have been added to the bulk waybill.",
    "operationId":"load_carriers_get",
    "parameters":[
      {
        "name":"waybill_id",
        "in":"path",
        "description":"ID of the bulk waybill to fetch all load carriers for.",
        "required":true,
        "schema":{
          "type":"integer"
        }
      }
    ],
    "responses": {
      "200": {
        "description": "Successful.",
        "headers": {
          "X-Current-Page": {
            "description": "Pagination - Current Page.",
            "schema": {
              "type": "integer"
            }
          },
          "X-Per-Page": {
            "description": "Pagination - Per Page.",
            "schema": {
              "type": "integer"
            }
          },
          "X-Total-Count": {
            "description": "Pagination - Total Count.",
            "schema": {
              "type": "integer"
            }
          },
          "X-Total-Pages": {
            "description": "Pagination - Total Pages Count.",
            "schema": {
              "type": "integer"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/LoadCarrier"
              }
            }
          }
        }
      },
      "401": {
        "$ref": "#/components/responses/Unauthorized"
      }
    },
    "security":[
      {
        "basicAuth":[]
      }
    ]
  }
},
"/waybills/{waybill_id}/load_carriers/{id}": {
  "get": {
    "tags": [
      "Bulk waybills"
    ],
    "summary": "Retrieve a load carrier",
    "description": "Returns the details of a load carrier.",
    "operationId": "load_carriers_show",
    "parameters": [
      {
        "name": "waybill_id",
        "in": "path",
        "description": "ID of the bulk waybill to find a specific load carrier for.",
        "required": true,
        "schema": {
          "type": "integer"
        }
      },
      {
        "name": "id",
        "in": "path",
        "description": "ID of the load carrier to be retrieved.",
        "required": true,
        "schema": {
          "type": "integer"
        }
      }
    ],
    "responses": {
      "200": {
        "description": "Successful.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/LoadCarrier"
            }
          }
        }
      },
      "401": {
        "$ref": "#/components/responses/Unauthorized"
      },
      "404": {
        "$ref": "#/components/responses/NotFound"
      }
    },
    "security": [
      {
        "basicAuth": []
      }
    ]
  }
},
    "/carriers": {
   "get": {
      "tags": [
         "Carriers, products & services"
      ],
      "summary": "List available carriers",
      "description": "Returns a list of available carriers for your account.\n\nCarriers are retrieved based on own agreements and Shipmondo's agreements.",
      "operationId": "carriers_get",
      "parameters": [
         {
            "name": "sender_country_code",
            "in": "query",
            "description": "Sender country code to be included in the filter.",
            "schema": {
               "type": "string",
               "example": "DK"
            }
         },
         {
            "name": "receiver_country_code",
            "in": "query",
            "description": "Receiver country code to be included in the filter.",
            "required": true,
            "schema": {
               "type": "string",
               "example": "DK"
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/Carriers"
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         },
         "422": {
            "$ref": "#/components/responses/InvalidRequest"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   }
},
"/products": {
   "get": {
      "tags": [
         "Carriers, products & services"
      ],
      "summary": "List all products",
      "description": "\nReturns a list of shipping products and services.\n\n\nOnly products available for the user are returned.\n\n\nThe codes of the products and services are required when creating a shipment.\n",
      "operationId": "products_get",
      "parameters": [
         {
            "name": "id",
            "in": "query",
            "description": "ID for the product to be included in the filter.",
            "schema": {
               "type": "integer"
            }
         },
         {
            "name": "product_code",
            "in": "query",
            "description": "Code for the product to be included in the filter.",
            "schema": {
               "type": "string",
               "example": "GLSDK_SD"
            }
         },
         {
            "name": "sender_country_code",
            "in": "query",
            "description": "Country code (ISO Alpha-2) of the sender country to be included in the filter.",
            "schema": {
               "type": "string",
               "example": "DK"
            }
         },
         {
            "name": "receiver_country_code",
            "in": "query",
            "description": "Country code (ISO Alpha-2) of the receiver country to be included in the filter.",
            "schema": {
               "type": "string",
               "example": "DK"
            }
         },
         {
            "name": "carrier_code",
            "in": "query",
            "description": "Carrier code to be included in the filter.",
            "schema": {
               "type": "string",
               "example": "gls"
            }
         },
         {
            "name": "per_page",
            "in": "query",
            "description": "For pagination. Defines how many entries are returned per page.",
            "schema": {
               "type": "integer",
               "default": 20,
               "maximum": 50
            }
         },
         {
            "name": "page",
            "in": "query",
            "description": "For pagination. Defines which page the results are fetched from.",
            "schema": {
               "type": "integer",
               "default": 1
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "headers": {
               "X-Current-Page": {
                  "description": "Pagination - Current Page.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Per-Page": {
                  "description": "Pagination - Per Page.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Total-Count": {
                  "description": "Pagination - Total Count.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Total-Pages": {
                  "description": "Pagination - Total Pages Count.",
                  "schema": {
                     "type": "integer"
                  }
               }
            },
            "content": {
               "application/json": {
                  "schema": {
                     "type": "array",
                     "items": {
                        "$ref": "#/components/schemas/ShippingProduct"
                     }
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   }
},
"/package_types": {
   "get": {
      "tags": [
         "Carriers, products & services"
      ],
      "summary": "List all package types",
      "description": "\nReturns a list of package types for a product.\n\n\nPackage types returned can be used when defining parcels in shipment booking.\n",
      "operationId": "package_types_get",
      "parameters": [
         {
            "name": "product_code",
            "in": "query",
            "required": true,
            "description": "Code for the product to be included in the filter",
            "schema": {
               "type": "string"
            }
         },
         {
            "name": "sender_country_code",
            "in": "query",
            "required": true,
            "description": "Country code of the sender country, format: ISO3133 alpha-2",
            "schema": {
               "type": "string"
            }
         },
         {
            "name": "receiver_country_code",
            "in": "query",
            "required": true,
            "description": "Country code of the receiver country, format: ISO3133 alpha-2",
            "schema": {
               "type": "string"
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "type": "array",
                     "items": {
                        "$ref": "#/components/schemas/PackageType"
                     }
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   }
},
    "/documents/end_of_day": {
   "get": {
      "tags": [
         "Documents"
      ],
      "summary": "Retrieve an End of Day list",
      "description": "Returns an End of Day list for a specific carrier, with all shipments set to be picked up in the selected time.",
      "operationId": "end_of_day_get",
      "parameters": [
         {
            "name": "carrier_code",
            "in": "query",
            "description": "Carrier code of the carrier you want to retrieve the list for.",
            "required": true,
            "schema": {
               "type": "string",
               "enum": ["airmee","alpi","asendia","b2c_europe","best","bft","bhs_logistics","bpost","bring","brink","budbee","burd","bws","city_mail","cm_transport","collicare","dachser","dansk_distribution","dansk_distribution_brabrand","dansk_distribution_taulov","dao","db_schenker","deutsche_post","dfm","dhl_express","dhl_freight_se","dhl_parcel","dpd","dsv","dsv_parcel","dsv_xpress","early_bird","esbjerg_gods","esbjerg_gods_sjaelland","fed_ex","freja","geodis","gls","gls_de","gordon","helthjem","instabox","interfjord","jetpak","jetpak_se","jjd","joervi_transport","kht","leman","lgt_logistics","link_logistics","mover","nonbo_fragt","packeta","pdk","posti","post_nl","post_nord","sand_distribution","sdl","simptra","tjw","tnt","unspecified","ups","webrinq","xpressen"]
            }
         },
         {
            "name": "from_time",
            "in": "query",
            "description": "\"From\" timestamp for the end of day list. Examples:\n* 2018-06-19T11:00:00.305+02:00\n* 2018-06-19 will be transformed into 2018-06-19T00:00:00.000+02:00\n",
            "required": true,
            "schema": {
               "type": "string",
               "format": "date-time"
            }
         },
         {
            "name": "to_time",
            "in": "query",
            "description": "\"To\" timestamp for the end of day list. Examples:\n* 2018-06-20T11:00:00.305+02:00\n* 2018-06-20 will be transformed into 2018-06-20T00:00:00.000+02:00\n",
            "required": true,
            "schema": {
               "type": "string",
               "format": "date-time"
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/Document"
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   }
},
"/documents/waybill": {
   "get": {
      "tags": [
         "Documents"
      ],
      "summary": "Retrieve a waybill",
      "description": "Returns a waybill for letter products.",
      "operationId": "waybill_get",
      "parameters": [
         {
            "name": "carrier_code",
            "in": "query",
            "required": true,
            "description": "Carrier code to be included in the filter",
            "schema": {
               "type": "string",
               "enum": [
                  "deutsche_post",
                  "asendia",
                  "bring"
               ]
            }
         },
         {
            "name": "bag_quantity",
            "in": "query",
            "required": false,
            "description": "Quantity of bags to be declared <br> <strong>Note:</strong> <ul>\n<li>Required for Deutsche Post, but is only used if an open order is being closed</li>",
            "schema": {
               "type": "integer",
               "default": 0
            }
         },
         {
            "name": "container_quantity",
            "in": "query",
            "description": "Quantity of bags to be declared <br> <strong>Note:</strong> <ul>\n<li>If used with Deutsche Post it is just added to bag_quantity</li></ul>",
            "deprecated": true,
            "schema": {
               "type": "integer",
               "default": 0
            }
         },
         {
            "name": "from_time",
            "in": "query",
            "description": "\"From\" timestamp for the waybill document. Examples:\n* 2018-06-19T11:00:00.305+02:00\n* 2018-06-19 will be transformed into 2018-06-19T00:00:00.000+02:00\n",
            "required": true,
            "schema": {
               "type": "string",
               "format": "date-time"
            }
         },
         {
            "name": "to_time",
            "in": "query",
            "description": "\"To\" timestamp for the waybill document. Examples:\n* 2018-06-20T11:00:00.305+02:00\n* 2018-06-20 will be transformed into 2018-06-20T00:00:00.000+02:00\n",
            "required": true,
            "schema": {
               "type": "string",
               "format": "date-time"
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/Document"
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   }
},
    
"/items": {
   "get": {
      "tags": [
         "Items"
      ],
      "summary": "List all items",
      "description": "Returns a list of items.\n\nItems are the products and services that are sold as part of an order. They are created by a unique SKU when an order is placed, through item import, or through the API.",
      "operationId": "items_get",
      "parameters": [
         {
            "name": "id",
            "in": "query",
            "description": "ID of the item that needs to be considered for filter",
            "schema": {
               "type": "integer"
            }
         },
         {
            "name": "sku",
            "in": "query",
            "description": "SKU of the item that needs to be considered for filter",
            "schema": {
               "type": "string"
            }
         },
         {
            "name": "name",
            "in": "query",
            "description": "Name of the item that needs to be considered for filter",
            "schema": {
               "type": "string"
            }
         },
         {
            "name": "barcode",
            "in": "query",
            "description": "The barcode value of the item that needs to be considered for filter",
            "schema": {
               "type": "string"
            }
         },
         {
            "name": "created_at_min",
            "in": "query",
            "description": "\"From\" timestamp for the items to be included in the filter. Examples:\n* 2017-06-19T11:00:03.305+02:00\n* 2017-06-19 will be transformed into 2017-06-19T00:00:00.000+02:00\n",
            "schema": {
               "type": "string",
               "format": "date-time"
            }
         },
         {
            "name": "created_at_max",
            "in": "query",
            "description": "\"To\" timestamp for the items to be included in the filter. Examples:\n* 2017-06-29T11:00:03.305+02:00\n* 2017-06-29 will be transformed into 2017-06-29T00:00:00.000+02:00\n",
            "schema": {
               "type": "string",
               "format": "date-time"
            }
         },
         {
            "name": "updated_at_min",
            "in": "query",
            "description": "\"From\" value of \"updated\" timestamp for the items to be included in the filter. Examples:\n* 2018-06-19T11:00:03.305+02:00\n* 2018-06-19 will be transformed into 2017-06-19T00:00:00.000+02:00\n",
            "schema": {
               "type": "string",
               "format": "date-time"
            }
         },
         {
            "name": "updated_at_max",
            "in": "query",
            "description": "\"To\" value of \"updated\" timestamp for the items to be included in the filter. Examples:\n* 2018-06-29T11:00:03.305+02:00\n* 2018-06-29 will be transformed into 2017-06-29T00:00:00.000+02:00\n",
            "schema": {
               "type": "string",
               "format": "date-time"
            }
         },
         {
            "name": "per_page",
            "in": "query",
            "description": "For pagination. Defines how many entries are returned per page.",
            "schema": {
               "type": "integer",
               "default": 10,
               "minimum": 1,
               "maximum": 50
            }
         },
         {
            "name": "page",
            "in": "query",
            "description": "For pagination. Defines which page the results are fetched from.",
            "schema": {
               "type": "integer",
               "default": 1
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "headers": {
               "X-Current-Page": {
                  "description": "Pagination - Current Page.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Per-Page": {
                  "description": "Pagination - Per Page.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Total-Count": {
                  "description": "Pagination - Total Count.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Total-Pages": {
                  "description": "Pagination - Total Pages Count.",
                  "schema": {
                     "type": "integer"
                  }
               }
            },
            "content": {
               "application/json": {
                  "schema": {
                     "type": "array",
                     "items": {
                        "$ref": "#/components/schemas/Item"
                     }
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   },
   "post": {
      "tags": [
         "Items"
      ],
      "summary": "Create an item",
      "description": "Creates a new item with the specified information.\n\n      \nItems are the products and services that are sold as part of an order. They are created by a unique SKU when an order is placed, through item import, or through the API.",
      "operationId": "item_create",
      "requestBody": {
         "content": {
            "application/json": {
               "schema": {
                  "$ref": "#/components/schemas/CreateItemRequest"
               }
            }
         },
         "required": true
      },
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/Item"
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ],
      "x-codegen-request-body-name": "body"
   }
},
"/items/{id}": {
   "get": {
      "tags": [
         "Items"
      ],
      "summary": "Retrieve an item",
      "description": "Returns the details of an item.\n\n      \nItems are the products and services that are sold as part of an order. They are created by a unique SKU when an order is placed, through item import, or through the API.",
      "operationId": "item_get",
      "parameters": [
         {
            "name": "id",
            "in": "path",
            "description": "ID for the item to be included in the filter",
            "required": true,
            "schema": {
               "type": "integer"
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/Item"
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   },
   "put": {
      "tags": [
         "Items"
      ],
      "summary": "Update an item",
      "description": "\n      Updates the specified item by setting the values of the parameters passed.\n\n\n      Any parameters not provided will be left unchanged.\n\n\n      Updating the **SKU** is not possible.\n\n      ",
      "operationId": "item_update",
      "parameters": [
         {
            "name": "id",
            "in": "path",
            "description": "ID for the item that is to be updated",
            "required": true,
            "schema": {
               "type": "integer"
            }
         }
      ],
      "requestBody": {
         "content": {
            "application/json": {
               "schema": {
                  "$ref": "#/components/schemas/UpdateItemRequest"
               }
            }
         },
         "required": true
      },
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/Item"
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ],
      "x-codegen-request-body-name": "body"
   }
}
,
    "/shipments/{id}/labels": {
   "get": {
      "tags": [
         "Labels"
      ],
      "summary": "Retrieve labels of a shipment",
      "description": "Returns labels for a specific shipment. Labels are delivered as Base64-encoded data.\n\nFor PNG format, each label has its own object. For all others, the labels are collected in one object.\n\n**Note:** Use the scaling feature at your own risk. Shipmondo can’t guarantee the scaled labels are usable. Always get the label approved by the carrier before using this feature in production.",
      "operationId": "shipment_labels",
      "parameters": [
         {
            "name": "id",
            "in": "path",
            "description": "ID for the shipment to be included in the filter",
            "required": true,
            "schema": {
               "type": "integer"
            }
         },
         {
            "name": "label_format",
            "in": "query",
            "description": "Which format the labels should be.\n\n*10x19* is 10 cm x 19 cm\n\n*compact* format returns the smallest label possible.",
            "schema": {
               "type": "string",
               "enum": [
                  "a4_pdf",
                  "10x19_pdf",
                  "10x19_png",
                  "10x19_zpl",
                  "compact_png",
                  "compact_pdf",
  "compact_zpl"
               ]
            }
         },
            {
               "name": "scale_by",
               "in": "query",
               "description": "Scale down the labels by either width or height. Only applicable when label_format: a4_pdf, 10x19_pdf, 10x19_zpl, compact_pdf, compact_zpl",
               "schema": {
                  "type": "string",
                  "enum": ["height", "width"]
               }
            },
            {
               "name": "scale_size",
               "in": "query",
               "description": "Desired scaled length in cm of dimension in \"scale_by\".If the length is higher or wider than the original labels, the labels will not be scaled.\n\n Only applicable when label_format: a4_pdf, 10x19_pdf, 10x19_zpl, compact_pdf, compact_zpl.",
               "schema": {
                  "type": "number",
                  "example": 15.6
               }
            }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "type": "array",
                     "items": {
                        "$ref": "#/components/schemas/Label"
                     }
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   }
},
"/labels": {
   "get": {
      "tags": [
         "Labels"
      ],
      "summary": "Retrieve labels for multiple shipments",
      "description": "Returns labels for multiple shipments.\n\nFor PNG format each label has its own object in the labels array. For all other, the labels is collected in one object.\n\n **Note:** Use the scaling feature at your own risk. Shipmondo can’t guarantee the scaled labels are usable. Always get the label approved by the carrier before using this feature in production.",
      "operationId": "labels_get",
      "parameters": [
         {
            "name": "ids",
            "in": "query",
            "description": "Comma-separated list of shipment IDs which labels should be retrieved for. Limited to 25 shipment IDs per request.",
            "example": "10075,10076,10077",
            "required": true,
            "style": "form",
            "explode": false,
            "schema": {
               "type": "array",
               "items": {
                  "type": "string"
               }
            }
         },
         {
            "name": "label_format",
            "in": "query",
            "description": "Which format the labels should be.\n\n*10x19* is 10 cm x 19 cm\n\n*compact* format returns the smallest label possible.",
            "schema": {
               "type": "string",
               "enum": [
                  "a4_pdf",
                  "10x19_pdf",
                  "10x19_png",
                  "10x19_zpl",
                  "compact_png",
"compact_pdf",
"compact_zpl"
               ]
            }
         },
            {
             "name": "scale_by",
              "in": "query",
              "description": "Scale down the labels by either width or height. Only applicable when label_format: a4_pdf, 10x19_pdf, 10x19_zpl, compact_pdf, compact_zpl.",
              "schema": {
              "type": "string",
               "enum": ["height", "width"]
              }
          },
        {
              "name": "scale_size",
              "in": "query",
              "description": "Desired scaled length in cm of dimension in \"scale_by\".If the length is higher or wider than the original labels, the labels will not be scaled.\n\n Only applicable when label_format: a4_pdf, 10x19_pdf, 10x19_zpl, compact_pdf, compact_zpl.",
              "schema": {
                "type": "number",
                "example": 15.6
              }
          }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "headers": {
               "X-Current-Page": {
                  "description": "Pagination - Current Page.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Per-Page": {
                  "description": "Pagination - Per Page.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Total-Count": {
                  "description": "Pagination - Total Count.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Total-Pages": {
                  "description": "Pagination - Total Pages Count.",
                  "schema": {
                     "type": "integer"
                  }
               }
            },
            "content": {
               "application/json": {
                  "schema": {
                     "type": "array",
                     "items": {
                        "$ref": "#/components/schemas/Labels"
                     }
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   }
},
    "/payment_gateways": {
   "get": {
      "tags": [
         "Payment gateways"
      ],
      "summary": "List all payment gateways",
      "description": "Returns a list of payment gateways.\n\n\nPayment gateways are integrations created through Shipmondo to payment service providers. They are used to capture and cancel payments through Shipmondo.",
      "operationId": "payment_gateways_get",
      "parameters": [
         {
            "name": "id",
            "in": "query",
            "description": "ID for the payment gateway to be included in the filter",
            "schema": {
               "type": "integer"
            }
         },
          {
            "name": "per_page",
            "in": "query",
            "description": "For pagination. Defines how many entries are returned per page.",
            "schema": {
               "type": "integer",
               "default": 20,
               "minimum": 1,
               "maximum": 50
            }
         },
         {
            "name": "page",
            "in": "query",
            "description": "For pagination. Defines which page the results are fetched from.",
            "schema": {
               "type": "integer",
               "default": 1
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "headers": {
               "X-Current-Page": {
                  "description": "Pagination - Current Page.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Per-Page": {
                  "description": "Pagination - Per Page.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Total-Count": {
                  "description": "Pagination - Total Count.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Total-Pages": {
                  "description": "Pagination - Total Pages Count.",
                  "schema": {
                     "type": "integer"
                  }
               }
            },
            "content": {
               "application/json": {
                  "schema": {
                     "type": "array",
                     "items": {
                        "$ref": "#/components/schemas/PaymentGateway"
                     }
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   }
},
"/payment_gateways/{id}": {
   "get": {
      "tags": [
         "Payment gateways"
      ],
      "summary": "Retrieve a payment gateway",
      "description": "Returns the details of a payment gateway.\n\n      \nPayment gateways are integrations created through Shipmondo to payment service providers. They are used to capture and cancel payments through Shipmondo.",
      "operationId": "payment_gateway_get",
      "parameters": [
         {
            "name": "id",
            "in": "path",
            "description": "ID for the payment gateway to be included in the filter",
            "required": true,
            "schema": {
               "type": "integer"
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/PaymentGateway"
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   }
},
    "/pickup_requests": {
   "get": {
      "tags": [
         "Pickup requests"
      ],
      "summary": "List all pickup requests",
      "description": "Returns a list of pickup requests.",
      "operationId": "pickup_requests_get",
      "parameters": [
         {
            "name": "id",
            "in": "query",
            "description": "ID for the pickup request to be included in the filter",
            "schema": {
               "type": "integer"
            }
         },
         {
            "name": "carrier_code",
            "in": "query",
            "description": "Carrier code to be included in the filter.",
            "schema": {
               "type": "string",
               "enum": [
                  "fed_ex",
                  "ups",
                  "dhl_express",
                  "geodis",
                  "dhl_freight_se",
                  "post_nord",
                  "bring"
               ]
            }
         },
         {
            "name": "per_page",
            "in": "query",
            "description": "For pagination. Defines how many entries are returned per page.",
            "schema": {
               "type": "integer",
              "default": 20,
              "maximum": 50
            }
         },
         {
            "name": "page",
            "in": "query",
            "description": "For pagination. Defines which page the results are fetched from.",
            "schema": {
               "type": "integer",
              "default": 1
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "headers": {
               "X-Current-Page": {
                  "description": "Pagination - Current Page.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Per-Page": {
                  "description": "Pagination - Per Page.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Total-Count": {
                  "description": "Pagination - Total Count.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Total-Pages": {
                  "description": "Pagination - Total Pages Count.",
                  "schema": {
                     "type": "integer"
                  }
               }
            },
            "content": {
               "application/json": {
                  "schema": {
                     "type": "array",
                     "items": {
                        "$ref": "#/components/schemas/PickupRequestNoShipments"
                     }
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   },
   "post": {
      "tags": [
         "Pickup requests"
      ],
      "summary": "Create a pickup request",
      "description": "Creates a pickup request and processes the booking at the carrier.",
      "operationId": "pickup_requests_post",
      "requestBody": {
         "description": "Pickup Request object<br>",
         "content": {
            "application/json": {
               "schema": {
                  "$ref": "#/components/schemas/CreatePickupRequestRequest"
               }
            }
         },
         "required": true
      },
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/pdf": {
                  "schema": {
                     "$ref": "#/components/schemas/PickupRequest"
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         },
         "422": {
            "$ref": "#/components/responses/InvalidRequest"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ],
      "x-codegen-request-body-name": "body"
   }
},
"/pickup_requests/{id}": {
   "get": {
      "tags": [
         "Pickup requests"
      ],
      "summary": "Retrieve a pickup request",
      "description": "Returns the details of a pickup request.",
      "operationId": "pickup_requests_show",
      "parameters": [
         {
            "name": "id",
            "in": "path",
            "description": "ID for the pickup request to be included in the filter",
            "required": true,
            "schema": {
               "type": "integer"
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/PickupRequest"
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   }
},
    "/printers": {
   "get": {
      "tags": [
         "Print client"
      ],
      "summary": "List all printers",
      "description": "Returns a list of printers.\n\n\nPrinters are created through the Shipmondo print client uniquely per host. They are used to send print jobs to the print client.\n\n\nRelated articles:\n\n- [Shipmondo Print Client installation and setup guide](https://help.shipmondo.com/en/articles/2564458-shipmondo-print-client-installation-and-setup-guide)",
      "operationId": "printers_get",
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "type": "array",
                     "items": {
                        "$ref": "#/components/schemas/Printer"
                     }
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   }
},
"/print_jobs": {
   "post": {
      "tags": [
         "Print client"
      ],
      "summary": "Create a print job",
      "description": "Creates a print job.\n\n\nPrint jobs are sent to the print client on the specified host to print documents.\n\n\nRelated articles:\n\n- [Shipmondo Print Client installation and setup guide](https://help.shipmondo.com/en/articles/2564458-shipmondo-print-client-installation-and-setup-guide)",
      "operationId": "print_jobs",
      "requestBody": {
         "content": {
            "application/json": {
               "schema": {
                  "$ref": "#/components/schemas/PrintJob"
               }
            }
         },
         "required": true
      },
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "type": "object",
                     "properties": {
                        "success": {
                          "type": "boolean",
                          "description": "Identicates if the creation of print job was successful or not"
                        }
                     }
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ],
      "x-codegen-request-body-name": "body"
   }
},
"/print_jobs/batch": {
   "post": {
      "tags": [
         "Print client"
      ],
      "summary": "Create a print job batch",
      "description": "Creates a batch of prints jobs to be printed in the specified order on a specified host.\n\n\nRelated articles:\n\n- [Shipmondo Print Client installation and setup guide](https://help.shipmondo.com/en/articles/2564458-shipmondo-print-client-installation-and-setup-guide)",
      "operationId": "print_jobs_post",
      "requestBody": {
         "content": {
            "application/json": {
               "schema": {
                  "$ref": "#/components/schemas/PrintJobBatch"
               }
            }
         },
         "required": true
      },
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "type": "object",
                     "properties": {
                        "success": {
                          "type": "boolean",
                          "description": "Identicates if the creation of print job batch was successful or not"
                        }
                     }
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ],
      "x-codegen-request-body-name": "body"
   }
},
    "/quotes": {
   "post": {
      "tags": [
         "Quotes"
      ],
      "summary": "Create a shipment quote",
      "description": "\nCreates a shipment quote with specified sender (origin), receiver (destination), product and services.\n\n\nThis method determines the **estimated** price for a shipment on Shipmondo's agreement\n\n\n**Important**: This endpoint will only provide prices for Shipmondos agreement.\nIf you want to get price for your own agreement please refer to [Shipment Quote](/operations/shipments_quote_post) instead\n.\n",
      "operationId": "quotes_post",
      "requestBody": {
         "description": "Quote Object.",
         "content": {
            "application/json": {
               "schema": {
                  "$ref": "#/components/schemas/CreateQuoteRequest"
               }
            }
         },
         "required": true
      },
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/CreateQuoteResponse"
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         },
         "422": {
            "$ref": "#/components/responses/InvalidRequest"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ],
      "x-codegen-request-body-name": "body"
   }
},
"/quotes/list": {
   "post": {
      "tags": [
         "Quotes"
      ],
      "summary": "List available quotes for a shipment",
      "description": "\nReturns a list of available quotes for a shipment with specified sender (origin), receiver (destination).\n\n\nThis method fetches available **estimate** prices with different shipping products for shipments using Shipmondo's agreement.\n\n\nSome carriers might not be available for technical reasons.\n",
      "operationId": "quotes/list_post",
      "requestBody": {
         "description": "Quote Objects.\n",
         "content": {
            "application/json": {
               "schema": {
                  "$ref": "#/components/schemas/CreateQuoteListRequest"
               }
            }
         },
         "required": true
      },
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "type": "array",
                     "items": {
                        "$ref": "#/components/schemas/CreateQuoteResponse"
                     }
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         },
         "422": {
            "$ref": "#/components/responses/InvalidRequest"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ],
      "x-codegen-request-body-name": "body"
   }
}
,
    "/return_portals": {
   "get": {
      "tags": [
         "Return portals"
      ],
      "summary": "List all return portals",
      "description": "Returns a list of return portals.",
      "operationId": "return_portals_get",
      "parameters": [
         {
            "name": "id",
            "in": "query",
            "description": "ID for the return portal.",
            "schema": {
               "type": "integer"
            }
         },
         {
            "name": "active",
            "in": "query",
            "description": "Filters for whether or not the return portal is active",
            "schema": {
               "type": "boolean"
            }
         },
         {
            "name": "per_page",
            "in": "query",
            "description": "For pagination. Defines how many entries are returned per page.",
            "schema": {
               "type": "integer",
               "default": 10,
               "minimum": 1,
               "maximum": 25
            }
         },
         {
            "name": "page",
            "in": "query",
            "description": "For pagination. Defines which page the results are fetched from.",
            "schema": {
               "type": "integer",
               "default": 1
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "headers": {
               "X-Current-Page": {
                  "description": "Pagination - Current Page.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Per-Page": {
                  "description": "Pagination - Per Page.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Total-Count": {
                  "description": "Pagination - Total Count.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Total-Pages": {
                  "description": "Pagination - Total Pages Count.",
                  "schema": {
                     "type": "integer"
                  }
               }
            },
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/ReturnPortals"
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   }
},
"/return_portals/{id}": {
   "get": {
      "tags": [
         "Return portals"
      ],
      "summary": "Retrieve a return portal",
      "description": "Returns the details of a return portal.",
      "operationId": "return_portal_get",
      "parameters": [
         {
            "name": "id",
            "in": "path",
            "description": "ID for the return portal to be included in the filter",
            "required": true,
            "schema": {
               "type": "integer"
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/ReturnPortal"
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   }
},
"/return_portals/{id}/shipments": {
   "get": {
      "tags": [
         "Return portals"
      ],
      "summary": "List all shipments for a return portal",
      "description": "Returns a list of shipments booked through a specific return portal.",
      "operationId": "return_portals_shipments_get",
      "parameters": [
         {
            "name": "id",
            "in": "path",
            "description": "ID for the return portal to be included in the filter",
            "required": true,
            "schema": {
               "type": "integer"
            }
         },
         {
            "name": "order_id",
            "in": "query",
            "description": "Order ID for the shipments to be included in the filter",
            "schema": {
               "type": "string"
            }
         },
         {
            "name": "package_number",
            "in": "query",
            "description": "Package number for the shipments that need to be considered for\nfilter",
            "schema": {
               "type": "string"
            }
         },
         {
            "name": "carrier_code",
            "in": "query",
            "description": "Carrier code to be included in the filter.",
            "schema": {
               "type": "string",
               "enum": ["airmee","alpi","asendia","b2c_europe","best","bft","bhs_logistics","bpost","bring","brink","budbee","burd","bws","city_mail","cm_transport","collicare","dachser","dansk_distribution","dansk_distribution_brabrand","dansk_distribution_taulov","dao","db_schenker","deutsche_post","dfm","dhl_express","dhl_freight_se","dhl_parcel","dpd","dsv","dsv_parcel","dsv_xpress","early_bird","esbjerg_gods","esbjerg_gods_sjaelland","fed_ex","freja","geodis","gls","gls_de","gordon","helthjem","instabox","interfjord","jetpak","jetpak_se","jjd","joervi_transport","kht","leman","lgt_logistics","link_logistics","mover","nonbo_fragt","packeta","pdk","posti","post_nl","post_nord","sand_distribution","sdl","simptra","tjw","tnt","unspecified","ups","webrinq","xpressen"]
            }
         },
         {
            "name": "receiver_country",
            "in": "query",
            "description": "ISO3166-1 alpha-2 country code to be included in the filter.",
            "schema": {
               "type": "string"
            }
         },
         {
            "name": "created_at_min",
            "in": "query",
            "description": "\"From\" timestamp for the shipments to be included in the filter. Examples:\n* 2017-06-19T11:00:03.305+02:00\n* 2017-06-19 will be transformed into 2017-06-19T00:00:00.000+02:00\n",
            "schema": {
               "type": "string",
               "format": "date-time"
            }
         },
         {
            "name": "created_at_max",
            "in": "query",
            "description": "\"To\" timestamp for the shipments to be included in the filter. Examples:\n* 2017-06-29T11:00:03.305+02:00\n* 2017-06-29 will be transformed into 2017-06-29T00:00:00.000+02:00\n",
            "schema": {
               "type": "string",
               "format": "date-time"
            }
         },
         {
            "name": "per_page",
            "in": "query",
            "description": "For pagination. Defines how many entries are returned per page.",
            "schema": {
               "type": "integer",
               "default": 20,
               "maximum": 50
            }
         },
         {
            "name": "page",
            "in": "query",
            "description": "For pagination. Defines which page the results are fetched from.",
            "schema": {
               "type": "integer",
               "default": 1
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "headers": {
               "X-Current-Page": {
                  "description": "Pagination - Current Page.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Per-Page": {
                  "description": "Pagination - Per Page.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Total-Count": {
                  "description": "Pagination - Total Count.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Total-Pages": {
                  "description": "Pagination - Total Pages Count.",
                  "schema": {
                     "type": "integer"
                  }
               }
            },
            "content": {
               "application/json": {
                  "schema": {
                     "type": "array",
                     "items": {
                        "$ref": "#/components/schemas/Shipment"
                     }
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   }
}
,
    "/sales_orders": {
   "get": {
      "tags": [
         "Sales orders"
      ],
      "summary": "List all sales orders",
      "description": "Returns a list of sales orders.\n\n\nSales orders are used handle all processes of the order flow, including but not limited to picking, packing, sending shipments, and capturing payments through the Shipmondo app.",
      "operationId": "sales_orders_get",
      "parameters": [
         {
            "name": "id",
            "in": "query",
            "description": "ID for the sales order to be included in the filter.",
            "schema": {
               "type": "integer"
            }
         },
         {
            "name": "order_id",
            "in": "query",
            "description": "Order ID for the sales order to be included in the filter.",
            "schema": {
               "type": "string"
            }
         },
         {
            "name": "reference",
            "in": "query",
            "description": "reference for the order to be included in the filter.",
            "schema": {
               "type": "string"
            }
         },
         {
            "name": "bill_to_email",
            "in": "query",
            "description": "Billing email for the order to be included in the filter.",
            "schema": {
               "type": "string"
            }
         },
         {
            "name": "bill_to_mobile",
            "in": "query",
            "description": "Billing mobile for the order to be included in the filter.",
            "schema": {
               "type": "string"
            }
         },
         {
            "name": "ship_to_email",
            "in": "query",
            "description": "Shipping email for the order to be included in the filter.",
            "schema": {
               "type": "string"
            }
         },
         {
            "name": "ship_to_mobile",
            "in": "query",
            "description": "Shipping mobile for the order to be included in the filter.",
            "schema": {
               "type": "string"
            }
         },
         {
            "name": "archived",
            "in": "query",
            "description": "Filter for archived or not.",
            "schema": {
               "type": "boolean"
            }
         },
         {
            "name": "created_at_min",
            "in": "query",
            "description": "\"From\" value of \"created\" timestamp for the sales orders to be included in the filter. Examples:\n* 2018-06-19T11:00:03.305+02:00\n* 2018-06-19 will be transformed into 2017-06-19T00:00:00.000+02:00",
            "schema": {
               "type": "string",
               "format": "date-time"
            }
         },
         {
            "name": "created_at_max",
            "in": "query",
            "description": "\"To\" value of \"created\" timestamp for the sales orders to be included in the filter. Examples:\n* 2018-06-29T11:00:03.305+02:00\n* 2018-06-29 will be transformed into 2017-06-29T00:00:00.000+02:00",
            "schema": {
               "type": "string",
               "format": "date-time"
            }
         },
         {
            "name": "updated_at_min",
            "in": "query",
            "description": "\"From\" value of \"updated\" timestamp for the sales orders to be included in the filter. Examples:\n* 2018-06-19T11:00:03.305+02:00\n* 2018-06-19 will be transformed into 2017-06-19T00:00:00.000+02:00",
            "schema": {
               "type": "string",
               "format": "date-time"
            }
         },
         {
            "name": "updated_at_max",
            "in": "query",
            "description": "\"To\" value of \"updated\" timestamp for the sales orders to be included in the filter. Examples:\n* 2018-06-29T11:00:03.305+02:00\n* 2018-06-29 will be transformed into 2017-06-29T00:00:00.000+02:00",
            "schema": {
               "type": "string",
               "format": "date-time"
            }
         },
         {
            "name": "per_page",
            "in": "query",
            "description": "For pagination. Defines how many entries are returned per page.",
            "schema": {
               "type": "integer",
               "default": 10,
               "minimum": 1,
               "maximum": 25
            }
         },
         {
            "name": "page",
            "in": "query",
            "description": "For pagination. Defines which page the results are fetched from.",
            "schema": {
               "type": "integer",
               "default": 1
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "headers": {
               "X-Current-Page": {
                  "description": "Pagination - Current Page.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Per-Page": {
                  "description": "Pagination - Per Page.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Total-Count": {
                  "description": "Pagination - Total Count.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Total-Pages": {
                  "description": "Pagination - Total Pages Count.",
                  "schema": {
                     "type": "integer"
                  }
               }
            },
            "content": {
               "application/json": {
                  "schema": {
                     "type": "array",
                     "items": {
                        "$ref": "#/components/schemas/SalesOrder"
                     }
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   },
   "post": {
      "tags": [
         "Sales orders"
      ],
      "summary": "Create a sales order",
      "description": "Creates a sales order.\n\n      \nSales orders are used handle all processes of the order flow, including but not limited to picking, packing, sending shipments, and capturing payments through the Shipmondo app.",
      "operationId": "sales_orders_post",
      "requestBody": {
         "content": {
            "application/json": {
               "schema": {
                  "$ref": "#/components/schemas/CreateSalesOrderRequest"
               }
            }
         },
         "required": true
      },
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/SalesOrder"
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         },
         "422": {
            "$ref": "#/components/responses/InvalidRequest"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ],
      "x-codegen-request-body-name": "body"
   }
},
"/sales_orders/{id}": {
   "get": {
      "tags": [
         "Sales orders"
      ],
      "summary": "Retrieve a sales order",
      "description": "Returns the details of a sales order.\n\n      \nSales orders are used handle all processes of the order flow, including but not limited to picking, packing, sending shipments, and capturing payments through the Shipmondo app.",
      "operationId": "sales_order_get",
      "parameters": [
         {
            "name": "id",
            "in": "path",
            "description": "ID for the sales order to be included in the filter",
            "required": true,
            "schema": {
               "type": "integer"
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/SalesOrder"
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   },
   "put": {
      "tags": [
         "Sales orders"
      ],
      "summary": "Update a sales order",
      "description": "\n      Updates an existing sales order and its order lines. Updating order lines is exclusively possible with open orders.\n\n      \nSales orders are used handle all processes of the order flow, including but not limited to picking, packing, sending shipments, and capturing payments through the Shipmondo app.\n      ",
      "operationId": "sales_order_put",
      "parameters": [
         {
            "name": "id",
            "in": "path",
            "description": "ID for the sales order that needs to be updated",
            "required": true,
            "schema": {
               "type": "integer"
            }
         }
      ],
      "requestBody": {
         "content": {
            "application/json": {
               "schema": {
                  "$ref": "#/components/schemas/UpdateSalesOrderRequest"
               }
            }
         },
         "required": true
      },
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/SalesOrder"
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         },
         "422": {
            "$ref": "#/components/responses/InvalidRequest"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ],
      "x-codegen-request-body-name": "body"
   },
   "delete": {
      "tags": [
         "Sales orders"
      ],
      "summary": "Delete a sales order",
      "description": "Deletes a sales order. Deleted sales orders cannot be restored later.",
      "operationId": "sales_order_delete",
      "parameters": [
         {
            "name": "id",
            "in": "path",
            "description": "ID for the sales order that needs to be deleted",
            "required": true,
            "schema": {
               "type": "integer"
            }
         }
      ],
      "responses": {
         "204": {
            "description": "Successful.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         },
         "422": {
            "$ref": "#/components/responses/InvalidRequest"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ],
      "x-codegen-request-body-name": "body"
   }
},
"/sales_orders/{id}/order_note": {
   "put": {
      "tags": [
         "Sales orders"
      ],
      "summary": "Update a sales order note",
      "description": "Updates the note for a sales order.",
      "operationId": "sales_order_update_note",
      "parameters": [
         {
            "name": "id",
            "in": "path",
            "description": "ID for the sales order that note should be updated for",
            "required": true,
            "schema": {
               "type": "integer"
            }
         }
      ],
      "requestBody": {
         "content": {
            "application/json": {
               "schema": {
                  "$ref": "#/components/schemas/UpdateSalesOrderNote"
               }
            }
         },
         "required": true
      },
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/SalesOrder"
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ],
      "x-codegen-request-body-name": "body"
   }
},
"/sales_orders/{id}/create_shipment": {
   "post": {
      "tags": [
         "Sales orders"
      ],
      "summary": "Create a shipment",
      "description": "Creates a shipment for a sales order.\n\n      \nThe shipment will be created based on the associated shipment template. A fulfillment will be created if none is present.",
      "operationId": "sales_order_create_shipment",
      "parameters": [
         {
            "name": "id",
            "in": "path",
            "description": "ID of the sales order to create a shipment for",
            "required": true,
            "schema": {
               "type": "integer"
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/SalesOrder"
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   }
},
"/sales_orders/{id}/capture": {
   "post": {
      "tags": [
         "Sales orders"
      ],
      "summary": "Capture payment",
      "description": "Captures payment for a sales order.",
      "operationId": "sales_order_capture",
      "parameters": [
         {
            "name": "id",
            "in": "path",
            "description": "ID for the sales order that needs to be captured",
            "required": true,
            "schema": {
               "type": "integer"
            }
         }
      ],
      "requestBody": {
         "content": {
            "application/json": {
               "schema": {
                  "$ref": "#/components/schemas/SalesOrderCapture"
               }
            }
         },
         "required": true
      },
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/SalesOrder"
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   }
},
"/sales_orders/{id}/refund": {
  "post": {
    "tags": ["Sales orders"],
    "summary": "Refund payment",
    "description": "Refund payment for a sales order.",
    "operationId": "sales_order_refund",
    "parameters": [
      {
        "name": "id",
        "in": "path",
        "description": "ID of the sales order that you wish to refund",
        "required": true,
        "schema": {
          "type": "integer"
        }
      }
    ],
    "requestBody": {
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/SalesOrderRefund"
          }
        }
      },
      "required": true
    },
    "responses": {
      "200": {
        "description": "Successful.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/SalesOrder"
            }
          }
        }
      },
      "401": {
        "$ref": "#/components/responses/Unauthorized"
      },
      "404": {
        "$ref": "#/components/responses/NotFound"
      },
      "422": {
        "$ref": "#/components/responses/InvalidRequest"
      }
    },
    "security": [{ "basicAuth": [] }]
  }
},
"/sales_orders/{id}/void": {
  "post": {
    "tags": ["Sales orders"],
    "summary": "Void payment",
    "description": "Void payment for a sales order.",
    "operationId": "sales_order_void",
    "parameters": [
      {
        "name": "id",
        "in": "path",
        "description": "ID of the sales order that you wish to void",
        "required": true,
        "schema": {
          "type": "integer"
        }
      }
    ],
    "requestBody": {
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/SalesOrderVoid"
          }
        }
      },
      "required": true
    },
    "responses": {
      "200": {
        "description": "Successful.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/SalesOrder"
            }
          }
        }
      },
      "401": {
        "$ref": "#/components/responses/Unauthorized"
      },
      "404": {
        "$ref": "#/components/responses/NotFound"
      },
      "422": {
        "$ref": "#/components/responses/InvalidRequest"
      }
    },
    "security": [{ "basicAuth": [] }]
  }
},
"/sales_orders/barcode": {
   "post": {
      "tags": [
         "Sales orders"
      ],
      "summary": "Process a barcode",
      "description": "Processes a sales order barcode and executes the defined actions. The actions that are executed are defined in the pick settings at Shipmondo.",
      "operationId": "sales_order_barcode",
      "requestBody": {
         "content": {
            "application/json": {
               "schema": {
                  "$ref": "#/components/schemas/ProcessSalesOrderBarcode"
               }
            }
         },
         "required": true
      },
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/SalesOrder"
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ],
      "x-codegen-request-body-name": "body"
   }
},
"/sales_orders/{id}/pick_list": {
   "get": {
      "tags": [
         "Sales orders"
      ],
      "summary": "Retrieve a pick list",
      "description": "Returns a pick list for a sales order. Pick list is delivered as Base64-encoded data.\n\n      \nPick lists contain the items for the order, and their locations, optimized for your picking flow.",
      "operationId": "sales_order_pick_list",
      "parameters": [
         {
            "name": "id",
            "in": "path",
            "description": "ID for the sales order to be included in the filter",
            "required": true,
            "schema": {
               "type": "integer"
            }
         },
         {
            "name": "format",
            "in": "query",
            "description": "Format for the pick list. Available: a4_pdf, 10x19_pdf\n",
            "schema": {
               "type": "string",
               "enum": [
                  "a4_pdf",
                  "10x19_pdf"
               ]
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "type": "array",
                     "items": {
                        "$ref": "#/components/schemas/PickListData"
                     }
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   }
},
"/sales_orders/{id}/packing_slips": {
   "get": {
      "tags": [
         "Sales orders"
      ],
      "summary": "Retrieve a packing slip",
      "description": "Returns a packing slip for a sales order. Packing slip is delivered as Base64-encoded data.\n\n      \nPacking slips are branded slips used for disclosing which orders are sent to the end customer.",
      "operationId": "sales_order_packing_slips",
      "parameters": [
         {
            "name": "id",
            "in": "path",
            "description": "ID for the sales order to be included in the filter",
            "required": true,
            "schema": {
               "type": "integer"
            }
         },
         {
            "name": "format",
            "in": "query",
            "description": "Format for the packing slip. Available: a4_pdf, 10x19_pdf\n",
            "schema": {
               "type": "string",
               "enum": [
                  "a4_pdf",
                  "10x19_pdf"
               ]
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/PackingSlip"
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   }
},
"/pick_lists": {
   "get": {
      "tags": [
         "Sales orders"
      ],
      "summary": "Retrieve pick lists",
      "description": "Return pick lists for specific sales orders. Limit: **25** sales order IDs per request.\n\n      \nPick lists contain the items for the order, and their locations, optimized for your picking flow.",
      "operationId": "pick_list_get",
      "parameters": [
         {
            "name": "ids",
            "in": "query",
            "description": "A list of sales order IDs that you want to fetch pick lists for. Examples 10075,10076,10077\n",
            "required": true,
            "style": "form",
            "explode": false,
            "schema": {
               "type": "array",
               "items": {
                  "type": "string"
               }
            }
         },
         {
            "name": "output_format",
            "in": "query",
            "description": "Format for the pick lists. Available: a4_pdf, 10x19_pdf\n",
            "schema": {
               "type": "string",
               "enum": [
                  "a4_pdf",
                  "10x19_pdf"
               ]
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "headers": {
               "X-Current-Page": {
                  "description": "Pagination - Current Page.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Per-Page": {
                  "description": "Pagination - Per Page.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Total-Count": {
                  "description": "Pagination - Total Count.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Total-Pages": {
                  "description": "Pagination - Total Pages Count.",
                  "schema": {
                     "type": "integer"
                  }
               }
            },
            "content": {
               "application/json": {
                  "schema": {
                     "type": "array",
                     "items": {
                        "$ref": "#/components/schemas/PickList"
                     }
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   }
},
"/packing_slips": {
   "get": {
      "tags": [
         "Sales orders"
      ],
      "summary": "Retrieve packing slips",
      "description": "Returns packing slips for specific sales orders. Limit: **25** sales order IDs per request.\n\n      \nPacking slips are branded slips used for disclosing which orders are sent to the end customer.",
      "operationId": "packing_slip_get",
      "parameters": [
         {
            "name": "ids",
            "in": "query",
            "description": "A list of sales order IDs that you want to fetch packing slips for. Examples 10075,10076,10077\n",
            "required": true,
            "style": "form",
            "explode": false,
            "schema": {
               "type": "array",
               "items": {
                  "type": "string"
               }
            }
         },
         {
            "name": "output_format",
            "in": "query",
            "description": "Format for the packing slips. Available: a4_pdf, 10x19_pdf\n",
            "schema": {
               "type": "string",
               "enum": [
                  "a4_pdf",
                  "10x19_pdf"
               ]
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "headers": {
               "X-Current-Page": {
                  "description": "Pagination - Current Page.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Per-Page": {
                  "description": "Pagination - Per Page.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Total-Count": {
                  "description": "Pagination - Total Count.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Total-Pages": {
                  "description": "Pagination - Total Pages Count.",
                  "schema": {
                     "type": "integer"
                  }
               }
            },
            "content": {
               "application/json": {
                  "schema": {
                     "type": "array",
                     "items": {
                        "$ref": "#/components/schemas/PackingSlip"
                     }
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   }
},

"/sales_order_packagings": {
   "get": {
      "tags": [
         "Sales orders"
      ],
      "summary": "List all packagings",
      "description": "Returns a list of the sales order packagings.\n\n      \nSales order packaging is used to add dimensions and weight to shipments created for the associated sales order.",
      "operationId": "sales_order_packagings_get",
      "parameters": [
         {
            "name": "id",
            "in": "query",
            "description": "ID for the sales order packaging to be included in the filter",
            "schema": {
               "type": "integer"
            }
         },
         {
            "name": "per_page",
            "in": "query",
            "description": "For pagination. Defines how many entries are returned per page.",
            "schema": {
               "type": "integer",
               "default": 20,
               "minimum": 1,
               "maximum": 50
            }
         },
         {
            "name": "page",
            "in": "query",
            "description": "For pagination. Defines which page the results are fetched from.",
            "schema": {
               "type": "integer",
               "default": 1
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "headers": {
               "X-Current-Page": {
                  "description": "Pagination - Current Page.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Per-Page": {
                  "description": "Pagination - Per Page.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Total-Count": {
                  "description": "Pagination - Total Count.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Total-Pages": {
                  "description": "Pagination - Total Pages Count.",
                  "schema": {
                     "type": "integer"
                  }
               }
            },
            "content": {
               "*/*": {
                  "schema": {
                     "type": "array",
                     "items": {
                        "$ref": "#/components/schemas/SalesOrderPackaging"
                     }
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   }
},
"/sales_order_packagings/{id}": {
   "get": {
      "tags": [
         "Sales orders"
      ],
      "summary": "Retrieve a packaging",
      "description": "Returns the details of a sales order packaging.\n\n      \nSales order packaging is used to add dimensions and weight to shipments created for the associated sales order.",
      "operationId": "sales_order_packaging_get",
      "parameters": [
         {
            "name": "id",
            "in": "path",
            "description": "ID for the sales order packaging to be included in the filter",
            "required": true,
            "schema": {
               "type": "integer"
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "*/*": {
                  "schema": {
                     "$ref": "#/components/schemas/SalesOrderPackaging"
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   }
},
"/sales_orders/{id}/fulfillments": {
   "get": {
      "tags": [
         "Sales orders"
      ],
      "summary": "List fulfillments",
      "description": "Lists all fulfillments for a sales_order.\n\n      \nFulfillments are used for completing orders and creating shipments.",
      "operationId": "sales_order_fulfillments_get",
      "parameters": [
         {
            "name": "id",
            "in": "path",
            "description": "ID for the sales order to be included in the filter",
            "required": true,
            "schema": {
               "type": "integer"
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/FulfillmentCreated"
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         },
         "422": {
            "$ref": "#/components/responses/InvalidRequest"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ],
      "x-codegen-request-body-name": "body"
   },
   "post": {
      "tags": [
         "Sales orders"
      ],
      "summary": "Create a fulfillment",
      "description": "Creates a fulfillment, based on a sales_order.\n\n      \nFulfillments are used for completing orders and creating shipments.",
      "operationId": "fulfillment_post",
      "parameters": [
         {
            "name": "id",
            "in": "path",
            "description": "ID for the sales order to be included in the filter",
            "required": true,
            "schema": {
               "type": "integer"
            }
         }
      ],
      "requestBody": {
         "content": {
            "application/json": {
               "schema": {
                  "$ref": "#/components/schemas/CreateFulfillmentRequest"
               }
            }
         },
         "required": true
      },
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/FulfillmentCreated"
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         },
         "422": {
            "$ref": "#/components/responses/InvalidRequest"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ],
      "x-codegen-request-body-name": "body"
   }
},
"/fulfillments/{id}": {
   "get": {
      "tags": [
         "Sales orders"
      ],
      "summary": "Retrieve a fulfillment",
      "description": "Retrieves a fulfillment.\n\n      \nFulfillments are used for completing orders and creating shipments.",
      "operationId": "fulfillment_get",
      "parameters": [
         {
            "name": "id",
            "in": "path",
            "description": "ID for the fulfillment to be included in the filter",
            "required": true,
            "schema": {
               "type": "integer"
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/FulfillmentCreated"
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         },
         "422": {
            "$ref": "#/components/responses/InvalidRequest"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ],
      "x-codegen-request-body-name": "body"
   }
},
"/fulfillments/{id}/create_shipment": {
   "post": {
      "tags": [
         "Sales orders"
      ],
      "summary": "Create a shipment for a fulfillment",
      "description": "Creates a shipment for a fulfillment.\n\n      \nThe shipment is created based on the `ship_to` address and `shipment_template` of the sales order.",
      "operationId": "fulfillment_post_create_shipment",
      "parameters": [
         {
            "name": "id",
            "in": "path",
            "description": "ID for the fulfillment to be included in the filter",
            "required": true,
            "schema": {
               "type": "integer"
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/FulfillmentCreated"
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         },
         "422": {
            "$ref": "#/components/responses/InvalidRequest"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ],
      "x-codegen-request-body-name": "body"
   }
},
"/sales_orders/{id}/mark_as_paid": {
   "post": {
      "tags": [
         "Sales orders"
      ],
      "summary": "Mark as paid",
      "description": "Mark a sales order as paid.",
      "operationId": "sales_order_mark_as_paid",
      "parameters": [
         {
            "name": "id",
            "in": "path",
            "description": "ID for the sales order that needs to be marked as paid",
            "required": true,
            "schema": {
               "type": "integer"
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/SalesOrder"
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         },
         "422": {
            "$ref": "#/components/responses/InvalidRequest"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   }
}
,
    "/pickup_points": {
   "get": {
      "tags": [
         "Service points"
      ],
      "summary": "List pickup points",
      "description": "\nReturns a list of the available and nearest pickup points based on input.\n\n\nUsually the address information given should be the receivers address to find pickup points nearest their location.\n\n\nThe identification of the pickup points can be used/required when creating a shipment.\n",
      "operationId": "pickup_points_get",
      "parameters": [
         {
            "name": "carrier_code",
            "in": "query",
            "description": "Carrier code to be included in the filter.",
            "required": true,
            "schema": {
               "type": "string",
               "example": "gls",
               "enum": ["bpost","bring","budbee","bws","city_mail","dao","db_schenker","dfm","dhl_freight_se","dhl_parcel","dsv_xpress","gls","gls_de","helthjem","link_logistics","packeta","pdk","post_nl","post_nord","posti","ub_db_schenker_se","ups"]
            }
         },
         {
            "name": "country_code",
            "in": "query",
            "description": "Country code (ISO Alpha-2) to be included in the filter.",
            "required": true,
            "schema": {
               "type": "string",
               "default": "DK"
            }
         },
         {
            "name": "zipcode",
            "in": "query",
            "description": "Zip code / Postal code.",
            "required": true,
            "schema": {
               "type": "string",
               "example": "5000"
            }
         },
         {
            "name": "city",
            "in": "query",
            "description": "Name of the city. It is recommended to include city with the request to increase the hit accuracy.\n",
            "schema": {
               "type": "string",
               "example": "Odense"
            }
         },
         {
            "name": "address",
            "in": "query",
            "description": "Street address (contains street name and house number)",
            "schema": {
               "type": "string"
            }
         },
         {
            "name": "id",
            "in": "query",
            "description": "The ID of the pickup point. Used to look up a specific service point for a carrier. When used, zip code is no longer required. Some carrier may not support this parameter.",
            "schema": {
               "type": "string"
            }
         },
         {
            "name": "quantity",
            "in": "query",
            "description": "Defines how many pickup points are being returned.",
            "schema": {
               "type": "integer",
               "default": 10,
               "maximum": 50
            }
         },
         {
            "name": "collect_points",
            "in": "query",
            "description": "Set as true to get collect points for products like GLS Click&Collect",
            "schema": {
               "type": "boolean",
               "format": "bool",
               "default": false
            }
         },
         {
            "name": "product_code",
            "in": "query",
            "description": "Used to, e.g., determine whether to return postfiliale (default) or packstations for DHL Parcel.",
            "schema": {
               "type": "string"
            }
         },
        {
          "name": "in_delivery",
          "in": "query",
          "description": "Filter on whether or not the pickup point supports drop-off of parcels.",
          "schema": {
            "type": "boolean"
          }
        },
        {
          "name": "out_delivery",
          "in": "query",
          "description": "Filter on whether or not the pickup point supports pickup of parcels.",
          "schema": {
            "type": "boolean"
          }
        }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "type": "array",
                     "items": {
                        "$ref": "#/components/schemas/ServicePoint"
                     }
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   }
},
"/service_point/service_points": {
   "get": {
      "tags": [
         "Service points by product",
         "Shipping modules"
      ],
      "summary": "Get service points based on product.",
      "description": "The endpoint will return an array of the closest service points available to the destination, according to the parameters. The list will be sorted by distance when possible.",
      "operationId": "service_points_get",
      "parameters": [
         {
            "name": "product_code",
            "in": "query",
            "description": "Product code to find service points for.",
            "required": true,
            "schema": {
               "type": "string",
               "example": "GLS_SD"
            }
         },
         {
            "name": "country_code",
            "in": "query",
            "description": "Country code to find service points within.",
            "required": true,
            "schema": {
               "type": "string",
               "example": "DK"
            }
         },
         {
            "name": "zipcode",
            "in": "query",
            "description": "Zip code / Postal code.",
            "required": true,
            "schema": {
               "type": "string",
               "example": "5220"
            }
         },
         {
            "name": "city",
            "in": "query",
            "description": "Name of the city. It is recommended to include city in the request to increase accuracy.",
            "schema": {
               "type": "string",
               "example": "Odense SØ"
            }
         },
         {
            "name": "address",
            "in": "query",
            "description": "Street address (street name and house number). It is recommended to include the address in the request to increase accuracy.\n \n If this parameter is not present or the address cannot be validated, the results will be based on the zipcode coordinates alone.",
            "schema": {
               "type": "string",
               "example": "Hvilehøjvej 25"
            }
         },
         {
            "name": "quantity",
            "in": "query",
            "description": "Defines the maximum amount of pickup points that will be returned.",
            "schema": {
               "type": "integer",
               "default": 10,
               "maximum": 20
            }
         },
         {
            "name": "service_point_types",
            "in": "query",
            "description": "Service point types. If not provided, will default to use all valid service point types for the given product.",
            "schema": {
               "type": "array",
               "items": {
                  "type": "string"
               },
               "minItems": 0,
               "description": "A specific service point type",
               "example": [
                  "SP",
                  "BOX"
               ],
               "default": null
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "type": "array",
                     "items": {
                        "$ref": "#/components/schemas/ServicePointV2"
                     }
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": [],
            "frontendKey": []
         }
      ]
   }
},
"/service_point/service_point_types": {
   "get": {
      "tags": [
         "Service points by product",
         "Shipping modules"
      ],
      "summary": "Get valid service point types",
      "description": "The endpoint will return all service point types for a given product code, and optionally country code. It is recommended to supply a country code, since service point types could potentially vary from country to country for a given product.",
      "operationId": "sp_types_get",
      "parameters": [
         {
            "name": "product_code",
            "in": "query",
            "description": "The product code to find service point types for.",
            "required": true,
            "schema": {
               "type": "string",
               "example": "GLSDK_SD"
            }
         },
         {
            "name": "country_code",
            "in": "query",
            "description": "The country code to find service point types for.",
            "required": false,
            "schema": {
               "type": "string",
               "example": "DK"
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "type": "array",
                        "items": {
                           "$ref": "#/components/schemas/ServicePointType"
                        }
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": [],
            "frontendKey": []
         }
      ]
   }
},
    "/shipping_modules/carriers": {
   "get": {
      "tags": [
         "Shipping modules"
      ],
      "summary": "Get carriers",
      "description": "The endpoint will return all carriers valid for shipping modules.",
      "operationId": "shipping_modules_carriers_get",
      "parameters": [
         {
            "name": "receiver_country_code",
            "in": "query",
            "description": "Will limit the results to only contain carriers that are valid for the given country.",
            "required": false,
            "schema": {
               "type": "string",
               "example": "DK"
            }
         },
         {
            "name": "own_agreement_only",
            "in": "query",
            "description": "Will limit the results to only contain carriers for which your account has an active agreement.",
            "required": false,
            "schema": {
               "type": "boolean",
               "example": true
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "type": "array",
                     "items": {
                        "$ref": "#/components/schemas/ShippingModuleCarrier"
                     }
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": [],
            "frontendKey": []
         }
      ]
   }
},
"/shipping_modules/products": {
   "get": {
      "tags": [
         "Shipping modules"
      ],
      "summary": "Get valid products",
      "description": "The endpoint will return all products for the given carrier code.",
      "operationId": "shipping_modules_products_get",
      "parameters": [
         {
            "name": "carrier_code",
            "in": "query",
            "description": "The carrier code to find products for.",
            "required": true,
            "schema": {
               "type": "string",
               "example": "gls"
            }
         },
         {
            "name": "own_agreement_only",
            "in": "query",
            "description": "Will limit the results to only contain products for which your account has an active agreement.",
            "required": false,
            "schema": {
               "type": "boolean",
               "example": true
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "type": "array",
                     "items": {
                        "$ref": "#/components/schemas/ShippingModuleProduct"
                     }
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": [],
            "frontendKey": []
         }
      ]
   }
},
"/shipping_modules/shopify/shipping_methods/{id}": {
   "get": {
      "tags": [
         "Shipping modules"
      ],
      "summary": "Get Shopify shipping method",
      "description": "The endpoint will return details for a specific Shopify shipping method that belongs to your account.",
      "operationId": "shipping_modules_shopify_shipping_methods_get",
      "parameters": [
         {
            "name": "id",
            "in": "path",
            "description": "The ID of the Shopify shipping method.",
            "required": true,
            "schema": {
               "type": "integer",
               "example": 12345
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/ShopifyShippingMethod"
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   }
},
    "/shipment_templates": {
   "get": {
      "tags": [
         "Shipment templates"
      ],
      "summary": "List all shipment templates",
      "description": "Returns a list of shipment templates.",
      "operationId": "shipment_templates_get",
      "parameters": [
         {
            "name": "id",
            "in": "query",
            "description": "ID for the shipment template to be included in the filter",
            "schema": {
               "type": "integer"
            }
         },
         {
            "name": "sender_country",
            "in": "query",
            "description": "Country code (ISO Alpha-2) to be included in the filter.",
            "schema": {
              "type": "string",
              "example": "DK"
            }
         },
         {
            "name": "receiver_country",
            "in": "query",
            "description": "Country code (ISO Alpha-2) to be included in the filter.",
            "schema": {
               "type": "string",
               "example": "DK"
            }
         },
         {
            "name": "per_page",
            "in": "query",
            "description": "For pagination. Defines how many entries are returned per page.",
            "schema": {
               "type": "integer",
              "default": 20,
              "maximum": 50
            }
         },
         {
            "name": "page",
            "in": "query",
            "description": "For pagination. Defines which page the results are fetched from.",
            "schema": {
               "type": "integer",
              "default": 1
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "headers": {
               "X-Current-Page": {
                  "description": "Pagination - Current Page.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Per-Page": {
                  "description": "Pagination - Per Page.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Total-Count": {
                  "description": "Pagination - Total Count.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Total-Pages": {
                  "description": "Pagination - Total Pages Count.",
                  "schema": {
                     "type": "integer"
                  }
               }
            },
            "content": {
               "application/json": {
                  "schema": {
                     "type": "array",
                     "items": {
                        "$ref": "#/components/schemas/ShipmentTemplate"
                     }
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   }
},
"/shipment_templates/{id}": {
   "get": {
      "tags": [
         "Shipment templates"
      ],
      "summary": "Retrieve a shipment template",
      "description": "Returns the details of a shipment template.",
      "operationId": "shipment_template_get",
      "parameters": [
         {
            "name": "id",
            "in": "path",
            "description": "ID for the shipment template to be included in the filter",
            "required": true,
            "schema": {
               "type": "integer"
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/ShipmentTemplate"
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   }
},
    "/shipments": {
  "get": {
    "tags": [
      "Shipments"
    ],
    "summary": "List all shipments",
    "description": "Returns a list of shipments.",
    "operationId": "shipments_get",
    "parameters": [
      {
        "name": "id",
        "in": "query",
        "description": "ID for the shipment to be included in the filter",
        "schema": {
          "type": "integer"
        }
      },
      {
        "name": "order_id",
        "in": "query",
        "description": "Order ID for the shipments to be included in the filter",
        "schema": {
          "type": "string"
        }
      },
      {
        "name": "package_number",
        "in": "query",
        "description": "Shipment or package number for the shipments to be included in the filter",
        "schema": {
          "type": "string"
        }
      },
      {
        "name": "carrier_code",
        "in": "query",
        "description": "Carrier code to be included in the filter.",
        "schema": {
          "type": "string",
          "enum": ["airmee","alpi","asendia","best","bft","bhs_logistics","bws","bpost","bring","brink","budbee","burd","city_mail","cm_transport","collicare","dachser","dansk_distribution_brabrand","dansk_distribution","dansk_distribution_taulov","dfm","dao","db_schenker","deutsche_post","dhl_express","dhl_freight_se","dhl_parcel","dpd","dsv_parcel","dsv","dsv_xpress","early_bird","esbjerg_gods","esbjerg_gods_sjaelland","fed_ex","freja","geodis","gls","gls_de","gordon","helthjem","instabox","interfjord","jetpak","jetpak_se","jjd","joervi_transport","kht","leman","lgt_logistics","link_logistics","b2c_europe","mover","nonbo_fragt","packeta","posti","post_nl","pdk","post_nord","sand_distribution","sdl","simptra","tjw","tnt","ups","webrinq","xpressen","unspecified"]
        }
      },
      {
        "name": "sender_country",
        "in": "query",
        "description": "Country code (ISO Alpha-2) to be included in the filter.",
        "schema": {
          "type": "string",
          "example": "DK"
        }
      },
      {
        "name": "receiver_country",
        "in": "query",
        "description": "Country code (ISO Alpha-2) to be included in the filter.",
        "schema": {
          "type": "string",
          "example": "DK"
        }
      },
      {
        "name": "waybill_reference",
        "in": "query",
        "description": "Reference of the bulk waybill that the shipment is included in, to be included in the filter.",
        "schema": {
          "type": "string",
          "example": "CS000000000NO"
        }
      },
      {
        "name": "created_at_min",
        "in": "query",
        "description": "\"From\" timestamp for the shipments to be included in the filter. Examples:\n* 2017-06-19T11:00:03.305+02:00\n* 2017-06-19 will be transformed into 2017-06-19T00:00:00.000+02:00\n",
        "schema": {
          "type": "string",
          "format": "date-time"
        }
      },
      {
        "name": "created_at_max",
        "in": "query",
        "description": "\"To\" timestamp for the shipments to be included in the filter. Examples:\n* 2017-06-29T11:00:03.305+02:00\n* 2017-06-29 will be transformed into 2017-06-29T00:00:00.000+02:00\n",
        "schema": {
          "type": "string",
          "format": "date-time"
        }
      },
      {
        "name": "per_page",
        "in": "query",
        "description": "For pagination. Defines how many entries are returned per page.",
        "schema": {
          "type": "integer",
          "default": 20,
          "maximum": 50
        }
      },
      {
        "name": "page",
        "in": "query",
        "description": "For pagination. Defines which page the results are fetched from.",
        "schema": {
          "type": "integer",
          "default": 1
        }
      }
    ],
    "responses": {
      "200": {
        "description": "Successful.",
        "headers": {
          "X-Current-Page": {
            "description": "Pagination - Current Page.",
            "schema": {
              "type": "integer"
            }
          },
          "X-Per-Page": {
            "description": "Pagination - Per Page.",
            "schema": {
              "type": "integer"
            }
          },
          "X-Total-Count": {
            "description": "Pagination - Total Count.",
            "schema": {
              "type": "integer"
            }
          },
          "X-Total-Pages": {
            "description": "Pagination - Total Pages Count.",
            "schema": {
              "type": "integer"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/Shipment"
              }
            }
          }
        }
      },
      "401": {
        "$ref": "#/components/responses/Unauthorized"
      },
      "404": {
        "$ref": "#/components/responses/NotFound"
      }
    },
    "security": [
      {
        "basicAuth": []
      }
    ]
  },
  "post": {
    "tags": [
      "Shipments"
    ],
    "summary": "Create a shipment",
    "description": "Creates a new shipment with the provided information.",
    "operationId": "shipments_post",
    "requestBody": {
      "description": "\nShipment Object.\n\n\nFor some carriers, a simple model can be used, while for others a more advanced model needs to be used.\n\n\nThis request sample is based on the simple model.\n\n\nRead more: [Creating Shipments](https://shipmondo.dev/docs/api/create-shipment)\n",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/CreateShipmentRequest"
          },
          "examples": {
            "simple": {
              "summary": "Simple",
              "value": {
                "own_agreement": false,
                "label_format": "a4_pdf",
                "product_code": "GLSDK_SD",
                "service_codes": "EMAIL_NT,SMS_NT",
                "reference": "Order 10001",
                "automatic_select_service_point": true,
                "parties": [
                  {
                    "type": "sender",
                    "name": "Min Virksomhed ApS",
                    "attention": "Lene Hansen",
                    "address1": "Hvilehøjvej 25",
                    "postal_code": "5220",
                    "city": "Odense SØ",
                    "country_code": "DK",
                    "email": "info@minvirksomhed.dk",
                    "phone": "70400407"
                  },
                  {
                    "type": "receiver",
                    "name": "Lene Hansen",
                    "address1": "Skibhusvej 52",
                    "postal_code": "5000",
                    "city": "Odense C",
                    "country_code": "DK",
                    "email": "lene@email.dk",
                    "phone": "12345678"
                  }
                ],
                "parcels": [
                  {
                    "weight": 1000
                  }
                ]
              }
            }
          }
        }
      },
      "required": true
    },
    "responses": {
      "200": {
        "description": "Successful.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CreateShipmentResponse"
            }
          }
        }
      },
      "401": {
        "$ref": "#/components/responses/Unauthorized"
      },
      "404": {
        "$ref": "#/components/responses/NotFound"
      },
      "422": {
        "$ref": "#/components/responses/InvalidRequest"
      }
    },
    "security": [
      {
        "basicAuth": []
      }
    ],
    "x-codegen-request-body-name": "body"
  }
},
"/shipments/{id}": {
  "get": {
    "tags": [
      "Shipments"
    ],
    "summary": "Retrieve a shipment",
    "description": "Returns the details of a shipment.",
    "operationId": "shipment_get",
    "parameters": [
      {
        "name": "id",
        "in": "path",
        "description": "ID for the shipment to be included in the filter",
        "required": true,
        "schema": {
          "type": "integer"
        }
      }
    ],
    "responses": {
      "200": {
        "description": "Successful.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Shipment"
            }
          }
        }
      },
      "401": {
        "$ref": "#/components/responses/Unauthorized"
      },
      "404": {
        "$ref": "#/components/responses/NotFound"
      }
    },
    "security": [
      {
        "basicAuth": []
      }
    ]
  }
},
"/shipments/{id}/cancel": {
  "put": {
    "tags": [
      "Shipments"
    ],
    "summary": "Cancel a shipment",
    "description": "Cancels a shipment at Shipmondo and the carrier if possible.\n\n\n    **Note:** This doesn't refund the shipment in Shipmondo.\n    ",
    "operationId": "shipment_cancel",
    "parameters": [
      {
        "name": "id",
        "in": "path",
        "description": "ID for the shipment to be included in the filter",
        "required": true,
        "schema": {
          "type": "integer"
        }
      }
    ],
    "responses": {
      "200": {
        "description": "Successful.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ShipmentCancelled"
            }
          }
        }
      },
      "401": {
        "$ref": "#/components/responses/Unauthorized"
      },
      "404": {
        "$ref": "#/components/responses/NotFound"
      }
    },
    "security": [
      {
        "basicAuth": []
      }
    ]
  }
},
"/shipments/{id}/proforma_invoices": {
  "get": {
    "tags": [
      "Shipments"
    ],
    "summary": "Retrieve a proforma invoice",
    "description": "\n      Returns a proforma invoice for a shipment.\n\n\n      Proforma invoice is generated based on the customs data received and delivered as Base64-encoded data.",
    "operationId": "proforma_invoices_get",
    "parameters": [
      {
        "name": "id",
        "in": "path",
        "description": "ID for the shipment to be included in the filter",
        "required": true,
        "schema": {
          "type": "integer"
        }
      }
    ],
    "responses": {
      "200": {
        "description": "Successful.",
        "content": {
          "application/json": {
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ProformaInvoice"
              }
            }
          }
        }
      },
      "401": {
        "$ref": "#/components/responses/Unauthorized"
      },
      "404": {
        "$ref": "#/components/responses/NotFound"
      }
    },
    "security": [
      {
        "basicAuth": []
      }
    ]
  }
},
"/shipments/{id}/waybills": {
  "get": {
    "tags": [
      "Shipments"
    ],
    "summary": "Retrieve waybill for a shipment",
    "description": "\nReturns waybill for a shipment.\n\n\nWaybills are carrier specific and compared to collected waybills these only cover one shipment.\n\n\n**Danske Fragtmænd** supports this when **INCL_WAYBILL** service is booked.\n\n\n**DHL Freight** offers support when either the INCL_WAYBILL/ADR service is booked or when the following products are selected: Parti (SE), Euroline, or Euroline Domestic (DK).\n\n\n**PostNord Danmark**, **Blue Water Shipping**, **Jørgen Jensen Distribution**, **K. Hansen Transport** and **Per Damgård** supports this to get ADR documentation when **ADR** service is booked.\n\n\n**DB Schenker Sweden** supports this for **System**, **System Premium**, **Full Load** and **Part Load** products.",
    "operationId": "shipment_waybill_get",
    "parameters": [
      {
        "name": "id",
        "in": "path",
        "description": "ID for the shipment to be included in the filter",
        "required": true,
        "schema": {
          "type": "integer"
        }
      }
    ],
    "responses": {
      "200": {
        "description": "Successful.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Document"
            }
          }
        }
      },
      "404": {
        "$ref": "#/components/responses/NotFound"
      }
    },
    "security": [
      {
        "basicAuth": []
      }
    ]
  }
},
"/shipments/quote": {
  "post": {
    "tags": [
      "Shipments"
    ],
    "summary": "Create a shipment quote",
    "description": "Creates a shipment quote from a given shipment request.\n\nFor shipments through Shipmondo's agreement, it determines the **estimated** price for a shipment on Shipmondo's agreement.\n\nFor own agreement shipments, it determines the price paid to Shipmondo and an **estimated** price for a shipment from the carrier (if supported by the carrier).",
    "operationId": "shipments_quote_post",
    "requestBody": {
      "description": "Quote Object.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/CreateShipmentRequest"
          },
          "examples": {
            "simple": {
              "summary": "Simple",
              "value": {
                "own_agreement": false,
                "label_format": "a4_pdf",
                "product_code": "GLSDK_SD",
                "service_codes": "EMAIL_NT,SMS_NT",
                "reference": "Order 10001",
                "automatic_select_service_point": true,
                "parties": [
                  {
                    "type": "sender",
                    "name": "Min Virksomhed ApS",
                    "attention": "Lene Hansen",
                    "address1": "Hvilehøjvej 25",
                    "postal_code": "5220",
                    "city": "Odense SØ",
                    "country_code": "DK",
                    "email": "info@minvirksomhed.dk",
                    "phone": "70400407"
                  },
                  {
                    "type": "receiver",
                    "name": "Lene Hansen",
                    "address1": "Skibhusvej 52",
                    "postal_code": "5000",
                    "city": "Odense C",
                    "country_code": "DK",
                    "email": "lene@email.dk",
                    "phone": "12345678"
                  }
                ],
                "parcels": [
                  {
                    "weight": 1000
                  }
                ]
              }
            }
          }
        }
      },
      "required": true
    },
    "responses": {
      "200": {
        "description": "Successful.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CreateShipmentQuoteResponse"
            }
          }
        }
      },
      "401": {
        "$ref": "#/components/responses/Unauthorized"
      },
      "404": {
        "$ref": "#/components/responses/NotFound"
      },
      "422": {
        "$ref": "#/components/responses/InvalidRequest"
      }
    },
    "security": [
      {
        "basicAuth": []
      }
    ],
    "x-codegen-request-body-name": "body"
  }
},
"/shipments/{id}/qr_code": {
  "get": {
    "tags": [
      "Shipments"
    ],
    "summary": "Fetch QR codes for a shipment",
    "description": "Fetches a QR code for a given shipment request. It is only possible to fetch QR codes for shipments booked with the QR code service.",
    "operationId": "shipments_qr_code_get",
    "parameters": [
      {
        "name": "id",
        "in": "path",
        "description": "ID for the shipment to fetch QR codes for",
        "required": true,
        "schema": {
          "type": "integer"
        }
      },
      {
        "name": "file_format",
        "in": "query",
        "description": "The file format the QR Code will be returned as.",
        "schema": {
          "type": "string",
          "enum": [
            "png",
            "pdf"
          ],
          "default": "pdf"
        }
      }
    ],
    "responses": {
      "200": {
        "description": "Successful.",
        "content": {
          "application/pdf": {
            "schema": {
              "$ref": "#/components/schemas/QrCode"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/QrCode2"
            }
          }
        }
      },
      "401": {
        "$ref": "#/components/responses/Unauthorized"
      },
      "404": {
        "$ref": "#/components/responses/NotFound"
      },
      "422": {
        "$ref": "#/components/responses/InvalidRequest"
      }
    },
    "security": [
      {
        "basicAuth": []
      }
    ],
    "x-codegen-request-body-name": "body"
  }
},
    "/shipment_drafts": {
   "get": {
      "tags": [
         "Shipment drafts"
      ],
      "summary": "List all shipment drafts",
      "description": "Returns a list of shipment drafts.\n\n\nThe shipment draft is an unbooked shipment with any amount of data that can be created through Shipmondo later.",
      "operationId": "shipment_drafts_get",
      "parameters": [
         {
            "name": "id",
            "in": "query",
            "description": "ID for the draft shipment to be included in the filter",
            "schema": {
               "type": "integer"
            }
         },
         {
            "name": "created_at_min",
            "in": "query",
            "description": "\"From\" timestamp for the Shipment drafts to be included in the filter. Examples:\n* 2017-06-19T11:00:03.305+02:00\n* 2017-06-19 will be transformed into 2017-06-19T00:00:00.000+02:00\n",
            "schema": {
               "type": "string",
               "format": "date-time"
            }
         },
         {
            "name": "created_at_max",
            "in": "query",
            "description": "\"To\" timestamp for the Shipment drafts to be included in the filter. Examples:\n* 2017-06-29T11:00:03.305+02:00\n* 2017-06-29 will be transformed into 2017-06-29T00:00:00.000+02:00\n",
            "schema": {
               "type": "string",
               "format": "date-time"
            }
         },
         {
            "name": "per_page",
            "in": "query",
            "description": "For pagination. Defines how many entries are returned per page.",
            "schema": {
               "type": "integer",
               "default": 20,
               "minimum": 1,
               "maximum": 50
            }
         },
         {
            "name": "page",
            "in": "query",
            "description": "For pagination. Defines which page the results are fetched from.",
            "schema": {
               "type": "integer",
               "default": 1
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "headers": {
               "X-Current-Page": {
                  "description": "Pagination - Current Page.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Per-Page": {
                  "description": "Pagination - Per Page.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Total-Count": {
                  "description": "Pagination - Total Count.",
                  "schema": {
                     "type": "integer"
                  }
               },
               "X-Total-Pages": {
                  "description": "Pagination - Total Pages Count.",
                  "schema": {
                     "type": "integer"
                  }
               }
            },
            "content": {
               "application/json": {
                  "schema": {
                     "type": "array",
                     "items": {
                        "$ref": "#/components/schemas/ShipmentDraftResponse"
                     }
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   },
   "post": {
      "tags": [
         "Shipment drafts"
      ],
      "summary": "Create a shipment draft",
      "description": "Creates a shipment draft.\n\n\nThe shipment draft is an unbooked shipment with any amount of data that can be created through Shipmondo later.",
      "operationId": "shipment_drafts_post",
      "requestBody": {
         "content": {
            "application/json": {
               "schema": {
                  "$ref": "#/components/schemas/ShipmentDraftCreateRequest"
               }
            }
         },
         "required": true
      },
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/ShipmentDraftResponse"
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         },
         "422": {
            "$ref": "#/components/responses/InvalidRequest"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ],
      "x-codegen-request-body-name": "body"
   }
},
"/shipment_drafts/{id}": {
   "get": {
      "tags": [
         "Shipment drafts"
      ],
      "summary": "Retrieve a shipment draft",
      "description": "Returns the details of a shipment draft.\n\n\nThe shipment draft is an unbooked shipment with any amount of data that can be created through Shipmondo later.",
      "operationId": "shipment_draft_get",
      "parameters": [
         {
            "name": "id",
            "in": "path",
            "description": "ID for the shipment draft to be included in the filter",
            "required": true,
            "schema": {
               "type": "integer"
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/ShipmentDraftResponse"
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   },
   "put": {
      "tags": [
         "Shipment drafts"
      ],
      "summary": "Update a shipment draft",
      "description": "Updates the specified shipment draft by setting the values of the parameters passed. Any parameters not provided will be left unchanged.\n\n\nThe shipment draft is an unbooked shipment with any amount of data that can be created through Shipmondo later.",
      "operationId": "shipment_draft_put",
      "parameters": [
         {
            "name": "id",
            "in": "path",
            "description": "ID for the draft shipment that need to be updated",
            "required": true,
            "schema": {
               "type": "integer"
            }
         }
      ],
      "requestBody": {
         "content": {
            "application/json": {
               "schema": {
                  "$ref": "#/components/schemas/ShipmentDraftRequest"
               }
            }
         },
         "required": true
      },
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/ShipmentDraftResponse"
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         },
         "422": {
            "$ref": "#/components/responses/InvalidRequest"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ],
      "x-codegen-request-body-name": "body"
   },
   "delete": {
      "tags": [
         "Shipment drafts"
      ],
      "summary": "Delete a shipment draft",
      "description": "Archives a shipment draft.",
      "operationId": "shipment_draft_delete",
      "parameters": [
         {
            "name": "id",
            "in": "path",
            "description": "ID for the shipment draft that need to be archived",
            "required": true,
            "schema": {
               "type": "integer"
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/ShipmentDraftResponse"
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         },
         "422": {
            "$ref": "#/components/responses/InvalidRequest"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   }
},
    "/staff_accounts": {
  "get": {
    "tags": [
      "Staff accounts"
    ],
    "summary": "List all staff accounts",
    "description": "Returns a list of staff accounts related to the current user.",

    "operationId": "staff_accounts_get",
    "responses": {
      "200": {
        "description": "Successful.",
        "content": {
          "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/staff_account"
                }
              }
          }
        }
      },
      "401": {
        "$ref": "#/components/responses/Unauthorized"
      },
      "404": {
        "$ref": "#/components/responses/NotFound"
      }
    },
    "security": [
      {
        "basicAuth": []
      }
    ]
  }
},
"/staff_accounts/{id}": {
  "get": {
    "tags": [
      "Staff accounts"
    ],
    "summary": "Retrieve a single staff account",
    "description": "Returns a staff account related to the current user, based on the given id.",

    "operationId": "staff_account_get",
    "parameters": [
      {
        "name": "id",
        "in": "path",
        "description": "ID for the staff_account to be included in the filter",
        "required": true,
        "schema": {
          "type": "integer"
        }
      }
    ],
    "responses": {
      "200": {
        "description": "Successful.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/staff_account"
            }
          }
        }
      },
      "401": {
        "$ref": "#/components/responses/Unauthorized"
      },
      "404": {
        "$ref": "#/components/responses/NotFound"
      }
    },
    "security": [
      {
        "basicAuth": []
      }
    ]
  }
}
,
    "/setups/carriers": {
  "get": {
    "tags": [
      "Carrier Setup"
    ],
    "summary": "Request Carrier setup file",
    "description": "Request Carrier setup file. Take a look at the usage guide [here](https://shipmondo.dev/docs/api/retrieve-and-use-the-carrier-setup-file)",
    "operationId": "requestCarrierSetup",
    "responses": {
      "200": {
        "description": "Successful.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/UserCarrierSetup"
            },
            "examples": {
              "file_requested": {
                "value": {
                  "status": "REQUESTED",
                  "url": null,
                  "expires_at": null
                }
              },
              "file_in_progress": {
                "value": {
                  "status": "IN_PROGRESS",
                  "url": null,
                  "expires_at": null
                }
              },
              "file_ready": {
                "value": {
                  "status": "COMPLETED",
                  "url": "https://example.com/carrier_setup_file",
                  "expires_at": "2021-01-01T00:00:00Z"
                }
              }
            }
          }
        }
      },
      "401": {
        "$ref": "#/components/responses/Unauthorized"
      },
      "429": {
        "description": "Too many requests",
        "content": {
          "text/plain": {
            "schema": {
              "type": "string"
            }
          }
        }
      }
    },
    "security": [
      {
        "basicAuth": []
      }
    ]
  }
},
    "/webhooks": {
   "get": {
      "tags": [
         "Webhooks"
      ],
      "summary": "List all webhooks",
      "description": "Returns a list of webhooks.\n\n\nWebhooks create an event when an action that is subscribed to is performed in Shipmondo. The event is then sent to the specified endpoint containing the current data of the affected object.",
      "operationId": "webhooks_get",
      "parameters": [
         {
            "name": "id",
            "in": "query",
            "description": "ID of the webhook object\n",
            "schema": {
               "type": "integer"
            }
         },
         {
            "name": "name",
            "in": "query",
            "description": "Name of the webhook\n",
            "schema": {
               "type": "string"
            }
         },
         {
            "name": "active",
            "in": "query",
            "description": "The current active status of the webhook\n",
            "schema": {
               "type": "boolean"
            }
         },
         {
            "name": "created_at_min",
            "in": "query",
            "description": "\"From\" timestamp for the webhooks to be included in the filter. Examples:\n* 2017-06-19T11:00:03.305+02:00\n* 2017-06-19 will be transformed into 2017-06-19T00:00:00.000+02:00\n",
            "schema": {
               "type": "string",
               "format": "date-time"
            }
         },
         {
            "name": "created_at_max",
            "in": "query",
            "description": "\"To\" timestamp for the webhooks to be included in the filter. Examples:\n* 2017-06-29T11:00:03.305+02:00\n* 2017-06-29 will be transformed into 2017-06-29T00:00:00.000+02:00\n",
            "schema": {
               "type": "string",
               "format": "date-time"
            }
         },
         {
            "name": "updated_at_min",
            "in": "query",
            "description": "\"From\" value of \"updated\" timestamp for the webhooks to be included in the filter. Examples:\n* 2018-06-19T11:00:03.305+02:00\n* 2018-06-19 will be transformed into 2017-06-19T00:00:00.000+02:00\n",
            "schema": {
               "type": "string",
               "format": "date-time"
            }
         },
         {
            "name": "updated_at_max",
            "in": "query",
            "description": "\"To\" value of \"updated\" timestamp for the webhooks to be included in the filter. Examples:\n* 2018-06-29T11:00:03.305+02:00\n* 2018-06-29 will be transformed into 2017-06-29T00:00:00.000+02:00\n",
            "schema": {
               "type": "string",
               "format": "date-time"
            }
         },
         {
            "name": "per_page",
            "in": "query",
            "description": "For pagination. Defines how many entries are returned per page.",
            "schema": {
               "type": "integer",
               "default": 20,
               "minimum": 1,
               "maximum": 50
            }
         },
         {
            "name": "page",
            "in": "query",
            "description": "For pagination. Defines which page the results are fetched from.",
            "schema": {
               "type": "integer",
               "default": 1
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "type": "array",
                     "items": {
                        "$ref": "#/components/schemas/Webhook"
                     }
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   },
   "post": {
      "tags": [
         "Webhooks"
      ],
      "summary": "Create a webhook",
      "description": "\n      Creates a new webhook with the specified information and activates it.\n\n\n\n      \nWebhooks create an event when an action that is subscribed to is performed in Shipmondo. The event is then sent to the specified endpoint containing the current data of the affected object.\n\n\n      Endpoint must be set up to receive messages before creating the webhook.\n\n\n      Accepted values for action depends on the resource_name used.\n\n\n      Available actions for [**Shipments**](shipment_get) resource:\n\n      - create\n\n      - cancel\n\n\n      Available actions for [**Orders**](sales_order_get) resource:\n\n      - create\n\n      - status_update\n\n      - create_fulfillment\n\n      - create_shipment\n\n      - payment_captured\n\n      - payment_voided\n\n      - delete\n\n\n      Available actions for [**Drafts**](draft_shipment_get) (Draft shipments) resource:\n\n      - create\n\n      - create_shipment\n\n      - delete\n\n\n      Available actions for **Shipment Monitor** resource:\n\n      - latest\n\n      - delivered\n      ",
      "operationId": "webhook_create",
      "requestBody": {
         "description": "Webhook Object",
         "content": {
            "application/json": {
               "schema": {
                  "$ref": "#/components/schemas/WebhookCreate"
               }
            }
         },
         "required": true
      },
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "type": "array",
                     "items": {
                        "$ref": "#/components/schemas/Webhook"
                     }
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ],
      "x-codegen-request-body-name": "body"
   }
},
"/webhooks/{id}": {
   "get": {
      "tags": [
         "Webhooks"
      ],
      "summary": "Retrieve a webhook",
      "description": "Returns the details of a webhook.\n\n      \nWebhooks create an event when an action that is subscribed to is performed in Shipmondo. The event is then sent to the specified endpoint containing the current data of the affected object.",
      "operationId": "webhook_get",
      "parameters": [
         {
            "name": "id",
            "in": "path",
            "description": "ID for the webhook to be included in the filter",
            "required": true,
            "schema": {
               "type": "integer"
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/Webhook"
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   },
   "put": {
      "tags": [
         "Webhooks"
      ],
      "summary": "Update a webhook",
      "description": "\n      Updates an existing webhook with the provided information.\n\n\n      Currently only supports updating **name** and **active** status.\n\n      \nWebhooks create an event when an action that is subscribed to is performed in Shipmondo. The event is then sent to the specified endpoint containing the current data of the affected object.",
      "operationId": "webhook_update",
      "parameters": [
         {
            "name": "id",
            "in": "path",
            "description": "ID of the webhook that is to be updated",
            "required": true,
            "schema": {
               "type": "integer"
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/Webhook"
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   },
   "delete": {
      "tags": [
         "Webhooks"
      ],
      "summary": "Delete a webhook",
      "operationId": "webhook_delete",
      "parameters": [
         {
            "name": "id",
            "in": "path",
            "description": "ID of the webhook that is to be deleted",
            "required": true,
            "schema": {
               "type": "integer"
            }
         }
      ],
      "responses": {
         "200": {
            "description": "Successful.",
            "content": {
               "application/json": {
                  "schema": {
                     "$ref": "#/components/schemas/Webhook"
                  }
               }
            }
         },
         "401": {
            "$ref": "#/components/responses/Unauthorized"
         },
         "404": {
            "$ref": "#/components/responses/NotFound"
         }
      },
      "security": [
         {
            "basicAuth": []
         }
      ]
   }
}
  },

  "components": {
    "responses": {
   "Unauthorized": {
      "description": "Unauthorized.",
      "content": {
         "application/json": {
            "schema": {
               "type": "object",
               "properties": {
                  "error": {
                     "type": "string",
                     "example": "Invalid API User or API Key"
                  }
               },
               "required": [
                  "error"
               ]
            }
         }
      }
   },
   "NotFound": {
      "description": "Resource not found.",
      "content": {
         "application/json": {
            "schema": {
               "type": "object",
               "properties": {
                  "error": {
                     "type": "string",
                     "example": "Resource not found"
                  }
               },
               "required": [
                  "error"
               ]
            }
         }
      }
   },
   "InvalidRequest": {
      "description": "Invalid or not found parameter(s)",
      "content": {
         "application/json": {
            "schema": {
               "type": "object",
               "properties": {
                  "error": {
                     "type": "string",
                     "example": "Invalid or not found parameter(s)"
                  }
               },
               "required": [
                  "error"
               ]
            }
         }
      }
   }
},
    "schemas": {
  "Carrier": {
    "type": "object",
    "properties": {
      "id": {
        "description": "ID of the carrier.",
        "type": "integer",
        "example": 7
      },
      "code": {
        "description": "Carrier code used elsewhere to refer to the specific carrier.",
        "type": "string",
        "example": "gls"
      },
      "name": {
        "description": "Name of the carrier.",
        "type": "string",
        "example": "GLS Denmark"
      }
    }
  },
  "Carriers": {
    "type": "array",
    "items": {
      "$ref": "#/components/schemas/Carrier"
    }
  },
  "Country": {
    "type": "object",
    "properties": {
      "code": {
        "description": "ISO3166-1 alpha-2 country code.",
        "type": "string",
        "example": "DK"
      },
      "name": {
        "description": "Name of the country in English",
        "type": "string",
        "example": "Denmark"
      },
      "customs_declaration_required": {
        "description": "Does the product require customs information to book?",
        "type": "boolean",
        "default": false
      }
    }
  },
  "ShippingProductService": {
    "type": "object",
    "properties": {
      "code": {
        "description": "Service code to be included in the booking of shipments.",
        "type": "string",
        "example": "EMAIL_NT"
      },
      "id": {
        "description": "ID of the service. Used for booking in older versions of the API.",
        "type": "integer",
        "example": 21
      },
      "name": {
        "description": "Name of the service.",
        "type": "string",
        "example": "Email notification"
      },
      "required_fields": {
        "description": "Comma-separated string indicating fields that are required to book a shipment with the service.",
        "type": "string",
        "example": "receiver_email"
      },
      "optional_fields": {
        "description": "Comma-separated string indicating fields that are optional to book a shipment with the service.",
        "type": "string",
        "example": "delivery_instruction"
      }
    }
  },
  "ShippingProductServices": {
    "type": "array",
    "items": {
      "$ref": "#/components/schemas/ShippingProductService"
    }
  },
  "RequiredShippingProductService": {
    "type": "object",
    "properties": {
      "code": {
        "description": "Service code to be included in the booking of shipments.",
        "type": "string",
        "example": "EMAIL_NT"
      },
      "id": {
        "description": "ID of the service. Used for booking in older versions of the API.",
        "type": "integer",
        "example": 21
      },
      "name": {
        "description": "Name of the service.",
        "type": "string",
        "example": "Email notification"
      },
      "required_fields": {
        "description": "Comma-separated string indicating fields that are required to book a shipment with the service.",
        "type": "string",
        "example": "receiver_email"
      },
      "optional_fields": {
        "description": "Comma-separated string indicating fields that are optional to book a shipment with the service.",
        "type": "string",
        "example": "delivery_instruction"
      },
      "note": {
        "description": "Information about the service.",
        "type": "string",
        "example": "Email notification is required"
      }
    }
  },
  "RequiredShippingProductServices": {
    "type": "array",
    "items": {
      "$ref": "#/components/schemas/RequiredShippingProductService"
    }
  },
  "WeightInterval": {
    "type": "object",
    "properties": {
      "from_weight": {
        "type": "integer",
        "description": "Weight in grams at which the interval starts",
        "example": 0
      },
      "to_weight": {
        "type": "integer",
        "description": "Weight in grams at which the interval ends.",
        "example": 1000
      },
      "description": {
        "description": "Text used to display the weight interval.",
        "type": "string",
        "example": "0-1kg"
      }
    }
  },
  "WeightIntervals": {
    "type": "array",
    "description": "Weight intervals available for use on shipment with this product using Shipmondo's agreement.",
    "items": {
      "$ref": "#/components/schemas/WeightInterval"
    }
  },
  "TaWeightIntervals": {
    "type": "array",
    "description": "Weight intervals available for use on shipments with this product using your own carrier agreement.",
    "items": {
      "$ref": "#/components/schemas/WeightInterval"
    }
  },
  "ShippingProduct": {
    "type": "object",
    "properties": {
      "code": {
        "type": "string",
        "description": "Product code used when referring to the specific product.",
        "example": "GLSDK_SD"
      },
      "id": {
        "description": "ID of the product. Only used in older version of the Shipmondo API.",
        "type": "integer",
        "example": 19
      },
      "name": {
        "description": "Name of the product.",
        "type": "string",
        "example": "Shop Delivery"
      },
      "available": {
        "type": "boolean",
        "description": "Is the product available to book on either own agreements or Shipmondo's agreement?",
        "deprecated": true
      },
      "own_agreement_available": {
        "type": "boolean",
        "description": "Is the product available to book on own agreements?"
      },
      "available_customer_numbers": {
        "type": "array",
        "description": "Customer numbers associated with own available agreements. If none available then an empty array is returned",
        "items": {
          "type": "object",
          "properties": {
            "customer_number": {
              "type": "string",
              "example": "898B91"
            }
          }
        }
      },
      "customs_declaration_required": {
        "description": "Does the product require customs information to book?",
        "type": "boolean"
      },
      "service_point_available": {
        "description": "Can the product be booked with a service point?",
        "type": "boolean"
      },
      "service_point_required": {
        "description": "Is service point required to book this product?",
        "type": "boolean"
      },
      "expected_transit_time": {
        "description": "The expected transit time of the product.",
        "type": "string",
        "example": "1-2 days"
      },
      "sender_country_code": {
        "description": "ISO 3166-1 alpha-2 country code that the product is sent from.",
        "type": "string",
        "example": "DK"
      },
      "receiver_country_code": {
        "description": "ISO 3166-1 alpha-2 country code that the product is sent to.",
        "type": "string",
        "example": "DK"
      },
      "required_fields": {
        "description": "Comma-separated string indicating fields that are required to book a shipment with the product.",
        "type": "string",
        "example": "receiver_mobile,service_point_id"
      },
      "optional_fields": {
        "description": "Comma-separated string indicating fields that are optional to book a shipment with the product.",
        "type": "string",
        "example": "delivery_instruction,pickup_date"
      },
      "required_parcel_fields": {
        "description": "Comma-separated string indicating fields that are required (for the objects in the \"parcels\" array) when booking a shipment with the product.",
        "type": "string",
        "example": "quantity,weight"
      },
      "optional_parcel_fields": {
        "description": "Comma-separated string indicating fields that are optional (for the objects in the \"parcels\" array) when booking a shipment with the product.",
        "type": "string",
        "example": "height,length,width"
      },
      "carrier": {
        "$ref": "#/components/schemas/Carrier"
      },
      "destination_country": {
        "$ref": "#/components/schemas/Country"
      },
      "available_services": {
        "$ref": "#/components/schemas/ShippingProductServices"
      },
      "required_services": {
        "$ref": "#/components/schemas/RequiredShippingProductServices"
      },
      "weight_intervals": {
        "$ref": "#/components/schemas/WeightIntervals"
      },
      "ta_weight_intervals": {
        "$ref": "#/components/schemas/TaWeightIntervals"
      },
      "allowed_incoterms": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Array of allowed Incoterms for the specific product. If empty all Incoterms are allowed."
      }
    }
  },
  "ShippingProducts": {
    "type": "array",
    "items": {
      "$ref": "#/components/schemas/ShippingProduct"
    }
  },
  "PackageType": {
    "type": "object",
    "properties": {
      "code": {
        "description": "Code to be used when referring to package types in booking shipments.",
        "type": "string",
        "example": "EP"
      },
      "description": {
        "description": "Display name of the package type.",
        "type": "string",
        "example": "EUR Pallet"
      }
    }
  },
  "PackageTypes": {
    "type": "array",
    "items": {
      "$ref": "#/components/schemas/PackageType"
    }
  },
  "Sender": {
    "type": "object",
    "description": "Sender address for the object",
    "properties": {
      "name": {
        "type": "string",
        "example": "Min Virksomhed ApS",
        "description": "Name of the sender. Can be either a company name or the name of a private person."
      },
      "attention": {
        "type": "string",
        "example": "Lene Hansen",
        "description": "Attention of the sender. If the sender is a company, it is the contact person."
      },
      "address1": {
        "type": "string",
        "example": "Strandvejen 6B",
        "description": "Address of the sender, including address number."
      },
      "address2": {
        "type": "string",
        "description": "Second address line of the sender. Can be used for floor/room number, building name etc.",
        "example": null
      },
      "zipcode": {
        "type": "string",
        "example": "5240",
        "description": "Zip code of the address."
      },
      "city": {
        "type": "string",
        "example": "Odense NØ",
        "description": "Name of the city that the zip code refers to."
      },
      "country_code": {
        "type": "string",
        "example": "DK",
        "description": "ISO 3166-1 alpha-2 country code of the sender."
      },
      "email": {
        "type": "string",
        "example": "info@minvirksomhed.dk",
        "description": "Email address of the sender"
      },
      "mobile": {
        "type": "string",
        "example": "70400407",
        "description": "Mobile number of the sender"
      },
      "telephone": {
        "type": "string",
        "example": "70400407",
        "description": "Landline phone number of the sender"
      }
    }
  },
  "SenderRequest": {
    "required": [
      "address1",
      "city",
      "country_code",
      "name",
      "zipcode"
    ],
    "type": "object",
    "description": "Sender address for the object",
    "properties": {
      "name": {
        "type": "string",
        "example": "Min Virksomhed ApS",
        "description": "Name of the sender. Can be either a company name or the name of a private person."
      },
      "attention": {
        "type": "string",
        "example": "Lene Hansen",
        "description": "Attention of the sender. If the sender is a company, it is the contact person."
      },
      "address1": {
        "type": "string",
        "example": "Strandvejen 6B",
        "description": "Address of the sender, including address number."
      },
      "address2": {
        "type": "string",
        "description": "Second address line of the sender. Can be used for floor/room number, building name etc.",
        "example": null
      },
      "zipcode": {
        "type": "string",
        "example": "5240",
        "description": "Zip code of the address."
      },
      "city": {
        "type": "string",
        "example": "Odense NØ",
        "description": "Name of the city that the zip code refers to."
      },
      "country_code": {
        "type": "string",
        "example": "DK",
        "description": "ISO 3166-1 alpha-2 country code of the sender."
      },
      "vat_id": {
        "type": "string",
        "example": "GB018384932372",
        "description": "Special VAT identification number; for example, GB EORI for Great Britain or VOEC for Norway."
      },
      "email": {
        "type": "string",
        "example": "info@minvirksomhed.dk",
        "description": "Email address of the sender"
      },
      "mobile": {
        "type": "string",
        "example": "70400407",
        "description": "Mobile number of the sender"
      },
      "telephone": {
        "type": "string",
        "example": "70400407",
        "description": "Landline phone number of the sender"
      }
    }
  },
  "Receiver": {
    "type": "object",
    "description": "Receiver address for the object",
    "properties": {
      "name": {
        "type": "string",
        "example": "Lene Hansen",
        "description": "Name of the receiver. Can be either a company name or the name of a private person."
      },
      "attention": {
        "type": "string",
        "example": null,
        "description": "Attention of the receiver. If the receiver is a company, it is the contact person."
      },
      "address1": {
        "type": "string",
        "example": "Skibhusvej 52",
        "description": "Address of the receiver, including address number."
      },
      "address2": {
        "type": "string",
        "description": "Second address line of the receiver. Can be used for, e.g.,apartment number.",
        "example": null
      },
      "zipcode": {
        "type": "string",
        "example": "5000",
        "description": "Zip code of the address."
      },
      "city": {
        "type": "string",
        "example": "Odense C",
        "description": "Name of the city that the zip code refers to."
      },
      "country_code": {
        "type": "string",
        "example": "DK",
        "description": "ISO 3166-1 alpha-2 country code of the receiver address."
      },
      "email": {
        "type": "string",
        "example": "lene@email.dk",
        "description": "Email address of the receiver"
      },
      "mobile": {
        "type": "string",
        "example": "12345678",
        "description": "Mobile number of the receiver"
      },
      "telephone": {
        "type": "string",
        "example": "12345678",
        "description": "Landline phone number of the receiver"
      },
      "instruction": {
        "type": "string",
        "example": "Place on the front porch.",
        "description": "Delivery instruction to the carrier. Only applicable for products which support receiver instructions."
      },
      "access_code": {
        "type": "string",
        "example": "1234",
        "description": "Gate/door code for the carrier to access the receiver's address."
      }
    }
  },
  "ReceiverRequest": {
    "required": [
      "address1",
      "city",
      "country_code",
      "name",
      "zipcode"
    ],
    "type": "object",
    "description": "Receiver address for the object",
    "properties": {
      "name": {
        "type": "string",
        "example": "Lene Hansen",
        "description": "Name of the receiver. Can be either a company name or the name of a private person."
      },
      "attention": {
        "type": "string",
        "example": null,
        "description": "Attention of the receiver. If the receiver is a company, it is the contact person."
      },
      "address1": {
        "type": "string",
        "example": "Skibhusvej 52",
        "description": "Address of the receiver, including address number."
      },
      "address2": {
        "type": "string",
        "description": "Second address line of the receiver. Can be used for, e.g.,apartment number.",
        "example": null
      },
      "zipcode": {
        "type": "string",
        "example": "5000",
        "description": "Zip code of the address."
      },
      "city": {
        "type": "string",
        "example": "Odense C",
        "description": "Name of the city that the zip code refers to."
      },
      "country_code": {
        "type": "string",
        "example": "DK",
        "description": "ISO 3166-1 alpha-2 country code of the receiver address."
      },
      "vat_id": {
        "type": "string",
        "example": "GB018384932372",
        "description": "Special VAT identification number; for example, GB EORI for Great Britain."
      },
      "email": {
        "type": "string",
        "example": "lene@email.dk",
        "description": "Email address of the receiver"
      },
      "mobile": {
        "type": "string",
        "example": "12345678",
        "description": "Mobile number of the receiver"
      },
      "telephone": {
        "type": "string",
        "example": "12345678",
        "description": "Landline phone number of the receiver"
      },
      "instruction": {
        "type": "string",
        "example": "Place on the front porch.",
        "description": "Delivery instruction to the carrier. Only applicable for products which support receiver instructions."
      },
      "date": {
        "type": "string",
        "format": "date",
        "example": "2021-10-14",
        "description": "Requested delivery date."
      },
      "from_time": {
        "type": "string",
        "format": "time",
        "example": "08:00",
        "description": "Requested earliest delivery time."
      },
      "to_time": {
        "type": "string",
        "format": "time",
        "example": "16:00",
        "description": "Requested latest delivery time."
      },
      "member_id": {
        "type": "string",
        "example": "1234567890",
        "description": "Carrier member ID. Some products support/require this; e.g., DHL Parcel shipments to Packstations (DHL PostNumber)."
      },
      "access_code": {
        "type": "string",
        "example": "1234",
        "description": "Gate/door code for the carrier to access the receiver's address."
      }
    }
  },
  "ShipmentSender": {
    "required": [
      "address1",
      "city",
      "country_code",
      "name",
      "zipcode"
    ],
    "type": "object",
    "description": "Sender address for the object",
    "properties": {
      "name": {
        "type": "string",
        "example": "Min Virksomhed ApS",
        "description": "Name of the sender. Can be either a company name or the name of a private person."
      },
      "attention": {
        "type": "string",
        "example": "Lene Hansen",
        "description": "Attention of the sender. If the sender is a company, it is the contact person.",
        "nullable": true
      },
      "address1": {
        "type": "string",
        "example": "Strandvejen 6B",
        "description": "Address of the sender, including address number."
      },
      "address2": {
        "type": "string",
        "example": "Stuen",
        "description": "Second address line of the sender. Can be used for floor/room number, building name etc.",
        "nullable": true
      },
      "zipcode": {
        "type": "string",
        "example": "5240",
        "description": "Zip code of the address."
      },
      "city": {
        "type": "string",
        "example": "Odense NØ",
        "description": "Name of the city that the zip code refers to."
      },
      "country_code": {
        "type": "string",
        "example": "DK",
        "description": "ISO 3166-1 alpha-2 country code of the sender address."
      },
      "vat_id": {
        "type": "string",
        "example": "5323471",
        "description": "Sender's VAT ID in receiver country, e.g., VOEC for Norway or GB EORI for Great Britain.",
        "nullable": true
      },
      "email": {
        "type": "string",
        "example": "info@minvirksomhed.dk",
        "description": "Email address of the sender"
      },
      "mobile": {
        "type": "string",
        "example": "70400407",
        "description": "Mobile number of the sender"
      },
      "telephone": {
        "type": "string",
        "example": "70400407",
        "description": "Landline phone number of the sender"
      }
    }
  },
  "ShipmentReceiver": {
    "required": [
      "address1",
      "city",
      "country_code",
      "name",
      "zipcode"
    ],
    "type": "object",
    "description": "Receiver address for the object",
    "properties": {
      "name": {
        "type": "string",
        "example": "Lene Hansen",
        "description": "Name of the receiver. Can be either a company name or the name of a private person."
      },
      "attention": {
        "type": "string",
        "example": null,
        "description": "Attention of the receiver. If the receiver is a company, it is the contact person.",
        "nullable": true
      },
      "address1": {
        "type": "string",
        "example": "Skibhusvej 52",
        "description": "Address of the receiver, including address number."
      },
      "address2": {
        "type": "string",
        "description": "Second address line of the receiver. Can be used for floor/room number, building name etc.",
        "example": null,
        "nullable": true
      },
      "zipcode": {
        "type": "string",
        "example": "5000",
        "description": "Zip code of the address."
      },
      "city": {
        "type": "string",
        "example": "Odense C",
        "description": "Name of the city that the zip code refers to."
      },
      "country_code": {
        "type": "string",
        "example": "DK",
        "description": "ISO 3166-1 alpha-2 country code of the receiver."
      },
      "email": {
        "type": "string",
        "example": "lene@email.dk",
        "description": "Email address of the receiver"
      },
      "vat_id": {
        "type": "string",
        "example": "DK12345678",
        "description": "Sender's VAT ID in receiver country.",
        "nullable": true
      },
      "mobile": {
        "type": "string",
        "example": "12345678",
        "description": "Mobile number of the receiver",
        "nullable": true
      },
      "telephone": {
        "type": "string",
        "example": "12345678",
        "description": "Landline phone number of the receiver",
        "nullable": true
      },
      "instruction": {
        "type": "string",
        "example": "Place on the front porch.",
        "description": "Delivery instruction to the carrier. Only applicable for products which support receiver instructions.",
        "nullable": true
      },
      "access_code": {
        "type": "string",
        "example": "4231",
        "description": "Gate/door code for the carrier to access the receiver's address.",
        "nullable": true
      },
      "date": {
        "type": "string",
        "format": "date",
        "example": "2021-10-14",
        "description": "Requested delivery date. format: YYYY-MM-DD",
        "nullable": true
      },
      "from_time": {
        "type": "string",
        "format": "time",
        "example": "08:00",
        "description": "Requested earliest delivery time. Format HH:MM",
        "nullable": true
      },
      "to_time": {
        "type": "string",
        "format": "time",
        "example": "16:00",
        "description": "Requested latest delivery time. Format HH:MM",
        "nullable": true
      },
      "member_id": {
        "type": "string",
        "example": "a1b2c3",
        "description": "Carrier member ID. Some products support/require this; e.g., DHL Parcel shipments to Packstations (DHL PostNumber).",
        "nullable": true
      }
    }
  },
  "PickUp": {
    "type": "object",
    "properties": {
      "name": {
        "type": "string",
        "example": "Min Virksomhed A/S"
      },
      "attention": {
        "type": "string",
        "example": null
      },
      "address1": {
        "type": "string",
        "example": "Hvilehøjvej 25"
      },
      "address2": {
        "type": "string",
        "description": "Second address line. Can be used for floor/room number, building name etc.",
        "example": null
      },
      "country_code": {
        "type": "string",
        "example": "DK"
      },
      "zipcode": {
        "type": "string",
        "example": "5220"
      },
      "city": {
        "type": "string",
        "example": "Odense SØ"
      },
      "telephone": {
        "type": "string",
        "example": "80808080"
      },
      "instruction": {
        "type": "string",
        "example": "Goods are placed at gate 21",
        "description": "Pickup instruction to the carrier. Only applicable for products which supports pickup instructions."
      },
      "date": {
        "type": "string",
        "format": "date",
        "example": "2021-10-13",
        "description": "Requested pickup date."
      },
      "from_time": {
        "type": "string",
        "format": "time",
        "example": "08:00",
        "description": "Requested earliest pickup time."
      },
      "to_time": {
        "type": "string",
        "format": "time",
        "example": "16:00",
        "description": "Requested latest pickup time."
      },
      "pickup_custom": {
        "type": "boolean",
        "description": "Whether the shipment includes a pickup address other than sender address."
      }
    }
  },
  "ShipmentPickUpRequest": {
    "type": "object",
    "properties": {
      "name": {
        "type": "string",
        "example": "Min Virksomhed A/S"
      },
      "attention": {
        "type": "string",
        "example": null
      },
      "address1": {
        "type": "string",
        "example": "Hvilehøjvej 25"
      },
      "address2": {
        "type": "string",
        "description": "Second address line. Can be used for floor/room number, building name etc.",
        "example": null
      },
      "country_code": {
        "type": "string",
        "example": "DK"
      },
      "zipcode": {
        "type": "string",
        "example": "5220"
      },
      "city": {
        "type": "string",
        "example": "Odense SØ"
      },
      "telephone": {
        "type": "string",
        "example": "80808080"
      },
      "instruction": {
        "type": "string",
        "example": "Goods are placed at gate 21",
        "description": "Pickup instruction to the carrier. Only applicable for products which supports pickup instructions."
      },
      "date": {
        "type": "string",
        "format": "date",
        "example": "2021-10-13",
        "description": "Requested pickup date."
      },
      "from_time": {
        "type": "string",
        "format": "time",
        "example": "08:00",
        "description": "Requested earliest pickup time."
      },
      "to_time": {
        "type": "string",
        "format": "time",
        "example": "16:00",
        "description": "Requested latest pickup time."
      }
    }
  },
  "ShipmentBillTo": {
    "type": "object",
    "description": "Customs billing information if it is other than sender/receiver.",
    "properties": {
      "name": {
        "type": "string",
        "example": "Min Virksomhed A/S"
      },
      "attention": {
        "type": "string",
        "example": null
      },
      "address1": {
        "type": "string",
        "example": "Hvilehøjvej 25"
      },
      "address2": {
        "type": "string",
        "description": "Second address line can be used for floor/room number, building name etc.",
        "example": null
      },
      "zipcode": {
        "type": "string",
        "example": "5220"
      },
      "city": {
        "type": "string",
        "example": "Odense SØ"
      },
      "country_code": {
        "type": "string",
        "example": "DK"
      },
      "vat_id": {
        "description": "VAT no. of the customs billing party.",
        "type": "string",
        "example": "DK12345678"
      },
      "telephone": {
        "type": "string",
        "example": "80808080"
      },
      "mobile": {
        "type": "string",
        "example": "80808080"
      },
      "email": {
        "type": "string",
        "example": "jim@minvirksomhed.dk"
      },
      "bill_to_custom": {
        "type": "boolean",
        "description": "Whether the shipment includes a billing address for customs other sender address."
      },
      "customer_number": {
        "type": "string",
        "example": "12345678",
        "description": "Separate carrier customer number to bill if applicable with the given carrier."
      }
    }
  },
  "ShipmentBillToRequest": {
    "type": "object",
    "description": "Customs billing information if it is other than sender/receiver.",
    "properties": {
      "name": {
        "type": "string",
        "example": "Min Virksomhed A/S"
      },
      "attention": {
        "type": "string",
        "example": null
      },
      "address1": {
        "type": "string",
        "example": "Hvilehøjvej 25"
      },
      "address2": {
        "type": "string",
        "description": "Second address line can be used for floor/room number, building name etc.",
        "example": null
      },
      "zipcode": {
        "type": "string",
        "example": "5220"
      },
      "city": {
        "type": "string",
        "example": "Odense SØ"
      },
      "vat_id": {
        "description": "VAT no. of the customs billing party.",
        "type": "string",
        "example": "DK12345678"
      },
      "country_code": {
        "type": "string",
        "example": "DK"
      },
      "telephone": {
        "type": "string",
        "example": "80808080"
      },
      "mobile": {
        "type": "string",
        "example": "80808080"
      },
      "email": {
        "type": "string",
        "example": "jim@minvirksomhed.dk"
      },
      "customer_number": {
        "type": "string",
        "example": "12345678",
        "description": "Separate carrier customer number to bill if applicable with the given carrier."
      }
    }
  },
  "ShipmentReturnToRequest": {
    "type": "object",
    "description": "Return address if different from the sender address. This is only available for specific products.",
    "properties": {
      "name": {
        "type": "string",
        "example": "Min Virksomhed A/S"
      },
      "attention": {
        "type": "string",
        "example": null
      },
      "address1": {
        "type": "string",
        "example": "Hvilehøjvej 25"
      },
      "address2": {
        "type": "string",
        "description": "Second address line can be used for floor/room number, building name etc.",
        "example": null
      },
      "zipcode": {
        "type": "string",
        "example": "5220"
      },
      "city": {
        "type": "string",
        "example": "Odense SØ"
      },
      "country_code": {
        "type": "string",
        "example": "DK"
      },
      "telephone": {
        "type": "string",
        "example": "80808080"
      }
    }
  },
  "ShipmentLabelOverlay": {
    "type": "object",
    "description": "Extra section so that shipment label includes a custom barcode and texts. The size of the label will be in 10 x 21 cm instead of 10 x 19 cm.",
    "properties": {
      "barcode": {
        "type": "string",
        "example": "1234567890123"
      },
      "left_text": {
        "type": "string",
        "example": "ABC"
      },
      "right_text": {
        "type": "string",
        "example": "DEF"
      }
    },
    "nullable": true
  },
  "LabelScale": {
    "type": "object",
    "description": "Scale for the label. Only applicable when label_format: a4_pdf, 10x19_pdf, 10x19_zpl, compact_pdf, compact_zpl\n\n Note: Use this feature at your own risk. Shipmondo can’t guarantee the scaled labels are usable. Always get the label approved by the carrier before using this feature in production.",
    "required": [
      "scale_by",
      "size"
    ],
    "properties": {
      "scale_by": {
        "description": "Scale down the labels by either width or height.",
        "type": "string",
        "enum": [
          "height",
          "width"
        ]
      },
      "size": {
        "description": "Desired scaled length in cm of dimension in \"scale_by\".If the length is higher or wider than the original labels, the labels will not be scaled.",
        "type": "number",
        "example": 15.6
      }
    }
  },
  "GoodsLine": {
    "required": [
      "commodity_code",
      "content",
      "country",
      "quantity",
      "unit_value",
      "unit_weight"
    ],
    "type": "object",
    "properties": {
      "quantity": {
        "type": "number",
        "example": 2.0,
        "description": "Quantity of the goods in the `unit`. Example: 2.0 pieces or 0.5 m2."
      },

      "country": {
        "type": "string",
        "description": "Country of origin",
        "example": "CN"
      },
      "content": {
        "type": "string",
        "description": "Description of the content",
        "example": "Textile shirt"
      },
      "commodity_code": {
        "type": "string",
        "description": "Classification numbers for goods. For more visit vita.skat.dk",
        "example": "8471000000"
      },
      "unit_value": {
        "type": "number",
        "description": "Unit value in declared currency",
        "example": 50.75
      },
      "unit_weight": {
        "type": "integer",
        "description": "Unit weight in gram",
        "example": 100
      }
    }
  },
  "SimpleCustoms": {
    "type": "object",
    "properties": {
      "currency_code": {
        "type": "string",
        "description": "Declared currency code",
        "example": "DKK"
      },
      "goods": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/GoodsLine"
        }
      }
    }
  },
  "ServicePointInShipmentRequest": {
    "required": [
      "id"
    ],
    "type": "object",
    "properties": {
      "id": {
        "type": "string",
        "description": "Identification for the service point from the carrier",
        "example": "96271"
      }
    }
  },
  "ParcelAdvanced": {
    "type": "object",
    "required": [
      "weight"
    ],
    "properties": {
      "quantity": {
        "type": "integer",
        "description": "Number of parcels of this kind. Maximum quantity depends on the product.",
        "example": 1,
        "default": 1,
        "minimum": 1
      },
      "weight": {
        "type": "integer",
        "description": "Weight in grams per colli.",
        "example": 1000,
        "minimum": 1
      },
      "length": {
        "type": "integer",
        "description": "Length in cm",
        "example": 20,
        "minimum": 1
      },
      "width": {
        "type": "integer",
        "description": "Width in cm",
        "example": 10,
        "minimum": 1
      },
      "height": {
        "type": "integer",
        "description": "Height in cm",
        "example": 6,
        "minimum": 1
      },
      "volume": {
        "type": "number",
        "description": "Volume in cubic metres",
        "example": 0.012,
        "minimum": 0.001
      },
      "running_metre": {
        "type": "number",
        "description": "Running metre in metre",
        "example": 1.25,
        "minimum": 0.001
      },
      "description": {
        "description": "Describes the contents of the parcel.",
        "type": "string",
        "example": "Bike accessories"
      },
      "packaging": {
        "type": "string",
        "description": "Package type for the parcel. Must be a valid package type for the customer.",
        "example": "PL1"
      },
      "stackable": {
        "type": "boolean",
        "description": "Whether the parcel can be stacked.",
        "default": true,
        "example": true
      },
      "dangerous_goods": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/DangerousGood"
        }
      },
      "declared_value": {
        "$ref": "#/components/schemas/DeclaredValue"
      },
      "attributes": {
        "type": "array",
        "minItems": 0,
        "description": "Attributes for the parcel. Used for additional information.",
        "items": {
          "$ref": "#/components/schemas/DynamicAttribute"
        }
      }
    }
  },
  "Parcel": {
    "type": "object",
    "properties": {
      "quantity": {
        "type": "integer",
        "description": "Number of parcels of this kind. Maximum quantity depends on the product.",
        "example": 1,
        "default": 1,
        "minimum": 1
      },
      "weight": {
        "type": "integer",
        "description": "Weight in grams.",
        "example": 1000,
        "minimum": 1
      },
      "weight_kg": {
        "type": "string",
        "description": "Weight in kilogram.",
        "example": "10.9"
      },
      "pkg_no": {
        "type": "string",
        "description": "Carrier's package number refers to the specific package/colli.",
        "example": "1064548752"
      },
      "pkg_nos": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "minItems": 1,
        "description": "Carrier's package numbers for all packages if quantity is larger than 1.",
        "example": [
          "1064548752"
        ]
      },
      "external_pkg_no": {
        "type": "string",
        "description": "Relevant tracking information other than package number.",
        "example": "123-4567-890",
        "nullable": true
      },
      "length": {
        "type": "integer",
        "description": "Length in cm",
        "example": 20,
        "minimum": 1,
        "nullable": true
      },
      "width": {
        "type": "integer",
        "description": "Width in cm",
        "example": 10,
        "minimum": 1,
        "nullable": true
      },
      "height": {
        "type": "integer",
        "description": "Height in cm",
        "example": 6,
        "minimum": 1,
        "nullable": true
      },
      "volume": {
        "type": "number",
        "description": "Volume in cubic metres",
        "example": 0.012,
        "minimum": 0.001,
        "nullable": true
      },
      "running_metre": {
        "type": "number",
        "description": "Running metre in metre",
        "example": 1.25,
        "minimum": 0.001,
        "nullable": true
      },
      "content": {
        "description": "Describes the contents of the parcel.",
        "type": "string",
        "example": "Bike accessories",
        "nullable": true
      },
      "packaging": {
        "type": "string",
        "description": "Package type for the parcel. Must be a valid package type for the customer.",
        "example": "PL1"
      },
      "stackable": {
        "type": "boolean",
        "description": "Whether the parcel can be stacked.",
        "example": true
      },
      "internal_reference": {
        "type": "string",
        "description": "A reference for internal use to track parcels, not sent to the carrier.",
        "example": "parcel-1",
        "nullable": true
      },
      "labelless_code": {
        "type": "string",
        "description": "Labelless code for the parcel. Used for labelless shipments.",
        "example": "123-456-789",
        "nullable": true
      },
      "dangerous_goods": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/DangerousGood"
        },
        "minItems": 0
      },
      "declared_value": {
        "$ref": "#/components/schemas/DeclaredValue",
        "nullable": true
      },
      "attributes": {
        "type": "array",
        "minItems": 0,
        "description": "Attributes for the parcel. Used for additional information.",
        "items": {
          "$ref": "#/components/schemas/DynamicAttribute"
        }
      },
      "gls_colli_id": {
        "type": "string",
        "description": "GLS colli ID for the parcel. Used for GLS shipments.",
        "example": "123-456-789",
        "nullable": true
      }
    }
  },
  "CreateShipmentRequest": {
    "required": [
      "own_agreement",
      "parcels",
      "product_code",
      "service_codes"
    ],
    "type": "object",
    "properties": {
      "test_mode": {
        "type": "boolean",
        "description": "This option is deprecated and will be removed soon. Please use the [Sandbox](https://shipmondo.dev/docs/sandbox) instead.",
        "deprecated": true,
        "example": true
      },
      "own_agreement": {
        "type": "boolean",
        "default": false,
        "description": "Whether or not the shipment should be booked via your own agreement or Shipmondo's agreement."
      },
      "customer_number": {
        "type": "string",
        "description": "Customer number for the agreement you wish to use. Mostly used if multiple agreements for the same carrier are set up on the account. Defaults to the agreement that was created first."
      },
      "label_format": {
        "type": "string",
        "description": "If label_format is specified, the shipping labels will be included in the response. Defaults to what is setup for the user.",
        "enum": [
          "a4_pdf",
          "10x19_pdf",
          "10x19_png",
          "10x19_zpl",
          "compact_png",
          "compact_pdf",
          "compact_zpl"
        ],
        "example": null
      },
      "product_code": {
        "type": "string",
        "description": "Product code of the product of the shipment.",
        "example": "GLSDK_SD"
      },
      "service_codes": {
        "description": "Comma-separated string of codes of services that are booked with the shipment.",
        "type": "string",
        "example": "EMAIL_NT,SMS_NT"
      },
      "services": {
        "description": "Use service_codes instead.",
        "type": "string",
        "deprecated": true
      },
      "reference": {
        "type": "string",
        "description": "Reference can be printed on the label and transmitted to carriers, when possible.",
        "example": "Order 10001"
      },
      "additional_reference": {
        "type": "string",
        "description": "An secondary reference. When possible, it will be transmitted to the carrier and printed on the label",
        "example": "Invoice 10001"
      },
      "automatic_select_service_point": {
        "type": "boolean",
        "description": "Whether or not the system should automatically select the service point closest to the receiver, when required.",
        "default": false
      },
      "contents": {
        "description": "General description of the contents of the shipment.",
        "type": "string",
        "example": "Goods"
      },
      "term_of_trade": {
        "type": "string",
        "description": "Incoterm for the shipments, e.g., DDP when customs should be paid by the sender.",
        "example": "DAP",
        "default": "DAP"
      },
      "origin_shipment_id": {
        "description": "ID of the origin shipment that the shipment is a return for.",
        "type": "string",
        "example": "1000001235"
      },
      "parties": {
        "type": "array",
        "description": "Array of parties associated with the shipment.",
        "items": {
          "$ref": "#/components/schemas/ShipmentParty"
        }
      },
      "sender": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SenderRequest"
          },
          {
            "deprecated": true,
            "description": "Legacy object. Use `parties` array with `type` set to `sender` instead. See [migration guide](https://shipmondo.dev/docs/api/parties-migration) for details."
          }
        ]
      },
      "receiver": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ReceiverRequest"
          },
          {
            "deprecated": true,
            "description": "Legacy object. Use `parties` array with `type` set to `receiver` instead. See [migration guide](https://shipmondo.dev/docs/api/parties-migration) for details."
          }
        ]
      },
      "pick_up": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ShipmentPickUpRequest"
          },
          {
            "deprecated": true,
            "description": "Legacy object. Use `parties` array with `type` set to `pickup` instead. See [migration guide](https://shipmondo.dev/docs/api/parties-migration) for details."
          }
        ]
      },
      "bill_to": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ShipmentBillToRequest"
          },
          {
            "deprecated": true,
            "description": "Legacy object. Use `parties` array with `type` set to `importer` instead. See [migration guide](https://shipmondo.dev/docs/api/parties-migration) for details."
          }
        ]
      },
      "service_point": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ServicePointSimple"
          },
          {
            "deprecated": true,
            "description": "Legacy object. Use `parties` array with `type` set to `service_point` instead. See [migration guide](https://shipmondo.dev/docs/api/parties-migration) for details."
          }
        ]
      },
      "return_to": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ShipmentReturnToRequest"
          },
          {
            "deprecated": true,
            "description": "Legacy object. Use `parties` array with `type` set to `return` instead. See [migration guide](https://shipmondo.dev/docs/api/parties-migration) for details."
          }
        ]
      },
      "service_point_id": {
        "type": "string",
        "description": "ID of the service point the shipment should be sent to. Note that the full service point can also be provided in the `parties` array with `type` set to `service_point`.",
        "example": "96271"
      },
      "pickup_details": {
        "type": "object",
        "description": "Details for pickup.",
        "properties": {
          "date": {
            "type": "string",
            "format": "date",
            "example": "2021-10-13",
            "description": "Requested pickup date."
          },
          "from": {
            "type": "string",
            "format": "time",
            "example": "08:00:00",
            "description": "Requested earliest pickup time. Format HH:MM:SS."
          },
          "to": {
            "type": "string",
            "format": "time",
            "example": "16:00:00",
            "description": "Requested latest pickup time. Format HH:MM:SS."
          },
          "instruction": {
            "type": "string",
            "example": "Goods are placed at gate 21",
            "description": "Pickup instruction to the carrier. Only applicable for products which supports pickup instructions."
          }
        }
      },
      "delivery_details": {
        "type": "object",
        "description": "Details for delivery.",
        "properties": {
          "date": {
            "type": "string",
            "format": "date",
            "example": "2021-10-14",
            "description": "Requested delivery date. format: YYYY-MM-DD."
          },
          "from": {
            "type": "string",
            "format": "time",
            "example": "08:00:00",
            "description": "Requested earliest delivery time. Format HH:MM:SS."
          },
          "to": {
            "type": "string",
            "format": "time",
            "example": "16:00:00",
            "description": "Requested latest delivery time. Format HH:MM:SS."
          },
          "instruction": {
            "type": "string",
            "example": "Place on the front porch.",
            "description": "Delivery instruction to the carrier. Only applicable for products which support delivery instructions."
          }
        }
      },
      "label_overlay": {
        "$ref": "#/components/schemas/ShipmentLabelOverlay"
      },
      "label_scale": {
        "$ref": "#/components/schemas/LabelScale"
      },
      "parcels": {
        "type": "array",
        "items": {
          "allOf": [
            {
              "$ref": "#/components/schemas/ParcelAdvanced"
            },
            {
              "type": "object",
              "properties": {
                "internal_reference": {
                  "type": "string",
                  "description": "A reference for internal use to track parcels, not sent to the carrier.",
                  "example": "parcel-1",
                  "nullable": true
                }
              }
            }
          ]
        },
        "minItems": 1
      },
      "print": {
        "type": "boolean",
        "description": "Print the label via the print client. Shipment labels can be sent out to the print queue automatically. Printer and format are specified in the print_at element.",
        "default": false
      },
      "print_at": {
        "$ref": "#/components/schemas/PrintAt"
      },
      "send_label": {
        "$ref": "#/components/schemas/SendLabel"
      },
      "pallet_exchange": {
        "$ref": "#/components/schemas/PalletExchange"
      },
      "customs": {
        "$ref": "#/components/schemas/CustomsRequest"
      },
      "replace_http_status_code": {
        "type": "boolean",
        "description": "If replace_http_status_code is set to true, request will have HTTP status 200. The real HTTP status will be included in the response header as X-HTTP-Status-Code. This is to prevent runtime errors in some frameworks and make it possible to read the error messages.",
        "default": false
      },
      "cod": {
        "$ref": "#/components/schemas/CashOnDelivery"
      },
      "dfm": {
        "$ref": "#/components/schemas/Dfm"
      },
      "carrier_insurance": {
        "description": "Object for indicating carrier insurance on the shipment. Only usable for specific carriers and when an insurance service code is provided.",
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "description": "Amount in the given currency that should be insured for the shipment.",
            "example": 1000,
            "nullable": true
          },
          "currency_code": {
            "type": "string",
            "description": "Indicates the currency code for the insured value.",
            "example": "DKK",
            "nullable": true
          }
        }
      },
      "add_barcode_to_label": {
        "type": "boolean",
        "description": "Add a Code 128 barcode with the shipment ID on the label. Only applicable for product_codes UNI_AL & UNI_ALP.",
        "nullable": true
      }
    }
  },
  "CreateShipmentResponse": {
    "type": "object",
    "allOf": [
      {
        "$ref": "#/components/schemas/Shipment"
      },
      {
        "type": "object",
        "properties": {
          "labels": {
            "type": "array",
            "description": "Array of labels for the shipment. Will only be included if label_format is specified in the request.",
            "items": {
              "type": "object",
              "properties": {
                "base64": {
                  "type": "string",
                  "format": "base64",
                  "description": "Base64 encoded label",
                  "example": "JVBERi0xLjYKJf//////AAAA(...)lJUVPRg=="
                },
                "file_format": {
                  "type": "string",
                  "description": "File format of the label",
                  "enum": [
                    "pdf",
                    "png",
                    "zpl"
                  ],
                  "example": "pdf"
                }
              }
            },
            "example": [
              {
                "base64": "JVBERi0xLjYKJf//////AAAA(...)lJUVPRg==",
                "file_format": "pdf"
              }
            ]
          }
        }
      }
    ]
  },
  "PalletExchange": {
    "type": "object",
    "properties": {
      "pallets1": {
        "type": "integer",
        "description": "The number of full pallets to exchange",
        "example": 0
      },
      "pallets2": {
        "type": "integer",
        "description": "The number of half pallets to exchange",
        "example": 0
      },
      "pallets4": {
        "type": "integer",
        "description": "The number of quarter pallets to exchange",
        "example": 0
      }
    }
  },
  "CashOnDelivery": {
    "description": "Used for COD (cash on delivery) shipments, when booking with service code COD",
    "type": "object",
    "properties": {
      "amount": {
        "type": "number",
        "description": "The amount to be collected.",
        "example": 326
      },
      "currency_code": {
        "type": "string",
        "description": "Currency code of the amount.",
        "example": "NOK"
      },
      "account_number": {
        "type": "string",
        "description": "The account number which should receive the amount that has been collected.",
        "example": "123456789"
      }
    }
  },
  "CarrierInsurance": {
    "description": "Object for indicating carrier insurance on the shipment. Only usable for specific carriers and when an insurance service code is provided.",
    "type": "object",
    "properties": {
      "amount": {
        "type": "number",
        "description": "Amount in the given currency that should be insured for the shipment.",
        "example": 1000,
        "nullable": true
      },
      "currency_code": {
        "type": "string",
        "description": "Indicates the currency code for the insured value.",
        "example": "DKK",
        "nullable": true
      }
    }
  },
  "ShipmentScheduleDetails": {
    "type": "object",
    "properties": {
      "date": {
        "type": "string",
        "format": "date",
        "example": "2021-10-13",
        "description": "Scheduled date."
      },
      "from": {
        "type": "string",
        "format": "time",
        "example": "08:00:00",
        "description": "Scheduled earliest time. Format HH:MM:SS."
      },
      "to": {
        "type": "string",
        "format": "time",
        "example": "16:00:00",
        "description": "Scheduled latest time. Format HH:MM:SS."
      },
      "instruction": {
        "type": "string",
        "example": "Goods are placed at gate 21",
        "description": "Instruction to the carrier. Only applicable for products which supports instructions."
      }
    }
  },
  "CarrierFields": {
    "type": "object",
    "properties": {
      "sort_code": {
        "type": "string",
        "example": "SM123D",
        "description": "The sort code for Instabox."
      },
      "availability_token": {
        "type": "string",
        "example": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx",
        "description": "The availability token for Instabox."
      }
    }
  },
  "PrintAt": {
    "type": "object",
    "properties": {
      "host_name": {
        "type": "string",
        "description": "Name of the PC / host where the print client is installed.",
        "example": "WAREHOUSE-PC"
      },
      "printer_name": {
        "type": "string",
        "description": "Name of the printer that is registered within the print client.",
        "example": "Zebra Zdesigner GK420D"
      },
      "label_format": {
        "type": "string",
        "description": "The label format that the printer can accept.",
        "enum": [
          "a4_pdf",
          "10x19_pdf",
          "10x19_png",
          "10x19_zpl"
        ],
        "example": "10x19_zpl"
      }
    }
  },
  "SendLabel": {
    "type": "object",
    "description": "Send out the label as PDF via email after booking.",
    "properties": {
      "name": {
        "type": "string",
        "description": "Name of the recipient of the label.",
        "example": "Jim"
      },
      "email": {
        "type": "string",
        "description": "Email address of the recipient of the label, which the label should be sent to.",
        "example": "jim@minvirksomhed.dk"
      },
      "label_format": {
        "type": "string",
        "description": "The label format that should be attached to the email.",
        "enum": [
          "a4_pdf",
          "10x19_pdf",
          "compact_pdf"
        ],
        "example": "a4_pdf"
      }
    }
  },
  "CustomsResponse": {
    "type": "object",
    "description": "Custom details used to generate proforma invoice or sent directly to the carrier. This object is only used for shipments where customs declaration is required.",
    "properties": {
      "export_reason": {
        "type": "string",
        "description": "Reason for exporting the goods.",
        "default": "other",
        "example": "other",
        "enum": [
          "sale_of_goods",
          "gift",
          "documents",
          "commercial_samples",
          "returned_goods",
          "other"
        ],
        "nullable": true
      },
      "term_of_trade": {
        "type": "string",
        "description": "Incoterm for the shipments, e.g., DDP when customs should be paid by the sender.",
        "example": "DAP",
        "default": "DAP",
        "nullable": true
      },
      "declared_value": {
        "type": "string",
        "description": "Total value of the goods in the shipment.",
        "example": "1000.00",
        "nullable": true
      },
      "currency_code": {
        "type": "string",
        "description": "Currency code for prices declared in goods",
        "example": "DKK",
        "nullable": true
      },
      "contents": {
        "type": "string",
        "description": "General description of the contents of the shipment.",
        "example": "Goods",
        "nullable": true
      },
      "duty_payment_type": {
        "type": "string",
        "description": "Legacy field. Use `term_of_trade = 'DDP'` instead.",
        "nullable": true,
        "deprecated": true
      },
      "duty_account_number": {
        "type": "string",
        "description": "Legacy field. see `'importer'` with attribute `name = 'customer_number'`.",
        "example": "Goods",
        "nullable": true,
        "deprecated": true
      },
      "goods": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/CustomsGood"
        }
      },
      "billed_to_custom_invoice_text": {
        "type": "string",
        "description": "Legacy field. See `importer` party with attribute `name` = `invoice_note`.\n\nA custom text for the shipment importer. Will appear on proforma/commercial invoice under \"Importer\" if filled.",
        "example": "Key code: ABC123",
        "deprecated": true,
        "nullable": true
      },
      "sender_custom_invoice_text": {
        "type": "string",
        "description": "Legacy field. See `sender` party with attribute `name` = `invoice_note`.\n\nA custom text for the shipment sender. Will appear on proforma/commercial invoice under \"Sender\" if filled.",
        "example": "Key code: ABC123",
        "deprecated": true,
        "nullable": true
      },
      "receiver_custom_invoice_text": {
        "type": "string",
        "description": "Legacy field. See `receiver` party with attribute `name` = `invoice_note`.\n\nA custom text for the shipment receiver. Will appear on proforma/commercial invoice under \"Delivery to\" if filled.",
        "example": "Key code: ABC123",
        "deprecated": true,
        "nullable": true
      }
    },
    "nullable": true
  },
  "CustomsRequest": {
    "type": "object",
    "description": "Custom details used to generate proforma invoice or sent directly to the carrier. This object is only used for shipments where customs declaration is required.",
    "properties": {
      "export_reason": {
        "type": "string",
        "description": "Reason for exporting the goods.",
        "default": "other",
        "example": "other",
        "enum": [
          "sale_of_goods",
          "gift",
          "documents",
          "commercial_samples",
          "returned_goods",
          "other"
        ]
      },
      "currency_code": {
        "type": "string",
        "description": "Currency code for declared prices.",
        "example": "DKK"
      },
      "freight_cost": {
        "type": "number",
        "description": "Cost of freight/shipping in the declared currency.",
        "example": 100.5
      },
      "insurance_cost": {
        "type": "number",
        "description": "Cost of insurance in the declared currency.",
        "example": 50.0
      },
      "term_of_trade": {
        "type": "string",
        "description": "Legacy field. Use `term_of_trade` in the root of the request instead.",
        "example": "DAP",
        "default": "DAP",
        "deprecated": true
      },
      "billed_to_custom_invoice_text": {
        "type": "string",
        "description": "Legacy field. Use `importer` party with attribute `name` = `invoice_note`. See [migration guide](https://shipmondo.dev/docs/api/parties-migration) for details.\n\nA custom text for the shipment importer. Will not be transmitted to carriers, but will appear on proforma/commercial invoice under \"Importer\" if filled.",
        "example": "Key code: ABC123",
        "deprecated": true
      },
      "sender_custom_invoice_text": {
        "type": "string",
        "description": "Legacy field. Use `sender` party with attribute `name` = `invoice_note`. See [migration guide](https://shipmondo.dev/docs/api/parties-migration) for details.\n\nA custom text for the shipment sender. Will not be transmitted to carriers, but will appear on proforma/commercial invoice under \"Sender\" if filled.",
        "example": "Key code: ABC123",
        "deprecated": true
      },
      "receiver_custom_invoice_text": {
        "type": "string",
        "description": "Legacy field. Use `receiver` party with attribute `name` = `invoice_note`. See [migration guide](https://shipmondo.dev/docs/api/parties-migration) for details.\n\nA custom text for the shipment receiver. Will not be transmitted to carriers, but will appear on proforma/commercial invoice under \"Delivery to\" if filled.",
        "example": "Key code: ABC123",
        "deprecated": true
      },
      "goods": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/CustomsGood"
        }
      }
    }
  },
  "CustomsGood": {
    "type": "object",
    "properties": {
      "quantity": {
        "type": "number",
        "example": 2.0,
        "description": "Quantity of the goods in the `unit`. Example: 2.0 pieces or 0.5 m2."
      },
      "unit": {
        "type": "string",
        "enum": [
          "piece",
          "m2"
        ],
        "default": "piece",
        "description": "Unit of the `quantity`.",
        "example": "piece"
      },
      "country_code": {
        "type": "string",
        "description": "Country code of origin of the good.",
        "example": "DK"
      },
      "content": {
        "type": "string",
        "description": "Description of the good.",
        "example": "Cotton t-shirt"
      },
      "commodity_code": {
        "type": "string",
        "description": "Commodity code (tariff/HS code) of the good.",
        "example": "6109100010"
      },
      "unit_value": {
        "type": "number",
        "description": "Value of the good per unit.",
        "example": 122.5
      },
      "unit_weight": {
        "type": "integer",
        "description": "Weight in grams of the good per unit.",
        "example": 110
      },
      "attributes": {
        "type": "array",
        "minItems": 0,
        "description": "Attributes for the commodity good. Used for additional information.",
        "items": {
          "$ref": "#/components/schemas/DynamicAttribute"
        }
      }
    }
  },
  "CreateShipmentAdvanced": {
    "type": "object",
    "properties": {
      "test_mode": {
        "type": "boolean",
        "description": "This option is deprecated and will be removed soon. Please use the [Sandbox](https://shipmondo.dev/docs/sandbox) instead.",
        "deprecated": true,
        "example": true
      },
      "own_agreement": {
        "type": "boolean",
        "example": false
      },
      "product_code": {
        "type": "string",
        "description": "DHLE_EW equals DHL Express Express Worldwide",
        "example": "DHLE_EW"
      },
      "service_codes": {
        "type": "string",
        "example": "EMAIL_NT,SMS_NT"
      },
      "reference": {
        "type": "string",
        "example": "Webshop 5678"
      },
      "order_id": {
        "type": "string",
        "example": "1000002345"
      },
      "sender": {
        "$ref": "#/components/schemas/Sender"
      },
      "receiver": {
        "$ref": "#/components/schemas/ShipmentReceiver"
      },
      "pick_up": {
        "$ref": "#/components/schemas/PickUp"
      },
      "parcels": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/ParcelAdvanced"
        }
      }
    }
  },
  "Shipment": {
    "type": "object",
    "properties": {
      "id": {
        "description": "ID of the shipment.",
        "type": "integer",
        "example": 1168
      },
      "created_at": {
        "description": "Date and time the shipment was created.",
        "type": "string",
        "format": "date-time",
        "example": "2017-06-16T06:25:44.557Z"
      },
      "updated_at": {
        "description": "Date and time the shipment was last updated.",
        "type": "string",
        "format": "date-time",
        "example": "2017-06-16T06:25:44.557Z"
      },
      "carrier_code": {
        "description": "Carrier code referring to the carrier of the shipment.",
        "type": "string",
        "example": "gls"
      },
      "description": {
        "description": "Text to describe the shipment, which can be used when presenting it.",
        "type": "string",
        "example": "ShopDelivery"
      },
      "contents": {
        "description": "General description of the contents of the shipment.",
        "type": "string",
        "example": "Goods",
        "nullable": true
      },
      "term_of_trade": {
        "type": "string",
        "description": "Incoterm for the shipments, e.g., DDP when customs should be paid by the sender.",
        "example": "DAP"
      },
      "product_id": {
        "description": "ID of the product of the shipment.",
        "type": "integer",
        "example": 64
      },
      "product_code": {
        "description": "Product code of the product of the shipment.",
        "type": "string",
        "example": "GLSDK_SD"
      },
      "service_codes": {
        "description": "Comma-separated string of codes of services that is booked with the shipment.",
        "type": "string",
        "example": "EMAIL_NT,SMS_NT"
      },
      "services": {
        "description": "Comma-separated string of IDs of services that are booked with the shipment.",
        "type": "string",
        "example": "23,24",
        "nullable": true,
        "deprecated": true
      },
      "customer_number": {
        "description": "Customer number of the agreement used to book the shipment. If value is *null* it is Shipmondo's agreement",
        "type": "string",
        "example": null,
        "nullable": true
      },
      "price": {
        "description": "Price of the shipment including VAT.",
        "type": "string",
        "example": "42.5"
      },
      "reference": {
        "description": "Sender's reference of the shipment.",
        "type": "string",
        "example": "5678123",
        "nullable": true
      },
      "additional_reference": {
        "type": "string",
        "description": "An secondary reference. When possible, it will be transmitted to the carrier and printed on the label",
        "example": "Invoice 10001",
        "nullable": true
      },
      "order_id": {
        "description": "Order no. from webshop, if shipment is based on an order in Shipmondo.",
        "type": "string",
        "example": "5678123",
        "nullable": true
      },
      "pkg_no": {
        "description": "Carrier's shipment number, referring to the whole shipment.",
        "type": "string",
        "example": "6064518784"
      },
      "external_pkg_no": {
        "type": "string",
        "description": "Package number from an external source.",
        "example": "123-4567-890",
        "nullable": true
      },
      "parties": {
        "type": "array",
        "description": "Array of parties associated with the shipment.",
        "items": {
          "$ref": "#/components/schemas/ShipmentParty"
        }
      },
      "receiver": {
        "$ref": "#/components/schemas/ShipmentReceiver"
      },
      "sender": {
        "$ref": "#/components/schemas/ShipmentSender"
      },
      "parcels": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Parcel"
        },
        "minItems": 1
      },
      "customs": {
        "$ref": "#/components/schemas/CustomsResponse"
      },
      "service_point": {
        "$ref": "#/components/schemas/ShipmentServicePoint"
      },
      "pick_up": {
        "$ref": "#/components/schemas/PickUp"
      },
      "bill_to": {
        "$ref": "#/components/schemas/ShipmentBillTo"
      },
      "dfm": {
        "$ref": "#/components/schemas/Dfm"
      },
      "paperless_trade": {
        "type": "boolean",
        "description": "If the shipment is created with paperless trade, then it is not necessary to print out physical proforma invoice.",
        "default": false
      },
      "labelless_code": {
        "type": "string",
        "description": "If labelless is supported on the certain shipment by the carrier, then this element will be available with the code that can be written on the parcel.",
        "example": "123-4567-890",
        "nullable": true
      },
      "source_id": {
        "description": "ID of the source of the shipment from which it has been created.",
        "type": "string",
        "example": "1000001234",
        "nullable": true
      },
      "source_type": {
        "type": "string",
        "example": "manual",
        "description": "The type of the source from which the shipment has been created",
        "enum":
        ["manual","imported","fulfillment","return","repurchase","api","address_book"]
      },
      "return_shipment_id": {
        "description": "ID of the return shipment that has been created for the shipment.",
        "type": "string",
        "example": "1000001234",
        "nullable": true
      },
      "origin_shipment_id": {
        "description": "ID of the origin shipment that the shipment was created as return for.",
        "type": "string",
        "example": "1000001235",
        "nullable": true
      },
      "carrier_insurance": {
        "$ref": "#/components/schemas/CarrierInsurance"
      },
      "insurance": {
        "deprecated": true,
        "description": "Object is deprecated. Use \"carrier_insurance\" instead.",
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "description": "Amount in the given currency that should be insured for the shipment.",
            "example": 1000,
            "nullable": true
          },
          "currency_code": {
            "type": "string",
            "description": "Indicates the currency code for the insured value.",
            "example": "DKK",
            "nullable": true
          }
        }
      },
      "label_overlay": {
        "$ref": "#/components/schemas/ShipmentLabelOverlay"
      },
      "waybill_reference": {
        "type": "string",
        "example": "CS000000000NO",
        "description": "Reference of the bulk waybill that the shipment is included in.",
        "nullable": true
      },
      "pickup_details": {
        "type": "object",
        "description": "Details for pickup.",
        "properties": {
          "date": {
            "type": "string",
            "format": "date",
            "example": "2021-10-13",
            "description": "Requested pickup date."
          },
          "from": {
            "type": "string",
            "format": "time",
            "example": "08:00:00",
            "description": "Requested earliest pickup time. Format HH:MM:SS."
          },
          "to": {
            "type": "string",
            "format": "time",
            "example": "16:00:00",
            "description": "Requested latest pickup time. Format HH:MM:SS."
          },
          "instruction": {
            "type": "string",
            "example": "Goods are placed at gate 21",
            "description": "Pickup instruction to the carrier. Only applicable for products which supports pickup instructions."
          }
        }
      },
      "delivery_details": {
        "type": "object",
        "description": "Details for delivery.",
        "properties": {
          "date": {
            "type": "string",
            "format": "date",
            "example": "2021-10-14",
            "description": "Requested delivery date. format: YYYY-MM-DD."
          },
          "from": {
            "type": "string",
            "format": "time",
            "example": "08:00:00",
            "description": "Requested earliest delivery time. Format HH:MM:SS."
          },
          "to": {
            "type": "string",
            "format": "time",
            "example": "16:00:00",
            "description": "Requested latest delivery time. Format HH:MM:SS."
          },
          "instruction": {
            "type": "string",
            "example": "Place on the front porch.",
            "description": "Delivery instruction to the carrier. Only applicable for products which support delivery instructions."
          }
        }
      }
    }
  },
  "ShipmentCancelledAtCarrier": {
    "type": "object",
    "properties": {
      "cancelled_at_carrier": {
        "description": "Whether or not the shipment are cancelled at the carrier.",
        "type": "boolean"
      }
    }
  },
  "ShipmentCancelled": {
    "type": "object",
    "properties": {
      "cancelled": {
        "description": "Whether or not the shipment is cancelled at Shipmondo.",
        "type": "boolean"
      },
      "cancelled_at_carrier": {
        "description": "Whether or not the shipment is cancelled at the carrier.",
        "type": "boolean"
      },
      "refunded": {
        "description": "Whether or not the shipment is refunded in Shipmondo (Refunds are not triggered by this endpoint itself).",
        "type": "boolean"
      }
    }
  },
  "PackingSlip": {
    "type": "object",
    "properties": {
      "id": {
        "type": "integer",
        "description": "ID for sales order",
        "example": 27000
      },
      "packing_slips": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/PackingSlipData"
        }
      }
    }
  },
  "PackingSlipData": {
    "type": "object",
    "properties": {
      "order_fulfillment_id": {
        "type": "integer",
        "description": "The ID of the order fulfillment.",
        "example": 833
      },
      "base64": {
        "type": "string",
        "description": "Data encoded in Base64 format.",
        "example": "JVBERi0xLjMKJf//////AAAAAA..."
      },
      "file_format": {
        "type": "string",
        "description": "File format for the returned PDF data.",
        "example": "pdf"
      }
    }
  },
  "PickList": {
    "type": "object",
    "properties": {
      "id": {
        "type": "integer",
        "description": "ID for sales order",
        "example": 27000
      },
      "pick_list": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/PickListData"
        }
      }
    }
  },
  "PickListData": {
    "type": "object",
    "properties": {
      "base64": {
        "type": "string",
        "description": "Data encoded in Base64 format.",
        "example": "JVBERi0xLjMKJf//////AAAAAA..."
      },
      "file_format": {
        "type": "string",
        "description": "File format for the returned PDF data.",
        "example": "pdf"
      }
    }
  },
  "Label": {
    "type": "object",
    "properties": {
      "base64": {
        "type": "string",
        "description": "Data encoded in Base64 format",
        "example": "JVBERi0xLjMKJf//////AAAAAA..."
      },
      "file_format": {
        "type": "string",
        "description": "File format for the returned data",
        "enum": [
          "pdf",
          "png",
          "zpl"
        ],
        "example": "pdf"
      }
    }
  },
  "ProformaInvoice": {
    "type": "object",
    "properties": {
      "base64": {
        "type": "string",
        "description": "Base64-encoded string containing the data of the document.",
        "example": "JVBERi0xLjMKJf//////AAAAAA..."
      },
      "file_format": {
        "type": "string",
        "description": "File format for the returned data.",
        "example": "pdf",
        "enum": [
          "pdf"
        ]
      }
    }
  },
  "Item": {
    "type": "object",
    "required": ["id", "country_attributes"],
    "properties": {
      "id": {
        "type": "integer",
        "example": 1,
        "description": "Unique identifier of the object."
      },
      "sku": {
        "type": "string",
        "example": "EX-123",
        "description": "SKU (stock keeping unit). Must be unique for every item, including variants."
      },
      "name": {
        "type": "string",
        "example": "T-Shirt",
        "description": "Name of the item."
      },
      "variant_code": {
        "type": "string",
        "example": "Large",
        "description": "Variant code of the item."
      },
      "barcode": {
        "type": "string",
        "example": "1234567891011",
        "description": "Barcode of the item, which is used when scanning item for pick. Will be displayed as a code 128 barcode"
      },
      "bin": {
        "type": "string",
        "example": "123-a",
        "description": "The bin/location where the item is located in the warehouse."
      },
      "weight": {
        "type": "integer",
        "example": 1000,
        "description": "Weight of the item in grams."
      },
      "image_url": {
        "type": "string",
        "example": "https://example.com/image.jpg",
        "description": "Image URL of the item that appears on the order or when picking. Will only be displayed if the URL is HTTPS."
      },
      "country_code_of_origin": {
        "type": "string",
        "example": "DK",
        "description": "ISO 3166-1 alpha-2 country code of origin."
      },
      "currency_code": {
        "type": "string",
        "example": "DKK",
        "description": "ISO 4217 currency code."
      },
      "customs_commodity_code": {
        "type": "string",
        "example": "123456",
        "description": "Global tariff code for the item. Used when creating shipments that require customs declaration."
      },
      "customs_description": {
        "type": "string",
        "example": "Example contents",
        "description": "Customs description for the item. Used when creating shipments that require customs declaration."
      },
      "shop": {
        "type": "string",
        "example": "API",
        "description": "Origin shop of the item."
      },
      "virtual": {
        "type": "boolean",
        "default": false,
        "description": "Describes if the item is a virtual item."
      },
      "country_attributes": {
        "type": "array",
        "description": "Country specific attributes.",
        "nullable": false,
        "items": {
          "type": "object",
          "required": ["country_code", "customs_commodity_code"],
          "properties": {
            "country_code": {
              "type": "string",
              "description": "ISO 3166-1 alpha-2 country code.",
              "example": "DK",
              "nullable": false
            },
            "customs_commodity_code": {
              "type": ["string", "null"],
              "description": "Country specific tariff code for the item. Used when creating shipments that require customs declaration to the specified country.",
              "example": "3924102000",
              "nullable": true
            }
          }
        }
      }
    }
  },
  "CreateItemRequest": {
    "type": "object",
    "required": [
      "sku",
      "name"
    ],
    "properties": {
      "sku": {
        "type": "string",
        "example": "EX-123",
        "description": "SKU (stock keeping unit). Must be unique for every item, including variants."
      },
      "name": {
        "type": "string",
        "example": "T-Shirt",
        "description": "Name of the item."
      },
      "variant_code": {
        "type": "string",
        "example": "Large",
        "description": "Variant code of the item."
      },
      "barcode": {
        "type": "string",
        "example": "1234567891011",
        "description": "Barcode of the item, which is used when scanning item for pick. Will be displayed as a code 128 barcode"
      },
      "bin": {
        "type": "string",
        "example": "123-a",
        "description": "The bin/location where the item is located in the warehouse."
      },
      "weight": {
        "type": "integer",
        "example": 1000,
        "description": "Weight of the item in grams."
      },
      "image_url": {
        "type": "string",
        "example": "https://example.com/image.jpg",
        "description": "Image URL of the item that appears on the order or when picking. Will only be displayed if the URL is HTTPS."
      },
      "country_code_of_origin": {
        "type": "string",
        "example": "DK",
        "description": "ISO 3166-1 alpha-2 country code of origin."
      },
      "currency_code": {
        "type": "string",
        "example": "DKK",
        "description": "ISO 4217 currency code."
      },
      "customs_commodity_code": {
        "type": "string",
        "example": "123456",
        "description": "Global tariff code for the item. Used when creating shipments that require customs declaration."
      },
      "customs_description": {
        "type": "string",
        "example": "Example contents",
        "description": "Customs description for the item. Used when creating shipments that require customs declaration."
      },
      "shop": {
        "type": "string",
        "example": "API",
        "description": "Origin shop of the item."
      },
      "virtual": {
        "type": "boolean",
        "default": false,
        "description": "Describes if the item is a virtual item."
      }
    }
  },
  "UpdateItemRequest": {
    "type": "object",
    "properties": {
      "name": {
        "type": "string",
        "example": "T-Shirt",
        "description": "Name of the item."
      },
      "variant_code": {
        "type": "string",
        "example": "Large",
        "description": "Variant code of the item."
      },
      "barcode": {
        "type": "string",
        "example": "1234567891011",
        "description": "Barcode of the item. Used when scanning item for pick."
      },
      "bin": {
        "type": "string",
        "example": "123-a",
        "description": "The bin/location where the item is located in the warehouse."
      },
      "weight": {
        "type": "integer",
        "example": 1000,
        "description": "Weight of the item in grams."
      },
      "image_url": {
        "type": "string",
        "example": "https://example.com/image.jpg",
        "description": "Image URL of the item that appears on the order or when picking. Will only be displayed if the URL is HTTPS."
      },
      "country_code_of_origin": {
        "type": "string",
        "example": "DK",
        "description": "ISO 3166-1 alpha-2 country code of origin."
      },
      "currency_code": {
        "type": "string",
        "example": "DKK",
        "description": "ISO 4217 currency code."
      },
      "customs_commodity_code": {
        "type": "string",
        "example": "123456",
        "description": "Global tariff code for the item. Used when creating shipments that require customs declaration."
      },
      "customs_description": {
        "type": "string",
        "example": "Example contents",
        "description": "Customs description for the item. Used when creating shipments that require customs declaration."
      },
      "virtual": {
        "type": "boolean",
        "default": false,
        "description": "Describes if the item is a virtual item."
      }
    }
  },
  "Webhook": {
    "type": "object",
    "properties": {
      "id": {
        "type": "integer",
        "example": 1,
        "description": "Unique identifier of the object."
      },
      "endpoint": {
        "type": "string",
        "example": "https://example.com/webhook",
        "description": "Endpoint the webhook sends request to."
      },
      "active": {
        "type": "boolean",
        "description": "Indicates if the webhook is active."
      },
      "created_at": {
        "type": "string",
        "format": "date-time",
        "example": "2017-06-16T06:25:44.557Z",
        "description": "ISO 8601 datetime the object was created."
      },
      "updated_at": {
        "type": "string",
        "format": "date-time",
        "example": "2017-06-16T06:25:44.557Z",
        "description": "ISO 8601 datetime when the object was updated."
      },
      "name": {
        "type": "string",
        "example": "Example Name",
        "description": "User-specified name of the webhook."
      },
      "action": {
        "type": "string",
        "example": "create",
        "description": "The action that webhook is hooked to.",
        "enum": [
          "create",
          "cancel",
          "status_update",
          "create_fulfillment",
          "create_shipment",
          "payment_captured",
          "payment_refunded",
          "payment_voided",
          "delete",
          "latest",
          "delivered"
        ]
      },
      "resource_name": {
        "type": "string",
        "example": "Shipments",
        "description": "The name of the resource that webhook is hooked to.",
        "enum": [
          "Shipments",
          "Orders",
          "Shipment Monitor"
        ]
      }
    }
  },
  "WebhookCreate": {
    "type": "object",
    "required": [
      "name",
      "endpoint",
      "key",
      "action",
      "resource_name"
    ],
    "properties": {
      "name": {
        "type": "string",
        "example": "Example Name",
        "description": "User-specified name of the webhook."
      },
      "endpoint": {
        "type": "string",
        "example": "https://example.com/webhook",
        "description": "Endpoint the webhook sends request to."
      },
      "key": {
        "type": "string",
        "example": "example_key_123",
        "description": "Encryption key that should encrypt and decrypt the webhook message with JWT."
      },
      "action": {
        "type": "string",
        "example": "create",
        "description": "The action that webhook is hooked to.",
        "enum": [
          "create",
          "cancel",
          "status_update",
          "create_fulfillment",
          "create_shipment",
          "payment_captured",
          "payment_voided",
          "delete",
          "latest",
          "delivered"
        ]
      },
      "resource_name": {
        "type": "string",
        "example": "Shipments",
        "description": "The name of the resource that webhook is hooked to.",
        "enum": [
          "Shipments",
          "Orders",
          "Shipment Monitor"
        ]
      }
    }
  },
  "ServicePointSimple": {
    "type": "object",
    "description": "Service point address. Used for shop delivery carrier products.",
    "properties": {
      "id": {
        "type": "string",
        "example": "95558",
        "description": "Identifier of the service point."
      },
      "name": {
        "type": "string",
        "example": "Påskeløkkens Købmand",
        "description": "Name of the service point."
      },
      "address1": {
        "type": "string",
        "example": "Paaskeløkkevej 11",
        "description": "Address of the service point."
      },
      "address2": {
        "type": "string",
        "description": "Second address line can be used for floor/room number, building name etc.",
        "example": null
      },
      "zipcode": {
        "type": "string",
        "example": "5000",
        "description": "Zip code of the service point."
      },
      "city": {
        "type": "string",
        "example": "Odense C",
        "description": "City of the provided zipcode."
      },
      "country_code": {
        "type": "string",
        "example": "DK",
        "description": "ISO 3166-1 alpha-2 country code of the service point."
      }
    }
  },
  "SalesOrderServicePointCreate": {
    "type": "object",
    "description": "Service point address. Used for shop delivery carrier products.",
    "properties": {
      "id": {
        "type": "string",
        "example": "95558",
        "description": "Identifier of the service point."
      },
      "name": {
        "type": "string",
        "example": "Påskeløkkens Købmand",
        "description": "Name of the service point."
      },
      "address1": {
        "type": "string",
        "example": "Paaskeløkkevej 11",
        "description": "Address of the service point."
      },
      "address2": {
        "type": "string",
        "description": "Second address line can be used for floor/room number, building name etc.",
        "example": null
      },
      "zipcode": {
        "type": "string",
        "example": "5000",
        "description": "Zip code of the service point."
      },
      "city": {
        "type": "string",
        "example": "Odense C",
        "description": "City of the provided zipcode."
      },
      "country_code": {
        "type": "string",
        "example": "DK",
        "description": "ISO 3166-1 alpha-2 country code of the service point."
      },
      "carrier_code": {
        "type": "string",
        "example": "gls",
        "description": "Carrier code of the pickup point. Defines which carrier the pickup point belongs to."
      }
    }
  },
  "ServicePoint": {
    "type": "object",
    "properties": {
      "number": {
        "type": "string",
        "example": "95558",
        "description": "ID of the pickup point. Used when request a shipment to the specific pickup point."
      },
      "id": {
        "type": "string",
        "example": "95558",
        "description": "ID of the pickup point. Used when request a shipment to the specific pickup point."
      },
      "company_name": {
        "type": "string",
        "example": "Påskeløkkens Købmand",
        "description": "Name of the location of the pickup point."
      },
      "name": {
        "type": "string",
        "example": "Påskeløkkens Købmand",
        "description": "Name of the location of the pickup point."
      },
      "address": {
        "type": "string",
        "example": "Paaskeløkkevej 11",
        "description": "Address line 1 of the pickup point."
      },
      "address2": {
        "type": "string",
        "example": null,
        "description": "Second address line can be used for floor/room number, building name etc."
      },
      "zipcode": {
        "type": "string",
        "example": "5000",
        "description": "Zip code of the pickup point."
      },
      "city": {
        "type": "string",
        "example": "Odense C",
        "description": "City of the pickup point."
      },
      "country": {
        "type": "string",
        "example": "DK",
        "description": "Country code of the pickup point."
      },
      "distance": {
        "type": "integer",
        "description": "Distance in meters between the pickup point and the requested location."
      },
      "longitude": {
        "type": "number",
        "example": 10.4159,
        "description": "Longitude of the pickup point. Together with latitude it defines the coordinates of the pickup point."
      },
      "latitude": {
        "type": "number",
        "example": 55.4086,
        "description": "Latitude of the pickup point. Together with longitude it defines the coordinates of the pickup point."
      },
      "agent": {
        "type": "string",
        "example": "gls",
        "description": "Carrier code of the pickup point. Defines which carrier the pickup point belongs to."
      },
      "carrier_code": {
        "type": "string",
        "example": "gls",
        "description": "Carrier code of the pickup point. Defines which carrier the pickup point belongs to."
      },
      "opening_hours": {
        "type": "array",
        "description": "Opening hours in which parcels can be picked up at the location.",
        "items": {
          "type": "string",
          "example": [
            "Man: 00:00 - 23:59",
            "Tir: 00:00 - 23:59",
            "Ons: 00:00 - 23:59",
            "Tor: 00:00 - 23:59",
            "Fre: 00:00 - 23:59",
            "Lør: 00:00 - 23:59",
            "Søn: 00:00 - 23:59"
          ]
        }
      },
      "in_delivery": {
        "type": "boolean",
        "description": "Whether or not the pickup point supports drop off of parcels."
      },
      "out_delivery": {
        "type": "boolean",
        "description": "Whether or not the pickup point supports pickup of parcels."
      }
    }
  },
  "ShippingModuleProduct": {
    "type": "object",
    "properties": {
      "name": {
        "type": "string",
        "example": "ShopDelivery",
        "description": "The name of the product for display purposes."
      },
      "product_code": {
        "type": "string",
        "example": "GLSDK_SD",
        "description": "The product code used in further requests."
      },
      "service_point_product": {
        "type": "boolean",
        "description": "Whether or not the product is used with service points",
        "example": true
      },
      "receiver_countries": {
        "type": "array",
        "items": {
          "type": "string",
          "example": "DK"
        },
        "description": "Array of country codes where the product can be used by your account."
      }
    }
  },
  "ShippingModuleCarrier": {
    "type": "object",
    "properties": {
      "name": {
        "type": "string",
        "example": "GLS",
        "description": "The name of the carrier for display purposes."
      },
      "code": {
        "type": "string",
        "example": "gls",
        "description": "The code of the carrier used in further requests."
      }
    }
  },
  "ShopifyShippingMethod": {
    "type": "object",
    "properties": {
      "id": {
        "type": "integer",
        "example": 12345,
        "description": "The ID of the Shopify shipping method."
      },
      "product_type": {
        "type": "string",
        "example": "SERVICE_POINT",
        "description": "The product type name of the shipping method. E.g. SERVICE_POINT, BUSINESS or PRIVATE"
      },
      "shipping_agent_code": {
        "type": "string",
        "example": "gls",
        "description": "The code of the shipping agent/carrier."
      },
      "shipping_product_global_code": {
        "type": "string",
        "example": "GLSDK_SD",
        "description": "The global product code for the shipping method."
      },
      "service_point_types": {
        "type": "array",
        "description": "Array of service point type codes associated with this shipping method. If empty, all service point types are included.",
        "items": {
          "type": "string",
          "example": "SP"
        },
        "example": [
          "SP",
          "BOX"
        ]
      }
    }
  },
  "ServicePointType": {
    "type": "object",
    "properties": {
      "code": {
        "type": "string",
        "description": "The code of the type used in further requests.",
        "example": "SP"
      },
      "name": {
        "type": "string",
        "description": "The name of the type for display purposes.",
        "example": "GLS ParcelShop"
      }
    }
  },
  "ServicePointV2": {
    "type": "object",
    "properties": {
      "id": {
        "type": "string",
        "example": "95558",
        "description": "ID of the service point."
      },
      "name": {
        "type": "string",
        "example": "Påskeløkkens Købmand",
        "description": "Name of the location of the service point."
      },
      "address": {
        "type": "string",
        "example": "Paaskeløkkevej 11",
        "description": "Address line 1 of the service point."
      },
      "address2": {
        "type": "string",
        "example": null,
        "description": "Second address line. Can be used for floor/room number, building name etc."
      },
      "zipcode": {
        "type": "string",
        "example": "5000",
        "description": "Zip code of the pickup point."
      },
      "city": {
        "type": "string",
        "example": "Odense C",
        "description": "City of the pickup point."
      },
      "country": {
        "type": "string",
        "example": "DK",
        "description": "Country code of the pickup point."
      },
      "distance": {
        "type": "integer",
        "example": 250,
        "description": "Distance in meters between the pickup point and the requested location."
      },
      "longitude": {
        "type": "number",
        "example": 10.4159,
        "description": "Longitude of the pickup point. Together with latitude it defines the coordinates of the pickup point."
      },
      "latitude": {
        "type": "number",
        "example": 55.4086,
        "description": "Latitude of the pickup point. Together with longitude it defines the coordinates of the pickup point."
      },
      "carrier_code": {
        "type": "string",
        "example": "gls",
        "description": "Carrier code of the pickup point. Defines which carrier the pickup point belongs to."
      },
      "type": {
        "type": "string",
        "nullable": true,
        "example": "SP",
        "description": "The type of the service point. Types may vary from carrier to carrier."
      },
      "opening_hours": {
        "type": "array",
        "description": "Opening hours in which parcels can be picked up at the location.",
        "items": {
          "type": "string",
          "example": [
            "Man: 00:00 - 23:59",
            "Tir: 00:00 - 23:59",
            "Ons: 00:00 - 23:59",
            "Tor: 00:00 - 23:59",
            "Fre: 00:00 - 23:59",
            "Lør: 00:00 - 23:59",
            "Søn: 00:00 - 23:59"
          ]
        }
      },
      "drop_off_allowed": {
        "type": "boolean",
        "description": "Whether or not the pickup point supports drop off of parcels."
      },
      "pickup_allowed": {
        "type": "boolean",
        "description": "Whether or not the pickup point supports pickup of parcels."
      }
    }
  },
  "ServicePoints": {
    "type": "array",
    "items": {
      "$ref": "#/components/schemas/ServicePoint"
    }
  },
  "ShipmentServicePoint": {
    "type": "object",
    "properties": {
      "id": {
        "type": "string",
        "example": "95558",
        "description": "Identifier of the service point."
      },
      "name": {
        "type": "string",
        "example": "Påskeløkkens Købmand",
        "description": "Name of the service point."
      },
      "address1": {
        "type": "string",
        "example": "Paaskeløkkevej 11",
        "description": "Address line 1 of the service point."
      },
      "address2": {
        "type": "string",
        "example": null,
        "description": "Second address line can be used for floor/room number, building name etc."
      },
      "zipcode": {
        "type": "string",
        "example": "5000",
        "description": "Zip code of the service point."
      },
      "city": {
        "type": "string",
        "example": "Odense C",
        "description": "City of the provided zipcode."
      },
      "country_code": {
        "type": "string",
        "example": "DK",
        "description": "ISO 3166-1 alpha-2 country code of the service point."
      },
      "shipping_agent": {
        "type": "string",
        "example": "gls",
        "description": "Carrier code of the carrier that the service point belongs to."
      }
    }
  },
  "PaymentRequest": {
    "type": "object",
    "properties": {
      "id": {
        "description": "ID of the payment request.",
        "type": "integer",
        "example": 11460
      },
      "shipment_id": {
        "description": "ID of the shipment that the payment request is related to.",
        "type": "integer",
        "example": 18651353
      },
      "reference": {
        "description": "Information about the nature of the payment request.",
        "type": "string",
        "example": "Non-compliant"
      },
      "line_type": {
        "description": "Type related to the nature of the payment request.",
        "type": "string",
        "enum":
        ["shipment","pickup","fuel","sulphur","road_toll","non_compliant","oversize","island_fee","hanging_garment","alternative_delivery","re_addressing","unfit_for_parcel_shop","re_delivery","return_freight","overweight","hazardous_goods_service","customs_clearance","remote_area","not_stackable_pallet","time_definite","address_correction","cargo_gods_fee","no_reply","missing_edi_data","oversize_fifty","oversize_60","oversize_115","environmental","security","currency_conversion","drop_off_fee","bag_on_door","barcode_unreadable","barcode_misplaced","shipment_information_correction","seasonal_fee","delivery_obstacles","conversion_fee","non_collected_shipment","evening_delivery","missing_mandatory_notification","gotland_fee","colli_fee","notification","warehouse_rent","parcel_information_correction","outside_product_specification","signature_assurance","brexit","pickup_private","freight_adjustment","customs_entry_prep","customs_document_mailing","customs_ddp","customs_disbursement_fee","customs_import_vat","customs_import_duties","international_process_fee","discount","use_of_refunded_shipment","business_to_private","label_reuse","excess_weight","others","unknown"],
        "example": "non_compliant"
      },
      "amount": {
        "description": "Amount to be paid.",
        "type": "number",
        "example": 22.5
      },
      "currency_code": {
        "description": "Currency code of the amount.",
        "type": "string",
        "example": "DKK"
      },
      "created_at": {
        "description": "Date and time the payment request was created.",
        "type": "string",
        "format": "date-time",
        "example": "2017-06-16T06:25:44.557Z"
      },
      "updated_at": {
        "description": "Date and time the payment request was last updated.",
        "type": "string",
        "format": "date-time",
        "example": "2017-06-16T06:25:44.557Z"
      }
    }
  },
  "Printer": {
    "type": "object",
    "properties": {
      "name": {
        "type": "string",
        "example": "Warehouse Printer 02",
        "description": "User-specified name of the printer."
      },
      "hostname": {
        "type": "string",
        "example": "WAREHOUSE-PC-01",
        "description": "The name of the computer/host from which the printer is accessed."
      },
      "printer": {
        "type": "string",
        "example": "GK420D",
        "description": "The name of the printer as it appears on the computer/host."
      },
      "label_format": {
        "type": "string",
        "example": "zpl",
        "description": "The given format of the printer",
        "enum": [
          "zpl",
          "10x19",
          "a4"
        ]
      },
      "default_printer": {
        "type": "boolean",
        "default": false,
        "description": "Indicates if the printer is default for shipments"
      },
      "default_document_printer": {
        "type": "boolean",
        "default": false,
        "description": "Indicates if the printer is default for printing documents such as proforma invoices."
      },
      "default_pick_document_printer": {
        "type": "boolean",
        "default": false,
        "description": "Indicates if the printer is default for printing pick documents such as packing slips and pick path documents."
      },
      "auto_print": {
        "type": "boolean",
        "default": false,
        "deprecated": true
      },
      "staff_account_id": {
        "type": "integer",
        "example": 7,
        "description": "The identifier for the related staff account."
      }
    }
  },
  "PrintJob": {
    "type": "object",
    "required": [
      "document_id",
      "document_type",
      "host_name",
      "printer_name",
      "label_format"
    ],
    "properties": {
      "document_id": {
        "type": "integer",
        "example": 11460,
        "description": "Identifier for the provided document_type."
      },
      "document_type": {
        "type": "string",
        "example": "shipment",
        "description": "Type of document that should be printed.",
        "enum": [
          "shipment",
          "sales_order",
          "fulfillment",
          "proforma",
          "waybill"
        ]
      },
      "host_name": {
        "type": "string",
        "example": "WAREHOUSE-PC-01",
        "description": "The name of the computer/host to print at."
      },
      "printer_name": {
        "type": "string",
        "example": "GK420D",
        "description": "The name of the printer that should be printed on."
      },
      "label_format": {
        "type": "string",
        "example": "10x19_zpl",
        "enum": [
          "a4_pdf",
          "10x19_pdf",
          "10x19_zpl",
          "compact_pdf",
          "compact_zpl"
        ],
        "description": "The given format of the print job. Label_formats: compact_pdf and compact_zpl, is only compatible with document_type: shipment."
      }
    }
  },
  "PrintJobBatch": {
    "type": "object",
    "required": [
      "print_jobs",
      "host_name"
    ],
    "properties": {
      "host_name": {
        "type": "string",
        "example": "WAREHOUSE-PC-01",
        "description": "The name of the computer/host to print at."
      },
      "print_jobs": {
        "type": "array",
        "description": "A list of print jobs to be printed in the specified order.",
        "items": {
          "type": "object",
          "required": [
            "document_id",
            "document_type",
            "printer_name",
            "label_format"
          ],
          "properties": {
            "document_id": {
              "type": "integer",
              "example": 11460,
              "description": "Identifier for the provided document_type."
            },
            "document_type": {
              "type": "string",
              "example": "shipment",
              "description": "Type of document that should be printed.",
              "enum": [
                "shipment",
                "sales_order",
                "fulfillment",
                "proforma",
                "waybill"
              ]
            },
            "printer_name": {
              "type": "string",
              "example": "GK420D",
              "description": "The name of the printer that should be printed on."
            },
            "label_format": {
              "type": "string",
              "example": "10x19_zpl",
              "enum": [
                "a4_pdf",
                "10x19_pdf",
                "10x19_zpl",
                "compact_pdf",
                "compact_zpl"
              ],
              "description": "The given format of the print job. Label_formats: compact_pdf and compact_zpl, is only compatible with document_type: shipment."
            }
          }
        }
      }
    }
  },
  "ShipmentTemplate": {
    "type": "object",
    "properties": {
      "id": {
        "type": "integer",
        "example": 11460,
        "description": "ID of the shipment template. Used when referencing a specific template in other requests."
      },
      "name": {
        "type": "string",
        "example": "GLS Shipments",
        "description": "Given name of the template."
      },
      "default": {
        "type": "boolean",
        "example": true,
        "description": "Whether or not the template is the default to be used when no other is selected."
      },
      "product_code": {
        "type": "string",
        "example": "GLSDK_HD",
        "description": "Code for the product that is booked when using the template."
      },
      "own_agreement": {
        "type": "boolean",
        "example": false,
        "description": "Whether or not the shipments are booked with the template is using own agreement or Shipmondo agreement."
      },
      "customer_number": {
        "type": "string",
        "example": "123456789",
        "description": "The customer number that is attached to the template."
      },
      "service_codes": {
        "description": "Comma-separated string of service codes referring to which services that is booked when using the template.",
        "type": "string",
        "example": "EMAIL_NT,SMS_NT"
      },
      "sender": {
        "type": "object",
        "properties": {
          "country_code": {
            "type": "string",
            "example": "DK",
            "description": "Country code of the sender country."
          }
        }
      },
      "receiver": {
        "type": "object",
        "properties": {
          "country_code": {
            "type": "string",
            "example": "DK",
            "description": "Country code for the receiver country."
          }
        }
      },
      "parcels": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/ParcelAdvanced"
        }
      }
    }
  },
  "SalesOrderPackaging": {
    "type": "object",
    "properties": {
      "id": {
        "type": "integer",
        "example": 11460,
        "description": "Unique identifier of the object."
      },
      "name": {
        "type": "string",
        "example": "Standard Packaging",
        "description": "User-specified name of the packaging."
      },
      "barcode": {
        "type": "string",
        "example": "AB12345334",
        "description": "Barcode of the item, which is used when scanning item for pick. Will be displayed as a code 128 barcode."
      },
      "weight": {
        "type": "integer",
        "example": 1000,
        "description": "Weight of the order packaging in grams."
      },
      "length": {
        "type": "integer",
        "example": 10,
        "description": "Length of the order packaging in cm."
      },
      "height": {
        "type": "integer",
        "example": 10,
        "description": "Height of the order packaging in cm."
      },
      "width": {
        "type": "integer",
        "example": 10,
        "description": "Width of the order packaging in cm."
      }
    }
  },
  "BookkeepingIntegration": {
    "type": "object",
    "properties": {
      "id": {
        "type": "integer",
        "example": 12160,
        "description": "Unique identifier of the object."
      },
      "name": {
        "type": "string",
        "example": "Testcompany Bookkeeping",
        "description": "User-specified name of the bookkeeping integration."
      },
      "platform": {
        "type": "string",
        "example": "economic",
        "description": "Code of the bookkeeping platform that is integrated to. Used to refer to the provider.",
        "enum":
        ["economic","billy","dinero"]
      }
    }
  },
  "ReturnPortal": {
    "type": "object",
    "properties": {
      "id": {
        "description": "ID of the return portal.",
        "type": "integer",
        "example": 43
      },
      "active": {
        "description": "Whether the return portal is active and ready to use.",
        "type": "boolean"
      },
      "portal_name": {
        "type": "string",
        "example": "mitfirma",
        "description": "Last part of the URL to access the return portal: https://return.shipmondo.com/{portal_name}"
      },
      "carrier_code": {
        "description": "Carrier code for the carrier that is setup to the return portals.",
        "type": "string",
        "example": "gls",
        "deprecated": true
      }
    }
  },
  "ReturnPortals": {
    "type": "array",
    "items": {
      "$ref": "#/components/schemas/ReturnPortal"
    }
  },
  "Labels": {
    "type": "object",
    "properties": {
      "id": {
        "description": "Shipment ID",
        "type": "integer",
        "example": 43
      },
      "labels": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Label"
        }
      }
    }
  },
  "CreateQuoteRequest": {
    "required": [
      "product_code",
      "sender",
      "receiver",
      "parcels"
    ],
    "type": "object",
    "properties": {
      "product_code": {
        "type": "string",
        "description": "Product code referring to which product should be quoted for.",
        "example": "PDK_MH"
      },
      "service_codes": {
        "description": "Comma-separated string of service codes referring to which services should be quoted for.",
        "type": "string",
        "example": "EMAIL_NT,SMS_NT"
      },
      "sender": {
        "$ref": "#/components/schemas/QuoteSender"
      },
      "receiver": {
        "$ref": "#/components/schemas/QuoteReceiver"
      },
      "parcels": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/ParcelAdvanced"
        }
      }
    }
  },
  "CreateQuoteResponse": {
    "type": "object",
    "properties": {
      "carrier_code": {
        "description": "Carrier code referring to the carrier of the product that is quoted for.",
        "type": "string",
        "example": "pdk"
      },
      "description": {
        "description": "Text to describe the quote, which can be used when presenting it.",
        "type": "string",
        "example": "MyPack Home"
      },
      "product_code": {
        "type": "string",
        "description": "Product code referring to the product which is quoted for.",
        "example": "PDK_MH"
      },
      "service_codes": {
        "description": "Comma-separated string of service codes referring to the services which are quoted for.",
        "type": "string",
        "example": "EMAIL_NT,SMS_NT"
      },
      "price": {
        "description": "Estimated price of the shipment, including VAT.",
        "type": "number",
        "example": 42.5
      },
      "price_before_vat": {
        "description": "Estimated price of the shipment, excluding VAT.",
        "type": "number",
        "example": 34
      },
      "currency_code": {
        "description": "Currency code of the price.",
        "type": "string",
        "example": "DKK"
      }
    }
  },
  "CreateShipmentQuoteResponse": {
    "type": "object",
    "properties": {
      "carrier_code": {
        "description": "Carrier code referring to the carrier of the product that is quoted for.",
        "type": "string",
        "example": "pdk"
      },
      "description": {
        "description": "Text to describe the quote, which can be used when presenting it.",
        "type": "string",
        "example": "MyPack Home"
      },
      "product_code": {
        "type": "string",
        "description": "Product code referring to the product which is quoted for.",
        "example": "PDK_MH"
      },
      "service_codes": {
        "description": "Comma-separated string of service codes referring to the services which are quoted for.",
        "type": "string",
        "example": "EMAIL_NT,SMS_NT"
      },
      "price": {
        "description": "Estimated price of the shipment, including VAT.",
        "type": "number",
        "example": 42.5
      },
      "price_before_vat": {
        "description": "Estimated price of the shipment, excluding VAT.",
        "type": "number",
        "example": 34
      },
      "currency_code": {
        "description": "Currency code of the price.",
        "type": "string",
        "example": "DKK"
      },
      "carrier_price": {
        "description": "Quoted price from carrier, if shipment is on own agreement and carrier quote is supported.",
        "type": "object",
        "properties": {
          "price": {
            "description": "Quoted price, excluding VAT.",
            "type": "number",
            "example": 142.27,
            "nullable": true
          },
          "currency_code": {
            "description": "Currency code of the quoted price, as returned by the carrier.",
            "type": "string",
            "example": "NOK",
            "nullable": true
          }
        }
      }
    }
  },
  "QuoteSender": {
    "description": "Sender address for which the shipment is quoted.",
    "required": [
      "address1",
      "city",
      "country_code",
      "zipcode"
    ],
    "type": "object",
    "properties": {
      "address1": {
        "type": "string",
        "example": "Hvilehøjvej 25"
      },
      "address2": {
        "type": "string",
        "example": null,
        "description": "Second address line can be used for floor/room number, building name etc."
      },
      "zipcode": {
        "type": "string",
        "example": "5220"
      },
      "city": {
        "type": "string",
        "example": "Odense SØ"
      },
      "country_code": {
        "type": "string",
        "example": "DK"
      }
    }
  },
  "QuoteReceiver": {
    "description": "Receiver address for which the shipment is quoted.",
    "required": [
      "address1",
      "city",
      "country_code",
      "zipcode"
    ],
    "type": "object",
    "properties": {
      "address1": {
        "type": "string",
        "example": "Skibhusvej 52"
      },
      "address2": {
        "type": "string",
        "description": "Second address line can be used for floor/room number, building name etc.",
        "example": null
      },
      "zipcode": {
        "type": "string",
        "example": "5000"
      },
      "city": {
        "type": "string",
        "example": "Odense C"
      },
      "country_code": {
        "type": "string",
        "example": "DK"
      }
    }
  },
  "CreateQuoteListRequest": {
    "type": "object",
    "required": [
      "sender",
      "receiver",
      "parcels"
    ],
    "properties": {
      "sender": {
        "$ref": "#/components/schemas/QuoteSender"
      },
      "receiver": {
        "$ref": "#/components/schemas/QuoteReceiver"
      },
      "parcels": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/ParcelAdvanced"
        }
      }
    }
  },
  "SalesOrder": {
    "type": "object",
    "properties": {
      "id": {
        "type": "integer",
        "example": 11227,
        "description": "Unique identifier of the object."
      },
      "order_id": {
        "type": "string",
        "example": "27000",
        "description": "The order ID of the sales order."
      },
      "reference": {
        "type": "string",
        "example": "DK3400",
        "description": "The reference for the order."
      },
      "ordered_at": {
        "type": "string",
        "format": "date-time",
        "example": "2017-06-16T06:25:44.557Z",
        "description": "ISO 8601 datetime the sales order was placed."
      },
      "order_status": {
        "type": "string",
        "example": "open",
        "description": "Status of the sales order in Shipmondo.",
        "enum":
        ["open","processing","packed","cancelled","on_hold","sent","picked_up","archived","ready_for_pickup","released"]
      },
      "fulfillment_status": {
        "type": "string",
        "example": "authorized",
        "description": "Status of how fulfilled the sales order is.",
        "enum":
        ["unfulfilled","partially_fulfilled","fulfilled"]
      },
      "payment_status": {
        "type": "string",
        "example": "unfulfilled",
        "description": "Status of the payment associated with the sales order. Is null if no payment gateway/transaction ID is associated with the order.",
        "enum":
        ["authorized","partially_paid","paid","voided","authorize_pending","authorize_error","refunded","marked_as_paid","partially_refunded","authorize_expired"]
      },
      "shipped_percent": {
        "type": "integer",
        "description": "The percentage items of the order that are shipped.",
        "example": 0
      },
      "fulfilled_percent": {
        "type": "integer",
        "description": "The percentage items of the order that are fulfilled.",
        "example": 33
      },
      "archived": {
        "type": "boolean",
        "default": false,
        "description": "Defines whether or not the sales order is archived."
      },
      "source_name": {
        "type": "string",
        "example": "Testcompany ApS",
        "description": "Name of the source for the sales order."
      },
      "order_note": {
        "type": "string",
        "example": "Note",
        "description": "A note for the sales order."
      },
      "shipment_template_id": {
        "type": "integer",
        "example": 710,
        "description": "ID of the provided shipment template. Specifies the product and services when creating shipments for the sales order."
      },
      "return_shipment_template_id": {
        "type": "integer",
        "example": 710,
        "description": "ID of the provided return shipment template. Specifies the return product and services for the sales order."
      },
      "sales_order_packaging_id": {
        "type": "integer",
        "example": 11242,
        "description": "ID of the provided sales order packaging. The packaging specifies the dimensions that will be used when packaging the order."
      },
      "bookkeeping_integration_id": {
        "type": "integer",
        "example": 241,
        "description": "ID of the provided bookkeeping integration. Allows the user to create invoices from the sales order."
      },
      "created_at": {
        "type": "string",
        "format": "date-time",
        "example": "2018-06-16T06:25:44.557Z",
        "description": "ISO 8601 datetime the object was created."
      },
      "updated_at": {
        "type": "string",
        "format": "date-time",
        "example": "2018-06-16T06:25:44.557Z",
        "description": "ISO 8601 datetime when the object was updated."
      },
      "enable_customs": {
        "type": "boolean",
        "default": false,
        "description": "Defines if order should use customs information from the associated item when creating shipments."
      },
      "ship_to": {
        "$ref": "#/components/schemas/SalesOrderShipTo"
      },
      "bill_to": {
        "$ref": "#/components/schemas/SalesOrderBillTo"
      },
      "sender": {
        "$ref": "#/components/schemas/Sender"
      },
      "payment_details": {
        "$ref": "#/components/schemas/PaymentDetails"
      },
      "service_point": {
        "$ref": "#/components/schemas/ServicePointSimple"
      },
      "order_lines": {
        "type": "array",
        "description": "The order lines describe all the lines for the sales order, including items, shipping, and more.",
        "items": {
          "$ref": "#/components/schemas/OrderLine"
        }
      },
      "order_fulfillments": {
        "type": "array",
        "description": "Order fulfillments contains fulfilled shipments that are ready to be, or have been, shipped.",
        "items": {
          "$ref": "#/components/schemas/Fulfillment"
        }
      },
      "assigned_staff_account_id": {
        "type": "integer",
        "description": "ID of staff account assigned to order",
        "example": 12
      },
      "carrier_code": {
        "type": "string",
        "description": "Code for the carrier assigned to the order.",
        "example": "pdk"
      },
      "carrier_fields": {
        "$ref": "#/components/schemas/CarrierFields"
      },
      "tags": {
        "type": "array",
        "description": "Custom tags for the order. Tags can be used to filter and search for orders.",
        "items": {
          "type": "string",
          "example": "tag1"
        }
      }
    }
  },
  "CreateSalesOrderRequest": {
    "required": [
      "order_id",
      "ship_to",
      "bill_to",
      "order_lines",
      "payment_details"
    ],
    "type": "object",
    "properties": {
      "order_id": {
        "type": "string",
        "example": "27000",
        "description": "Order ID for the sales order."
      },
      "ordered_at": {
        "type": "string",
        "format": "date-time",
        "example": "2018-10-17T13:25:44.557Z",
        "description": "ISO 8601 datetime the sales order was placed."
      },
      "source_name": {
        "type": "string",
        "example": "Testcompany ApS",
        "description": "Name of the source for the sales order."
      },
      "order_note": {
        "type": "string",
        "example": "Note",
        "description": "A note for the sales order."
      },
      "archived": {
        "type": "boolean",
        "default": false,
        "description": "Defines whether or not the sales order is archived."
      },
      "shipment_template_id": {
        "type": "integer",
        "example": 710,
        "description": "ID of the provided shipment template. Specifies the product and services for the order"
      },
      "return_shipment_template_id": {
        "type": "integer",
        "example": 710,
        "description": "ID of the provided return shipment template. Specifies the return product and services for the sales order."
      },
      "sales_order_packaging_id": {
        "type": "integer",
        "example": 11242,
        "description": "ID of the provided sales order packaging. The packaging specifies the dimensions for the order."
      },
      "bookkeeping_integration_id": {
        "type": "integer",
        "example": 241,
        "description": "ID of the provided bookkeeping integration. Allows the user to create invoices from the order."
      },
      "packing_slip_format": {
        "type": "string",
        "description": "If packing_slip_format is specified, the packing slips will be included in the response.",
        "example": null,
        "enum": [
          "a4_pdf",
          "10x19_pdf"
        ]
      },
      "enable_customs": {
        "type": "boolean",
        "default": false,
        "description": "Defines if order should use customs information from the associated item when creating shipments."
      },
      "use_item_weight": {
        "type": "boolean",
        "default": true,
        "description": "Defines if item weight should be used when creating shipments."
      },
      "assigned_staff_account_id": {
        "type": "integer",
        "default": null,
        "description": "ID of staff account assigned to order",
        "example": 12
      },
      "ship_to": {
        "$ref": "#/components/schemas/SalesOrderShipToRequest"
      },
      "bill_to": {
        "$ref": "#/components/schemas/SalesOrderBillToRequest"
      },
      "sender": {
        "$ref": "#/components/schemas/SenderRequest"
      },
      "payment_details": {
        "$ref": "#/components/schemas/PaymentDetailsRequest"
      },
      "service_point": {
        "$ref": "#/components/schemas/SalesOrderServicePointCreate"
      },
      "order_lines": {
        "type": "array",
        "description": "The order lines describe all the lines for the sales order, including items, shipping, and more.",
        "items": {
          "$ref": "#/components/schemas/OrderLineRequest"
        }
      },
      "carrier_fields": {
        "$ref": "#/components/schemas/CarrierFields"
      },
      "tags": {
        "type": "array",
        "description": "Custom tags for the order. Tags can be used to filter and search for orders.",
        "items": {
          "type": "string",
          "example": "tag1"
        }
      }
    }
  },
  "CreateFulfillmentRequest": {
    "required": [
      "fulfillment_lines",
      "order_line_id",
      "shipped_quantity"
    ],
    "type": "object",
    "properties": {
      "fulfilled_by_third_party": {
        "type": "boolean",
        "default": false,
        "description": "Defines if fulfillment is fulfilled by a third party."
      },
      "order_packaging_id": {
        "type": "integer",
        "example": 16,
        "description": "ID of a desired order_packaging. Specifies which order packaging to use."
      },
      "fulfillment_lines": {
        "type": "array",
        "description": "Lines to be fulfilled for the sales_order.",
        "items": {
          "required": [
            "order_line_id",
            "shipped_quantity"
          ],
          "type": "object",
          "properties": {
            "order_line_id": {
              "type": "integer",
              "example": 45891,
              "description": "The id of the order_line you wish to fulfill. It has to be associated with the sales_order."
            },
            "shipped_quantity": {
              "type": "string",
              "example": "1.0",
              "description": "The quantity of items you wish to ship. Total shipped quantity must not be higher than the quantity of items for the order line."
            }
          }
        }
      }
    }
  },
  "FulfillmentCreated": {
    "type": "object",
    "properties": {
      "id": {
        "type": "integer",
        "example": 11120,
        "description": "Unique identifier of the fulfillment."
      },
      "sales_order_id": {
        "type": "integer",
        "example": 11227,
        "description": "Unique identifier of the related sales order."
      },
      "code": {
        "type": "string",
        "example": "27000-1",
        "description": "The generated code for the fulfillment. Generated from the related order ID"
      },
      "type": {
        "type": "string",
        "description": "The type of the fulfillment.",
        "enum":
        ["outbound","return"]
      },
      "shipment_id": {
        "type": "integer",
        "example": 14500,
        "description": "Unique identifier of the created shipment."
      },
      "fulfilled_by_third_party": {
        "type": "boolean",
        "default": true,
        "description": "Defines if fulfillment is fulfilled by a third party."
      },
      "order_packaging_id": {
        "type": "integer",
        "example": 16,
        "description": "ID of a desired order_packaging. Specifies which order packaging that has been used."
      },
      "cancelled": {
        "type": "boolean",
        "default": false,
        "description": "Defines if fulfillment is cancelled."
      },
      "created_at": {
        "type": "string",
        "format": "date-time",
        "example": "2017-06-16T06:25:44.557Z",
        "description": "ISO 8601 datetime the object was created."
      },
      "updated_at": {
        "type": "string",
        "format": "date-time",
        "example": "2017-06-16T06:25:44.557Z",
        "description": "ISO 8601 datetime when the object was updated."
      },
      "return_resolution_name": {
        "type": "string",
        "example": "Refund",
        "description": "Name of the chosen return resolution for return fulfillments."
      },
      "fulfillment_lines": {
        "type": "array",
        "description": "fulfillment_lines associated with the fulfillment. Based on provided order_lines",
        "items": {
          "type": "object",
          "properties": {
            "id": {
              "type": "integer",
              "example": 11120,
              "description": "Unique identifier of the fulfillment_line."
            },
            "item_id": {
              "type": "integer",
              "example": 1150,
              "description": "Unique identifier of the item."
            },
            "item_variant_code": {
              "type": "string",
              "example": "white",
              "description": "The variant for the item"
            },
            "item_sku": {
              "type": "string",
              "example": "shirt_white",
              "description": "The sku of the item"
            },
            "item_name": {
              "type": "string",
              "example": "t-shirt",
              "description": "The name of the item"
            },
            "shipped_quantity": {
              "type": "integer",
              "example": "1.0",
              "description": "The quantity of items you wanted to ship"
            },
            "quantity": {
              "type": "string",
              "example": "2.0",
              "description": "The quantity of the item in the sales order"
            },
            "unit_price_excluding_vat": {
              "type": "string",
              "example": "80.0",
              "description": "The price of each item, without tax"
            },
            "unit_price_including_vat": {
              "type": "string",
              "example": "100.0",
              "description": "The price of each item, with tax"
            },
            "amount_excluding_vat": {
              "type": "string",
              "example": "160.0",
              "description": "Total price excluding taxes for the order line"
            },
            "amount_including_vat": {
              "type": "string",
              "example": "200.0",
              "description": "Total price including taxes for the order line"
            },
            "vat_amount": {
              "type": "string",
              "example": "2.0",
              "description": "Total tax amount for the fulfillment line"
            },
            "vat_percent": {
              "type": "string",
              "example": "0.25",
              "description": "Average tax percentage."
            },
            "currency_code": {
              "type": "string",
              "example": "DKK",
              "description": "ISO 4217 currency code of the order total."
            },
            "order_line_id": {
              "type": "integer",
              "example": "45891",
              "description": "The ID of the related order_line"
            },
            "return_reason_name": {
              "type": "string",
              "example": "Item is not as expected",
              "description": "Name of the chosen return reason for return fulfillments"
            },
            "return_comment": {
              "type": "string",
              "example": "The item was damaged upon arrival",
              "description": "Comment provided by the user"
            }
          }
        }
      }
    }
  },
  "PaymentDetailsRequest": {
    "required": [
      "currency_code",
      "amount_including_vat",
      "vat_amount"
    ],
    "type": "object",
    "properties": {
      "amount_excluding_vat": {
        "type": "string",
        "example": "1600.0",
        "description": "Total price excluding taxes of the sales order."
      },
      "amount_including_vat": {
        "type": "string",
        "example": "2000.0",
        "description": "Total price including taxes of the sales order."
      },
      "authorized_amount": {
        "type": "string",
        "example": "2000.0",
        "description": "The amount authorized by the payment gateway."
      },
      "currency_code": {
        "type": "string",
        "example": "DKK",
        "description": "ISO 4217 currency code of the order total."
      },
      "vat_amount": {
        "type": "string",
        "example": "400.0",
        "description": "Total amount of taxes for the order."
      },
      "vat_percent": {
        "type": "string",
        "example": "0.25",
        "description": "Average tax percentage."
      },
      "payment_method": {
        "type": "string",
        "example": "quickpay",
        "description": "The method by which the order was paid."
      },
      "transaction_id": {
        "type": "string",
        "example": "123456789",
        "description": "Transaction ID of the payment as specified by the associated payment gateway."
      },
      "payment_gateway_id": {
        "type": "string",
        "example": "4012",
        "description": "ID of the provided payment gateway. Used to capture and void payments from Shipmondo."
      }
    }
  },
  "PaymentDetails": {
    "type": "object",
    "properties": {
      "amount_excluding_vat": {
        "type": "string",
        "example": "1600.0",
        "description": "Total price excluding taxes of the sales order."
      },
      "amount_including_vat": {
        "type": "string",
        "example": "2000.0",
        "description": "Total price including taxes of the sales order."
      },
      "authorized_amount": {
        "type": "string",
        "example": "2000.0",
        "description": "The amount authorized by the payment gateway."
      },
      "captured_amount": {
        "type": "string",
        "example": "2000.0",
        "description": "The amount captured by the payment gateway."
      },
      "refunded_amount": {
        "type": "string",
        "example": "null",
        "description": "The amount refunded by the payment gateway."
      },
      "currency_code": {
        "type": "string",
        "example": "DKK",
        "description": "ISO 4217 currency code of the order total."
      },
      "vat_amount": {
        "type": "string",
        "example": "400.0",
        "description": "Total amount of taxes for the order."
      },
      "vat_percent": {
        "type": "string",
        "example": "0.25",
        "description": "Average tax percentage."
      },
      "payment_method": {
        "type": "string",
        "example": "quickpay",
        "description": "The method by which the order was paid."
      },
      "transaction_id": {
        "type": "string",
        "example": "123456789",
        "description": "Transaction ID of the payment as specified by the associated payment gateway."
      },
      "payment_gateway_id": {
        "type": "string",
        "example": "4012",
        "description": "ID of the provided payment gateway. Used to capture and void payments from Shipmondo."
      }
    }
  },
  "SalesOrderBillTo": {
    "type": "object",
    "description": "Billing address for the sales order. Used when creating invoices for associated bookkeeping integration.",
    "properties": {
      "name": {
        "type": "string",
        "example": "Lene Hansen",
        "description": "Name of the receiver. Can be either a company name or the name of a private person."
      },
      "attention": {
        "type": "string",
        "example": null,
        "description": "Attention of the receiver. If the receiver is a company, it is the contact person."
      },
      "address1": {
        "type": "string",
        "example": "Skibhusvej 52",
        "description": "Address of the receiver, including address number."
      },
      "address2": {
        "type": "string",
        "description": "Second address line of the receiver. Can be used for, e.g.,apartment number.",
        "example": null
      },
      "zipcode": {
        "type": "string",
        "example": "5000",
        "description": "Zip code of the address."
      },
      "city": {
        "type": "string",
        "example": "Odense C",
        "description": "Name of the city that the zip code refers to."
      },
      "country_code": {
        "type": "string",
        "example": "DK",
        "description": "ISO 3166-1 alpha-2 country code of the receiver address."
      },
      "email": {
        "type": "string",
        "example": "lene@email.dk",
        "description": "Email address of the receiver"
      },
      "mobile": {
        "type": "string",
        "example": "12345678",
        "description": "Mobile number of the receiver"
      },
      "telephone": {
        "type": "string",
        "example": "12345678",
        "description": "Landline phone number of the receiver"
      },
      "vat_no": {
        "type": ["string", "null"],
        "example": "DK12345678",
        "description": "VAT ID of the receiver",
        "nullable": true
      }
    }
  },
  "SalesOrderBillToRequest": {
    "required": [
      "address1",
      "city",
      "country_code",
      "name",
      "zipcode"
    ],
    "type": "object",
    "description": "Billing address for the sales order. Used when creating invoices for associated bookkeeping integration.",
    "properties": {
      "name": {
        "type": "string",
        "example": "Lene Hansen",
        "description": "Name of the receiver. Can be either a company name or the name of a private person."
      },
      "attention": {
        "type": "string",
        "example": null,
        "description": "Attention of the receiver. If the receiver is a company, it is the contact person."
      },
      "address1": {
        "type": "string",
        "example": "Skibhusvej 52",
        "description": "Address of the receiver, including address number."
      },
      "address2": {
        "type": "string",
        "description": "Second address line of the receiver. Can be used for, e.g.,apartment number.",
        "example": null
      },
      "zipcode": {
        "type": "string",
        "example": "5000",
        "description": "Zip code of the address."
      },
      "city": {
        "type": "string",
        "example": "Odense C",
        "description": "Name of the city that the zip code refers to."
      },
      "country_code": {
        "type": "string",
        "example": "DK",
        "description": "ISO 3166-1 alpha-2 country code of the receiver address."
      },
      "email": {
        "type": "string",
        "example": "lene@email.dk",
        "description": "Email address of the receiver"
      },
      "mobile": {
        "type": "string",
        "example": "12345678",
        "description": "Mobile number of the receiver"
      },
      "telephone": {
        "type": "string",
        "example": "12345678",
        "description": "Landline phone number of the receiver"
      },
      "vat_no": {
        "type": ["string", "null"],
        "example": "DK12345678",
        "description": "VAT ID of the receiver",
        "nullable": true
      }
    }
  },
  "SalesOrderShipTo": {
    "type": "object",
    "description": "Shipping address for the sales order. Used as address when creating shipments.",
    "properties": {
      "name": {
        "type": "string",
        "example": "Lene Hansen",
        "description": "Name of the receiver. Can be either a company name or the name of a private person."
      },
      "attention": {
        "type": "string",
        "example": null,
        "description": "Attention of the receiver. If the receiver is a company, it is the contact person."
      },
      "address1": {
        "type": "string",
        "example": "Skibhusvej 52",
        "description": "Address of the receiver, including address number."
      },
      "address2": {
        "type": "string",
        "description": "Second address line of the receiver. Can be used for, e.g.,apartment number.",
        "example": null
      },
      "zipcode": {
        "type": "string",
        "example": "5000",
        "description": "Zip code of the address."
      },
      "city": {
        "type": "string",
        "example": "Odense C",
        "description": "Name of the city that the zip code refers to."
      },
      "country_code": {
        "type": "string",
        "example": "DK",
        "description": "ISO 3166-1 alpha-2 country code of the receiver address."
      },
      "email": {
        "type": "string",
        "example": "lene@email.dk",
        "description": "Email address of the receiver"
      },
      "mobile": {
        "type": "string",
        "example": "12345678",
        "description": "Mobile number of the receiver"
      },
      "telephone": {
        "type": "string",
        "example": "12345678",
        "description": "Landline phone number of the receiver"
      },
      "vat_no": {
        "type": ["string", "null"],
        "example": "DK12345678",
        "description": "VAT ID of the receiver",
        "nullable": true
      },
      "instruction": {
        "type": "string",
        "example": "Place on the front porch.",
        "description": "Delivery instruction to the carrier. Only applicable for products which support receiver instructions."
      },
      "address_validation": {
        "type": "object",
        "properties": {
          "state": {
            "type": "string",
            "example": "danger",
            "description": "State refers to the likelihood of an error in the address"
          },
          "suggestion": {
            "type": "object",
            "properties": {
              "city": {
                "type": "string",
                "example": "Odense SØ",
                "description": "Suggested city of the receiver"
              },
              "address": {
                "type": "string",
                "example": "Hvilehøjvej 25",
                "description": "Suggested address of the receiver"
              },
              "zipcode": {
                "type": "string",
                "example": "5220",
                "description": "Suggested ZIP Code of the receiver"
              },
              "country_code": {
                "type": "string",
                "example": "DK",
                "description": "Suggedes country code of the receiver in alpha 2"
              }
            }
          }
        }
      }
    }
  },
  "SalesOrderShipToRequest": {
    "required": [
      "address1",
      "city",
      "country_code",
      "name",
      "zipcode"
    ],
    "type": "object",
    "description": "Shipping address for the sales order. Used as address when creating shipments.",
    "properties": {
      "name": {
        "type": "string",
        "example": "Lene Hansen",
        "description": "Name of the receiver. Can be either a company name or the name of a private person."
      },
      "attention": {
        "type": "string",
        "example": null,
        "description": "Attention of the receiver. If the receiver is a company, it is the contact person."
      },
      "address1": {
        "type": "string",
        "example": "Skibhusvej 52",
        "description": "Address of the receiver, including address number."
      },
      "address2": {
        "type": "string",
        "description": "Second address line of the receiver. Can be used for, e.g.,apartment number.",
        "example": null
      },
      "zipcode": {
        "type": "string",
        "example": "5000",
        "description": "Zip code of the address."
      },
      "city": {
        "type": "string",
        "example": "Odense C",
        "description": "Name of the city that the zip code refers to."
      },
      "country_code": {
        "type": "string",
        "example": "DK",
        "description": "ISO 3166-1 alpha-2 country code of the receiver address."
      },
      "email": {
        "type": "string",
        "example": "lene@email.dk",
        "description": "Email address of the receiver"
      },
      "mobile": {
        "type": "string",
        "example": "12345678",
        "description": "Mobile number of the receiver"
      },
      "telephone": {
        "type": "string",
        "example": "12345678",
        "description": "Landline phone number of the receiver"
      },
      "vat_no": {
        "type": ["string", "null"],
        "example": "DK12345678",
        "description": "VAT ID of the receiver",
        "nullable": true
      },
      "instruction": {
        "type": "string",
        "example": "Place on the front porch.",
        "description": "Delivery instruction to the carrier. Only applicable for products which support receiver instructions."
      }
    }
  },
  "UpdateSalesOrderNote": {
    "type": "object",
    "properties": {
      "order_note": {
        "type": "string",
        "example": "Note",
        "description": "A note for the sales order."
      }
    }
  },
  "SalesOrderCapture": {
    "type": "object",
    "properties": {
      "amount": {
        "type": "string",
        "example": "200.00",
        "description": "Amount to be captured. \nUnless specified, the authorized amount for the transaction associated with the order will be captured."
      }
    }
  },
  "SalesOrderRefund": {
    "type": "object",
    "properties": {
      "amount": {
        "type": ["string", "null"],
        "nullable": true,
        "example": "200.00",
        "description": "Amount to be refunded. \nIf not specified the captured amount for the transaction associated with the order will be refunded."
      }
    }
  },
  "SalesOrderVoid": {
    "type": "object",
    "properties": {
      "amount": {
        "type": ["string", "null"],
        "nullable": true,
        "example": "200.00",
        "description": "Amount to be voided. \nIf not specified the uncaptured amount for the transaction associated with the order will be voided."
      }
    }
  },
  "ProcessSalesOrderBarcode": {
    "type": "object",
    "properties": {
      "barcode": {
        "type": "string",
        "example": "QB000000027000",
        "description": "The barcode is a 14-character string, prefixed with 'QB'. It contains the ID of the sales order, and extended to 14 characters with zeroes."
      }
    }
  },
  "UpdateSalesOrderRequest": {
    "type": "object",
    "properties": {
      "shipment_template_id": {
        "type": "integer",
        "example": 710,
        "description": "ID of the provided shipment template. Specifies the product and services for the order."
      },
      "return_shipment_template_id": {
        "type": "integer",
        "example": 710,
        "description": "ID of the provided return shipment template. Specifies the return product and services for the sales order."
      },
      "sales_order_packaging_id": {
        "type": "integer",
        "example": 11242,
        "description": "ID of the provided sales order packaging. The packaging specifies the dimensions for the sales order."
      },
      "order_status": {
        "type": "string",
        "example": "open",
        "description": "The status of the order in Shipmondo. Possible values: open, cancelled, on-hold"
      },
      "enable_customs": {
        "type": "boolean",
        "default": false,
        "description": "Defines if order should use customs information from the associated item when creating shipments."
      },
      "use_item_weight": {
        "type": "boolean",
        "default": true,
        "description": "Defines if item weight should be used when creating shipments."
      },
      "assigned_staff_account_id": {
        "type": "integer",
        "default": null,
        "description": "ID of staff account assigned to order",
        "example": 12
      },
      "ship_to": {
        "$ref": "#/components/schemas/SalesOrderShipToRequest"
      },
      "bill_to": {
        "$ref": "#/components/schemas/SalesOrderBillToRequest"
      },
      "sender": {
        "$ref": "#/components/schemas/Sender"
      },
      "service_point": {
        "$ref": "#/components/schemas/ServicePointSimple"
      },
      "order_lines": {
        "type": "array",
        "description": "Order lines for the order. If an order line ID is provided, it will update the existing line, otherwise a new line will be created. To remove an existing line, set the quantity to 0 when updating. Below are only updatable properties, see POST /sales_orders for create new order_line properties.",
        "items": {
          "$ref": "#/components/schemas/OrderLineUpdate"
        }
      },
      "carrier_fields": {
        "$ref": "#/components/schemas/CarrierFields"
      },
      "tags": {
        "type": "array",
        "description": "Custom tags for the order. Tags can be used to filter and search for orders.",
        "items": {
          "type": "string",
          "example": "tag1"
        }
      }
    }
  },
  "OrderLine": {
    "type": "object",
    "properties": {
      "id": {
        "type": "integer",
        "example": 1234,
        "description": "Unique identifier of the object."
      },
      "line_type": {
        "type": "string",
        "example": "item",
        "description": "Specifies the type of line.",
        "enum":
        ["item","shipping","discount","gift_card","payment_fee"]
      },
      "item_sku": {
        "type": "string",
        "example": "TS001-WH",
        "description": "Stock keeping unit (SKU) of the item"
      },
      "item_variant_code": {
        "type": "string",
        "example": "White",
        "description": "Variant code of the item"
      },
      "item_name": {
        "type": "string",
        "example": "T-Shirt",
        "description": "Name of the item"
      },
      "quantity": {
        "type": "string",
        "example": "2.0",
        "description": "The quantity of the item in the sales order"
      },
      "unit_price_excluding_vat": {
        "type": "string",
        "example": "800.0",
        "description": "Price excluding taxes of a single item in the order line"
      },
      "discount_amount_excluding_vat": {
        "type": "string",
        "example": "0.0",
        "description": "Total discount of the items in the order line"
      },
      "amount_excluding_vat": {
        "type": "string",
        "example": "1600.0",
        "description": "Total price excluding taxes for the order line"
      },
      "amount_including_vat": {
        "type": "string",
        "example": "2000.0",
        "description": "Total price including taxes for the order line"
      },
      "vat_amount": {
        "type": "string",
        "example": "400.0",
        "description": "Total tax amount for the order line"
      },
      "vat_percent": {
        "type": "string",
        "example": "0.25",
        "description": "Tax percentage for the order line"
      },
      "currency_code": {
        "type": "string",
        "example": "DKK",
        "description": "ISO 4217 currency code"
      },
      "item_barcode": {
        "type": "string",
        "example": "12345678",
        "description": "Barcode of the item. Used when scanning item for pick."
      },
      "item_bin": {
        "type": "string",
        "example": "AB-001",
        "description": "The bin/location where the item is located in the warehouse."
      },
      "shipped_quantity": {
        "type": "string",
        "example": "0.0",
        "description": "The quantity of the item that has been shipped/fulfilled."
      },
      "unit_weight": {
        "type": "integer",
        "example": 2000,
        "description": "The weight of a single item in the order line."
      },
      "image_url": {
        "type": "string",
        "example": "http://example.com/image",
        "description": "Image URL of the item that appears on the order or when picking. Will only be displayed if the URL is HTTPS."
      },
      "cost_price": {
        "type": "string",
        "example": "50.0",
        "description": "Unit cost price of the item as used for customs."
      },
      "country_code_of_origin": {
        "type": "string",
        "example": "DK",
        "description": "ISO 3166-1 alpha-2 country code of origin."
      },
      "customs_commodity_code": {
        "type": "string",
        "example": "123456",
        "description": "Tariff code for the item. Used when creating shipments that require customs declaration."
      },
      "customs_description": {
        "type": "string",
        "example": "Example contents",
        "description": "Customs description for the item. Used when creating shipments that require customs declaration."
      },
      "custom_product_data": {
        "description": "Custom product data for the order line.",
        "type": "array",
        "items": {
          "type": "string",
          "example": "Example text"
        }
      },
      "item_id": {
        "type": "integer",
        "example": 12345,
        "description": "Unique identifier of the related item."
      }
    }
  },
  "OrderLineRequest": {
    "required": [
      "line_type",
      "item_name",
      "quantity",
      "currency_code"
    ],
    "type": "object",
    "properties": {
      "line_type": {
        "type": "string",
        "example": "item",
        "description": "Specifies the type of line.",
        "enum":
        ["item","shipping","discount","gift_card","payment_fee"]
      },
      "item_name": {
        "type": "string",
        "example": "T-Shirt",
        "description": "Name of the item"
      },
      "item_sku": {
        "type": "string",
        "example": "TS001-WH",
        "description": "Stock keeping unit (SKU) of the item"
      },
      "item_variant_code": {
        "type": "string",
        "example": "White",
        "description": "Variant code of the item"
      },
      "quantity": {
        "type": "number",
        "example": 2.0,
        "description": "The quantity of the item in the order"
      },
      "unit_price_excluding_vat": {
        "type": "string",
        "example": "800.0",
        "description": "Price excluding taxes of a single item in the order line"
      },
      "discount_amount_excluding_vat": {
        "type": "string",
        "example": "0.0",
        "description": "Total discount of the items in the order line"
      },
      "vat_percent": {
        "type": "string",
        "example": "0.25",
        "description": "Tax percentage for the order line"
      },
      "currency_code": {
        "type": "string",
        "example": "DKK",
        "description": "ISO 4217 currency code"
      },
      "unit_weight": {
        "type": "integer",
        "example": 2000,
        "description": "The weight of a single item in the order line."
      },
      "item_barcode": {
        "type": "string",
        "example": "12345678",
        "description": "Barcode of the item. Used when scanning item for pick."
      },
      "item_bin": {
        "type": "string",
        "example": "AB-001",
        "description": "The bin/location where the item is located in the warehouse."
      },
      "image_url": {
        "type": "string",
        "example": "http://example.com/image",
        "description": "Image URL of the item that appears on the order or when picking. Will only be displayed if the URL is HTTPS."
      },
      "cost_price": {
        "type": "string",
        "example": "50.0",
        "description": "Unit cost price of the item as used for customs."
      },
      "country_code_of_origin": {
        "type": "string",
        "example": "DK",
        "description": "ISO 3166-1 alpha-2 country code of origin."
      },
      "customs_commodity_code": {
        "type": "string",
        "example": "123456",
        "description": "Tariff code for the item. Used when creating shipments that require customs declaration."
      },
      "customs_description": {
        "type": "string",
        "example": "Example contents",
        "description": "Customs description for the item. Used when creating shipments that require customs declaration."
      },
      "custom_product_data": {
        "description": "Custom product data for the order line.",
        "type": "array",
        "items": {
          "type": "string",
          "example": "Example text"
        }
      }
    }
  },
  "OrderLineUpdate": {
    "type": "object",
    "properties": {
      "id": {
        "type": "integer",
        "example": 1234,
        "description": "Unique identifier of the object. Used for identifying the specific line when updating order lines."
      },
      "quantity": {
        "type": "number",
        "example": 2.0,
        "description": "The quantity of the item in the order"
      },
      "unit_price_excluding_vat": {
        "type": "string",
        "example": "800.0",
        "description": "Price excluding taxes of a single item in the order line"
      },
      "vat_percent": {
        "type": "string",
        "example": "0.25",
        "description": "Tax percentage for the order line"
      },
      "unit_weight": {
        "type": "integer",
        "example": 2000,
        "description": "The weight of a single item in the order line."
      },
      "custom_product_data": {
        "description": "Custom product data for the order line.",
        "type": "array",
        "items": {
          "type": "string",
          "example": "Example text"
        }
      }
    }
  },
  "Fulfillment": {
    "type": "object",
    "properties": {
      "id": {
        "type": "integer",
        "example": "6684",
        "description": "The generated id for the fulfillment."
      },
      "code": {
        "type": "string",
        "example": "27000-1",
        "description": "The generated code for the fulfillment. Generated from the provided order ID"
      },
      "type": {
        "type": "string",
        "description": "The type of the fulfillment.",
        "enum":
        ["outbound","return"]
      },
      "shipment_id": {
        "type": "integer",
        "example": 14500,
        "description": "Unique identifier of the created shipment."
      },
      "fulfilled_by_third_party": {
        "type": "boolean",
        "example": false,
        "description": "Defines if fulfillment is fulfilled by a third party."
      },
      "order_packaging_id": {
        "type": "integer",
        "example": 16,
        "description": "Specifies which order packaging that has been used."
      },
      "cancelled": {
        "type": "boolean",
        "example": false,
        "description": "Defines if fulfillment is cancelled."
      },
      "created_at": {
        "type": "string",
        "format": "date-time",
        "example": "2017-06-16T06:25:44.557Z",
        "description": "ISO 8601 datetime the object was created."
      },
      "updated_at": {
        "type": "string",
        "format": "date-time",
        "example": "2017-06-16T06:25:44.557Z",
        "description": "ISO 8601 datetime when the object was updated."
      },
      "fulfillment_lines": {
        "type": "array",
        "description": "Fulfilled lines for the sales_order.",
        "items": {
          "type": "object",
          "properties": {
            "id": {
              "type": "integer",
              "example": "3242",
              "description": "Unique identifier of the object."
            },
            "order_line_id": {
              "type": "integer",
              "example": "45891",
              "description": "The id of the fulfilled order_line."
            },
            "shipped_quantity": {
              "type": "string",
              "example": "1.0",
              "description": "The quantity of items fulfilled."
            }
          }
        }
      }
    }
  },
  "PaymentGateway": {
    "type": "object",
    "properties": {
      "id": {
        "type": "integer",
        "example": 5314,
        "description": "Unique identifier of the object."
      },
      "name": {
        "type": "string",
        "example": "QuickPay 1",
        "description": "User-specified name of the payment gateway."
      },
      "provider": {
        "type": "string",
        "example": "quick_pay",
        "description": "Specific code of the gateway used to refer to the provider.",
        "enum":
        ["epay","quick_pay","stripe","yourpay","penso_pay","dibs","on_pay","reepay","klarna","shopify_payments","paypal","dibs_easy","paylike","bambora_checkout","anyday","freepay","swiipe","shipmondo_payments","vipps","dummy_payment_gateway","pensopay","epay_v2"]
      },
      "merchant_number": {
        "type": "string",
        "example": "12345678",
        "description": "Mechant number of the payment gateway."
      }
    }
  },
  "Document": {
    "type": "object",
    "properties": {
      "base64": {
        "description": "PDF file of the document in Base64 format.",
        "type": "string",
        "example": "JVBERi0xLjMKJf//////AAAAAA..."
      }
    }
  },
  "Waybill": {
    "type": "object",
    "properties": {
      "id": {
        "type": "integer",
        "example": 23,
        "description": "ID of the bulk waybill. Used when referencing a specific bulk waybill."
      },
      "reference": {
        "type": "string",
        "example": "CS000000000NO",
        "description": "Carrier's reference of the bulk waybill."
      },
      "status": {
        "type": "string",
        "example": "closed",
        "description": "Current status of the bulk waybill. If open, more shipments can be added to the bulk waybill.",
        "enum": [
          "open",
          "closed"
        ]
      },
      "carrier_code": {
        "type": "string",
        "example": "bring",
        "description": "Carrier code, identifying which carrier the bulk waybill is created for."
      },
      "customer_number": {
        "type": "string",
        "example": "123456789",
        "description": "The customer number that is attached to the bulk waybill."
      },
      "created_at": {
        "type": "string",
        "format": "date-time",
        "example": "2018-06-16T06:25:44.557Z",
        "description": "When the bulk waybill was created."
      },
      "sender": {
        "type": "object",
        "description": "Information regarding the sender on the bulk waybill.",
        "properties": {
          "name": {
            "type": "string",
            "example": "Min Virksomhed ApS"
          },
          "address1": {
            "type": "string",
            "example": "Strandvejen 6B"
          },
          "address2": {
            "type": "string",
            "description": "Second address line can be used for floor/room number, building name etc.",
            "example": null
          },
          "zipcode": {
            "type": "string",
            "example": "5240"
          },
          "city": {
            "type": "string",
            "example": "Odense NØ"
          },
          "country_code": {
            "type": "string",
            "example": "DK"
          }
        }
      },
      "receiver": {
        "type": "object",
        "description": "Information regarding the receiver on the bulk waybill.",
        "properties": {
          "name": {
            "type": "string",
            "example": "Lene Hansen"
          },
          "address1": {
            "type": "string",
            "example": "Olav Kyrres gate 7"
          },
          "address2": {
            "type": "string",
            "description": "Second address line can be used for floor/room number, building name etc.",
            "example": null
          },
          "zipcode": {
            "type": "string",
            "example": "0273"
          },
          "city": {
            "type": "string",
            "example": "Oslo"
          },
          "country_code": {
            "type": "string",
            "example": "NO"
          }
        }
      },
      "loading": {
        "type": "object",
        "description": "Information regarding the loading place on the bulk waybill.",
        "properties": {
          "name": {
            "type": "string",
            "example": "Lene Hansen"
          },
          "address1": {
            "type": "string",
            "example": "Skibhusvej 52"
          },
          "address2": {
            "type": "string",
            "description": "Second address line can be used for floor/room number, building name etc.",
            "example": null
          },
          "zipcode": {
            "type": "string",
            "example": "5000"
          },
          "city": {
            "type": "string",
            "example": "Odense C"
          },
          "country_code": {
            "type": "string",
            "example": "DK"
          },
          "date": {
            "type": "string",
            "format": "date-time",
            "example": "2019-01-30T13:54:29.000Z"
          }
        }
      },
      "delivery": {
        "type": "object",
        "description": "Information regarding the delivery place on the bulk waybill.",
        "properties": {
          "name": {
            "type": "string",
            "example": "Lene Hansen"
          },
          "address1": {
            "type": "string",
            "example": "Olav Kyrres gate 7"
          },
          "address2": {
            "type": "string",
            "description": "Second address line can be used for floor/room number, building name etc.",
            "example": null
          },
          "zipcode": {
            "type": "string",
            "example": "0273"
          },
          "city": {
            "type": "string",
            "example": "Oslo"
          },
          "country_code": {
            "type": "string",
            "example": "NO"
          }
        }
      },
      "shipment": {
        "type": "object",
        "description": "Shipment that contains the routing labels.",
        "properties": {
          "id": {
            "type": "integer",
            "example": 123456
          },
          "label_base64": {
            "type": "string",
            "example": "...",
            "description": "Base64-encoded string of the routing labels as PDF."
          }
        }
      },
      "invoice_base64": {
        "type": "string",
        "description": "Base64-encoded string of invoice as PDF",
        "example": "..."
      },
      "base64": {
        "type": "string",
        "description": "Base64-encoded string of bulk waybill as PDF",
        "example": "..."
      }
    }
  },
  "WaybillNoBase64": {
    "type": "object",
    "properties": {
      "id": {
        "type": "integer",
        "example": 23
      },
      "reference": {
        "type": "string",
        "example": "CS000000000NO"
      },
      "carrier_code": {
        "type": "string",
        "example": "bring"
      },
      "created_at": {
        "type": "string",
        "format": "date-time",
        "example": "2018-06-16T06:25:44.557Z"
      },
      "sender": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "Min Virksomhed ApS"
          },
          "address1": {
            "type": "string",
            "example": "Strandvejen 6B"
          },
          "address2": {
            "type": "string",
            "description": "Second address line can be used for floor/room number, building name etc.",
            "example": null
          },
          "zipcode": {
            "type": "string",
            "example": "5240"
          },
          "city": {
            "type": "string",
            "example": "Odense NØ"
          },
          "country_code": {
            "type": "string",
            "example": "DK"
          }
        }
      },
      "receiver": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "Lene Hansen"
          },
          "address1": {
            "type": "string",
            "example": "Skibhusvej 52"
          },
          "address2": {
            "type": "string",
            "description": "Second address line can be used for floor/room number, building name etc.",
            "example": null
          },
          "zipcode": {
            "type": "string",
            "example": "5000"
          },
          "city": {
            "type": "string",
            "example": "Odense C"
          },
          "country_code": {
            "type": "string",
            "example": "DK"
          }
        }
      },
      "loading": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "Lene Hansen"
          },
          "address1": {
            "type": "string",
            "example": "Skibhusvej 52"
          },
          "address2": {
            "type": "string",
            "description": "Second address line can be used for floor/room number, building name etc.",
            "example": null
          },
          "zipcode": {
            "type": "string",
            "example": "5000"
          },
          "city": {
            "type": "string",
            "example": "Odense C"
          },
          "country_code": {
            "type": "string",
            "example": "DK"
          },
          "date": {
            "type": "string",
            "format": "date-time",
            "example": "2019-01-30T13:54:29.000Z"
          }
        }
      },
      "delivery": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "Min Virksomhed ApS"
          },
          "address1": {
            "type": "string",
            "example": "Strandvejen 6B"
          },
          "address2": {
            "type": "string",
            "description": "Second address line can be used for floor/room number, building name etc.",
            "example": null
          },
          "zipcode": {
            "type": "string",
            "example": "5240"
          },
          "city": {
            "type": "string",
            "example": "Odense NØ"
          },
          "country_code": {
            "type": "string",
            "example": "DK"
          }
        }
      },
      "shipment": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "example": 123456
          }
        }
      }
    }
  },
  "CreateWaybillRequest": {
    "required": [
      "carrier_code",
      "packages",
      "receiver",
      "sender"
    ],
    "type": "object",
    "properties": {
      "carrier_code": {
        "type": "string",
        "enum": [
          "bring",
          "pdk"
        ],
        "example": "bring"
      },
      "customer_number": {
        "type": "string",
        "description": "Used if you have more than one agreement for the selected carrier. If not given, it defaults to the first agreement found."
      },
      "status": {
        "type": "string",
        "enum": [
          "open",
          "closed"
        ],
        "default": "closed"
      },
      "label_format": {
        "type": "string",
        "enum": [
          "10x19_pdf",
          "a4_pdf"
        ],
        "description": "Format of routing labels. Defaults to default label format of the user. Note that this is only used if status is set to \"closed\""
      },
      "sender": {
        "required": [
          "address1",
          "city",
          "country_code",
          "name",
          "zipcode"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "Min Virksomhed ApS"
          },
          "address1": {
            "type": "string",
            "example": "Strandvejen 6B"
          },
          "address2": {
            "type": "string",
            "description": "Second address line can be used for floor/room number, building name etc.",
            "example": null
          },
          "zipcode": {
            "type": "string",
            "example": "5240"
          },
          "city": {
            "type": "string",
            "example": "Odense NØ"
          },
          "country_code": {
            "type": "string",
            "example": "DK"
          }
        },
        "description": "Required"
      },
      "receiver": {
        "required": [
          "address1",
          "city",
          "country_code",
          "name",
          "zipcode"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "Lene Hansen"
          },
          "address1": {
            "type": "string",
            "example": "Skibhusvej 52"
          },
          "address2": {
            "type": "string",
            "description": "Second address line can be used for floor/room number, building name etc.",
            "example": null
          },
          "zipcode": {
            "type": "string",
            "example": "5000"
          },
          "city": {
            "type": "string",
            "example": "Odense C"
          },
          "country_code": {
            "type": "string",
            "example": "DK"
          }
        },
        "description": "Required"
      },
      "loading": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "Lene Hansen"
          },
          "address1": {
            "type": "string",
            "example": "Skibhusvej 52"
          },
          "address2": {
            "type": "string",
            "description": "Second address line can be used for floor/room number, building name etc.",
            "example": null
          },
          "zipcode": {
            "type": "string",
            "example": "5000"
          },
          "city": {
            "type": "string",
            "example": "Odense C"
          },
          "country_code": {
            "type": "string",
            "example": "DK"
          },
          "date": {
            "type": "string",
            "format": "date-time",
            "example": "2019-01-30T13:54:29.000Z"
          }
        },
        "description": "Optional, except date if carrier is Bring. If no fields are included sender is copied"
      },
      "delivery": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "Min Virksomhed ApS"
          },
          "address1": {
            "type": "string",
            "example": "Strandvejen 6B"
          },
          "address2": {
            "type": "string",
            "description": "Second address line can be used for floor/room number, building name etc.",
            "example": null
          },
          "zipcode": {
            "type": "string",
            "example": "5240"
          },
          "city": {
            "type": "string",
            "example": "Odense NØ"
          },
          "country_code": {
            "type": "string",
            "example": "DK"
          }
        },
        "description": "Optional. If all fields are not included receiver is copied to\nthese fields"
      },
      "packages": {
        "type": "array",
        "description": "Required if status is set to \"closed\"",
        "items": {
          "type": "object",
          "properties": {
            "product_code": {
              "description": "Product code of the parcels that the pallet contains. If pallets contain multiple products, the codes must be comma-separated, e.g., \"PDK_M,PDK_BP\".",
              "type": "string",
              "enum": [
                "BRI_PPB",
                "BRI_BPB",
                "PDK_BP",
                "PDK_M",
                "PDK_TB",
                "PDK_PL"
              ],
              "example": "BRI_PPB"
            },
            "package_type": {
              "description": "Type of pallet. Determines whether it is a pallet for individual parcel shipments or the shipment is the pallet itself.",
              "type": "string",
              "enum": [
                "PARCEL",
                "PALLET"
              ],
              "example": "PARCEL"
            },
            "amount": {
              "type": "integer",
              "example": 3,
              "description": "PARCEL: The amount of parcels in the pallet. PALLET: x amount of pallets. This is be split into x routing labels."
            },
            "weight": {
              "type": "integer",
              "description": "Total weight of the pallet/parcels in grams",
              "example": 1000
            }
          }
        }
      }
    }
  },
  "CloseWaybillRequest": {
    "required": [],
    "type": "object",
    "properties": {
      "label_format": {
        "type": "string",
        "enum": [
          "10x19_pdf",
          "a4_pdf"
        ],
        "description": "Format of routing labels. Defaults to default label format of the user."
      },
      "packages": {
        "description": "Required unless the waybill uses load carriers.",
        "required": [
          "product_code",
          "package_type",
          "amount",
          "weight"
        ],
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "product_code": {
              "description": "Product code of the parcels that the pallet contains. If pallets contain multiple products, the codes must be comma-separated, e.g., \"PDK_M,PDK_BP\".",
              "type": "string",
              "enum": [
                "BRI_PPB",
                "BRI_BPB",
                "PDK_BP",
                "PDK_M",
                "PDK_TB",
                "PDK_PL"
              ],
              "example": "BRI_PPB"
            },
            "package_type": {
              "description": "Type of pallet. Determines whether it is a pallet for individual parcel shipments or the shipment is the pallet itself.",
              "type": "string",
              "enum": [
                "PARCEL",
                "PALLET"
              ],
              "example": "PARCEL"
            },
            "amount": {
              "type": "integer",
              "example": 3,
              "description": "PARCEL: The amount of parcels in the pallet. PALLET: x amount of pallets. This is be split into x routing labels."
            },
            "weight": {
              "type": "integer",
              "description": "Total weight of the pallet/parcels in grams",
              "example": 1000
            }
          }
        }
      }
    }
  },
  "LoadCarrier": {
    "type": "object",
    "properties": {
      "id": {
        "type": "integer",
        "example": 1234,
        "description": "Unique identifier of the load carrier."
      },
      "carrier_reference": {
        "type": "string",
        "example": "PALLET-001",
        "description": "Carrier generated reference number of the load carrier"
      },
      "package_type": {
        "type": "string",
        "enum": [
          "PALLET",
          "H_PALLET",
          "Q_PALLET",
          "S_PALLET",
          "PARCEL",
          "CAGE",
          "BOX",
          "ENVELOPE"
        ],
        "example": "PALLET",
        "description": "Type of load carrier"
      }
    }
  },
  "AddLoadCarrierRequest": {
    "required": [
      "package_type"
    ],
    "type": "object",
    "properties": {
      "package_type": {
        "type": "string",
        "enum": [
          "PALLET",
          "H_PALLET",
          "Q_PALLET",
          "S_PALLET",
          "PARCEL",
          "CAGE",
          "BOX",
          "ENVELOPE"
        ],
        "example": "PALLET",
        "description": "Type of load carrier. Not all values are valid for all carriers."
      }
    }
  },
  "PickupRequest": {
    "type": "object",
    "properties": {
      "id": {
        "description": "ID of the pickup request",
        "type": "integer",
        "example": 15242
      },
      "carrier_code": {
        "description": "Carrier code for the carrier the pickup is requested for.",
        "type": "string",
        "example": "ups"
      },
      "pickup_address": {
        "description": "Address where the shipments will be picked up from.",
        "type": "object",
        "properties": {
          "company_name": {
            "type": "string",
            "example": "Min Virksomhed ApS"
          },
          "address1": {
            "type": "string",
            "example": "Strandvejen 6B"
          },
          "address2": {
            "type": "string",
            "description": "Second address line can be used for floor/room number, building name etc.",
            "example": null
          },
          "zipcode": {
            "type": "string",
            "example": "5240"
          },
          "city": {
            "type": "string",
            "example": "Odense NØ"
          },
          "country_code": {
            "type": "string",
            "example": "DK"
          },
          "contact_name": {
            "description": "Name of the person that the carrier will contact about the pickup.",
            "type": "string",
            "example": "Hans Hansen"
          },
          "contact_phone": {
            "description": "Phone number of the person that the carrier will contact about the pickup.",
            "type": "string",
            "example": "70400407"
          }
        }
      },
      "confirmation_number": {
        "description": "Reference number for the pickup request. This should used as reference if contacting the carrier about the pickup.",
        "type": "string",
        "example": "123C21B215M"
      },
      "status": {
        "description": "Current status of the pickup request.",
        "type": "string",
        "example": "confirmed",
        "enum":
        ["unconfirmed","confirmed","error","cancelled"]
      },
      "date": {
        "description": "Requested pickup date.",
        "type": "string",
        "format": "date",
        "example": "2019-02-13"
      },
      "ready_by": {
        "description": "Requested pickup from this time. Ignore the date part of the date-time.",
        "type": "string",
        "format": "date-time",
        "example": "2000-01-01T08:00:00.000Z"
      },
      "closed_by": {
        "description": "Requested pickup before this time. Ignore the date part of the date-time.",
        "type": "string",
        "format": "date-time",
        "example": "2000-01-01T15:00:00.000Z"
      },
      "package_location": {
        "description": "Where on the address the packages should be picked up.",
        "type": "string",
        "example": "At the front door."
      },
      "number_of_pieces": {
        "description": "Number of pieces that should be picked up.",
        "type": "integer",
        "example": 3
      },
      "weight": {
        "description": "Total weight of all shipments in the pickup request.",
        "type": "string",
        "example": "47000"
      },
      "is_residential": {
        "description": "Only valid for UPS. Whether or not the pickup address is a residential address.",
        "type": "boolean",
        "default": false
      },
      "shipments": {
        "description": "Shipments that is being picked up.",
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "id": {
              "type": "integer",
              "example": 12515122
            }
          }
        }
      }
    }
  },
  "PickupRequestNoShipments": {
    "type": "object",
    "properties": {
      "id": {
        "description": "ID of the pickup request",
        "type": "integer",
        "example": 15242
      },
      "carrier_code": {
        "description": "Carrier code for the carrier the pickup is requested for.",
        "type": "string",
        "example": "ups"
      },
      "pickup_address": {
        "description": "Address where the shipments will be picked up from.",
        "type": "object",
        "properties": {
          "company_name": {
            "type": "string",
            "example": "Min Virksomhed ApS"
          },
          "address1": {
            "type": "string",
            "example": "Strandvejen 6B"
          },
          "address2": {
            "type": "string",
            "description": "Second address line can be used for floor/room number, building name etc.",
            "example": null
          },
          "zipcode": {
            "type": "string",
            "example": "5240"
          },
          "city": {
            "type": "string",
            "example": "Odense NØ"
          },
          "country_code": {
            "type": "string",
            "example": "DK"
          },
          "contact_name": {
            "description": "Name of the person that the carrier will contact about the pickup.",
            "type": "string",
            "example": "Hans Hansen"
          },
          "contact_phone": {
            "description": "Phone number of the person that the carrier will contact about the pickup.",
            "type": "string",
            "example": "70400407"
          }
        }
      },
      "confirmation_number": {
        "description": "Reference number for the pickup request. This should used as reference if contacting the carrier about the pickup.",
        "type": "string",
        "example": "123C21B215M"
      },
      "status": {
        "description": "Current status of the pickup request.",
        "type": "string",
        "example": "confirmed",
        "enum":
        ["unconfirmed","confirmed","error","cancelled"]
      },
      "date": {
        "description": "Requested pickup date.",
        "type": "string",
        "format": "date",
        "example": "2019-02-13"
      },
      "ready_by": {
        "description": "Requested pickup from this time. Ignore the date part of the date-time.",
        "type": "string",
        "format": "date-time",
        "example": "2000-01-01T08:00:00.000Z"
      },
      "closed_by": {
        "description": "Requested pickup before this time. Ignore the date part of the date-time.",
        "type": "string",
        "format": "date-time",
        "example": "2000-01-01T15:00:00.000Z"
      },
      "package_location": {
        "description": "Where on the address the packages should be picked up.",
        "type": "string",
        "example": "At the front door."
      },
      "number_of_pieces": {
        "description": "Number of pieces that should be picked up.",
        "type": "integer",
        "example": 3
      },
      "weight": {
        "description": "Total weight of all shipments in the pickup request.",
        "type": "string",
        "example": "47000"
      },
      "is_residential": {
        "description": "Only valid for UPS. Whether or not the pickup address is a residential address.",
        "type": "boolean",
        "default": false
      }
    }
  },
  "CreatePickupRequestRequest": {
    "required": [
      "carrier_code",
      "closed_by",
      "package_location",
      "pickup_address",
      "ready_by",
      "shipment_ids"
    ],
    "type": "object",
    "properties": {
      "carrier_code": {
        "description": "Carrier code for the carrier the pickup should be requested for.",
        "type": "string",
        "example": "ups",
        "enum": [
          "fed_ex",
          "ups",
          "dhl_express",
          "geodis",
          "dhl_freight_se",
          "post_nord",
          "bring"
        ]
      },
      "pickup_address": {
        "required": [
          "address1",
          "city",
          "company_name",
          "contact_name",
          "contact_phone",
          "country_code",
          "zipcode"
        ],
        "type": "object",
        "properties": {
          "company_name": {
            "type": "string",
            "example": "Min Virksomhed ApS"
          },
          "address1": {
            "type": "string",
            "example": "Strandvejen 6B"
          },
          "address2": {
            "type": "string",
            "description": "Second address line can be used for floor/room number, building name etc.",
            "example": null
          },
          "zipcode": {
            "type": "string",
            "example": "5240"
          },
          "city": {
            "type": "string",
            "example": "Odense NØ"
          },
          "country_code": {
            "type": "string",
            "example": "DK"
          },
          "contact_name": {
            "description": "Name of the person that the carrier should contact about the pickup.",
            "type": "string",
            "example": "Hans Hansen"
          },
          "contact_phone": {
            "description": "Phone number of the person that the carrier should contact about the pickup.",
            "type": "string",
            "example": "70400407"
          }
        },
        "description": "Address where the shipments should be picked up from."
      },
      "package_location": {
        "description": "Where on the address the packages should be picked up.",
        "type": "string",
        "example": "At the front door"
      },
      "ready_by": {
        "description": "When shipments are ready for pickup. Pickup date is taken from the date given here.",
        "type": "string",
        "format": "date-time",
        "example": "2019-02-14T08:00:00.000Z"
      },
      "closed_by": {
        "description": "When shipments should be picked up by. The date part is ignored.",
        "type": "string",
        "format": "date-time",
        "example": "2019-02-14T15:00:00.000Z"
      },
      "shipment_ids": {
        "description": "IDs of the shipments you wish to be picked up.",
        "type": "array",
        "items": {
          "type": "integer",
          "example": 12515122
        }
      },
      "is_residential": {
        "description": "Only used for UPS. Whether the pickup address is residential or not.",
        "type": "boolean",
        "default": false
      }
    }
  },
  "DangerousGood": {
    "type": "object",
    "properties": {
      "class": {
        "type": "string",
        "description": "ADR class of the dangerous goods.",
        "example": "3"
      },
      "un_number": {
        "type": "string",
        "description": "UN number of the dangerous goods.",
        "example": "1202"
      },
      "net_weight": {
        "type": "integer",
        "description": "Net weight in grams of the dangerous goods. Use either this or net_weight_kg.",
        "example": 20100
      },
      "net_weight_kg": {
        "type": "number",
        "description": "Net weight in kilograms of the dangerous goods. Use either this or net_weight.",
        "example": 20.1
      },
      "quantity": {
        "type": "integer",
        "description": "Number of pieces of this kind of dangerous goods.",
        "example": 3
      },
      "packaging": {
        "type": "string",
        "description": "Packaging the dangerous goods are contained in.",
        "example": "drums"
      },
      "description": {
        "type": "string",
        "description": "Description of the dangerous goods.",
        "example": "DIESEL FUEL, < 62°C (640K)"
      },
      "tunnel_restriction_code": {
        "type": "string",
        "description": "Tunnel restriction code that applies to the dangerous goods.",
        "example": "A"
      },
      "packing_group": {
        "type": "string",
        "description": "Packing group that applies to the dangerous goods.",
        "example": "III"
      },
      "environmentally_hazardous": {
        "type": "boolean",
        "description": "Whether or not the dangerous goods are hazardous to the environment."
      }
    }
  },
  "DeclaredValue": {
    "description": "Value of the goods in the parcel. Used in terms of insurance for certain carriers.",
    "type": "object",
    "nullable": true,
    "properties": {
      "amount": {
        "type": "number",
        "description": "Valued amount.",
        "example": 1250
      },
      "currency_code": {
        "type": "string",
        "description": "Currency code for the currency of the amount.",
        "example": "DKK"
      }
    }
  },
  "staff_account": {
    "type": "object",
    "properties": {
      "id": {
        "type": "number",
        "description": "The identifier for the staff account.",
        "example": 27
      },
      "name": {
        "type": "string",
        "description": "The name of the account.",
        "example": "Lene Hansen"
      },
      "email": {
        "type": "string",
        "description": "The e-mail of the account.",
        "example": "info@minvirksomhed.dk"
      },
      "permissions": {
        "description": "A list of permissions the user has for the app",
        "type": "array",
        "items": {
          "type": "string",
          "example": "dashboard"
        },
        "example": [
          "dashboard",
          "orders",
          "shipments"
        ],
        "enum": [
          "api",
          "team",
          "products",
          "orders",
          "own_agreements",
          "pick_ups",
          "customers",
          "dashboard",
          "shipments",
          "statistics",
          "billing",
          "outstanding",
          "card_details",
          "integrations",
          "return_portals",
          "sales_invoices",
          "personal_messages",
          "templates"
        ]
      }
    }
  },
  "QrCode": {
    "type": "object",
    "properties": {
      "PDF": {
        "type": "object",
        "description": "A PDF containing the QR code"
      }
    }
  },
  "QrCode2": {
    "type": "object",
    "properties": {
      "qr_codes": {
        "description": "An array containing base64 encoded qr_codes",
        "type": "array",
        "items": {
          "type": "string",
          "format": "base64",
          "example": "JVBERi0xLjUKJc/s/+jXy80KMSAwIG9iago8PC9UeXBlL0NhdGFsb2cvUGFnZXMgMiAwIFI(...)PgpzdGFydHhyZWYKMzI0MgolJUVPRgo="
        },
        "example": [
          "JVBERi0xLjUKJc/s/+jXy80KMSAwIG9iago8PC9UeXBlL0NhdGFsb2cvUGFnZXMgMiAwIFI(...)PgpzdGFydHhyZWYKMzI0MgolJUVPRgo="
        ]
      },
      "file_format": {
        "type": "string",
        "description": "The file format for response",
        "example": "png"
      }
    }
  },
  "Dfm": {
    "description": "Special object for extra information when shipping with Danske Fragtmænd. Otherwise it can be ignored.",
    "type": "object",
    "nullable": true,
    "properties": {
      "insurance_type": {
        "type": "string",
        "description": "Type of insurance to be booked.",
        "example": "A",
        "enum": [
          "A",
          "B",
          "C",
          "D"
        ],
        "nullable": true
      },
      "insurance_amount": {
        "type": "number",
        "description": "Amount in DKK that should be insured for the shipment.",
        "example": 1000,
        "nullable": true
      },
      "dot_type": {
        "type": "string",
        "description": "Type of DOT used for the shipment.",
        "example": "DO1",
        "enum": [
          "DO1",
          "DO2",
          "DO3",
          "DO4"
        ],
        "nullable": true
      },
      "dot_time": {
        "type": "string",
        "format": "time",
        "description": "Requested time of DOT delivery. Only valid for DO2, DO3 and DO4. Format: HH:MM",
        "example": "15:00",
        "nullable": true
      },
      "pallets1": {
        "type": "integer",
        "description": "Legacy field. Use `pallet_exchange` instead.",
        "example": 1,
        "nullable": true,
        "deprecated": true
      },
      "pallets2": {
        "type": "integer",
        "description": "Legacy field. Use `pallet_exchange` instead.",
        "example": 1,
        "nullable": true,
        "deprecated": true
      },
      "pallets4": {
        "type": "integer",
        "description": "Legacy field. Use `pallet_exchange` instead.",
        "example": 1,
        "nullable": true,
        "deprecated": true
      },
      "limited_quantity_weight": {
        "type": "integer",
        "description": "Legacy field. Use `parcels.dangerous_goods` instead.",
        "example": 1000,
        "nullable": true,
        "deprecated": true
      },
      "has_dangerous_goods": {
        "type": "boolean",
        "description": "Legacy field. Use `parcels.dangerous_goods` instead.",
        "example": true,
        "nullable": true,
        "deprecated": true
      }
    }
  },
  "UserCarrierSetup": {
    "type": "object",
    "properties": {
      "status": {
        "type": "string",
        "example": "REQUESTED",
        "enum": [
          "REQUESTED",
          "IN_PROGRESS",
          "COMPLETED"
        ]
      },
      "url": {
        "description": "URL to download the carrier setup file",
        "type": "string",
        "nullable": true,
        "format": "url",
        "example": "https://example.com"
      },
      "expires_at": {
        "description": "Time when the carrier setup file expires",
        "type": "string",
        "nullable": true,
        "format": "date-time",
        "example": "2020-01-01T00:00:00Z"
      }
    }
  },
  "UserCarrierSetupFile": {
    "description": "Structure of file, that can be downloaded from the carrier setup",
    "type": "array",
    "minItems": 1,
    "items": {
      "type": "object",
      "description": "Carrier",
      "properties": {
        "code": {
          "description": "Carrier code",
          "type": "string",
          "example": "gls"
        },
        "name": {
          "description": "Descriptive name of the carrier",
          "type": "string",
          "example": "GLS Denmark"
        },
        "products": {
          "description": "Products available for the carrier",
          "type": "array",
          "minItems": 1,
          "items": {
            "type": "object",
            "properties": {
              "code": {
                "description": "Product code, which is referred as 'product_code', when creating shipments",
                "type": "string",
                "example": "GLSDK_SD"
              },
              "name": {
                "description": "Descriptive name of the product",
                "type": "string",
                "example": "Shop Delivery"
              },
              "country_combinations": {
                "description": "Country combinations available for the product",
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "sender_country_code": {
                      "description": "Sender's country code (ISO Alpha-2)",
                      "type": "string",
                      "example": "DK"
                    },
                    "receiver_country_code": {
                      "description": "Receiver's country code (ISO Alpha-2)",
                      "type": "string",
                      "example": "SE"
                    },
                    "shipmondo_agreement_available": {
                      "description": "Whether the product can be created with a Shipmondo agreement",
                      "type": "boolean",
                      "example": true
                    },
                    "own_agreement_available": {
                      "description": "Whether the product can be created with an own agreement, using on of the 'available_customer_numbers'",
                      "type": "boolean",
                      "example": true
                    },
                    "available_customer_numbers": {
                      "description": "Available customer numbers from own agreements for the product in the country combination",
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "type": "string",
                        "example": "123456789"
                      }
                    },
                    "customs_declaration_required": {
                      "description": "Whether a customs declaration is required for the product in the country combination",
                      "type": "boolean",
                      "example": true
                    },
                    "required_fields": {
                      "description": "Required fields for the shipment with the product",
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "type": "string",
                        "example": "receiver_email"
                      }
                    },
                    "optional_fields": {
                      "description": "Optional fields for the shipment with the product",
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "type": "string",
                        "example": "receiver_email"
                      }
                    },
                    "required_parcel_fields": {
                      "description": "Required parcel fields for the shipment with the product",
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "type": "string",
                        "example": "quantity"
                      }
                    },
                    "optional_parcel_fields": {
                      "description": "Optional parcel fields for the shipment with the product",
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "type": "string",
                        "example": "weight"
                      }
                    },
                    "optional_dg_fields": {
                      "description": "Optional dangerous goods fields for the shipment with the product",
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "type": "string",
                        "example": "net_weight"
                      }
                    },
                    "package_types": {
                      "description": "Package types available for the product",
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "type": "string",
                        "example": "PARCEL"
                      }
                    },
                    "allowed_incoterms": {
                      "description": "Allowed incoterms for the product",
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "type": "string",
                        "example": "DDP"
                      }
                    },
                    "available_services": {
                      "description": "Available services for the product",
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/CarrierSetupFileService"
                      }
                    },
                    "required_services": {
                      "description": "Required services for the product",
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/CarrierSetupFileService"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "example": [
      {
        "code": "gls",
        "name": "GLS Denmark",
        "products": [
          {
            "name": "ShopDelivery",
            "code": "GLSDE_SD",
            "country_combinations": [
              {
                "sender_country_code": "DK",
                "receiver_country_code": "FI",
                "shipmondo_agreement_available": true,
                "own_agreement_available": true,
                "available_customer_numbers": [
                  "56212"
                ],
                "customs_declaration_required": false,
                "required_fields": [
                  "receiver_email"
                ],
                "optional_fields": [
                  "receiver_attention"
                ],
                "required_parcel_fields": [
                  "quantity",
                  "weight"
                ],
                "optional_parcel_fields": [
                  "height",
                  "length",
                  "width"
                ],
                "optional_dg_fields": [],
                "package_types": [],
                "allowed_incoterms": [],
                "available_services": [
                  {
                    "code": "INSR_10000",
                    "name": "Forsikring op til 10.000 DKK",
                    "required_fields": [],
                    "optional_fields": [],
                    "own_agreement_required": false
                  },
                  {
                    "code": "INSR_20000",
                    "name": "Forsikring op til 20.000 DKK",
                    "required_fields": [],
                    "optional_fields": [],
                    "own_agreement_required": false
                  }
                ],
                "required_services": [
                  {
                    "code": "EMAIL_NT",
                    "name": "E-mail advisering",
                    "required_fields": [
                      "receiver_email"
                    ],
                    "optional_fields": [],
                    "own_agreement_required": false,
                    "note": "E-mail advisering er påkrævet"
                  },
                  {
                    "code": "SMS_NT",
                    "name": "SMS advisering",
                    "required_fields": [
                      "receiver_mobile"
                    ],
                    "optional_fields": [],
                    "own_agreement_required": false,
                    "note": "SMS advisering er påkrævet"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  "CarrierSetupFileService": {
    "type": "object",
    "properties": {
      "code": {
        "description": "code of the service. Referred to as 'service_code' when creating shipments",
        "type": "string",
        "example": "SMS_NT"
      },
      "name": {
        "description": "Descriptive name of the service",
        "type": "string",
        "example": "SMS advisering"
      },
      "required_fields": {
        "description": "Required fields on the shipment, when service is selected",
        "type": "array",
        "minItems": 0,
        "items": {
          "type": "string",
          "example": "receiver_mobile"
        }
      },
      "optional_fields": {
        "description": "Optional fields on the shipment, when service is selected",
        "type": "array",
        "minItems": 0,
        "items": {
          "type": "string",
          "example": "receiver_email"
        }
      },
      "own_agreement_required": {
        "description": "Whether the service requires an own agreement",
        "type": "boolean",
        "example": true
      }
    }
  },
  "ShipmentParty": {
    "type": "object",
    "properties": {
      "type": {
        "type": "string",
        "enum": ["sender","receiver","pickup","importer","freight_payer","service_point","return"],
        "description": "Type of party. Parties with `sender` and `receiver` are required for all shipments.",
        "example": "sender"
      },
      "name": {
        "type": "string",
        "description": "Name of the party. For companies, this should be the company name.",
        "example": "Min Virksomhed ApS"
      },
      "attention": {
        "type": "string",
        "description": "Attention field can be used for the name of a specific person at the address.",
        "example": "Lene Hansen"
      },
      "address1": {
        "type": "string",
        "description": "First address line. This should be the street name and number.",
        "example": "Hvilehøjvej 25"
      },
      "address2": {
        "type": "string",
        "description": "Second address line can be used for floor/room number, building name etc.",
        "example": null
      },
      "postal_code": {
        "type": "string",
        "description": "Postal code of the address.",
        "example": "5220"
      },
      "city": {
        "type": "string",
        "description": "City of the address.",
        "example": "Odense SØ"
      },
      "country_code": {
        "type": "string",
        "description": "Country code of the address in ISO3166 alpha-2 format.",
        "example": "DK"
      },
      "email": {
        "type": "string",
        "description": "E-mail address of the party.",
        "example": "info@minvirksomhed.dk"
      },
      "phone": {
        "type": "string",
        "description": "Phone number of the party.",
        "example": "+4570400407"
      },
      "attributes": {
        "type": "array",
        "description": "Attributes for the party. Used for additional information about the party.",
        "items": {
          "$ref": "#/components/schemas/DynamicAttribute"
        }
      }
    },
    "required": [
      "type"
    ]
  },
  "DynamicAttribute": {
    "type": "object",
    "properties": {
      "name": {
        "type": "string",
        "description": "Name of the attribute.",
        "example": "vat_no"
      },
      "value": {
        "type": "string",
        "description": "Value of the attribute.",
        "example": "DK36399066"
      }
    },
    "required": [
      "name",
      "value"
    ]
  },
  "ShipmentDraft": {
    "type": "object",
    "properties": {
      "own_agreement": {
        "type": "boolean",
        "description": "Whether the shipment is created using an own agreement with the carrier.",
        "nullable": true
      },
      "customer_number": {
        "type": "string",
        "description": "Customer number used for own agreements with the carrier.",
        "example": "56212",
        "nullable": true
      },
      "carrier_code": {
        "type": "string",
        "description": "Carrier code for the shipment draft.",
        "example": "gls",
        "nullable": true
      },
      "product_code": {
        "type": "string",
        "description": "Product code for the shipment draft.",
        "example": "GLSDK_SD"
      },
      "service_codes": {
        "type": "array",
        "description": "Array of service codes applied to the shipment.",
        "items": {
          "type": "string",
          "example": "SMS_NT"
        },
        "example": [
          "SMS_NT",
          "EMAIL_NT"
        ]
      },
      "terms_of_trade": {
        "type": "string",
        "description": "Incoterms for the shipment.",
        "example": "DDP",
        "nullable": true
      },
      "reference": {
        "type": "string",
        "description": "Reference for the shipment. Shown on labels and in tracking information.",
        "example": "Order #1234",
        "nullable": true
      },
      "additional_reference": {
        "type": "string",
        "description": "Additional reference for the shipment. Shown on labels and in tracking information.",
        "example": "Customer #5678",
        "nullable": true
      },
      "contents": {
        "type": "string",
        "description": "Description of the contents of the shipment.",
        "example": "Books and clothing",
        "nullable": true
      },
      "origin_shipment_id": {
        "type": "integer",
        "description": "ID of the original shipment if this shipment is a return shipment.",
        "example": 12515120,
        "nullable": true
      },
      "parties": {
        "type": "array",
        "description": "Array of parties associated with the shipment.",
        "items": {
          "$ref": "#/components/schemas/ShipmentParty"
        }
      },
      "pickup_details": {
        "$ref": "#/components/schemas/ShipmentScheduleDetails"
      },
      "delivery_details": {
        "$ref": "#/components/schemas/ShipmentScheduleDetails"
      },
      "parcels": {
        "type": "array",
        "items": {
          "allOf": [
            {
              "$ref": "#/components/schemas/ShipmentDraftParcel"
            }
          ]
        },
        "minItems": 1
      },
      "pallet_exchange": {
        "$ref": "#/components/schemas/PalletExchange"
      },
      "customs": {
        "type": "object",
        "description": "Customs information.",
        "$ref": "#/components/schemas/ShipmentDraftCustoms"
      },
      "cod": {
        "$ref": "#/components/schemas/CashOnDelivery"
      },
      "carrier_insurance": {
        "$ref": "#/components/schemas/CarrierInsurance"
      },
      "attributes": {
        "type": "array",
        "description": "List of dynamic attributes for the shipment draft.",
        "items": {
          "$ref": "#/components/schemas/DynamicAttribute"
        }
      }
    }
  },
  "ShipmentDraftResponse": {
    "allOf": [
      {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "ID of the shipment draft.",
            "example": 12515122
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp of when the shipment draft was created.",
            "example": "2020-01-15T12:34:56.000Z"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp of when the shipment draft was last updated.",
            "example": "2020-01-16T09:21:45.000Z"
          }
        }
      },
      {
        "$ref": "#/components/schemas/ShipmentDraft"
      }
    ]
  },
  "ShipmentDraftRequest": {
    "allOf": [
      {
        "$ref": "#/components/schemas/ShipmentDraft"
      },
      {
        "type": "object",
        "properties": {
          "service_point_id": {
            "type": "string",
            "description": "ID of the service point the shipment should be sent to. Note that the full service point can also be provided in the `parties` array with `type` set to `service_point`.",
            "example": "96271"
          }
        }
      }
    ]
  },
  "ShipmentDraftCreateRequest": {
    "allOf": [
      {
        "$ref": "#/components/schemas/ShipmentDraftRequest"
      },
      {
        "type": "object",
        "required": [
          "product_code",
          "parties"
        ]
      }
    ]
  },
  "ShipmentDraftParcel": {
    "type": "object",
    "properties": {
      "quantity": {
        "type": "integer",
        "description": "Number of parcels of this kind. Maximum quantity depends on the product.",
        "example": 1,
        "default": 1,
        "minimum": 1
      },
      "weight": {
        "type": "integer",
        "description": "Weight in grams per colli.",
        "example": 1000,
        "minimum": 1
      },
      "length": {
        "type": "integer",
        "description": "Length in cm",
        "example": 20,
        "minimum": 1
      },
      "width": {
        "type": "integer",
        "description": "Width in cm",
        "example": 10,
        "minimum": 1
      },
      "height": {
        "type": "integer",
        "description": "Height in cm",
        "example": 6,
        "minimum": 1
      },
      "volume": {
        "type": "number",
        "description": "Volume in cubic metres",
        "example": 0.012,
        "minimum": 0.001
      },
      "loading_meter": {
        "type": "number",
        "description": "Loading meter in meters",
        "example": 1.25,
        "minimum": 0.001
      },
      "description": {
        "description": "Describes the contents of the parcel.",
        "type": "string",
        "example": "Bike accessories"
      },
      "package_type": {
        "type": "string",
        "description": "Package type for the parcel. Must be a valid package type for the customer.",
        "example": "PL1"
      },
      "stackable": {
        "type": "boolean",
        "description": "Whether the parcel can be stacked.",
        "default": true,
        "example": true
      },
      "internal_reference": {
        "type": "string",
        "description": "A reference for internal use to track parcels, not sent to the carrier.",
        "example": "parcel-1",
        "nullable": true
      },
      "dangerous_goods": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/ShipmentDraftDangerousGood"
        }
      },
      "declared_value": {
        "$ref": "#/components/schemas/DeclaredValue"
      }
    }
  },
  "ShipmentDraftCustoms": {
    "type": "object",
    "properties": {
      "attributes": {
        "type": "array",
        "description": "List of dynamic attributes for the customs information.",
        "items": {
          "$ref": "#/components/schemas/DynamicAttribute"
        }
      },
      "export_reason": {
        "type": "string",
        "description": "Reason for exporting the goods.",
        "default": "other",
        "example": "other",
        "enum": [
          "sale_of_goods",
          "gift",
          "documents",
          "commercial_samples",
          "returned_goods",
          "other"
        ],
        "nullable": true
      },
      "freight_cost": {
        "type": "number",
        "nullable": true,
        "description": "Cost of freight."
      },
      "insurance_cost": {
        "type": "number",
        "nullable": true,
        "description": "Cost of insurance."
      },
      "currency_code": {
        "type": "string",
        "nullable": true,
        "description": "Currency code used for customs values."
      },
      "goods": {
        "type": "array",
        "description": "List of commodities included in the customs declaration.",
        "items": {
          "$ref": "#/components/schemas/ShipmentDraftCustomsGood"
        }
      }
    }
  },
  "ShipmentDraftCustomsGood": {
    "type": "object",
    "properties": {
      "quantity": {
        "type": "integer",
        "description": "Quantity of the good in the shipment.",
        "example": 2
      },
      "country_code": {
        "type": "string",
        "description": "Country code of origin of the good.",
        "example": "DK"
      },
      "description": {
        "type": "string",
        "description": "Description of the good.",
        "example": "Cotton t-shirt"
      },
      "commodity_code": {
        "type": "string",
        "description": "Commodity code (tariff/HS code) of the good.",
        "example": "6109100010"
      },
      "unit_value": {
        "type": "number",
        "description": "Value of the good per unit.",
        "example": 122.5
      },
      "unit_weight": {
        "type": "integer",
        "description": "Weight in grams of the good per unit.",
        "example": 110
      },
      "attributes": {
        "type": "array",
        "minItems": 0,
        "description": "Attributes for the commodity good. Used for additional information.",
        "items": {
          "$ref": "#/components/schemas/DynamicAttribute"
        }
      }
    }
  },
  "ShipmentDraftDangerousGood": {
    "type": "object",
    "properties": {
      "hazard_class": {
        "type": "string",
        "description": "ADR class of the dangerous goods.",
        "example": "3"
      },
      "un_number": {
        "type": "string",
        "description": "UN number of the dangerous goods.",
        "example": "1202"
      },
      "net_weight": {
        "type": "integer",
        "description": "Net weight in grams of the dangerous goods. Use either this or net_weight_kg.",
        "example": 20100
      },
      "net_weight_kg": {
        "type": "number",
        "description": "Net weight in kilograms of the dangerous goods. Use either this or net_weight.",
        "example": 20.1
      },
      "quantity": {
        "type": "integer",
        "description": "Number of pieces of this kind of dangerous goods.",
        "example": 3
      },
      "packaging": {
        "type": "string",
        "description": "Packaging the dangerous goods are contained in.",
        "example": "drums"
      },
      "description": {
        "type": "string",
        "description": "Description of the dangerous goods.",
        "example": "DIESEL FUEL, < 62°C (640K)"
      },
      "tunnel_restriction_code": {
        "type": "string",
        "description": "Tunnel restriction code that applies to the dangerous goods.",
        "example": "A"
      },
      "packing_group": {
        "type": "string",
        "description": "Packing group that applies to the dangerous goods.",
        "example": "III"
      },
      "environmentally_hazardous": {
        "type": "boolean",
        "description": "Whether or not the dangerous goods are hazardous to the environment."
      }
    }
  }
}
,
    "securitySchemes": {
   "basicAuth": {
      "type": "http",
      "scheme": "basic",
      "description": "The API credential must be passed through every request by using [HTTP Basic Authentication technique](https://en.wikipedia.org/wiki/Basic_access_authentication#Client_side). The credential consists of an API username and API key. You can achieved them through a Shipmondo account, under [Settings > Integrations > API](https://app.shipmondo.com/main/app/#/setting/api).\n\n\n\nFor example, if you have Aladdin as the username and OpenSesame as the password, then the field's value is the base64-encoding of *Aladdin:OpenSesame*, or *QWxhZGRpbjpPcGVuU2VzYW1l*. Then the Authorization header will appear as *Authorization: Basic QWxhZGRpbjpPcGVuU2VzYW1l*\n\n\n\nYour API credentials usually look like this:\n\n\n\n Username (API User): *d8fb61fe-0a4f-4e11-81f8-6efd3513bd43* Password (API Key): *976ff6f2-3528-4f4f-9e7d-007e9a074037* "
   },
   "frontendKey": {
      "type": "apiKey",
      "in": "query",
      "name": "frontend_key",
      "description": "\nThis endpoint supports authentication by shipping module key The shipping module key should be provided in the 'frontend_key' query parameter.\n         \n\n\n         Refer to this guide in order to generate a shipping module key: https://help.shipmondo.com/en/articles/1897540-create-a-shipping-module-key\n      "
   }
}
  }
}
