{
  "openapi": "3.1.0",
  "info": {
    "title": "Eurosender API",
    "description": "Take the complexity out of logistics with Eurosender’s multi-carrier shipping API. Connect to a global network of trusted carriers and access over 150 million pre-negotiated rates—all through one simple integration.\n\nAutomate your shipping workflows, reduce costs, and scale your operations as your business grows. From real-time tracking to faster deliveries and better customer experience, the API gives you the tools to move smarter and faster—without the overhead.",
    "version": "2025-03.1"
  },
  "servers": [
    {
      "url": "https://sandbox-api.eurosender.com",
      "description": "Sandbox"
    },
    {
      "url": "https://api.eurosender.com",
      "description": "Production"
    }
  ],
  "paths": {
    "/v1/pudo/list": {
      "post": {
        "operationId": "api_v1pudolist_post",
        "tags": [
          "Pudo List Endpoint"
        ],
        "summary": "Retrieve PUDO Points",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PudoListRequest"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Represents the response returned by the PUDO Points endpoint. It includes a list of available Pick-Up Drop-Off (PUDO) locations that match the specified search criteria, such as location, carrier, and service type. Each entry in the list contains detailed information about a PUDO point, including its name, address, geographic coordinates, opening hours, and optional contact details.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PudoPointsResponse"
                  }
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/v1/countries": {
      "get": {
        "operationId": "api_v1countries_get_collection",
        "tags": [
          "Country Endpoints"
        ],
        "responses": {
          "200": {
            "description": "CountryResponse collection",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CountryResponse"
                  }
                }
              }
            }
          }
        },
        "summary": "Retrieve the list of countries available for pickup and delivery",
        "description": "This endpoint returns a comprehensive list of countries where Eurosender provides pickup and/or delivery services. It’s an essential step in building a user-friendly interface that only allows valid shipping destinations. The response includes country codes and names, which can be used to populate dropdowns, validate user input, or configure business rules dynamically. Whether you're building quoting, checkout, or address input workflows, integrating this endpoint ensures accuracy and helps prevent failed orders due to unsupported locations.",
        "parameters": [],
        "deprecated": false
      }
    },
    "/v1/countries/{countryCode}/cities": {
      "get": {
        "operationId": "api_v1countries_countryCodecities_get_collection",
        "tags": [
          "Country Endpoints"
        ],
        "responses": {
          "200": {
            "description": "CityRequest collection",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CityRequest.CityResponse"
                  }
                }
              }
            }
          }
        },
        "summary": "Retrieve supported cities within a specific country for pickup and delivery",
        "description": "Use this endpoint to fetch all cities supported by Eurosender for pickup and delivery within a specific country. By providing a valid ISO 3166-1 alpha-2 country code, you’ll receive a filtered list of serviceable cities — ideal for building accurate location selectors and reducing delivery issues. For certain countries, such as Ireland or Romania, specifying the exact city name or city ID is mandatory when placing an order. Whether this requirement applies can be verified via the `/v1/countries/{countryCode}/regions` endpoint. This allows your system to properly link cities to their administrative regions when needed. This endpoint ensures a seamless shipping experience by enforcing country-specific data requirements, reducing errors during order creation, and improving address validation logic across your integration.",
        "parameters": [
          {
            "name": "countryCode",
            "in": "path",
            "description": "Two letter country code",
            "required": true,
            "deprecated": false,
            "allowEmptyValue": false,
            "schema": {
              "type": "string"
            },
            "style": "simple",
            "explode": false,
            "allowReserved": false,
            "example": "IE"
          }
        ],
        "deprecated": false
      }
    },
    "/v1/countries/{countryCode}/regions": {
      "get": {
        "operationId": "api_v1countries_countryCoderegions_get_collection",
        "tags": [
          "Country Endpoints"
        ],
        "responses": {
          "200": {
            "description": "RegionRequest collection",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RegionRequest.RegionResponse"
                  }
                }
              }
            }
          }
        },
        "summary": "Retrieve a list of regions within a specific country",
        "description": "The Regions Endpoint delivers detailed information about all official regions within a selected country, identified by its two-letter ISO country code. These regions represent subdivisions such as states, provinces, or counties, which are critical for accurate shipment addressing and logistics planning. Many countries require regional information to ensure orders are processed correctly, and this endpoint supports that by providing up-to-date, validated region identifiers (`regionId`) and names. The regions retrieved here are linked to their respective cities, enabling seamless address validation and hierarchy navigation. By leveraging this data, your system can dynamically validate and enrich shipping addresses, minimize errors, and comply with country-specific shipping requirements—ultimately ensuring a smoother, faster, and more reliable delivery process for your customers.",
        "parameters": [
          {
            "name": "countryCode",
            "in": "path",
            "description": "Two letter country code",
            "required": true,
            "deprecated": false,
            "allowEmptyValue": false,
            "schema": {
              "type": "string"
            },
            "style": "simple",
            "explode": false,
            "allowReserved": false,
            "example": "IE"
          }
        ],
        "deprecated": false
      }
    },
    "/v1/orders": {
      "post": {
        "operationId": "api_v1orders_post",
        "tags": [
          "Order Endpoints"
        ],
        "responses": {
          "201": {
            "description": "OrderRequest resource created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderRequest.OrderResponse"
                }
              }
            },
            "links": {}
          },
          "400": {
            "description": "Invalid input"
          },
          "422": {
            "description": "Unprocessable entity"
          }
        },
        "summary": "Create Order",
        "description": "The Order Creation Endpoint is the central gateway for booking shipments via the Eurosender API. By submitting a structured payload, your system can initiate a shipment request tailored to your logistics needs—whether it involves parcel, pallet, or full truckload transport. This endpoint accepts comprehensive order data, including sender and recipient details, parcel dimensions, service type (serviceType), and any value-added services (e.g., insurance, tail-lift, customs documents). It supports a wide range of shipping scenarios, from standard deliveries to complex freight movements across Europe and globally. <br><br> <b>Key features include:</b>\n* Full support for various service types (Standard, Priority, Express, Freight, FTL, LTL, Van)\n* Optional order validation prior to submission using the `/v1/orders/validate_creation` endpoint\n* Automatic error handling and input validation to prevent misconfigurations\n* Integration-ready format to fit seamlessly into your logistics workflows\n\nOnce an order is successfully created, the response includes a unique orderId, tracking link, and current status—enabling real-time shipment tracking and operational visibility.",
        "parameters": [],
        "requestBody": {
          "description": "The new OrderRequest resource",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrderRequest"
              }
            }
          },
          "required": true
        },
        "deprecated": false
      }
    },
    "/v1/orders/validate_creation": {
      "post": {
        "operationId": "api_v1ordersvalidate_creation_post",
        "tags": [
          "Order Endpoints"
        ],
        "responses": {
          "200": {
            "description": "OrderRequest resource created",
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "links": {}
          },
          "400": {
            "description": "Invalid input"
          },
          "422": {
            "description": "Unprocessable entity"
          }
        },
        "summary": "Validate Order Creation",
        "description": "The Order Validation Endpoint allows you to verify the structure and content of your order payload before finalizing shipment creation. This is especially useful during integration or when dynamically constructing orders based on user input, as it helps catch errors early and ensures your request complies with Eurosender’s API rules. <br><br> <b>Use this endpoint to:</b>\n* Confirm that all required fields (e.g., addresses, parcels, service type) are correctly provided\n* Detect any validation issues without creating an actual order\n* Ensure compliance with service-specific rules (e.g., pallet dimensions for freight, required customs data)\n* Both the validation and creation endpoints `/v1/orders` and `/v1/orders/validate_creation` use the same payload structure, making it easy to switch between them during testing and production. <br> <br> This endpoint is <b>optional</b> but highly recommended for improving API reliability and minimizing shipment errors, especially in automated or high-volume environments.",
        "parameters": [],
        "requestBody": {
          "description": "The new OrderRequest resource",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrderRequest"
              }
            }
          },
          "required": true
        },
        "deprecated": false
      }
    },
    "/v1/orders/{orderCode}": {
      "get": {
        "operationId": "api_v1orders_orderCode_get",
        "tags": [
          "Order Endpoints"
        ],
        "responses": {
          "200": {
            "description": "OrderRequest resource",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderRequest.OrderResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found"
          }
        },
        "summary": "Get Order Details",
        "description": "This endpoint allows you to fetch the current details and status of a specific order using its unique order code. It provides comprehensive information about the shipment’s progress within the Eurosender system, enabling you to monitor key milestones such as order confirmation, pickup, transit, and delivery status. <br> <br>\n<b>Key Features:</b>\n* Order Status Updates: Get the latest status and processing stage of your shipment to stay informed on its progress.\n* Comprehensive Order Information: Access detailed data including shipment contents, service type, pricing, and delivery details.\n* Customer Support Ready: Equip your support team with up-to-date order information for quick and accurate assistance. <br> <br> Please note, this endpoint reflects internal shipment statuses but does not provide granular, real-time tracking updates like GPS location or courier scan events.",
        "parameters": [
          {
            "name": "orderCode",
            "in": "path",
            "description": "OrderRequest identifier",
            "required": true,
            "deprecated": false,
            "allowEmptyValue": false,
            "schema": {
              "type": "string"
            },
            "style": "simple",
            "explode": false,
            "allowReserved": false
          }
        ],
        "deprecated": false
      },
      "delete": {
        "operationId": "api_v1orders_orderCode_delete",
        "tags": [
          "Order Endpoints"
        ],
        "responses": {
          "204": {
            "description": "OrderCancelRequest resource deleted"
          },
          "404": {
            "description": "Resource not found"
          }
        },
        "summary": "Cancel an existing order by its unique order code",
        "description": "This endpoint allows you to cancel orders that are still eligible for modification. Please note that cancellation may not be possible once the order has entered the shipping process or has been completed.  The ability to cancel depends on the current status of the order, so it is recommended to verify the order state before attempting cancellation.",
        "parameters": [
          {
            "name": "orderCode",
            "in": "path",
            "description": "Order code of existing order",
            "required": true,
            "deprecated": false,
            "allowEmptyValue": false,
            "schema": {
              "type": "string"
            },
            "style": "simple",
            "explode": false,
            "allowReserved": false,
            "example": "123456-78"
          }
        ],
        "deprecated": false
      }
    },
    "/v1/orders/{orderCode}/documents/{id}": {
      "get": {
        "operationId": "api_v1orders_orderCodedocuments_id_get",
        "tags": [
          "Order Endpoints"
        ],
        "responses": {
          "200": {
            "description": "OrderDocumentRequest resource",
            "content": {
              "application/pdf": {
                "schema": {}
              },
              "x-application/zpl": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Resource not found"
          }
        },
        "summary": "Retrieve a specific document associated with an order. (Invoice, Labels, Proof Of Delivery, ...)",
        "description": "This endpoint retrieves a document related to a specific order, such as shipping labels or invoices. The document content is returned as base64-encoded data and can be decoded for further use.\nTo receive the document in the correct format, specify the desired content type in the `Accept` header:\n* Use `application/pdf` for PDF files\n* Use `x-application/zpl` for ZPL (Zebra Printer Language) files <br>\n\nDocument availability may depend on the current status of the order. Some documents may not be immediately accessible after order creation and may require additional processing time.",
        "parameters": [
          {
            "name": "orderCode",
            "in": "path",
            "description": "Order code of existing order",
            "required": true,
            "deprecated": false,
            "allowEmptyValue": false,
            "schema": {
              "type": "string"
            },
            "style": "simple",
            "explode": false,
            "allowReserved": false,
            "example": "123456-78"
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID of document (as returned by GET /v1/orders{orderCode} endpoint)",
            "required": true,
            "deprecated": false,
            "allowEmptyValue": false,
            "schema": {
              "type": "string"
            },
            "style": "simple",
            "explode": false,
            "allowReserved": false,
            "example": "invoice_INV-12-345678"
          }
        ],
        "deprecated": false
      }
    },
    "/v1/orders/{orderCode}/labels": {
      "get": {
        "operationId": "api_v1orders_orderCodelabels_get",
        "tags": [
          "Order Endpoints"
        ],
        "responses": {
          "200": {
            "description": "OrderLabelRequest resource",
            "content": {
              "application/pdf": {
                "schema": {}
              },
              "x-application/zpl": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Resource not found"
          }
        },
        "summary": "Retrieve shipping labels for a specific order",
        "description": "This endpoint retrieves the shipping labels associated with a specific order. Labels are available only after the order is confirmed and processed. Each label corresponds to a single parcel in the order—especially important in multi-parcel shipments.\nTo receive labels in a specific format, specify the desired content type in the `Accept` header:\n* `application/pdf`  for standard printable labels\n* `x-application/zpl`  for Zebra-compatible label printing <br>\n\nLabels become available after the order has been confirmed and processed. Attempting to access labels too early may result in an error or empty response.",
        "parameters": [
          {
            "name": "orderCode",
            "in": "path",
            "description": "Order code of existing order",
            "required": true,
            "deprecated": false,
            "allowEmptyValue": false,
            "schema": {
              "type": "string"
            },
            "style": "simple",
            "explode": false,
            "allowReserved": false,
            "example": "123456-78"
          }
        ],
        "deprecated": false
      }
    },
    "/v1/orders/{orderCode}/tracking": {
      "get": {
        "operationId": "api_v1orders_orderCodetracking_get",
        "tags": [
          "Order Endpoints"
        ],
        "responses": {
          "200": {
            "description": "TrackingDetailsResponse resource",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingDetailsResponse"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found"
          }
        },
        "summary": "Get real-time tracking updates for a specific order",
        "description": "This endpoint retrieves real-time tracking information for a specific order, identified by the `orderCode`. Once the shipment is accepted and processed by the carrier, tracking data becomes available. \nThe response includes:\n* The current shipment status\n* Key milestones (e.g., picked up, in transit, delivered)\n* A chronological list of tracking events\n\nTracking information helps users stay informed throughout the delivery lifecycle, improves visibility, and enhances the overall post-order experience. It's especially valuable for integrating automated shipment updates into your system or customer interface.",
        "parameters": [
          {
            "name": "orderCode",
            "in": "path",
            "description": "Order code of existing order",
            "required": true,
            "deprecated": false,
            "allowEmptyValue": false,
            "schema": {
              "type": "string"
            },
            "style": "simple",
            "explode": false,
            "allowReserved": false,
            "example": "123456-78"
          }
        ],
        "deprecated": false
      }
    },
    "/v1/pickup/{orderCode}": {
      "post": {
        "operationId": "api_v1pickup_orderCode_post",
        "tags": [
          "Pickup Endpoints"
        ],
        "responses": {
          "204": {
            "description": "PickupRequest resource created",
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "links": {}
          },
          "400": {
            "description": "Invalid input"
          },
          "422": {
            "description": "Unprocessable entity"
          }
        },
        "summary": "Initiate pickup for orders with independent pickup",
        "description": "If an order was placed with ` independentPickup: true` , this endpoint is used to explicitly trigger the creation of a pickup for that order.\n* The pickup will be scheduled based on the default `pickup.from`  and `pickup.to`  time windows provided during order creation.\n* If this endpoint is not called within 30 minutes after placing the order, the pickup is automatically created using the default pickup time.\n\nThis endpoint ensures you retain control over the pickup timing when using `independentPickup`, allowing for flexibility in managing shipment preparation and pickup scheduling.",
        "parameters": [
          {
            "name": "orderCode",
            "in": "path",
            "description": "Order code",
            "required": true,
            "deprecated": false,
            "allowEmptyValue": false,
            "schema": {
              "type": "string"
            },
            "style": "simple",
            "explode": false,
            "allowReserved": false,
            "example": "123456-78"
          }
        ],
        "requestBody": {
          "description": "The new PickupRequest resource",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PickupRequest"
              }
            }
          },
          "required": true
        },
        "deprecated": false
      }
    },
    "/v1/pickup/{orderCode}/availability": {
      "get": {
        "operationId": "api_v1pickup_orderCodeavailability_get_collection",
        "tags": [
          "Pickup Endpoints"
        ],
        "responses": {
          "200": {
            "description": "PickupAvailabilityRequest collection",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PickupAvailabilityRequest.PickupAvailabilityResponse"
                  }
                }
              }
            }
          }
        },
        "summary": "Pickup Time Slot Availability",
        "description": "Retrieves available pickup time slots for an order placed with `independentPickup: true`. These time slots can be used when scheduling a pickup via the `/v1/pickup/{orderCode}` endpoint.\n\nThis endpoint is available only if the quote response included `options.serviceTypes.pickupTimeFrameSelectionPossible: true`. It ensures that the client selects a valid pickup window based on courier availability and service type constraints.\n\nUse this data to offer users flexible and accurate pickup scheduling options.",
        "parameters": [
          {
            "name": "orderCode",
            "in": "path",
            "description": "Order code",
            "required": true,
            "deprecated": false,
            "allowEmptyValue": false,
            "schema": {
              "type": "string"
            },
            "style": "simple",
            "explode": false,
            "allowReserved": false,
            "example": "123456-78"
          }
        ],
        "deprecated": false
      }
    },
    "/v1/proforma": {
      "post": {
        "operationId": "api_v1proforma_post",
        "tags": [
          "Proforma Endpoints"
        ],
        "responses": {
          "204": {
            "description": "ProformaRequest resource created",
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "links": {}
          },
          "400": {
            "description": "Invalid input"
          },
          "422": {
            "description": "Unprocessable entity"
          }
        },
        "summary": "Create Proforma invoice for order",
        "description": "Creates Proforma invoice for order",
        "parameters": [],
        "requestBody": {
          "description": "The new ProformaRequest resource",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProformaRequest"
              }
            }
          },
          "required": true
        },
        "deprecated": false
      }
    },
    "/v1/proforma/upload": {
      "post": {
        "operationId": "api_v1proformaupload_post",
        "tags": [
          "Proforma Endpoints"
        ],
        "responses": {
          "201": {
            "description": "ProformaFileUploadRequest resource created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProformaFileUploadRequest.FileUploadResponse"
                }
              }
            },
            "links": {}
          },
          "400": {
            "description": "Invalid input"
          },
          "422": {
            "description": "Unprocessable entity"
          }
        },
        "summary": "Uploads file for Proforma invoice generation",
        "description": "Uploads file for Proforma invoice generation",
        "parameters": [],
        "requestBody": {
          "description": "The new ProformaFileUploadRequest resource",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProformaFileUploadRequest"
              }
            }
          },
          "required": true
        },
        "deprecated": false
      }
    },
    "/v1/quotes": {
      "post": {
        "operationId": "api_v1quotes_post",
        "tags": [
          "Quote Endpoints"
        ],
        "responses": {
          "200": {
            "description": "QuoteRequest resource created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuoteRequest.QuoteResponse"
                }
              }
            },
            "links": {}
          },
          "400": {
            "description": "Invalid input"
          },
          "422": {
            "description": "Unprocessable entity"
          }
        },
        "summary": "Get Quote",
        "description": "The Quote endpoint allows you to obtain real-time shipping rates based on your specified shipment details—such as parcel dimensions, weight, service type, and pickup/delivery locations. This ensures you can present precise, up-to-date pricing options to your customers or internal systems before creating an order. <br> <br> <b>Key features:</b>\n* Supports multiple parcels and service types\n* Returns detailed pricing breakdown including optional services and pickup date fees\n* Enables comparison of different shipping options for optimized cost-efficiency",
        "parameters": [],
        "requestBody": {
          "description": "The new QuoteRequest resource",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuoteRequest"
              }
            }
          },
          "required": true
        },
        "deprecated": false
      }
    }
  },
  "components": {
    "schemas": {
      "PudoListRequest": {
        "type": "object",
        "required": [
          "courierId",
          "country",
          "distanceFromLocation",
          "parcels",
          "filterBySide"
        ],
        "properties": {
          "courierId": {
            "type": "integer",
            "minimum": 1
          },
          "country": {
            "type": "string",
            "description": "Valid ISO 3166-1 alpha-2 country code"
          },
          "geolocation": {
            "$ref": "#/components/schemas/GeolocationRequest"
          },
          "address": {
            "$ref": "#/components/schemas/PudoPostalAddressRequest"
          },
          "pickupDate": {
            "type": "string",
            "format": "date"
          },
          "distanceFromLocation": {
            "type": "integer",
            "minimum": 1
          },
          "parcels": {
            "$ref": "#/components/schemas/PudoParcelsRequest"
          },
          "resultsLimit": {
            "type": "integer",
            "minimum": 1
          },
          "filterBySide": {
            "type": "string",
            "enum": [
              "pickupSide",
              "deliverySide"
            ],
            "description": "Filter by pickup/dropoff point side"
          }
        }
      },
      "GeolocationRequest": {
        "type": "object",
        "required": [
          "latitude",
          "longitude"
        ],
        "properties": {
          "latitude": {
            "type": "number",
            "format": "float"
          },
          "longitude": {
            "type": "number",
            "format": "float"
          }
        }
      },
      "PudoPostalAddressRequest": {
        "type": "object",
        "properties": {
          "street": {
            "type": "string"
          },
          "zip": {
            "type": "string"
          },
          "city": {
            "type": "string"
          }
        }
      },
      "PudoParcelsRequest": {
        "type": "object",
        "properties": {
          "parcels": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "weight": {
                  "type": "number",
                  "format": "float"
                },
                "parcelId": {
                  "type": "string"
                },
                "length": {
                  "type": "number",
                  "format": "float"
                },
                "width": {
                  "type": "number",
                  "format": "float"
                },
                "height": {
                  "type": "number",
                  "format": "float"
                }
              },
              "required": [
                "parcelId",
                "weight",
                "length",
                "width",
                "height"
              ]
            }
          }
        },
        "required": [
          "parcels"
        ]
      },
      "PudoPointsResponse": {
        "type": "object",
        "description": "",
        "properties": {
          "points": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PudoPoint"
            }
          }
        }
      },
      "PudoPoint": {
        "type": "object",
        "properties": {
          "pudoPointCode": {
            "type": "string"
          },
          "locationName": {
            "type": "string"
          },
          "street": {
            "type": "string"
          },
          "zip": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "geolocation": {
            "type": "object",
            "properties": {
              "latitude": {
                "type": "number",
                "format": "float"
              },
              "longitude": {
                "type": "number",
                "format": "float"
              }
            }
          },
          "openingHours": {
            "type": "object",
            "properties": {
              "dayNameLong": {
                "type": "string"
              },
              "dayNameShort": {
                "type": "string"
              },
              "times": {
                "type": "string"
              }
            }
          },
          "shippingCutOffTime": {
            "type": [
              "string",
              "null"
            ]
          },
          "features": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "pointEmail": {
            "type": [
              "string",
              "null"
            ]
          },
          "pointPhone": {
            "type": [
              "string",
              "null"
            ]
          },
          "holidayDates": {
            "type": "array",
            "description": "Array of strings in date-time format",
            "items": {
              "type": "string",
              "format": "date-time"
            }
          }
        }
      },
      "CityRequest.CityResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "id": {
            "description": "cityId to be used in other endpoints",
            "example": 1341
          },
          "name": {
            "example": "Dublin"
          },
          "regionId": {
            "description": "Region from `/v1/countries/{countryCode}/regions` endpoint, to match city to proper region",
            "example": 6
          }
        }
      },
      "CountryCustomFieldsResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "supportedServiceTypeIds": {
            "type": "array",
            "items": {
              "type": "integer"
            }
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldResponse"
            }
          }
        }
      },
      "CountryResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "id": {
            "example": 123
          },
          "code": {
            "example": "LU"
          },
          "name": {
            "example": "Luxembourg"
          },
          "requiresRegion": {
            "example": false
          },
          "requiresCity": {
            "example": false
          },
          "active": {
            "example": true
          },
          "isEu": {
            "example": true,
            "description": "Flag if country is a member of European Union"
          },
          "countryCustomFields": {
            "$ref": "#/components/schemas/CountryCustomFieldsResponse"
          }
        }
      },
      "CouponResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "couponCode": {
            "type": "string"
          },
          "discount": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PriceResponse"
              },
              {
                "type": "null"
              }
            ]
          }
        }
      },
      "CustomFieldResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "length": {
            "type": [
              "integer",
              "null"
            ],
            "example": null
          },
          "required": {
            "type": "boolean"
          },
          "options": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "label": {
            "type": "string"
          },
          "additionalInfo": {
            "type": "string"
          },
          "placeholder": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          }
        }
      },
      "EnvelopeResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "parcelId": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "orderCode": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "weight": {
            "type": [
              "number",
              "null"
            ]
          },
          "content": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "value": {
            "type": [
              "integer",
              "null"
            ],
            "example": null
          },
          "price": {
            "$ref": "#/components/schemas/PriceResponse"
          },
          "tracking": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ParcelTrackingResponse"
              },
              {
                "type": "null"
              }
            ]
          }
        }
      },
      "FtlRequest": {
        "type": "object",
        "description": "",
        "additionalProperties": false,
        "deprecated": false,
        "required": [
          "parcelId"
        ],
        "properties": {
          "parcelId": {
            "description": "Any value, currently not used, but if multiple parcels are in same request, each must use different value.",
            "example": "T00001",
            "type": "string"
          }
        }
      },
      "FtlResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "parcelId": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "orderCode": {
            "type": "string"
          },
          "price": {
            "$ref": "#/components/schemas/PriceResponse"
          }
        }
      },
      "InsuranceResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "id": {
            "type": "integer"
          },
          "coverage": {
            "type": "number"
          },
          "text": {
            "type": "string"
          },
          "price": {
            "$ref": "#/components/schemas/PriceResponse"
          }
        }
      },
      "LtlRequest": {
        "type": "object",
        "description": "",
        "additionalProperties": false,
        "deprecated": false,
        "required": [
          "parcelId",
          "weight",
          "notes"
        ],
        "properties": {
          "parcelId": {
            "description": "Any value, currently not used",
            "example": "T00001",
            "type": "string"
          },
          "euroPalletQuantity": {
            "maximum": 34,
            "description": "Quantity of pallets, if cargo is loaded on EURO pallets (120x80)",
            "required": [],
            "example": 12,
            "type": [
              "integer",
              "null"
            ]
          },
          "loadingMeters": {
            "maximum": 13.6,
            "description": "Loading meters, if cargo is loaded on other pallets",
            "required": [],
            "example": null,
            "type": [
              "number",
              "null"
            ]
          },
          "weight": {
            "maximum": 22000,
            "description": "Gross weight in kilograms.",
            "example": 3600,
            "type": "number"
          },
          "notes": {
            "description": "Cargo information\\\nDescription of cargo with approximate dimensions, weight and volume\\\nExample: `12x 120x80x220cm, 300kg/pallet, total weight: 3.600kg, not-stackable, boxes with a spare parts packed on pallets`",
            "example": "12x 120x80x220cm, 300kg/pallet, total weight: 3.600kg, not-stackable, boxes with a spare parts packed on pallets",
            "type": "string"
          }
        }
      },
      "LtlResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "parcelId": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "orderCode": {
            "type": "string"
          },
          "euroPalletQuantity": {
            "type": [
              "integer",
              "null"
            ],
            "example": null
          },
          "loadingMeters": {
            "type": [
              "number",
              "null"
            ]
          },
          "weight": {
            "type": [
              "number",
              "null"
            ]
          },
          "price": {
            "$ref": "#/components/schemas/PriceResponse"
          }
        }
      },
      "NonStandardResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "parcelId": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "orderCode": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "weight": {
            "type": [
              "number",
              "null"
            ]
          },
          "length": {
            "type": [
              "integer",
              "null"
            ],
            "example": null
          },
          "width": {
            "type": [
              "integer",
              "null"
            ],
            "example": null
          },
          "height": {
            "type": [
              "integer",
              "null"
            ],
            "example": null
          },
          "content": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "value": {
            "type": [
              "integer",
              "null"
            ],
            "example": null
          },
          "price": {
            "$ref": "#/components/schemas/PriceResponse"
          },
          "tracking": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ParcelTrackingResponse"
              },
              {
                "type": "null"
              }
            ]
          }
        }
      },
      "OptionalServiceResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "code": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "help_loading",
              "help_unloading",
              "full_loading_help",
              "full_unloading_help",
              "tail_lift",
              null
            ],
            "example": null
          },
          "price": {
            "$ref": "#/components/schemas/PriceResponse"
          }
        }
      },
      "OrderCancelRequest": {
        "type": "object",
        "description": "",
        "deprecated": false
      },
      "OrderContactRequest": {
        "type": "object",
        "description": "",
        "additionalProperties": false,
        "deprecated": false,
        "properties": {
          "email": {
            "format": "email",
            "description": "Email address for transactional emails like order status changes,... If not provided, email\naddress from User profile is used.",
            "externalDocs": {
              "url": "https://schema.org/email"
            },
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "name": {
            "description": "Not used.",
            "deprecated": true,
            "default": null
          },
          "phone": {
            "description": "Not used.",
            "deprecated": true,
            "default": null
          },
          "contactMethod": {
            "description": "Not used.",
            "deprecated": true,
            "default": null
          },
          "contactCustomerType": {
            "description": "Not used.",
            "deprecated": true,
            "default": null
          }
        }
      },
      "OrderCourierResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "id": {
            "type": "integer"
          },
          "shortName": {
            "type": "string"
          },
          "countryCode": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "email": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "phone": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          }
        }
      },
      "OrderDocumentResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "fileFormat": {
            "type": "string"
          }
        }
      },
      "OrderInsuranceResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "id": {
            "type": "integer"
          },
          "text": {
            "type": "string"
          },
          "price": {
            "$ref": "#/components/schemas/PriceResponse"
          }
        }
      },
      "OrderRegionResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "OrderRequest": {
        "type": "object",
        "description": "",
        "additionalProperties": false,
        "deprecated": false,
        "required": [
          "shipment",
          "parcels",
          "serviceType",
          "paymentMethod",
          "orderContact",
          "labelFormat"
        ],
        "properties": {
          "shipment": {
            "$ref": "#/components/schemas/ShipmentRequest"
          },
          "parcels": {
            "$ref": "#/components/schemas/ParcelsRequest"
          },
          "serviceType": {
            "enum": [
              "selection",
              "flexi",
              "regular_plus",
              "express",
              "freight",
              "freight_priority",
              "freight_priority_express",
              "van",
              "ftl"
            ],
            "description": "Service type to use. [More on service types](#section/Service-types)",
            "example": "regular_plus",
            "type": "string"
          },
          "serviceSubtype": {
            "enum": [
              "door_to_door",
              "door_to_shop",
              "shop_to_door",
              "shop_to_shop"
            ],
            "description": "For internal use only.",
            "default": null,
            "example": "door_to_door",
            "type": [
              "string",
              "null"
            ]
          },
          "courierTag": {
            "description": "For internal use only.",
            "default": null,
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "courierId": {
            "description": "Explicit courier to use, for internal use only.",
            "default": null,
            "type": [
              "integer",
              "null"
            ],
            "example": null
          },
          "paymentMethod": {
            "enum": [
              "credit",
              "deferred"
            ],
            "description": "Payment method, where `credit` is for User credits (pre-paid, Wallet) and `deferred`\nmust be additionally approved to be enabled for use. Other payment methods are not\nsupported. [More info on user credits](https://www.eurosender.com/en/usp/wallet). [More info on deferred\npayment](https://www.eurosender.com/en/usp/deferred-payment).",
            "default": "deferred",
            "example": "deferred",
            "type": "string"
          },
          "currencyCode": {
            "description": "Only `EUR` supported.",
            "default": "EUR",
            "example": "EUR",
            "type": "string"
          },
          "insuranceId": {
            "description": "Optional additional insurance ID, one of the values provided in Quotes responses under\n`options.serviceTypes.insurances`.",
            "type": [
              "integer",
              "null"
            ],
            "example": null
          },
          "orderContact": {
            "$ref": "#/components/schemas/OrderContactRequest"
          },
          "comment": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "customerInternalReference": {
            "description": "Reference 1 for the order that can be exported in Invoice specification. \\\nThis reference will be shown on label for some couriers.",
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "customerBillingReference": {
            "description": "Reference 2 for the order that can be exported in Invoice specification",
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "labelFormat": {
            "description": "Format in which labels will be created. Defaults to `pdf`.",
            "default": "pdf",
            "example": "pdf",
            "enum": [
              "pdf",
              "zpl"
            ],
            "type": "string"
          }
        }
      },
      "OrderRequest.OrderResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "orderCode": {
            "type": "string"
          },
          "status": {
            "description": "Values: Pending, Order Received, Deferred Payment, Confirmed, Tracking, Canceled, Label Error, Awaiting Payment, Awaiting customs documentation, Awaiting additional payment"
          },
          "serviceType": {
            "type": "string"
          },
          "language": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "paymentMethod": {
            "type": "string"
          },
          "currencyCode": {
            "type": "string"
          },
          "vatRate": {
            "type": "string"
          },
          "parcels": {
            "$ref": "#/components/schemas/ParcelsResponse"
          },
          "courier": {
            "$ref": "#/components/schemas/OrderCourierResponse"
          },
          "shipment": {
            "$ref": "#/components/schemas/ShipmentResponse"
          },
          "estimatedDeliveryTime": {
            "type": "string"
          },
          "price": {
            "$ref": "#/components/schemas/PriceResponse"
          },
          "discount": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PaymentDiscountResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "coupon": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CouponResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "insurance": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OrderInsuranceResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "isCallRequired": {
            "type": "boolean"
          },
          "isLabelRequired": {
            "type": "boolean"
          },
          "labelLink": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "labelFormat": {
            "type": "string"
          },
          "comment": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "customerInternalReference": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "customerBillingReference": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "vehicleTrackingLink": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "documents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderDocumentResponse"
            }
          },
          "created": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "OrderShipmentAddOnResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "code": {
            "type": "string",
            "enum": [
              "flexibleChanges",
              "early_delivery",
              "early_pickup_pickup_fee",
              "same_day_pickup_fee",
              "late_ordering_pickup_fee",
              "weekend_pickup_fee",
              "holiday_pickup_fee"
            ]
          },
          "price": {
            "$ref": "#/components/schemas/PriceResponse"
          }
        }
      },
      "OtherPickupDatePriceResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "pickupDate": {
            "type": "string",
            "format": "date-time"
          },
          "price": {
            "description": "Price of the service for all parcels, without optional services",
            "$ref": "#/components/schemas/PriceResponse"
          }
        }
      },
      "PackageRequest": {
        "type": "object",
        "description": "",
        "additionalProperties": false,
        "deprecated": false,
        "required": [
          "parcelId",
          "quantity",
          "width",
          "height",
          "length",
          "weight",
          "content",
          "value"
        ],
        "properties": {
          "parcelId": {
            "description": "Any value, currently not used, but if multiple parcels are in same request, each must use different value.",
            "example": "A00001",
            "type": "string"
          },
          "quantity": {
            "default": 1,
            "example": 1,
            "type": "integer"
          },
          "width": {
            "description": "Width in centimeters.",
            "example": 14,
            "type": "integer"
          },
          "height": {
            "description": "Height in centimeters.",
            "example": 14,
            "type": "integer"
          },
          "length": {
            "description": "Length in centimeters.",
            "example": 15,
            "type": "integer"
          },
          "weight": {
            "description": "Weight in kilograms.",
            "example": 2,
            "type": "number"
          },
          "content": {
            "example": "books",
            "type": "string"
          },
          "value": {
            "description": "Parcel value in EUR.",
            "example": 150,
            "type": "integer"
          }
        }
      },
      "PackageResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "parcelId": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "orderCode": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "weight": {
            "type": [
              "number",
              "null"
            ]
          },
          "length": {
            "type": [
              "integer",
              "null"
            ],
            "example": null
          },
          "width": {
            "type": [
              "integer",
              "null"
            ],
            "example": null
          },
          "height": {
            "type": [
              "integer",
              "null"
            ],
            "example": null
          },
          "content": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "value": {
            "type": [
              "integer",
              "null"
            ],
            "example": null
          },
          "price": {
            "$ref": "#/components/schemas/PriceResponse"
          },
          "tracking": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ParcelTrackingResponse"
              },
              {
                "type": "null"
              }
            ]
          }
        }
      },
      "PalletRequest": {
        "type": "object",
        "description": "",
        "additionalProperties": false,
        "deprecated": false,
        "required": [
          "parcelId"
        ],
        "properties": {
          "parcelId": {
            "description": "Any value, currently not used, but if multiple parcels are in same request, each must use different value.",
            "example": "B00001"
          },
          "quantity": {
            "default": 1,
            "example": 1
          },
          "width": {
            "description": "Width in centimeters.",
            "example": 80
          },
          "height": {
            "description": "Height in centimeters.",
            "example": 100
          },
          "length": {
            "description": "Length in centimeters.",
            "example": 120
          },
          "weight": {
            "description": "Weight in kilograms.",
            "example": 50
          },
          "content": {
            "example": "tires"
          },
          "value": {
            "description": "Parcel value in EUR.",
            "example": 500
          },
          "isStackable": {
            "description": "Pallets that can be stacked, whether they are full or empty",
            "default": true,
            "example": true
          }
        }
      },
      "PalletResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "parcelId": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "orderCode": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "weight": {
            "type": [
              "number",
              "null"
            ]
          },
          "length": {
            "type": [
              "integer",
              "null"
            ],
            "example": null
          },
          "width": {
            "type": [
              "integer",
              "null"
            ],
            "example": null
          },
          "height": {
            "type": [
              "integer",
              "null"
            ],
            "example": null
          },
          "content": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "value": {
            "type": [
              "integer",
              "null"
            ],
            "example": null
          },
          "price": {
            "$ref": "#/components/schemas/PriceResponse"
          },
          "tracking": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ParcelTrackingResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "isStackable": {
            "type": "boolean"
          }
        }
      },
      "ParcelLevelOptionalServiceResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "code": {
            "description": "value to be used in request under `parcels.vans.optionalServices`. Details on options are documented there.",
            "type": "string",
            "enum": [
              "help_loading",
              "help_unloading",
              "full_loading_help",
              "full_unloading_help",
              "tail_lift"
            ]
          },
          "price": {
            "$ref": "#/components/schemas/PriceResponse"
          }
        }
      },
      "ParcelResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "parcelId": {
            "type": "string"
          }
        }
      },
      "ParcelTrackingResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "number": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "deliveryStatus": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          }
        }
      },
      "ParcelsRequest": {
        "type": "object",
        "description": "",
        "additionalProperties": false,
        "deprecated": false,
        "properties": {
          "envelopes": {
            "description": "`envelopes` is named 'Documents' on website. [More info](https://www.eurosender.com/en/s/services/envelope)",
            "default": []
          },
          "packages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PackageRequest"
            }
          },
          "pallets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PalletRequest"
            }
          },
          "vans": {
            "description": "Can be used only with serviceType `van`",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VanRequest"
            }
          },
          "ltls": {
            "maxItems": 1,
            "description": "LTL: Less than truckload\\\nOnly one allowed per shipment, can't be mixed with FTL\\\nCan be used only with serviceType `ftl`",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LtlRequest"
            }
          },
          "ftls": {
            "description": "FTL: Full truckload\\\nCan't be mixed with LTL\\\nCan be used only with serviceType `ftl`",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FtlRequest"
            }
          }
        }
      },
      "ParcelsResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "envelopes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EnvelopeResponse"
            }
          },
          "packages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PackageResponse"
            }
          },
          "pallets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PalletResponse"
            }
          },
          "vans": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VanResponse"
            }
          },
          "ltls": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LtlResponse"
            }
          },
          "ftls": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FtlResponse"
            }
          },
          "nonStandard": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NonStandardResponse"
            }
          }
        }
      },
      "PaymentDiscountResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "rate": {
            "type": "string"
          },
          "discount": {
            "$ref": "#/components/schemas/PriceResponse"
          }
        }
      },
      "PaymentMethodResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "code": {
            "enum": [
              "credit",
              "deferred"
            ],
            "example": "deferred",
            "type": "string"
          },
          "paymentDiscount": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PaymentDiscountResponse"
              },
              {
                "type": "null"
              }
            ]
          }
        }
      },
      "PickupAvailabilityRequest.PickupAvailabilityResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "pickupDate": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "example": null
          },
          "timeFrom": {
            "example": [
              "09:00",
              "09:30",
              "10:00",
              "10:30",
              "11:00"
            ]
          },
          "timeTo": {
            "example": [
              "13:00",
              "13:30",
              "14:00",
              "14:30"
            ]
          }
        }
      },
      "PickupDateFeeResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "code": {
            "description": "Reason for fee",
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "same_day",
              "late_ordering",
              "weekend",
              "holiday",
              "early_pickup",
              null
            ],
            "example": null
          },
          "price": {
            "description": "Price of fee",
            "$ref": "#/components/schemas/PriceResponse"
          }
        }
      },
      "PickupRequest": {
        "type": "object",
        "description": "",
        "additionalProperties": false,
        "deprecated": false,
        "properties": {
          "pickupTimeFrom": {
            "description": "Pickup time availability from, available time slots can be retrieved from `Pickup availability`\nendpoint. Example value: `'09:00'`\nSetting this value is possible only if `Quote` endpoint returned\n`options.serviceTypes.pickupTimeFrameSelectionPossible: true`",
            "example": "09:00",
            "type": [
              "string",
              "null"
            ]
          },
          "pickupTimeTo": {
            "description": "Pickup time availability to, available time slots can be retrieved from `Pickup availability`\nendpoint. Example value: `'14:00'`\nSetting this value is possible only if `Quote` endpoint returned\n`options.serviceTypes.pickupTimeFrameSelectionPossible: true`",
            "example": "14:00",
            "type": [
              "string",
              "null"
            ]
          }
        }
      },
      "PriceComponentsResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "currencyCode": {
            "default": "EUR",
            "example": "EUR",
            "type": "string"
          },
          "gross": {
            "type": "number"
          },
          "net": {
            "type": "number"
          }
        }
      },
      "PriceResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "original": {
            "$ref": "#/components/schemas/PriceComponentsResponse"
          },
          "converted": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PriceComponentsResponse"
              },
              {
                "type": "null"
              }
            ]
          }
        }
      },
      "ProformaContactPersonRequest": {
        "type": "object",
        "description": "",
        "additionalProperties": false,
        "deprecated": false,
        "properties": {
          "contactPerson": {
            "type": "string"
          },
          "companyName": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "phone": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "street": {
            "type": "string"
          },
          "zip": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "vat": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "eoriNumber": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          }
        }
      },
      "ProformaFileUploadRequest": {
        "type": "object",
        "description": "",
        "additionalProperties": false,
        "deprecated": false,
        "properties": {
          "name": {
            "type": "string"
          },
          "mimetype": {
            "type": "string"
          },
          "content": {
            "type": "string"
          }
        }
      },
      "ProformaFileUploadRequest.FileUploadResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "hashName": {
            "description": "Id of uploaded document",
            "example": "63e26b8ad79460c8dde7a8b745a19a201686296879.pdf"
          }
        }
      },
      "ProformaItemRequest": {
        "type": "object",
        "description": "",
        "additionalProperties": false,
        "deprecated": false,
        "properties": {
          "description": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "quantity": {
            "type": "integer"
          },
          "weight": {
            "type": "number"
          },
          "value": {
            "type": "integer"
          },
          "hsCode": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          }
        }
      },
      "ProformaRequest": {
        "type": "object",
        "description": "",
        "additionalProperties": false,
        "deprecated": false,
        "properties": {
          "shipper": {
            "$ref": "#/components/schemas/ProformaContactPersonRequest"
          },
          "receiver": {
            "$ref": "#/components/schemas/ProformaContactPersonRequest"
          },
          "invoices": {
            "description": "Collection of uploaded commercial invoices"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProformaItemRequest"
            }
          },
          "orderCode": {
            "description": "Code of order for which Proforma invoice is submitted",
            "example": "123456-78"
          },
          "reason": {
            "type": "string",
            "enum": [
              {
                "1": "gift"
              },
              {
                "2": "commercial"
              },
              {
                "3": "personal_use"
              },
              {
                "4": "repair"
              },
              {
                "5": "return_after_repair"
              },
              {
                "6": "sample"
              }
            ]
          },
          "currency": {
            "type": "string"
          }
        }
      },
      "QuoteOptionsResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "serviceTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceTypeResponse"
            }
          },
          "parcelLevelOptionalServices": {
            "description": "Prices for optional services on parcel level, to be used in `parcels.vans.optionalServices`",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ParcelLevelOptionalServiceResponse"
            }
          },
          "generalTermsAndConditionsLink": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "paymentMethods": {
            "description": "Supported/available payment methods with potential discount, if supported.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentMethodResponse"
            }
          }
        }
      },
      "QuoteOrderResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "totalPrice": {
            "$ref": "#/components/schemas/PriceResponse"
          },
          "insuranceId": {
            "type": [
              "integer",
              "null"
            ],
            "example": null
          },
          "parcels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ParcelResponse"
            }
          },
          "paymentDiscount": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PaymentDiscountResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "addOns": {
            "description": "Extra addons that were selected",
            "enum": [
              "flexibleChanges",
              "early_delivery"
            ],
            "default": []
          },
          "serviceType": {
            "type": "string"
          },
          "serviceSubtype": {
            "type": "string"
          },
          "minPickupDate": {
            "type": "string",
            "format": "date-time"
          },
          "estimatedDeliveryTime": {
            "type": "string"
          },
          "courierId": {
            "type": [
              "integer",
              "null"
            ],
            "example": null
          },
          "courierTag": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "calculatedDistance": {
            "description": "Distance in kilometers, calculated based on pickup and delivery address, for distance-based services.\\\nIf actual distance will be different, price will be adjusted and customer will be contacted before pickup.",
            "type": [
              "number",
              "null"
            ]
          }
        }
      },
      "QuoteRequest": {
        "type": "object",
        "description": "",
        "additionalProperties": false,
        "deprecated": false,
        "required": [
          "shipment",
          "parcels",
          "paymentMethod"
        ],
        "properties": {
          "shipment": {
            "description": "Shipment details (where and when to ship)",
            "$ref": "#/components/schemas/ShipmentRequest"
          },
          "parcels": {
            "description": "Parcels details (what to ship)",
            "$ref": "#/components/schemas/ParcelsRequest"
          },
          "paymentMethod": {
            "enum": [
              "credit",
              "deferred"
            ],
            "description": "Payment method, where `credit` is for User credits (pre-paid, Wallet)\nand `deferred` must be additionally approved to be enabled for use. Other payment methods are not\nsupported.",
            "default": "deferred",
            "example": "credit",
            "type": "string"
          },
          "currencyCode": {
            "enum": [
              "EUR"
            ],
            "description": "Only `EUR` supported.",
            "default": "EUR",
            "example": "EUR",
            "type": "string"
          },
          "serviceType": {
            "enum": [
              "selection",
              "flexi",
              "regular_plus",
              "express",
              "freight",
              "freight_priority",
              "freight_priority_express",
              "van",
              "ftl"
            ],
            "description": "Service type to use. [More on service types](#section/Service-types)",
            "example": "selection",
            "type": "string"
          },
          "serviceSubtype": {
            "enum": [
              "door_to_door",
              "door_to_shop",
              "shop_to_door",
              "shop_to_shop"
            ],
            "description": "For internal use only.",
            "default": null,
            "example": "door_to_door",
            "type": [
              "string",
              "null"
            ]
          },
          "courierTag": {
            "description": "For internal use only.",
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "preferredCouriersOnly": {
            "description": "For internal use only",
            "default": false,
            "type": "boolean"
          },
          "courierId": {
            "description": "Explicit courier to use, for internal use only.",
            "type": [
              "integer",
              "null"
            ],
            "example": null
          },
          "insuranceId": {
            "description": "Additional insurance ID, applicable for selected service type, one of the values from Quote\nresponse under `options.serviceTypes[].insurances[]`",
            "type": [
              "integer",
              "null"
            ],
            "example": null
          },
          "labelFormat": {
            "description": "Format in which labels will be created. Defaults to `pdf`. `zpl` format is not available for all couriers.",
            "enum": [
              "pdf",
              "zpl"
            ],
            "default": null,
            "type": [
              "string",
              "null"
            ],
            "example": null
          }
        }
      },
      "QuoteRequest.QuoteResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "options": {
            "$ref": "#/components/schemas/QuoteOptionsResponse"
          },
          "order": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/QuoteOrderResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuoteWarningResponse"
            }
          }
        }
      },
      "QuoteServiceTypeAddOnResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "code": {
            "type": "string",
            "enum": [
              "flexibleChanges",
              "early_delivery",
              "same_day_pickup_fee",
              "next_day_pickup_fee"
            ]
          },
          "price": {
            "$ref": "#/components/schemas/PriceResponse"
          }
        }
      },
      "QuoteWarningResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "code": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "parameterPath": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          }
        }
      },
      "RegionRequest.RegionResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "id": {
            "description": "regionId to be used in other endpoints",
            "example": 6
          },
          "name": {
            "example": "County Dublin"
          },
          "code": {
            "description": "regionCode to be used in other endpoints. This field is available only for some countries\n(Italy, USA, Canada). Example value: `AC` for region `Ancona` in Italy",
            "example": null
          }
        }
      },
      "ServiceTypeResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "name": {
            "enum": [
              "selection",
              "flexi",
              "regular_plus",
              "express",
              "freight",
              "freight_priority",
              "freight_priority_express",
              "van",
              "ftl"
            ],
            "example": "selection",
            "type": "string"
          },
          "serviceSubtype": {
            "type": "string"
          },
          "minPickupDate": {
            "description": "Minimum pickup date for that service type",
            "type": "string",
            "format": "date-time"
          },
          "isCallRequired": {
            "type": "boolean"
          },
          "isLabelRequired": {
            "type": "boolean"
          },
          "edt": {
            "description": "Estimated delivery days",
            "type": "string"
          },
          "price": {
            "description": "Price to deliver requested `parcels` between `pickupAddress` and `deliveryAddress`, without potentially selected\noptional services and without pickup date fee.",
            "$ref": "#/components/schemas/PriceResponse"
          },
          "pickupDateFees": {
            "description": "Price can be affected by selection of pickup date on some services.\\\nIn such case, here is a reason and price for pickup date fee, to be added on top of `serviceType.price`.\\\n`order.totalPrice` includes it already.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PickupDateFeeResponse"
            }
          },
          "insurances": {
            "description": "Available insurances, including auto-activated free insurance (when applicable)",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InsuranceResponse"
            }
          },
          "pickupExcludedDates": {
            "description": "Dates on which pickup is not possible (holidays,...), so they can't be used in `pickupDate`",
            "type": "array",
            "items": {
              "type": "string",
              "format": "date-time"
            }
          },
          "addOns": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuoteServiceTypeAddOnResponse"
            }
          },
          "courierTermsAndConditionsLink": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "courierId": {
            "type": "integer"
          },
          "pickupTimeFrameSelectionPossible": {
            "description": "For this service type and courier, it is possible to use `pickupTimeFrom`/`pickupTimeTo` on `Pickup` endpoint.",
            "type": "boolean"
          },
          "otherPickupDatePrices": {
            "description": "Service price for additional few days, to be able to select the one without potential pickup date fee.\\\nThis is returned only for service type `van`.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OtherPickupDatePriceResponse"
            }
          }
        }
      },
      "ShipmentAddressRequest": {
        "type": "object",
        "description": "",
        "additionalProperties": false,
        "deprecated": false,
        "required": [
          "country"
        ],
        "properties": {
          "country": {
            "description": "Country code in ISO 3166-1 alpha-2",
            "example": "LU"
          },
          "zip": {
            "description": "ZIP code",
            "example": "1911"
          },
          "city": {
            "description": "City name, belonging to ZIP code. For cases where providing exact city name is mandatory\n(like Ireland or Romania), it can be retrieved from endpoint\n`/v1/countries/{countryCode}/cities`. This condition depends on Country, flag for this is\navailable at endpoint `/v1/countries`.\nIf `cityId` is provided, this field can be empty.",
            "example": "Luxembourg"
          },
          "cityId": {
            "description": "ID of the City for cases where providing exact city is mandatory (like Ireland or Romania), it can\nbe retrieved from endpoint `/v1/countries/{countryCode}/cities`. This condition depends on Country, flag\nfor this is available at endpoint `/v1/countries`. If exact city name is provided in field `city`, this\nfield can be empty.\nExample value: `1341` for `Dublin` in region `County Dublin` in Ireland",
            "default": null
          },
          "street": {
            "description": "Street name with house number",
            "example": "9 Rue du Laboratoire",
            "type": [
              "string",
              "null"
            ]
          },
          "additionalInfo": {
            "description": "Not used.",
            "deprecated": true,
            "default": null
          },
          "region": {
            "description": "Region name. For cases where providing region (name, code or ID) is mandatory,\nlike Ireland, Romania, Italy, USA, Canada,\nit can be retrieved from endpoint `/v1/countries/{countryCode}/regions`.\nThis condition depends on Country, flag for this is available at endpoint `/v1/countries`.\nIf `regionCode` or `regionId` is provided, this field can be empty.\nExample value: `County Dublin` in Ireland",
            "default": null
          },
          "regionCode": {
            "description": "Region code. For cases where providing region (name, code or ID) is mandatory,\nlike Ireland, Romania, Italy, USA, Canada,\nit can be retrieved from endpoint `/v1/countries/{countryCode}/regions`.\nThis condition depends on Country, flag for this is available at endpoint `/v1/countries`.\nIf `region` or `regionId` is provided, this field can be empty.\nThis field is supported only for some countries (Italy, USA, Canada).\nExample value: `AC` for region `Ancona` in Italy",
            "default": null
          },
          "regionId": {
            "description": "Region ID. For cases where providing region (name, code or ID) is mandatory,\nlike Ireland, Romania, Italy, USA, Canada,\nit can be retrieved from endpoint `/v1/countries/{countryCode}/regions`.\nThis condition depends on Country, flag for this is available at endpoint `/v1/countries`.\nIf `region` or `regionCode` is provided, this field can be empty.\nExample value: `6` for region `County Dublin` in Ireland",
            "default": null
          },
          "timeZoneName": {
            "description": "Not used.",
            "deprecated": true,
            "default": null
          },
          "customFields": {
            "description": "Additional address fields that can be provided for some countries, like\n`doorbell` for Germany. Availability of the fields and flag\nif optional or required can be retrieved from endpoint `/v1/countries`.",
            "default": []
          },
          "pudoPointCode": {
            "description": "For internal use only",
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "customerPudoNumber": {
            "description": "For internal use only",
            "type": [
              "string",
              "null"
            ],
            "example": null
          }
        }
      },
      "ShipmentAddressResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "street": {
            "type": "string"
          },
          "zip": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "region": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OrderRegionResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "country": {
            "type": "string"
          }
        }
      },
      "ShipmentContactRequest": {
        "type": "object",
        "description": "",
        "additionalProperties": false,
        "deprecated": false,
        "properties": {
          "name": {
            "description": "Person or company name in a role of pickup/delivery contact",
            "example": "Eurosender SARL"
          },
          "email": {
            "format": "email",
            "description": "Email address that can be used by courier for communication regarding pickup/delivery",
            "externalDocs": {
              "url": "https://schema.org/email"
            },
            "example": "name@example.com"
          },
          "phone": {
            "description": "Phone number in international format (E.164) that can be used by courier for communication\nregarding pickup/delivery",
            "example": "+442031292884"
          }
        }
      },
      "ShipmentContactResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "name": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          }
        }
      },
      "ShipmentRequest": {
        "type": "object",
        "description": "",
        "additionalProperties": false,
        "deprecated": false,
        "required": [
          "pickupAddress",
          "deliveryAddress"
        ],
        "properties": {
          "pickupAddress": {
            "$ref": "#/components/schemas/ShipmentAddressRequest"
          },
          "deliveryAddress": {
            "$ref": "#/components/schemas/ShipmentAddressRequest"
          },
          "pickupDate": {
            "description": "Pickup date, can be empty to retrieve first possible date (`minPickupDate`).\nTime part is ignored.\nValue must be in RFC3339 format (for example `2023-04-04T00:00:00Z`)",
            "type": "string",
            "format": "date-time",
            "default": "2023-04-04T00:00:00Z"
          },
          "pickupType": {
            "description": "Specifies if new pickup needs to be scheduled (`new_pickup_request`),\nor there is already pre-arranged regular pickup scheduled (`scheduled_pickup`),\nor there is no need for pickup because the shipment will be dropped off at a courier location (`drop_off`).\\\nNot supported (ignored) on some couriers.",
            "default": "new_pickup_request",
            "example": "new_pickup_request",
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "new_pickup_request",
              "scheduled_pickup",
              "drop_off",
              null
            ]
          },
          "independentPickup": {
            "description": "Pickup request with desires pickup time frame will be called independently (in 30 minutes) by using `Pickup` endpoint.",
            "type": "boolean",
            "default": false,
            "example": false
          },
          "pickupContact": {
            "description": "Pickup contact, not needed for `Quote`, but required for `Order`.",
            "anyOf": [
              {
                "$ref": "#/components/schemas/ShipmentContactRequest"
              },
              {
                "type": "null"
              }
            ]
          },
          "deliveryContact": {
            "description": "Delivery contact, not needed for `Quote`, but required for `Order`.",
            "anyOf": [
              {
                "$ref": "#/components/schemas/ShipmentContactRequest"
              },
              {
                "type": "null"
              }
            ]
          },
          "addOns": {
            "description": "Extra addons that can be selected/activated if supported (returned by `Quote`)",
            "enum": [
              "flexibleChanges",
              "early_delivery"
            ],
            "default": []
          }
        }
      },
      "ShipmentResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "pickupAddress": {
            "$ref": "#/components/schemas/ShipmentAddressResponse"
          },
          "pickupContact": {
            "$ref": "#/components/schemas/ShipmentContactResponse"
          },
          "deliveryAddress": {
            "$ref": "#/components/schemas/ShipmentAddressResponse"
          },
          "deliveryContact": {
            "$ref": "#/components/schemas/ShipmentContactResponse"
          },
          "pickupDate": {
            "type": "string",
            "format": "date-time"
          },
          "pickupType": {
            "type": "string",
            "enum": [
              "new_pickup_request",
              "scheduled_pickup",
              "drop_off"
            ]
          },
          "addOns": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderShipmentAddOnResponse"
            }
          },
          "routeDistance": {
            "description": "Distance in kilometers, initially calculated based on pickup and delivery address, for distance-based services.\\\nIf actual distance will be different, price will be adjusted and customer will be contacted before pickup.",
            "type": [
              "number",
              "null"
            ]
          }
        }
      },
      "TrackingDetailsCheckpoint": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "eventDate": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string",
            "enum": [
              "InfoReceived",
              "InTransit",
              "OutForDelivery",
              "AttemptFail",
              "Delivered",
              "AvailableForPickup",
              "Exception",
              "Expired",
              "Pending"
            ]
          },
          "substatus": {
            "type": "string"
          },
          "location": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "countryCode": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "message": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          }
        }
      },
      "TrackingDetailsParcel": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "parcelId": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "orderCode": {
            "type": "string"
          },
          "trackingNumber": {
            "type": "string"
          },
          "currentStatus": {
            "type": "string",
            "enum": [
              "InfoReceived",
              "InTransit",
              "OutForDelivery",
              "AttemptFail",
              "Delivered",
              "AvailableForPickup",
              "Exception",
              "Expired",
              "Pending"
            ]
          },
          "currentSubstatus": {
            "type": "string"
          },
          "updatedDate": {
            "type": "string",
            "format": "date-time"
          },
          "expectedDeliveryDate": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "example": null
          },
          "pickupDate": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "example": null
          },
          "deliveryDate": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "example": null
          },
          "signedBy": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "checkpoints": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TrackingDetailsCheckpoint"
            }
          }
        }
      },
      "TrackingDetailsResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "orderCode": {
            "type": "string"
          },
          "parcels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TrackingDetailsParcel"
            }
          }
        }
      },
      "VanRequest": {
        "type": "object",
        "description": "",
        "additionalProperties": false,
        "deprecated": false,
        "required": [
          "parcelId",
          "vanType"
        ],
        "properties": {
          "parcelId": {
            "description": "Any value, currently not used, but if multiple parcels are in same request, each must use different value.",
            "example": "A00001",
            "type": "string"
          },
          "vanType": {
            "description": "Van type, where `small_van` is for box van and `large_van` is for curtain-side van.",
            "type": "string",
            "enum": [
              "small_van",
              "large_van"
            ]
          },
          "optionalServices": {
            "description": "List of requested optional services.\\\nPrices for them are in quotes response under `options.parcelLevelOptionalServices`.\\\nSome services can be used only on some van types, and some cannot be used in parallel.\\\nList of possible values:\n- `help_loading` Loading assistance, driver will help you load the van (up to 20kg per item).\\\n   Can't be used together with `full_loading_help`\n- `help_unloading` Unloading assistance, driver will help you unload the van (up to 20kg per item).\\\n   Can't be used together with `full_unloading_help`\n- `full_loading_help` Full loading service, driver will load the van for you (up to 20kg per item).\\\n   Can't be used together with `help_loading`\n- `full_unloading_help` Full unloading service, driver will unload the van for you (up to 20kg per item).\\\n   Can't be used together with `help_unloading`\n- `tail_lift` Tail-Lift, for easy handling of heavy items (maximum van capacity up to 700Kg).\\\n   Can be used only on vanType `large_van`.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "help_loading",
                "help_unloading",
                "full_loading_help",
                "full_unloading_help",
                "tail_lift"
              ]
            }
          }
        }
      },
      "VanResponse": {
        "type": "object",
        "description": "",
        "deprecated": false,
        "properties": {
          "parcelId": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "orderCode": {
            "type": "string"
          },
          "vanType": {
            "type": "string",
            "enum": [
              "small_van",
              "large_van"
            ]
          },
          "optionalServices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OptionalServiceResponse"
            }
          },
          "price": {
            "$ref": "#/components/schemas/PriceResponse"
          }
        }
      }
    },
    "responses": {},
    "parameters": {},
    "examples": {},
    "requestBodies": {},
    "headers": {},
    "securitySchemes": {
      "x_api_key": {
        "type": "apiKey",
        "description": "Value for the x-api-key header parameter.",
        "name": "x-api-key",
        "in": "header"
      }
    }
  },
  "security": [
    {
      "x_api_key": []
    }
  ],
  "tags": [
    {
      "name": "Quote Endpoints",
      "description": "The Quote endpoint allows you to obtain accurate and up-to-date pricing for your desired shipment based on package details, service types, and other criteria. By providing comprehensive shipment information, you can receive tailored quotes reflecting available shipping options, estimated costs, and any applicable fees.\nThis powerful feature enables businesses to compare different shipping methods, optimize cost-efficiency, and provide transparent pricing to end users — all through seamless API integration. Whether you’re shipping parcels, pallets, or freight, the Quote endpoint delivers fast, reliable data essential for making informed logistics decisions.\n\n<b>Key benefits include:</b>\n\n\n* Real-time pricing based on shipment details and service types\n* Access to multiple shipping options with clear cost breakdowns\n* Support for additional services and date-based price adjustments\n* Foundation for subsequent order creation and validation workflows\n\nUse this endpoint to streamline your shipping process and empower your customers with immediate, transparent shipping quotes."
    },
    {
      "name": "Order Endpoints",
      "description": "The Order section of the Eurosender API offers a full set of endpoints to manage every step of the shipping lifecycle. From orders creation and rder validating orders, scheduling pickups, accessing shipping documents, and tracking deliveries—this section provides the tools needed to integrate smooth, automated logistics operations into your system.\n\n<b>Key capabilities include:</b>\n\n* <b>Order Creation:</b> Easily create orders and generate shipment labels\n* <b>Order Validation:</b> Validate your order data before submission to prevent errors\n* <b>Pickup Scheduling:</b> Schedule and manage pickup timeframes for your shipments\n* <b>Order Cancellation:</b> Cancel orders when allowed, before they enter shipping\n* <b>Order Tracking:</b> Monitor shipment status and delivery progress in real time\n* <b>Document Retrieval:</b> Access essential documents such as invoices, labels, and tracking codes\n* <b>Proforma Invoice Management:</b> Create and upload proforma invoices for customs clearance\n* <b>Order Details Retrieval:</b> Retrieve comprehensive status and information for a specific order using its order code.\n\nBy leveraging these endpoints, businesses can automate workflows, reduce manual errors, and ensure efficient, reliable delivery service for their customers."
    },
    {
      "name": "Proforma Endpoints",
      "description": "The Proforma endpoints enable you to handle all necessary customs documentation required for shipments involving exports or imports.  When an order status indicates `Awaiting customs documentation`, you can use these endpoints to create and upload proforma invoices, ensuring smooth customs clearance and uninterrupted shipment processing.\n<br> <br>   This functionality is critical for compliance with international shipping regulations and helps avoid delays at customs by providing accurate and timely documentation. You can create proforma documents via the API, submit the required data, and upload PDF invoices encoded in base64 format when necessary.\n\n<b>Key features include:</b>\n* Creating and managing proforma invoices tied to specific orders.\n* Uploading PDF proforma invoices securely through the API.\n* Ensuring compliance with customs requirements to prevent shipment delays.\n* Streamlining the documentation workflow as part of your shipping process automation.\n\nIntegrating proforma management into your system guarantees a seamless customs clearance experience, saving time and reducing administrative overhead."
    },
    {
      "name": "Country Endpoints",
      "description": "The Country endpoints deliver comprehensive geographic data necessary for precise and compliant shipment handling with the Eurosender API. These endpoints return lists of supported countries, cities, and regions used to define shipment origins and destinations.\n\nCertain countries—such as Ireland, Romania, Italy, the USA, and Canada—require specifying the region (by ID, name, or code) when placing orders. For some of these countries, providing the exact city name or city ID is also mandatory. These requirements are flagged within the country data payload to guide proper order submission.\n\nThe response also includes associated region IDs accessible via the `/v1/countries/{countryCode}/regions` endpoint, allowing for structured regional selection.\n\nUsing these endpoints helps ensure your system validates location data accurately, prevents order errors, and complies with local shipping regulations."
    },
    {
      "name": "Pickup Endpoints",
      "description": "The Pickup endpoints enable precise management of shipment pickups within the Eurosender API ecosystem. These endpoints support:\n* Initiating pickup requests for orders marked with `independentPickup: true`, allowing users to control pickup scheduling manually.\n* Retrieving available pickup time slots for orders, contingent on the availability flag `options.serviceTypes.pickupTimeFrameSelectionPossible` set to `true` in the quote response.\n* Automatic pickup scheduling if a manual pickup request is not triggered within 30 minutes after order placement, using default pickup time windows.\n\nThis functionality ensures your shipments are collected efficiently, providing flexibility to tailor pickup timings while automating routine scheduling. Proper use of these endpoints helps streamline logistics operations and improve delivery reliability."
    },
    {
      "name": "Pudo List Endpoint",
      "description": "This endpoint retrieves a list of available Pick-Up Drop-Off (PUDO) points based on the shipment criteria provided. It is designed for service types that involve delivery to or from a designated pick-up location, including:\n* `door_to_shop`: home collection to a PUDO point\n* `shop_to_door`: PUDO drop-off to a home delivery\n* `shop_to_shop`: PUDO drop-off to another PUDO location\n\nUse this endpoint to present users with a selection of eligible PUDO points near the sender's or recipient’s address, enabling flexible and convenient shipping arrangements."
    },
    {
      "name": "Webhooks",
      "description": " You can subscribe to a set of events sent by our webhooks.\nLog in to your Eurosender business account.\nNavigate to User dashboard → Eurosender API tab. Here you can enable webhooks and see their status.\n**Supported webhooks:**\n1) **Label(s) ready**   id: 1   code: `order_label_ready`   Trigger: When label(s) for an order become available (only for orders that require label printing).\n2) **Order was submitted to courier**   id: 2   code: `order_submitted_to_courier`   Trigger: When shipping is booked in the courier's system.\n3) **Tracking code(s) ready**   id: 3   code: `order_tracking_ready`   Trigger: When tracking codes become available for the order, but only if they weren't already available when submitted.\n4) **Order was cancelled**   id: 4   code: `order_cancelled`   Trigger: When (or if) an order is cancelled.\n5) **Delivery status**   id: 5   code: `delivery_status_updated`   Trigger: When a new delivery status event is dispatched.\n\n**Webhooks 1–4** send data in the request headers using the pattern below:\n\n**Headers:**\n```\nWebhook-Id: unique_id_for_each_webhook_sent\nWebhook-Event: code\nWebhook-Signature:...\n```\n**Body:**\n\n```JSON\n{ 'triggerId': id, 'orderCode': '123456-12', 'courierId': 23, # only for webhhok 2 'trackingCodes': [\t# only for webhooks 2, 3 { 'orderCode': '123456-12', 'trackingNumber': '11111111', 'trackingUrl': 'https://demo.com/?track=1111111' } ] }\n```\nWebhook Delivery status sends data in request header as per pattern below (same payload as `GET /v1/orders/{orderCode}/tracking` endpoint).        \n\n**Example:**\n```JSON\n{ 'notifications': [ { 'trackingDetails': { 'parcels': [ { 'parcelId': 'ebbfce6a-000e-00b4-99aa-004dc9b3ee9a', 'orderCode': '011231-24', 'trackingNumber': '10000010007', 'currentStatus': 'InfoReceived', 'currentSubstatus': 'InfoReceived_001', 'updatedDate': '2024-06-11T09:55:47+02:00', 'expectedDeliveryDate': null, 'pickupDate': '2024-06-10T14:34:31+02:00', 'deliveryDate': null, 'signedBy': null, 'checkpoints': [ { 'eventDate': '2024-06-10T14:34:31+02:00', 'status': 'InTransit', 'substatus': 'InTransit_001', 'location': null, 'countryCode': null, 'message': 'Data sent' }, { 'eventDate': '2024-06-11T11:18:24+02:00', 'status': 'InfoReceived', 'substatus': 'InfoReceived_001', 'location': 'LJUBLJANA', 'countryCode': null, 'message': 'P&S/P&R picked up' } ] } ] }, 'orderCode': '736361-24', 'triggerId': 5 } ] }\n```"
    }
  ]
}