{
  "openapi": "3.0.4",
  "info": {
    "title": "versta.io Open API",
    "description": "Спецификация к открытому API компании Верста. Для работы с API вам необходимо получить ключ доступа. Для получения ключа, пожалуйста, напишите нам на support@versta24.ru.",
    "version": "v2"
  },
  "paths": {
    "/openapi/v2/Attachments": {
      "post": {
        "tags": [
          "Attachments"
        ],
        "summary": "attachments - загрузка файла и привязка к указанной сущности",
        "description": "Загружает файл в ситему верста и привязывает к указанной в запросе сущности. К примеру, как приложение к заказу.",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "requestBody": {
          "description": "Метаданные файла и файл в base64 кодировке",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UploadRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Метаданные сохранённого файла",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileMetadata"
                }
              }
            }
          }
        }
      }
    },
    "/openapi/v2/Attachments/{attachmentId}": {
      "get": {
        "tags": [
          "Attachments"
        ],
        "summary": "attachments - скачивание файла с указанным идентификатором",
        "description": "Позволяет скачать файл из системы верста.",
        "parameters": [
          {
            "name": "attachmentId",
            "in": "path",
            "description": "Guid-идентификатор файла",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Файл",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "403": {
            "description": "Не хватает прав доступа",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorContainer"
                }
              }
            }
          },
          "404": {
            "description": "Файл не найден"
          }
        }
      }
    },
    "/openapi/v2/Attachments/{attachmentId}/meta": {
      "get": {
        "tags": [
          "Attachments"
        ],
        "summary": "attachments - метаданные файла с указанным идентификатором",
        "description": "Возвращает метаданные файла со ссылкой для скачивания.",
        "parameters": [
          {
            "name": "attachmentId",
            "in": "path",
            "description": "Guid-идентификатор файла",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Данные файла",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileMetadata"
                }
              }
            }
          },
          "403": {
            "description": "Не хватает прав доступа",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorContainer"
                }
              }
            }
          },
          "404": {
            "description": "Файл не найден"
          }
        }
      }
    },
    "/openapi/v2/Calc": {
      "post": {
        "tags": [
          "Calc"
        ],
        "summary": "calc - расчет стоимости",
        "description": "Рассчитывает стоимость по переданным параметрам и возвращает возможные варианты доставки для отображения\nпользователю.",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "requestBody": {
          "description": "Параметры для поиска вариантов доставки",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalcRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Возможные варианты доставки",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CalcResponse"
                }
              }
            }
          },
          "400": {
            "description": "Информация об ошибке",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorContainer"
                }
              }
            }
          }
        }
      }
    },
    "/openapi/v2/Calc/byDays": {
      "post": {
        "tags": [
          "Calc"
        ],
        "summary": "calc/byDays - расчет стоимости доставок с разбивкой на возможные даты доставки",
        "description": "Рассчитывает стоимость по переданным параметрам и возвращает возможные варианты доставки на каждую дату доставки\nначиная с сегодняшней + указанное количество дней.",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "requestBody": {
          "description": "Параметры для поиска вариантов доставки",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalcRequestByDays"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Возможные варианты доставки по датам доставки",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CalcResponseByDays"
                }
              }
            }
          },
          "400": {
            "description": "Информация об ошибке",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorContainer"
                }
              }
            }
          }
        }
      }
    },
    "/openapi/v2/Companies": {
      "post": {
        "tags": [
          "Companies"
        ],
        "summary": "Создание компании и пользователя к этой компании",
        "description": "Если SendUserCredentialByEmail - true, отправляем логин и пароль новому пользователю.",
        "parameters": [
          {
            "name": "PartnerKey",
            "in": "header",
            "description": "Идентификатор партнера. Необязательный параметр",
            "schema": {
              "type": "string",
              "example": "82117599-5a11-444d-8738-c52a1de08706"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCompanyModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Возвращаем userApiKey, если GenerateApiKey - true",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateCompanyResponse"
                }
              }
            }
          },
          "400": {
            "description": "Информация об ошибке",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorContainer"
                }
              }
            }
          }
        }
      }
    },
    "/openapi/v2/Companies/balance/invoice": {
      "get": {
        "tags": [
          "Companies"
        ],
        "summary": "Получение счета на пополнение баланса",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "Идентификатор компании. Необязательный параметр",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "amount",
            "in": "query",
            "description": "Сумма пополнения баланса компании. Cумма указывается в рублях. Обязательный параметр, положительное дробное или целое число",
            "required": true,
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "PDF-файл со счетом на пополнение баланса",
            "content": {
              "application/octet-stream": {}
            }
          },
          "400": {
            "description": "Некорректная сумма пополнения",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorContainer"
                }
              }
            }
          },
          "403": {
            "description": "Нет доступа к компании",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorContainer"
                }
              }
            }
          },
          "404": {
            "description": "Компания не найдена",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorContainer"
                }
              }
            }
          },
          "500": {
            "description": "Серверная ошибка формирования PDF-файла со счетом"
          }
        }
      }
    },
    "/openapi/v2/Companies/{id}/balance": {
      "get": {
        "tags": [
          "Companies"
        ],
        "summary": "Получение текущего баланса компании",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ИНН или идентификатор компании",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Текущий баланс компании",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyBalance"
                }
              }
            }
          },
          "403": {
            "description": "Нет доступа к методу",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorContainer"
                }
              }
            }
          },
          "404": {
            "description": "Компания не найдена"
          }
        }
      }
    },
    "/openapi/v2/Companies/{id}/balance/history": {
      "get": {
        "tags": [
          "Companies"
        ],
        "summary": "Получение истории изменения баланса компании",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ИНН или идентификатор компании",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Номер страницы, можно не передавать, если запрашивается первая страница",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "История изменения баланса компании",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BalanceHistory"
                }
              }
            }
          },
          "403": {
            "description": "Нет доступа к методу",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorContainer"
                }
              }
            }
          },
          "404": {
            "description": "Компания не найдена"
          }
        }
      }
    },
    "/openapi/v2/NatureOfGoods": {
      "get": {
        "tags": [
          "NatureOfGoods"
        ],
        "summary": "Список доступных характеров грузов. Используйте возвращённый code в поле cargo.natureOfGoods при создании заказа или расчёте",
        "description": "Возвращает список номенклатуры грузов с внутренними кодами Versta.\nПоиск осуществляется по названию (регистронезависимый, поддерживает смену раскладки клавиатуры).\nЕсли параметр searchQuery не указан, возвращаются все доступные записи (с учётом count).",
        "parameters": [
          {
            "name": "Count",
            "in": "query",
            "description": "Максимальное число элементов в результате поиска",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "SearchQuery",
            "in": "query",
            "description": "Строка, по которой осуществляется поиск",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Список номенклатур",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NatureOfGoodsModelListContainer"
                }
              }
            }
          }
        }
      }
    },
    "/openapi/v2/NatureOfGoods/{code}": {
      "get": {
        "tags": [
          "NatureOfGoods"
        ],
        "summary": "Получить информацию о характере груза по коду Versta",
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "Внутренний код Versta (например, \"tires\", \"documents\")",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Информация о номенклатуре",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NatureOfGoodsModel"
                }
              }
            }
          },
          "404": {
            "description": "Номенклатура не найдена",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorContainer"
                }
              }
            }
          }
        }
      }
    },
    "/openapi/v2/Orders": {
      "post": {
        "tags": [
          "Orders"
        ],
        "summary": "Создание заказа",
        "description": "Создает заказ с переданными параметрами в статусе Запрос ставки (RateRequest) и передает его поставщику на\nвыполнение \\\nДля того, чтобы заказ был сразу передан поставщику, необходимо указать поля VendorId и TariffId в\nOption",
        "parameters": [
          {
            "name": "PartnerKey",
            "in": "header",
            "description": "Идентификатор партнера. Необязательный параметр",
            "schema": {
              "type": "string",
              "example": "82117599-5a11-444d-8738-c52a1de08706"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "requestBody": {
          "description": "Параметры создаваемого заказа",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrderCreateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Заказ сохранен и передан поставщику. Возвращает информацию о сохраненном заказе",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderCreateResponseContainerWithErrors"
                }
              }
            }
          },
          "400": {
            "description": "При сохранении заказа произошла ошибка. Возвращает информацию об ошибке (Если произошла ошибка\nвалидации, то <b>ApiErrorContainer</b>. Иначе <b>OrderApiErrorContainer</b>)",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ApiErrorContainer"
                    },
                    {
                      "$ref": "#/components/schemas/OrderApiErrorContainer"
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Orders"
        ],
        "summary": "Получить список заказов",
        "description": "Возвращает список заказов по переданному фильтру",
        "parameters": [
          {
            "name": "ordersId[]",
            "in": "query",
            "description": "Фильтр по номерам заказа. Может быть указаны  следующие номера:\n- номер заказа верста - OrderId - V24X-XXX-XXX-XXX\n- клиентский номер заказа - CustomerOrderId\n- номер накладной поставщика VendorInvoiceNumber",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "V243-700-000-001",
                "V243-700-000-002"
              ]
            },
            "example": [
              "V243-700-000-001",
              "V243-700-000-002"
            ]
          },
          {
            "name": "CreateDateFrom",
            "in": "query",
            "description": "Дата создания заказа в формате yyyy-MM-dd, начиная с которой включительно выполняется выборка заказов",
            "schema": {
              "type": "string",
              "example": "2020-03-30"
            },
            "example": "2020-03-30"
          },
          {
            "name": "CreateDateTo",
            "in": "query",
            "description": "Дата создания заказа в формате yyyy-MM-dd, до которой включительно выполняется выборка заказов",
            "schema": {
              "type": "string",
              "example": "2020-03-31"
            },
            "example": "2020-03-31"
          },
          {
            "name": "TakeDateFrom",
            "in": "query",
            "description": "Дата забора в формате yyyy-MM-dd, начиная с которой включительно выполняется выборка заказов",
            "schema": {
              "type": "string",
              "example": "2020-03-30"
            },
            "example": "2020-03-30"
          },
          {
            "name": "TakeDateTo",
            "in": "query",
            "description": "Дата забора в формате yyyy-MM-dd, до которой включительно выполняется выборка заказов",
            "schema": {
              "type": "string",
              "example": "2020-03-31"
            },
            "example": "2020-03-31"
          },
          {
            "name": "SearchMode",
            "in": "query",
            "description": "Режим поиска по номерам из ordersId. Без указания параметра поиск выполняется по всем номерам заказа.\n\nByVerstaNum - По номеру заказа в системе Верста\n\nByVendorInvoiceNum - По номеру накладной поставщика\n\nByVendorReturnInvoiceNum - По номеру возвратной накладной поставщика\n\nByVendorPickupNum - По номеру заказа или вызова курьера поставщика\n\nByCustomerNum - По клиентскому номеру\n\nByTrackingId - По дополнительному номеру для трекинга\n\nByAll - По всем номерам заказа",
            "schema": {
              "$ref": "#/components/schemas/OrderIdSearchMode"
            },
            "example": "ByVerstaNum"
          },
          {
            "name": "Department",
            "in": "query",
            "description": "Фильтр по аналитике \"подразделение\" из заказов. Сравнение происходит регистронезависимо, но совпадение должно быть 100%",
            "schema": {
              "type": "string",
              "example": "Финансы"
            },
            "example": "Финансы"
          },
          {
            "name": "Project",
            "in": "query",
            "description": "Фильтр по аналитике \"проект\" из заказов. Сравнение происходит регистронезависимо, но совпадение должно быть 100%",
            "schema": {
              "type": "string",
              "example": "Маркетплейсы"
            },
            "example": "Маркетплейсы"
          },
          {
            "name": "PageNum",
            "in": "query",
            "description": "Номер страницы.\n\nНомер страницы (с 1). Если не передать — будет использован 1.",
            "schema": {
              "minimum": 1,
              "type": "integer",
              "format": "int32",
              "default": 1,
              "example": 1
            },
            "example": 1
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "Размер страницы.\n\nПо умолчанию: 1000. Максимум: 1000 (при превышении обрезается). Если меньше 1 — нормализуется к 1.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32",
              "default": 1000,
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Список заказов с информацией о каждом заказе",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrdersGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Информация об ошибке",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorContainer"
                }
              }
            }
          }
        }
      }
    },
    "/openapi/v2/Orders/{orderId}": {
      "get": {
        "tags": [
          "Orders"
        ],
        "summary": "Получить заказ по orderId",
        "description": "Возвращает полную информацию о заказе по его orderId",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "description": "Номер заказа versta24, клиентский номер или номер накладной\nпоставщика",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "V24X-XXX-XXX-XXX-XXX"
          },
          {
            "name": "searchMode",
            "in": "query",
            "description": "Какому полю должен соответствовать orderId, без указания параметра поиск будет производиться\nпо номеру заказа versta24.\n\n0 - По номеру заказа в системе Верста (ByVerstaNum)\n\n1 - По номеру накладной поставщика (ByVendorInvoiceNum)\n\n2 - По номеру возвратной накладной поставщика (ByVendorReturnInvoiceNum)\n\n3 - По номеру заказа или вызова курьера поставщика (ByVendorPickupNum)\n\n4 - По клиентскому номеру (ByCustomerNum)\n\n5 - По дополнительному номеру для трекинга (ByTrackingId)\n\n6 - По всем номерам заказа (ByAll)",
            "schema": {
              "$ref": "#/components/schemas/OrderIdSearchMode"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Информация о сохраненном заказе",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderGetResponseContainer"
                }
              }
            }
          },
          "400": {
            "description": "Информация об ошибке",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorContainer"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Orders"
        ],
        "summary": "Обновить данные заказа",
        "description": "Обновляет данные в заказе",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "description": "Номер заказа versta24, клиентский номер или номер накладной поставщика",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "V24X-XXX-XXX-XXX"
          },
          {
            "name": "searchMode",
            "in": "query",
            "description": "Какому полю должен соответствовать orderId, без указания параметра поиск будет производиться\nпо номеру заказа versta24.\n\n0 - По номеру заказа в системе Верста (ByVerstaNum)\n\n1 - По номеру накладной поставщика (ByVendorInvoiceNum)\n\n2 - По номеру возвратной накладной поставщика (ByVendorReturnInvoiceNum)\n\n3 - По номеру заказа или вызова курьера поставщика (ByVendorPickupNum)\n\n4 - По клиентскому номеру (ByCustomerNum)\n\n5 - По дополнительному номеру для трекинга (ByTrackingId)\n\n6 - По всем номерам заказа (ByAll)",
            "schema": {
              "$ref": "#/components/schemas/OrderIdSearchMode"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangesRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Информация о сохраненном заказе",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderGetResponseContainer"
                }
              }
            }
          },
          "400": {
            "description": "Информация об ошибке",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderApiErrorContainer"
                }
              }
            }
          },
          "403": {
            "description": "Внесение изменений в заказ или поле заказа запрещено",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderApiErrorContainer"
                }
              }
            }
          }
        }
      }
    },
    "/openapi/v2/Orders/{orderId}/cancel": {
      "delete": {
        "tags": [
          "Orders"
        ],
        "summary": "Отмена заказа",
        "description": "Создает запрос на отмену заказа и возвращает результат создания этого запроса. Следует обратить внимание, что по\nправилам тарифного положения\nбесплатная отмена заказа доступна только в течении 20 минут после его создания. Далее за каждый отмененный заказ\nможет взиматься плата, согласно тарифу\n(см. тарифное положение)",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "description": "Номер заказа versta24, клиентский номер или номер накладной поставщика",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "V24X-XXX-XXX-XXX"
          },
          {
            "name": "searchMode",
            "in": "query",
            "description": "Какому полю должен соответствовать orderId, без указания параметра поиск будет производиться\nпо номеру заказа versta24.\n\n0 - По номеру заказа в системе Верста (ByVerstaNum)\n\n1 - По номеру накладной поставщика (ByVendorInvoiceNum)\n\n2 - По номеру возвратной накладной поставщика (ByVendorReturnInvoiceNum)\n\n3 - По номеру заказа или вызова курьера поставщика (ByVendorPickupNum)\n\n4 - По клиентскому номеру (ByCustomerNum)\n\n5 - По дополнительному номеру для трекинга (ByTrackingId)\n\n6 - По всем номерам заказа (ByAll)",
            "schema": {
              "$ref": "#/components/schemas/OrderIdSearchMode"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Заявка на отмену заказа успешно размещена и будет обработана",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CancelOrderResponse"
                }
              }
            }
          },
          "400": {
            "description": "Информация об ошибке",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorContainer"
                }
              }
            }
          }
        }
      }
    },
    "/openapi/v2/Orders/{orderId}/track": {
      "get": {
        "tags": [
          "Orders"
        ],
        "summary": "track - отслеживание заказов",
        "description": "Возвращает отслеживание по заказу.",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "description": "Номер заказа versta24, клиентский номер или номер накладной поставщика",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "V24X-XXX-XXX-XXX"
          },
          {
            "name": "searchMode",
            "in": "query",
            "description": "Какому полю должен соответствовать orderId, без указания параметра поиск будет производиться\nпо номеру заказа versta24.\n\n0 - По номеру заказа в системе Верста (ByVerstaNum)\n\n1 - По номеру накладной поставщика (ByVendorInvoiceNum)\n\n2 - По номеру возвратной накладной поставщика (ByVendorReturnInvoiceNum)\n\n3 - По номеру заказа или вызова курьера поставщика (ByVendorPickupNum)\n\n4 - По клиентскому номеру (ByCustomerNum)\n\n5 - По дополнительному номеру для трекинга (ByTrackingId)\n\n6 - По всем номерам заказа (ByAll)",
            "schema": {
              "$ref": "#/components/schemas/OrderIdSearchMode"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackingResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorContainer"
                }
              }
            }
          }
        }
      }
    },
    "/openapi/v2/Orders/{orderId}/print/{docType}": {
      "get": {
        "tags": [
          "Orders"
        ],
        "summary": "print - Печать накладной по заказу",
        "description": "Возвращает pdf файл с накладной по конкретному заказу. Распечатать накладную или ШК грузомест можно только по\nзаказам, которые уже были в статусе \"Передан поставщику\" и не отменены",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "description": "Номер заказа versta24, клиентский номер или номер накладной поставщика",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "V24X-XXX-XXX-XXX"
          },
          {
            "name": "searchMode",
            "in": "query",
            "description": "Какому полю должен соответствовать orderId, без указания параметра поиск будет производиться\nпо номеру заказа versta24.\n\n0 - По номеру заказа в системе Верста (ByVerstaNum)\n\n1 - По номеру накладной поставщика (ByVendorInvoiceNum)\n\n2 - По номеру возвратной накладной поставщика (ByVendorReturnInvoiceNum)\n\n3 - По номеру заказа или вызова курьера поставщика (ByVendorPickupNum)\n\n4 - По клиентскому номеру (ByCustomerNum)\n\n5 - По дополнительному номеру для трекинга (ByTrackingId)\n\n6 - По всем номерам заказа (ByAll)",
            "schema": {
              "$ref": "#/components/schemas/OrderIdSearchMode"
            }
          },
          {
            "name": "InvoiceCopy",
            "in": "query",
            "description": "Количество копий накладной. По умолчанию - 2",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 2
            },
            "example": 2
          },
          {
            "name": "PrintInvoice",
            "in": "query",
            "description": "Печатать накладную. По умолчанию - true",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "PrintInsurancePolicy",
            "in": "query",
            "description": "Печатать страховой полис",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "PrintCargoMarks",
            "in": "query",
            "description": "Печатать грузовые марки",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "docType",
            "in": "path",
            "description": "Тип печатаемого файла. Можно использовать как маску\nInvoice = 1 - Накладная заказа,\n\nBarcode = 2 - Штрихкод груза,\n\nInsurancePolicy = 4 - Страховка,\n\nInvoiceScan = 8 - Скан накладной,\n\nDeliveryConfirmation = 16 - Подтверждение заказа",
            "schema": {
              "$ref": "#/components/schemas/ApiPrintDocTypes"
            }
          },
          {
            "name": "marksFormat",
            "in": "query",
            "description": "Формат печатаемого штрихкода. \n\nA4 = 0,\n\nA5 = 1,\n\nA6 = 2,\n\nA7 = 3",
            "schema": {
              "$ref": "#/components/schemas/ApiMarksFormat"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Файл с печатной формой накладной в формате pdf (ContentType: application/pdf)",
            "content": {
              "application/octet-stream": {}
            }
          },
          "400": {
            "description": "Информация об ошибке",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorContainer"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Orders"
        ],
        "summary": "print - формирование печатного документа",
        "description": "Возвращает pdf файл с накладной по конкретному заказу вместе с переданным в запросе документом клиента. Распечатать\nнакладную или ШК грузомест можно только по заказам, которые уже были в статусе \"Передан поставщику\" и не отменены",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "description": "Номер заказа versta24, клиентский номер или номер накладной поставщика",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "V24X-XXX-XXX-XXX"
          },
          {
            "name": "searchMode",
            "in": "query",
            "description": "Какому полю должен соответствовать orderId, без указания параметра поиск будет производиться\nпо номеру заказа versta24.\n\n0 - По номеру заказа в системе Верста (ByVerstaNum)\n\n1 - По номеру накладной поставщика (ByVendorInvoiceNum)\n\n2 - По номеру возвратной накладной поставщика (ByVendorReturnInvoiceNum)\n\n3 - По номеру заказа или вызова курьера поставщика (ByVendorPickupNum)\n\n4 - По клиентскому номеру (ByCustomerNum)\n\n5 - По дополнительному номеру для трекинга (ByTrackingId)\n\n6 - По всем номерам заказа (ByAll)",
            "schema": {
              "$ref": "#/components/schemas/OrderIdSearchMode"
            }
          },
          {
            "name": "InvoiceCopy",
            "in": "query",
            "description": "Количество копий накладной. По умолчанию - 2",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 2
            },
            "example": 2
          },
          {
            "name": "PrintInvoice",
            "in": "query",
            "description": "Печатать накладную. По умолчанию - true",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "PrintInsurancePolicy",
            "in": "query",
            "description": "Печатать страховой полис",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "PrintCargoMarks",
            "in": "query",
            "description": "Печатать грузовые марки",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "docType",
            "in": "path",
            "description": "Тип печатаемого файла. Можно использовать как маску\nInvoice = 1 - Накладная заказа,\n\nBarcode = 2 - Штрихкод груза,\n\nInsurancePolicy = 4 - Страховка,\n\nDeliveryConfirmation = 16 - Подтверждение заказа",
            "schema": {
              "$ref": "#/components/schemas/ApiPrintDocTypes"
            }
          },
          {
            "name": "marksFormat",
            "in": "query",
            "description": "Формат печатаемого штрихкода. \n\nA4 = 0,\n\nA5 = 1,\n\nA6 = 2,\n\nA7 = 3",
            "schema": {
              "$ref": "#/components/schemas/ApiMarksFormat"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "requestBody": {
          "description": "Сведения о документе, который нужно соединить с файлом печатной накладной",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PrintIncludeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Файл с печатной формой накладной в формате pdf (ContentType: application/pdf)",
            "content": {
              "application/octet-stream": {}
            }
          },
          "400": {
            "description": "Информация об ошибке",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorContainer"
                }
              }
            }
          }
        }
      }
    },
    "/openapi/v2/Orders/print/{docType}": {
      "get": {
        "tags": [
          "Orders"
        ],
        "summary": "print - формирование печатного документа по нескольким заказам",
        "description": "Возвращает pdf файл с накладной по конкретному заказу вместе с переданным в запросе документом клиента. Распечатать\nнакладную или ШК грузомест можно только по заказам, которые уже были в статусе \"Передан поставщику\" и не отменены",
        "parameters": [
          {
            "name": "ordersId[]",
            "in": "query",
            "description": "Список номеров заказа versta24",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "example": "V24X-XXX-XXX-XXX"
          },
          {
            "name": "searchMode",
            "in": "query",
            "description": "Какому полю должен соответствовать orderId, без указания параметра поиск будет производиться\nпо номеру заказа versta24.\n\n0 - По номеру заказа в системе Верста (ByVerstaNum)\n\n1 - По номеру накладной поставщика (ByVendorInvoiceNum)\n\n2 - По номеру возвратной накладной поставщика (ByVendorReturnInvoiceNum)\n\n3 - По номеру заказа или вызова курьера поставщика (ByVendorPickupNum)\n\n4 - По клиентскому номеру (ByCustomerNum)\n\n5 - По дополнительному номеру для трекинга (ByTrackingId)\n\n6 - По всем номерам заказа (ByAll)",
            "schema": {
              "$ref": "#/components/schemas/OrderIdSearchMode"
            }
          },
          {
            "name": "InvoiceCopy",
            "in": "query",
            "description": "Количество копий накладной. По умолчанию - 2",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 2
            },
            "example": 2
          },
          {
            "name": "PrintInvoice",
            "in": "query",
            "description": "Печатать накладную. По умолчанию - true",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "PrintInsurancePolicy",
            "in": "query",
            "description": "Печатать страховой полис",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "PrintCargoMarks",
            "in": "query",
            "description": "Печатать грузовые марки",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "docType",
            "in": "path",
            "description": "Тип печатаемого файла. Можно использовать как маску\nInvoice = 1 - Накладная заказа,\n\nBarcode = 2 - Штрихкод груза,\n\nInsurancePolicy = 4 - Страховка,\n\nDeliveryConfirmation = 16 - Подтверждение заказа",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ApiPrintDocTypes"
            }
          },
          {
            "name": "marksFormat",
            "in": "query",
            "description": "Формат печатаемого штрихкода. \n\nA4 = 0,\n\nA5 = 1,\n\nA6 = 2,\n\nA7 = 3",
            "schema": {
              "$ref": "#/components/schemas/ApiMarksFormat"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Файл с печатной формой накладной в формате pdf (ContentType: application/pdf)",
            "content": {
              "application/octet-stream": {}
            }
          },
          "400": {
            "description": "Информация об ошибке",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorContainer"
                }
              }
            }
          }
        }
      }
    },
    "/openapi/v2/Orders/{orderId}/push": {
      "post": {
        "tags": [
          "Orders"
        ],
        "summary": "pushToVendor - Передача заказа поставщику",
        "description": "Передает сохраненный заказ выбранному поставщику с выбранным вариантом доставки. \n\nЕсли не были переданы параметры в запросе, то берем из заказа",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "description": "Номер заказа versta24, клиентский номер или номер накладной поставщика",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "V24X-XXX-XXX-XXX"
          },
          {
            "name": "searchMode",
            "in": "query",
            "description": "Какому полю должен соответствовать orderId, без указания параметра поиск будет производиться\nпо номеру заказа versta24.\n\n0 - По номеру заказа в системе Верста (ByVerstaNum)\n\n1 - По номеру накладной поставщика (ByVendorInvoiceNum)\n\n2 - По номеру возвратной накладной поставщика (ByVendorReturnInvoiceNum)\n\n3 - По номеру заказа или вызова курьера поставщика (ByVendorPickupNum)\n\n4 - По клиентскому номеру (ByCustomerNum)\n\n5 - По дополнительному номеру для трекинга (ByTrackingId)\n\n6 - По всем номерам заказа (ByAll)",
            "schema": {
              "$ref": "#/components/schemas/OrderIdSearchMode"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "requestBody": {
          "description": "Парметры для передачи заказа поставщику",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PushToVendorRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Заказ успешно передан поставщику. Ответ содержит дополнительную информацию о переданном заказе",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderCreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "При передачи заказа поставщику произошла ошибка. Возвращает информацию об ошибке. (Если произошла\nошибка валидации, то <b>ApiErrorContainer</b>. Иначе <b>OrderApiErrorContainer</b>)",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ApiErrorContainer"
                    },
                    {
                      "$ref": "#/components/schemas/OrderApiErrorContainer"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/openapi/v2/Orders/{orderId}/callCourier": {
      "post": {
        "tags": [
          "Orders"
        ],
        "summary": "callCourier - вызов курьера",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "description": "Номер заказа versta24, клиентский номер или номер накладной поставщика",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "V24X-XXX-XXX-XXX"
          },
          {
            "name": "searchMode",
            "in": "query",
            "description": "Какому полю должен соответствовать orderId, без указания параметра поиск будет производиться\nпо номеру заказа versta24.\n\n0 - По номеру заказа в системе Верста (ByVerstaNum)\n\n1 - По номеру накладной поставщика (ByVendorInvoiceNum)\n\n2 - По номеру возвратной накладной поставщика (ByVendorReturnInvoiceNum)\n\n3 - По номеру заказа или вызова курьера поставщика (ByVendorPickupNum)\n\n4 - По клиентскому номеру (ByCustomerNum)\n\n5 - По дополнительному номеру для трекинга (ByTrackingId)\n\n6 - По всем номерам заказа (ByAll)",
            "schema": {
              "$ref": "#/components/schemas/OrderIdSearchMode"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "requestBody": {
          "description": "Параметры для вызова курьера",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CallCourierPickupInfo"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Результат вызова курьера по каждому заказу",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderCreateResponseContainer"
                }
              }
            }
          },
          "400": {
            "description": "Информация об ошибке",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorContainer"
                }
              }
            }
          }
        }
      }
    },
    "/openapi/v2/Orders/report": {
      "get": {
        "tags": [
          "Orders"
        ],
        "summary": "Получить отчет по списку заказов по выбранному шаблону",
        "description": "Возвращает указанные в шаблоне отчета поля по каждому заказу из отфильтрованного списка",
        "parameters": [
          {
            "name": "TemplateId",
            "in": "query",
            "description": "Id шаблона отчета",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 123
            },
            "example": 123
          },
          {
            "name": "ordersId[]",
            "in": "query",
            "description": "Фильтр по номерам заказа. Может быть указаны  следующие номера:\n- номер заказа верста - OrderId - V24X-XXX-XXX-XXX\n- клиентский номер заказа - CustomerOrderId\n- номер накладной поставщика VendorInvoiceNumber",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "V243-700-000-001",
                "V243-700-000-002"
              ]
            },
            "example": [
              "V243-700-000-001",
              "V243-700-000-002"
            ]
          },
          {
            "name": "CreateDateFrom",
            "in": "query",
            "description": "Дата создания заказа в формате yyyy-MM-dd, начиная с которой включительно выполняется выборка заказов",
            "schema": {
              "type": "string",
              "example": "2020-03-30"
            },
            "example": "2020-03-30"
          },
          {
            "name": "CreateDateTo",
            "in": "query",
            "description": "Дата создания заказа в формате yyyy-MM-dd, до которой включительно выполняется выборка заказов",
            "schema": {
              "type": "string",
              "example": "2020-03-31"
            },
            "example": "2020-03-31"
          },
          {
            "name": "TakeDateFrom",
            "in": "query",
            "description": "Дата забора в формате yyyy-MM-dd, начиная с которой включительно выполняется выборка заказов",
            "schema": {
              "type": "string",
              "example": "2020-03-30"
            },
            "example": "2020-03-30"
          },
          {
            "name": "TakeDateTo",
            "in": "query",
            "description": "Дата забора в формате yyyy-MM-dd, до которой включительно выполняется выборка заказов",
            "schema": {
              "type": "string",
              "example": "2020-03-31"
            },
            "example": "2020-03-31"
          },
          {
            "name": "SearchMode",
            "in": "query",
            "description": "Режим поиска по номерам из ordersId. Без указания параметра поиск выполняется по всем номерам заказа.\n\nByVerstaNum - По номеру заказа в системе Верста\n\nByVendorInvoiceNum - По номеру накладной поставщика\n\nByVendorReturnInvoiceNum - По номеру возвратной накладной поставщика\n\nByVendorPickupNum - По номеру заказа или вызова курьера поставщика\n\nByCustomerNum - По клиентскому номеру\n\nByTrackingId - По дополнительному номеру для трекинга\n\nByAll - По всем номерам заказа",
            "schema": {
              "$ref": "#/components/schemas/OrderIdSearchMode"
            },
            "example": "ByVerstaNum"
          },
          {
            "name": "Department",
            "in": "query",
            "description": "Фильтр по аналитике \"подразделение\" из заказов. Сравнение происходит регистронезависимо, но совпадение должно быть 100%",
            "schema": {
              "type": "string",
              "example": "Финансы"
            },
            "example": "Финансы"
          },
          {
            "name": "Project",
            "in": "query",
            "description": "Фильтр по аналитике \"проект\" из заказов. Сравнение происходит регистронезависимо, но совпадение должно быть 100%",
            "schema": {
              "type": "string",
              "example": "Маркетплейсы"
            },
            "example": "Маркетплейсы"
          },
          {
            "name": "PageNum",
            "in": "query",
            "description": "Номер страницы.\n\nНомер страницы (с 1). Если не передать — будет использован 1.",
            "schema": {
              "minimum": 1,
              "type": "integer",
              "format": "int32",
              "default": 1,
              "example": 1
            },
            "example": 1
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "Размер страницы.\n\nПо умолчанию: 1000. Максимум: 1000 (при превышении обрезается). Если меньше 1 — нормализуется к 1.",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int32",
              "default": 1000,
              "example": 100
            },
            "example": 100
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "JSON с указанными в шаблоне отчета параметрами",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UniversalReportItemValuesArrayContainer"
                }
              }
            }
          },
          "400": {
            "description": "Информация об ошибке",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorContainer"
                }
              }
            }
          },
          "500": {
            "description": "Внутренняя ошибка сервера",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorContainer"
                }
              }
            }
          }
        }
      }
    },
    "/openapi/v2/Orders/{orderId}/children": {
      "get": {
        "tags": [
          "Orders"
        ],
        "summary": "Получить вложенные заказы",
        "description": "Возвращает список вложенных заказов для переданного главного",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "description": "Номер заказа versta24, клиентский номер или номер накладной поставщика",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "V24X-XXX-XXX-XXX-XXX"
          },
          {
            "name": "searchMode",
            "in": "query",
            "description": "Какому полю должен соответствовать orderId, без указания параметра поиск будет производиться\nпо номеру заказа versta24.\n\n0 - По номеру заказа в системе Верста (ByVerstaNum)\n\n1 - По номеру накладной поставщика (ByVendorInvoiceNum)\n\n2 - По номеру возвратной накладной поставщика (ByVendorReturnInvoiceNum)\n\n3 - По номеру заказа или вызова курьера поставщика (ByVendorPickupNum)\n\n4 - По клиентскому номеру (ByCustomerNum)\n\n5 - По дополнительному номеру для трекинга (ByTrackingId)\n\n6 - По всем номерам заказа (ByAll)",
            "schema": {
              "$ref": "#/components/schemas/OrderIdSearchMode"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Список вложенных заказов с информацией о каждом заказе",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrdersGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Информация об ошибке",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorContainer"
                }
              }
            }
          }
        }
      }
    },
    "/openapi/v2/Orders/{orderId}/payment": {
      "get": {
        "tags": [
          "Orders"
        ],
        "summary": "Возвращает ссылку на оплату заказа",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/openapi/v2/Orders/{orderId}/payment/retry": {
      "post": {
        "tags": [
          "Orders"
        ],
        "summary": "Повторное получение ссылки на оплату",
        "description": "Запрашивает новую ссылку на оплату для заказа, по которому предыдущая попытка завершилась\nнеуспешно (PaymentStatuses.Failed).",
        "parameters": [
          {
            "name": "origin",
            "in": "query",
            "description": "Источник заказа (виджет, веб, OpenApi).",
            "schema": {
              "$ref": "#/components/schemas/ApiOrderOrigin"
            }
          },
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/openapi/v2/PickupPoints": {
      "get": {
        "tags": [
          "PickupPoints"
        ],
        "summary": "List - список пунктов выдачи и приемки заказов",
        "description": "Возвращает список пунктов выдачи и приемки заказов по заданным фильтрам географии, постащику, характеру и\nпараметрам груза",
        "parameters": [
          {
            "name": "VendorId",
            "in": "query",
            "description": "Необязательный параметр. Фильтр по одному поставщику.\nЕсли указан идентификатор поставщика, то возвращаются только точки выдачи конкретного поставщика.\nЕсли данный параметр не указан, то возвращается список точек выдачи всех доступных поставщиков.\n<b>Приоритет:</b> если указан VendorId, параметр VendorIds игнорируется.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 1
            },
            "example": 1
          },
          {
            "name": "VendorIds",
            "in": "query",
            "description": "Необязательный параметр. Фильтр по нескольким поставщикам.\nПозволяет указать массив идентификаторов поставщиков для получения точек выдачи нескольких конкретных поставщиков.\nЕсли данный параметр не указан (и VendorId тоже не указан), то возвращается список точек выдачи всех доступных поставщиков.\n<b>Приоритет:</b> если указан VendorId, параметр VendorIds игнорируется.",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "CargoQty",
            "in": "query",
            "description": "Необязательный параметр. Фильтр по количеству грузомест, которое может принять\nпункт выдачи и приемки заказов",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 1
            },
            "example": 1
          },
          {
            "name": "TotalWeight",
            "in": "query",
            "description": "Необязательный параметр. Фильтр по максимальной весу (в кг), которое может принять\nпункт выдачи и приемки заказов",
            "schema": {
              "type": "number",
              "format": "double",
              "example": 1.5
            },
            "example": 1.5
          },
          {
            "name": "MaxWidth",
            "in": "query",
            "description": "Необязательный параметр. Фильтр по максимальной ширине (в см) грузоместа, которое может\nпринять пункт выдачи и приемки заказов",
            "schema": {
              "type": "number",
              "format": "double",
              "example": 15
            },
            "example": 15
          },
          {
            "name": "MaxLength",
            "in": "query",
            "description": "Необязательный параметр. Фильтр по максимальной длине (в см) грузоместа, которое может\nпринять пункт выдачи и приемки заказов",
            "schema": {
              "type": "number",
              "format": "double",
              "example": 16
            },
            "example": 16
          },
          {
            "name": "MaxHeight",
            "in": "query",
            "description": "Необязательный параметр. Фильтр по максимальной высоте (в см) грузоместа, которое может\nпринять пункт выдачи и приемки заказов",
            "schema": {
              "type": "number",
              "format": "double",
              "example": 25
            },
            "example": 25
          },
          {
            "name": "Mode",
            "in": "query",
            "description": "Режимы работы ПВЗ\n\nIntake=1 На приём отправлений \n\nPickup=2 На выдачу отправлений \n\nПо умолчанию может работать как на выдачу, так и на приём",
            "schema": {
              "$ref": "#/components/schemas/PickupPointModes"
            },
            "example": 3
          },
          {
            "name": "Type",
            "in": "query",
            "description": "Тип ПВЗ\n\n0 - ПВЗ \\\n1 - Постомат \\\n2 - Абонентский ящик \\\n3 - Маркетплейс",
            "schema": {
              "$ref": "#/components/schemas/ApiPickupPointType"
            }
          },
          {
            "name": "services",
            "in": "query",
            "description": "Список кодов услуг. Например: Check \n\nСписок услуг см. <a href=\"/api/reference/services\">справочник</a>",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": "Check"
            },
            "example": "Check"
          },
          {
            "name": "MinLat",
            "in": "query",
            "description": "Минимальная широта bounding box (южная граница), [-90, 90].\nИспользуется для запроса ПВЗ без указания города.\nЕсли город определён, bbox игнорируется. Требует указания VendorId или VendorIds.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "MaxLat",
            "in": "query",
            "description": "Максимальная широта bounding box (северная граница), [minLat, 90]",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "MinLon",
            "in": "query",
            "description": "Минимальная долгота bounding box (западная граница), [-180, 180]",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "MaxLon",
            "in": "query",
            "description": "Максимальная долгота bounding box (восточная граница), [minLon, 180]",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "PageNum",
            "in": "query",
            "description": "Номер страницы.\nНеобязательный параметр для получения результатов постранично.\n\nНомер страницы (с 1). Параметр необязательный.",
            "schema": {
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "Размер страницы.\nНеобязательный параметр для получения результатов постранично.\nПостраничный вывод работает только если оба параметра заданы корректно.\n\nЕсли меньше 1 — нормализуется к 1.",
            "schema": {
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "CountryId",
            "in": "query",
            "description": "Возвращает список пунктов выдачи и приемки заказов по заданным фильтрам географии, постащику, характеру и\nпараметрам груза",
            "required": true,
            "schema": {
              "type": "string",
              "example": "RU"
            },
            "example": "RU"
          },
          {
            "name": "CityId",
            "in": "query",
            "description": "Фильтр пунктов выдачи и приемки заказов по id города.\nКод города или населенного пункта. Для населенных пуктов внутри РФ - необходимо указывать код ФИАС (уровень 4 или\n6) или КЛАДР,\nдля населенных пунктов за пределами РФ - Идентификатор объекта в базе GeoNames\n(https://ru.wikipedia.org/wiki/GeoNames).\nГород должен попадать в указанную в параметре country страну.\nЕсли не указан, поиск будет осуществляться по названию города (CityName) или по координатам (Bbox). Если не указано ничего, поиск будет\nосуществляться по всей стране.\nИмеет приоритет над CityName и параметрами Bbox.",
            "schema": {
              "type": "string",
              "example": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
            },
            "example": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
          },
          {
            "name": "RegionId",
            "in": "query",
            "description": "Фильтр по id региона ФИАС.\nПрименяется, когда CityId не задан.",
            "schema": {
              "type": "string",
              "example": "29251dcf-f47e-4d29-b6d4-2c46d64c85f3"
            },
            "example": "29251dcf-f47e-4d29-b6d4-2c46d64c85f3"
          },
          {
            "name": "SenderCityId",
            "in": "query",
            "description": "Фильтр точек выдачи по городу отправителя. Необязательный параметр.\nКод города или населенного пункта. Для населенных пуктов внутри РФ - необходимо указывать код ФИАС (уровень 4 или\n6) или КЛАДР,\nдля населенных пунктов за пределами РФ - Идентификатор объекта в базе GeoNames\n(https://ru.wikipedia.org/wiki/GeoNames).",
            "schema": {
              "type": "string",
              "example": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
            },
            "example": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
          },
          {
            "name": "SenderCountryId",
            "in": "query",
            "description": "Указывается двухбуквенный код страны отправителя в соответсвии с ISO 3166-1 alpha-2 (https://ru.wikipedia.org/wiki/ISO_3166-1). Необязательный\nпараметр.",
            "schema": {
              "type": "string",
              "example": "RU"
            },
            "example": "RU"
          },
          {
            "name": "CityName",
            "in": "query",
            "description": "Фильтр пунктов выдачи и приемки заказов по названию города.\nГород должен попадать в указанную в параметре country страну.\nИмеет меньший приоритет при поиске, чем CityId",
            "schema": {
              "type": "string",
              "example": "Москва"
            },
            "example": "Москва"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PickupPointsResultModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorContainer"
                }
              }
            }
          }
        }
      }
    },
    "/openapi/v2/PickupPoints/{vendorKey}/{ppId}": {
      "get": {
        "tags": [
          "PickupPoints"
        ],
        "summary": "Получение деталей о пункте выдачи заказов по ключу поставщика и Id ПВЗ.",
        "parameters": [
          {
            "name": "vendorKey",
            "in": "path",
            "description": "Ключ поставщика",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ppId",
            "in": "path",
            "description": "Id ПВЗ",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "CountryId",
            "in": "query",
            "description": "Возвращает список пунктов выдачи и приемки заказов по заданным фильтрам географии, постащику, характеру и\nпараметрам груза",
            "required": true,
            "schema": {
              "type": "string",
              "example": "RU"
            },
            "example": "RU"
          },
          {
            "name": "CityId",
            "in": "query",
            "description": "Фильтр пунктов выдачи и приемки заказов по id города.\nКод города или населенного пункта. Для населенных пуктов внутри РФ - необходимо указывать код ФИАС (уровень 4 или\n6) или КЛАДР,\nдля населенных пунктов за пределами РФ - Идентификатор объекта в базе GeoNames\n(https://ru.wikipedia.org/wiki/GeoNames).\nГород должен попадать в указанную в параметре country страну.\nЕсли не указан, поиск будет осуществляться по названию города (CityName) или по координатам (Bbox). Если не указано ничего, поиск будет\nосуществляться по всей стране.\nИмеет приоритет над CityName и параметрами Bbox.",
            "schema": {
              "type": "string",
              "example": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
            },
            "example": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
          },
          {
            "name": "RegionId",
            "in": "query",
            "description": "Фильтр по id региона ФИАС.\nПрименяется, когда CityId не задан.",
            "schema": {
              "type": "string",
              "example": "29251dcf-f47e-4d29-b6d4-2c46d64c85f3"
            },
            "example": "29251dcf-f47e-4d29-b6d4-2c46d64c85f3"
          },
          {
            "name": "SenderCityId",
            "in": "query",
            "description": "Фильтр точек выдачи по городу отправителя. Необязательный параметр.\nКод города или населенного пункта. Для населенных пуктов внутри РФ - необходимо указывать код ФИАС (уровень 4 или\n6) или КЛАДР,\nдля населенных пунктов за пределами РФ - Идентификатор объекта в базе GeoNames\n(https://ru.wikipedia.org/wiki/GeoNames).",
            "schema": {
              "type": "string",
              "example": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
            },
            "example": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
          },
          {
            "name": "SenderCountryId",
            "in": "query",
            "description": "Указывается двухбуквенный код страны отправителя в соответсвии с ISO 3166-1 alpha-2 (https://ru.wikipedia.org/wiki/ISO_3166-1). Необязательный\nпараметр.",
            "schema": {
              "type": "string",
              "example": "RU"
            },
            "example": "RU"
          },
          {
            "name": "CityName",
            "in": "query",
            "description": "Фильтр пунктов выдачи и приемки заказов по названию города.\nГород должен попадать в указанную в параметре country страну.\nИмеет меньший приоритет при поиске, чем CityId",
            "schema": {
              "type": "string",
              "example": "Москва"
            },
            "example": "Москва"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PickupPointResultModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorContainer"
                }
              }
            }
          }
        }
      }
    },
    "/openapi/v2/PickupPoints/calc": {
      "post": {
        "tags": [
          "PickupPoints"
        ],
        "summary": "Calc - cписок пунктов выдачи и приемки заказов и тарифы доставки до них",
        "description": "Возвращает список пунктов выдачи и приемки заказов c рассчитанными вариантами доставки.",
        "parameters": [
          {
            "name": "mode",
            "in": "query",
            "description": "Необязательный параметр. Фильтр по режиму работы ПВЗ, Pickup или Intake, по умолчанию - Pickup",
            "schema": {
              "$ref": "#/components/schemas/PickupPointModes"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "Необязательный параметр. Фильтр по типу ПВЗ.\nТип ПВЗ:\n\n                0 - ПВЗ \\\n                1 - Постомат \\\n                2 - Абонентский ящик \\\n                3 - Маркетплейс",
            "schema": {
              "$ref": "#/components/schemas/ApiPickupPointType"
            }
          },
          {
            "name": "services",
            "in": "query",
            "description": "Необязательный параметр, фильтр по дополнительным услугам, оказываемым на ПВЗ.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "PageNum",
            "in": "query",
            "description": "Номер страницы.\nНеобязательный параметр для получения результатов постранично.\n\nНомер страницы (с 1). Параметр необязательный.",
            "schema": {
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "Размер страницы.\nНеобязательный параметр для получения результатов постранично.\nПостраничный вывод работает только если оба параметра заданы корректно.\n\nЕсли меньше 1 — нормализуется к 1.",
            "schema": {
              "minimum": 1,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "requestBody": {
          "description": "Параметры для расчета стоимости доставки до ПВЗ",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CalcRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalcRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CalcRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CalcRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PickupPointsCalcResultModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorContainer"
                }
              }
            }
          }
        }
      }
    },
    "/openapi/v2/PickupPoints/map": {
      "get": {
        "tags": [
          "PickupPoints"
        ],
        "summary": "pickupPointsMap - карта пунктов выдачи заказов",
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "description": "Ключ API",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cityId",
            "in": "query",
            "description": "Идентификатор города в ФИАС",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "vendorId",
            "in": "query",
            "description": "Код поставщика для которого нужно вернуть ПВЗ. Если не задан - то возвращается для всех доступных данному пользователю. Пример - 8 для СДЭК",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "withPriceCalc",
            "in": "query",
            "description": "Указывает нужно ли при отображение точек доставки также считать стоимость. По-умолчанию, - false",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "weight",
            "in": "query",
            "description": "Если задан параметр withPriceCalc - то в этом параметре необходимо задать вес для расчета в кг",
            "schema": {
              "type": "number",
              "format": "double",
              "default": 0
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Карта с отмеченными ПВЗ"
          },
          "404": {
            "description": "Город не найден"
          }
        }
      }
    },
    "/openapi/v2/Settings": {
      "get": {
        "tags": [
          "Settings"
        ],
        "summary": "settings - список пользовательских настроек",
        "description": "Возвращает список с информацией о настройках.",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Список настроек",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SettingsList"
                }
              }
            }
          }
        }
      }
    },
    "/openapi/v2/Settings/{settingsKey}": {
      "patch": {
        "tags": [
          "Settings"
        ],
        "summary": "settings - управление настройками",
        "description": "Меняет параметры настроек. Для простых настроек (code \"toggle\") достаточно параметра \"enable\".",
        "parameters": [
          {
            "name": "settingsKey",
            "in": "path",
            "description": "Ключ-идентификатор настройки",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "requestBody": {
          "description": "Поля и значения настройки в соответствии со схемой",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSettingsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Обновлённые данные изменённой настройки",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Settings"
                }
              }
            }
          },
          "400": {
            "description": "Неверный ключ-идентификатор настройки",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorContainer"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Settings"
        ],
        "summary": "settings - значение и описание настройки",
        "description": "Описание пользовательской настройки со ссылкой на схему.",
        "parameters": [
          {
            "name": "settingsKey",
            "in": "path",
            "description": "Ключ-идентификатор настройки",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Данные настройки",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Settings"
                }
              }
            }
          },
          "400": {
            "description": "Неверный ключ-идентификатор настройки",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorContainer"
                }
              }
            }
          }
        }
      }
    },
    "/openapi/v2/Settings/{settingsKey}/schema": {
      "get": {
        "tags": [
          "Settings"
        ],
        "summary": "settings - схема",
        "description": "Схема с параметрами, необходимыми для включения профиля",
        "parameters": [
          {
            "name": "settingsKey",
            "in": "path",
            "description": "Ключ-идентификатор настройки",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Схема",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SchemaList"
                }
              }
            }
          },
          "400": {
            "description": "Неверный ключ-идентификатор настройки",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorContainer"
                }
              }
            }
          }
        }
      }
    },
    "/openapi/v2/Tariffs": {
      "get": {
        "tags": [
          "Tariffs"
        ],
        "summary": "Список тарифов. По всем поставщикам или запрошенных по vendorId или vendorKey",
        "parameters": [
          {
            "name": "VendorId",
            "in": "query",
            "description": "Идентификатор поставщика. Значение integer",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": 1
            },
            "example": 1
          },
          {
            "name": "VendorKey",
            "in": "query",
            "description": "Ключ поставщика. Строковое значение",
            "schema": {
              "type": "string",
              "example": "CSE"
            },
            "example": "CSE"
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TariffModelListContainer"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorContainer"
                }
              }
            }
          }
        }
      }
    },
    "/openapi/v2/Tariffs/{tariffId}/{vendorId}": {
      "get": {
        "tags": [
          "Tariffs"
        ],
        "summary": "Информация по тарифу поставщика",
        "parameters": [
          {
            "name": "tariffId",
            "in": "path",
            "description": "Идентификатор тарифа",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "vendorId",
            "in": "path",
            "description": "Идентификатор поставщика, которому принадлженит тариф",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TariffModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorContainer"
                }
              }
            }
          }
        }
      }
    },
    "/openapi/v2/Vendors": {
      "get": {
        "tags": [
          "Vendors"
        ],
        "summary": "vendors - список поставщиков, доступных для подключения пользователем",
        "description": "Возвращает список с информацией о поставщиках.",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Список поставщиков",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VendorListResponse"
                }
              }
            }
          }
        }
      }
    },
    "/openapi/v2/Vendors/{vendorKey}": {
      "patch": {
        "tags": [
          "Vendors"
        ],
        "summary": "vendors - подключение/отключение поставщика",
        "description": "Подключает или отключает поставщика в зависимости от установленного в запросе статуса",
        "parameters": [
          {
            "name": "vendorKey",
            "in": "path",
            "description": "Ключ-идентификатор поставщика",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "requestBody": {
          "description": "Желаемый статус",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EnableVendorRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Обновлённые данные поставщика и сообщение",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VendorUpdateContainer"
                }
              }
            }
          },
          "400": {
            "description": "Неверный ключ-идентификатор поставщика",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorContainer"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Vendors"
        ],
        "summary": "vendors - описание поставщика",
        "description": "Описание поставщика со ссылкой на схему подключения поставщика.",
        "parameters": [
          {
            "name": "vendorKey",
            "in": "path",
            "description": "Ключ-идентификатор поставщика",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Данные поставщика",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExtendedDescription"
                }
              }
            }
          },
          "400": {
            "description": "Неверный ключ-идентификатор поставщика",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorContainer"
                }
              }
            }
          }
        }
      }
    },
    "/openapi/v2/Vendors/{vendorKey}/contract": {
      "put": {
        "tags": [
          "Vendors"
        ],
        "summary": "vendors - регистрация договора c поставщиком",
        "description": "Добавляет клиентский договор с поставщиком или обноляет существующий.",
        "parameters": [
          {
            "name": "vendorKey",
            "in": "path",
            "description": "Ключ-идентификатор поставщика",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "requestBody": {
          "description": "Список полей договора",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContractRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Обновлённые данные поставщика и сообщение",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VendorUpdateContainer"
                }
              }
            }
          },
          "400": {
            "description": "Неверный ключ-идентификатор поставщика",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorContainer"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Vendors"
        ],
        "summary": "vendors - удаление договора c поставщиком",
        "description": "Удаляет существующий клиентский договор",
        "parameters": [
          {
            "name": "vendorKey",
            "in": "path",
            "description": "Ключ-идентификатор поставщика",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Обновлённые данные поставщика",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExtendedDescription"
                }
              }
            }
          },
          "400": {
            "description": "Неверный ключ-идентификатор поставщика",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorContainer"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Vendors"
        ],
        "summary": "vendors - данные договора",
        "description": "Возвращает словарь полей и значений из договора с поставщиком",
        "parameters": [
          {
            "name": "vendorKey",
            "in": "path",
            "description": "Ключ-идентификатор поставщика",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Данные договора с поставщиком",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VendorContractDescription"
                }
              }
            }
          },
          "400": {
            "description": "Неверный ключ-идентификатор поставщика",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorContainer"
                }
              }
            }
          }
        }
      }
    },
    "/openapi/v2/Vendors/{vendorKey}/authschema": {
      "get": {
        "tags": [
          "Vendors"
        ],
        "summary": "vendors - схема",
        "description": "Схема с параметрами, необходимыми для подключения поставщика",
        "parameters": [
          {
            "name": "vendorKey",
            "in": "path",
            "description": "Ключ-идентификатор поставщика",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Схема",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VendorSchema"
                }
              }
            }
          },
          "400": {
            "description": "Неверный ключ-идентификатор поставщика",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorContainer"
                }
              }
            }
          }
        }
      }
    },
    "/openapi/v2/Vendors/{vendorKey}/parameters": {
      "get": {
        "tags": [
          "Vendors"
        ],
        "summary": "Получение списка параметров поставщика",
        "parameters": [
          {
            "name": "vendorKey",
            "in": "path",
            "description": "Ключ-идентификатор поставщика",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Возвращаются все настройки запрошенного поставщика"
          },
          "400": {
            "description": "Неверный ключ-идентификатор поставщика или параметр настроки"
          }
        }
      }
    },
    "/openapi/v2/Vendors/{vendorKey}/parameters/{parameterKey}": {
      "get": {
        "tags": [
          "Vendors"
        ],
        "summary": "Получение параметра поставщика",
        "parameters": [
          {
            "name": "vendorKey",
            "in": "path",
            "description": "Ключ-идентификатор поставщика",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "parameterKey",
            "in": "path",
            "description": "Ключ параметра настройки",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Возвращается запрошенный параметр поставщика"
          },
          "400": {
            "description": "Неверный ключ-идентификатор поставщика или параметр настроки"
          },
          "404": {
            "description": "Параметра с таким ключем для поставщика не найдено"
          }
        }
      },
      "post": {
        "tags": [
          "Vendors"
        ],
        "summary": "Создание пользовательского параметра поставщика",
        "parameters": [
          {
            "name": "vendorKey",
            "in": "path",
            "description": "Ключ-идентификатор поставщика",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "parameterKey",
            "in": "path",
            "description": "Ключ параметра настройки",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "requestBody": {
          "description": "Новое значение параметра",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/EditVendorParameterDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EditVendorParameterDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EditVendorParameterDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EditVendorParameterDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Модель ответа об успехе выполнения операции"
          },
          "400": {
            "description": "Ошибка редактирования"
          }
        }
      },
      "patch": {
        "tags": [
          "Vendors"
        ],
        "summary": "Обновление пользовательского параметра поставщика",
        "parameters": [
          {
            "name": "vendorKey",
            "in": "path",
            "description": "Ключ-идентификатор поставщика",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "parameterKey",
            "in": "path",
            "description": "Ключ параметра настройки",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "requestBody": {
          "description": "Новое значение параметра",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/EditVendorParameterDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EditVendorParameterDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EditVendorParameterDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EditVendorParameterDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Модель ответа об успехе выполнения операции"
          },
          "400": {
            "description": "Ошибка редактирования"
          }
        }
      },
      "delete": {
        "tags": [
          "Vendors"
        ],
        "summary": "Удаление пользовательского параметра поставщика",
        "parameters": [
          {
            "name": "vendorKey",
            "in": "path",
            "description": "Ключ-идентификатор поставщика",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "parameterKey",
            "in": "path",
            "description": "Ключ параметра настройки",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Заголовок авторизации в формате: apiKey значение_ключа",
            "required": true,
            "schema": {
              "type": "string",
              "example": "apiKey 3590fb7e-7f7d-4afb-b095-43acff08c2b2"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Модель ответа об успехе выполнения операции"
          },
          "400": {
            "description": "Ошибка удаления"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ApiAccessLevel": {
        "enum": [
          1,
          2,
          4
        ],
        "type": "integer",
        "description": "Уровень доступа к файлу\n1 = Admin - Доступен только администраторам versta24 \\\n2 = AuthorizedUser - Доступен всем авторизованным пользователям \\\n4 = NotAuthorizedUser - Доступен всем",
        "format": "int32"
      },
      "ApiCargoBodyTypes": {
        "enum": [
          0,
          1,
          2,
          4
        ],
        "type": "integer",
        "description": "Тип кузова транспортного средства.",
        "format": "int32"
      },
      "ApiCargoLoadCapacity": {
        "enum": [
          0,
          1,
          2,
          3,
          4
        ],
        "type": "integer",
        "description": "Диапазоны грузоподъёмности груза.",
        "format": "int32"
      },
      "ApiCargoLoadingTypes": {
        "enum": [
          0,
          1,
          2,
          4,
          8
        ],
        "type": "integer",
        "description": "Типы погрузки/разгрузки.",
        "format": "int32"
      },
      "ApiCargoStates": {
        "enum": [
          0,
          1
        ],
        "type": "integer",
        "description": "Состояние груза:\n0 - Новый \\\n1 - Б/У \\",
        "format": "int32"
      },
      "ApiCargoTypes": {
        "enum": [
          1,
          2,
          4,
          8,
          32,
          64,
          128,
          256,
          512
        ],
        "type": "integer",
        "description": "Тип груза для перевозки: \\\n1 - Docs - Документы \\\n2 - CargoRegular - Обычный груз \\\n4 - CargoDanger - Опасный груз (к опасным грузам относятся грузы определенной категории. см. правила перевозки)\n8 - CargoOversize - (устаревшее) Негабаритный груз - груз в котором одно из мест по сумме трех измерений первышает 270 см или\nвес превышает 80 кг. Вместо этого признака нужно передавать габариты и вес груза. Под каждого поставщика данный параметр определяется\nавтоматически по габаритам. Сейчас ни на что не влияет \\\n32 - CargoFragile - Хрупкий груз - груз при перевозке которого должны соблюдаться специальные условия размещения\n(см. правила перевозки) \\\n64 - OnlineStoreOrder - Посылка интернет-магазина\n128 - LTL -  Сборный груз\n256 - FTL - Выделенная машина\n512 - RussianPostDocs - Документы почты России.",
        "format": "int32"
      },
      "ApiContactTypes": {
        "enum": [
          1,
          2,
          4,
          8
        ],
        "type": "integer",
        "description": "Типы адресов. В зависимости от типа адреса необходимо заполнять разные поля.\n1 = Door - Конкретный адрес (дверь) \\\n2 = MailingList - Рассылка - рассылка работает только в пределах одного города. Не используется и будет удален в\nдальнейшем \\\n4 = PickupPoint - Точка выдачи конкретного поставщика \\\n8 = PostOffice - Отделение почты РФ (зарезервировано для будущего использования)",
        "format": "int32"
      },
      "ApiDangerClass": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9
        ],
        "type": "integer",
        "description": "Класс опасности груза",
        "format": "int32"
      },
      "ApiDeliveryType": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "Тип доставки. \\\n0 - Дверь-Дверь \\\n1 - Дверь-ПВЗ \\\n2 - ПВЗ-ПВЗ \\\n3 - ПВЗ-Дверь",
        "format": "int32"
      },
      "ApiError": {
        "required": [
          "code",
          "message"
        ],
        "type": "object",
        "properties": {
          "code": {
            "minLength": 1,
            "type": "string",
            "description": "Код ошибки <a href=\"/api/reference/errors\">Справочник</a>"
          },
          "message": {
            "minLength": 1,
            "type": "string",
            "description": "Текстовое сообщение с объяснением какая ошибка произошла и как её исправить"
          },
          "target": {
            "type": "string",
            "description": "Путь к полю в запросе, из-за которого возникла ошибка",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiErrorContainer": {
        "type": "object",
        "properties": {
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiError"
            },
            "description": "Перечень ошибок, которые возникли во время выполнения запроса",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiFtlAttributes": {
        "type": "object",
        "properties": {
          "cargoBodyType": {
            "$ref": "#/components/schemas/ApiCargoBodyTypes"
          },
          "cargoLoadingType": {
            "$ref": "#/components/schemas/ApiCargoLoadingTypes"
          },
          "cargoLoadCapacity": {
            "$ref": "#/components/schemas/ApiCargoLoadCapacity"
          },
          "additionalConditions": {
            "type": "string",
            "description": "Дополнительные условия",
            "nullable": true
          },
          "senderPackage": {
            "type": "string",
            "description": "Упаковка отправителя",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Дополнительные параметры для выделенной машины v24.OpenApi.Models.ApiV1.Enums.ApiCargoTypes.FTL."
      },
      "ApiIncludeFilePosition": {
        "enum": [
          0,
          1
        ],
        "type": "integer",
        "format": "int32"
      },
      "ApiItemFileType": {
        "enum": [
          0,
          1,
          2,
          4,
          8,
          16,
          32,
          64,
          128,
          256,
          512,
          1024,
          2048,
          4096,
          8192,
          16384,
          32768,
          536870912,
          1073741824
        ],
        "type": "integer",
        "description": "Тип содержимого файла. Можно использовать как маску\n0 = None - Без типа \\\n1 = AttachedFile - Вложение \\\n2 = OrderPrintedInvoice - Распечатанная накладная заказа \\\n4 = InsurancePolicy - Страховка \\\n8 = CargoBarcode - Штрихкод груза \\\n16 = OrderSourceFile - Исходный файл создания заказа \\\n32 = InvoiceScan - Скан накладной \\\n64 = YotaContract - Договор Yota \\\n128 = OrderTemplateAttachedFile - Шаблон файла загрузки для договора \\\n256 = PaymentAccount - Данные плательщика \\\n512 = ZipInvoiceScans - Архив сканов накладных \\\n1024 = Registry - Реестр по заказу \\\n2048 = ZipRegistries - Архив реестров по заказу \\\n4096 = LoadingPhoto - Фото погрузки \\\n8192 = UnloadingPhoto - Фото разгрузки \\\n16384 = Documents - Документы \\\n32768 = MailingSource - Исходный файл рассылки \\\n536870912 = LoadingVideo - Видео погрузки \\\n1073741824 = UnloadingVideo - Видео разгрузки",
        "format": "int32"
      },
      "ApiItemType": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "Тип сущности, которой относится файл\n0 = Order - К заказу versta24 \\\n1 = ProfLogVendor - Поставщик профлог \\\n2 = Resource - Информационный файл \\\n3 = PickupPoint - Пункт выдачи заказов",
        "format": "int32"
      },
      "ApiLegalType": {
        "enum": [
          "Private",
          "Legal"
        ],
        "type": "string",
        "description": "Тип лица контакта: `Private` - физическое лицо, `Legal` - юридическое лицо.\nЕсли не задан, или задан как null - то тип контакта считается не-определенным (по-умолчанию)"
      },
      "ApiMarksFormat": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "format": "int32"
      },
      "ApiOrderMasterStatus": {
        "enum": [
          0,
          10,
          20,
          30,
          40,
          50,
          60,
          100,
          200,
          300,
          500,
          600,
          700,
          800,
          900
        ],
        "type": "integer",
        "format": "int32"
      },
      "ApiOrderOrigin": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5
        ],
        "type": "integer",
        "description": "Откуда был создан заказ",
        "format": "int32"
      },
      "ApiOrderStatus": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          10,
          11,
          12,
          13,
          14,
          15,
          16,
          20,
          24,
          30,
          31,
          32,
          40,
          45,
          49,
          50,
          52,
          53,
          54,
          55,
          56,
          57,
          59,
          60,
          61,
          62,
          100,
          101,
          110,
          111,
          112,
          113,
          114,
          115,
          116,
          117,
          118,
          120,
          130,
          140,
          145,
          150,
          160,
          170,
          200,
          201,
          204,
          205,
          206,
          207,
          208,
          210,
          220,
          230,
          240,
          300,
          310,
          320,
          500,
          510,
          520,
          530,
          540,
          541,
          542,
          543,
          590,
          600,
          610,
          615,
          620,
          625,
          630,
          635,
          640,
          645,
          650,
          651,
          652,
          653,
          690,
          700,
          701,
          705,
          710,
          720,
          730,
          800,
          810,
          820,
          840,
          850,
          860,
          870,
          880,
          890
        ],
        "type": "integer",
        "description": "<a href=\"docs/statuses\">Справочник</a>",
        "format": "int32"
      },
      "ApiOrderType": {
        "enum": [
          0,
          1
        ],
        "type": "integer",
        "format": "int32"
      },
      "ApiPickupPointType": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5
        ],
        "type": "integer",
        "format": "int32"
      },
      "ApiPrintDocTypes": {
        "enum": [
          0,
          1,
          2,
          4,
          8,
          16
        ],
        "type": "integer",
        "description": "Тип печатаемого файла. Можно использовать как маску\nNone = 0, - Без типа \\\nInvoice = 1, - Накладная заказа \\\nBarcode = 2, - Штрихкод груза \\\nInsurancePolicy = 4, - Страховка \\\nInvoiceScan = 8, - Скан накладной \\\nDeliveryConfirmation = 16, - Подтверждение заказа \\",
        "format": "int32"
      },
      "ApiServiceCalcStatus": {
        "enum": [
          0,
          10
        ],
        "type": "integer",
        "description": "Статус расчёта запрошенной дополнительной услуги \\\n0 - NotProvided - Услуга не оказана в варианте доставки \\\n10 - Provided - Услуга оказана в варианте доставки",
        "format": "int32"
      },
      "ApiTransportRequirementsParameters": {
        "type": "object",
        "properties": {
          "requirements": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiTransportRequirementsType"
            },
            "description": "Перечень требований к транспортному средству.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Параметры требований к транспортному средству"
      },
      "ApiTransportRequirementsType": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6
        ],
        "type": "integer",
        "description": "Требования к транспортному средству.",
        "format": "int32"
      },
      "ApiVatRate": {
        "enum": [
          0,
          5,
          7,
          10,
          18,
          20,
          22
        ],
        "type": "integer",
        "description": "Ставка НДС \\\nVAT0 - НДС 0% \\\nVAT5 - НДС 5% \\\nVAT7 - НДС 7% \\\nVAT10 - НДС 10% \\\nVAT18 - НДС 18% \\\nVAT20 - НДС 20% \\\nVAT22 - НДС 22% \\",
        "format": "int32"
      },
      "AssemblyWorksParameters": {
        "type": "object",
        "properties": {
          "assemblersCount": {
            "type": "integer",
            "description": "Количество сборщиков. По умолчанию 1",
            "format": "int32",
            "example": 2
          }
        },
        "additionalProperties": false,
        "description": "Параметры услуг \"Работы по сборке\" и \"Работы по разборке\""
      },
      "BalanceHistory": {
        "required": [
          "history"
        ],
        "type": "object",
        "properties": {
          "history": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BalanceHistoryItem"
            },
            "description": "История изменения баланса, отсортированная в хронологическом порядке"
          },
          "nextLink": {
            "type": "string",
            "description": "Ссылка на следующую страницу с продолжением истории изменения. NULL, если это последняя страница, и больше в истории нет элементов",
            "nullable": true,
            "example": "https://api.versta24.ru/openapi/v2/companies/1181111110/balance/history?page=2"
          }
        },
        "additionalProperties": false,
        "description": "История изменения баланса компании"
      },
      "BalanceHistoryItem": {
        "required": [
          "dateTime",
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "minLength": 1,
            "type": "string",
            "description": "Идентификатор события в формате GUID",
            "example": "96e944ce-7f59-40cd-b768-0a4a90492330"
          },
          "text": {
            "type": "string",
            "description": "Текст события",
            "nullable": true,
            "example": "Успешное списание 416.8 RUB — Передача заказа V24X-XXX-XXX-XXX"
          },
          "dateTime": {
            "type": "string",
            "description": "Дата и время события",
            "format": "date-time",
            "example": "2024-01-15T21:52:24+03:00"
          }
        },
        "additionalProperties": false,
        "description": "Элемент истории изменения баланса компании"
      },
      "BankAccount": {
        "type": "object",
        "properties": {
          "account": {
            "type": "string",
            "description": "Банковский (расчетный) счет",
            "nullable": true,
            "example": "36925814725836985214"
          },
          "bik": {
            "type": "string",
            "description": "БИК",
            "nullable": true,
            "example": "999888777"
          },
          "correspondentAccount": {
            "type": "string",
            "description": "Корреспондентский счет",
            "nullable": true,
            "example": "30101589654789321456"
          }
        },
        "additionalProperties": false,
        "description": "Банковские реквизиты"
      },
      "BaseEventPayload": {
        "type": "object",
        "properties": {
          "eventUniqueKey": {
            "type": "string",
            "description": "Ключ уникальности события наряду с другими иниациаторами события",
            "nullable": true
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "attributes": {
            "type": "string",
            "nullable": true
          },
          "accessLevel": {
            "$ref": "#/components/schemas/EventAccessLevel"
          },
          "subjectStatus": {
            "type": "string",
            "description": "Статус субъекта в результате данного события",
            "nullable": true
          },
          "parameters": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Дополнительные параметры",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CalcRequest": {
        "required": [
          "cargo",
          "receiver",
          "sender"
        ],
        "type": "object",
        "properties": {
          "sender": {
            "required": [
              "cityId",
              "countryId"
            ],
            "type": "object",
            "properties": {
              "contactType": {
                "enum": [
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8
                ],
                "type": "integer",
                "description": "Типы адресов. В зависимости от типа адреса необходимо заполнять разные поля. <br>Это перечисление поддерживает битовые флаги, что позволяет указывать комбинацию нескольких значений для расчета различных типов доставки. \n                <br> 1 = Door - Конкретный адрес (дверь)<br>4 = PickupPoint - Точка выдачи конкретного поставщика <br> Пример: Указание нескольких значений позволяет комбинировать типы адресов, например: 5 указывает, что будут расчитаны варианты доставки как от/до двери, так и от/до точки выдачи.",
                "format": "int32"
              },
              "countryId": {
                "minLength": 1,
                "type": "string",
                "description": "Указывается двухбуквенный код страны в соответствии с ISO 3166-1 alpha-2 (https://ru.wikipedia.org/wiki/ISO_3166-1).<br>Обязателен, если не указаны координаты (latitude и longitude). Если указаны координаты, countryId может быть не заполнен."
              },
              "cityId": {
                "minLength": 1,
                "type": "string",
                "description": "Код города или населенного пункта\nОбязателен, если не указаны координаты (latitude и longitude). Если координаты указаны — параметр cityId может быть не заполнен.\n\nПриоритет выбора адреса:\n\n 1. Если указаны latitude и longitude — используются только координаты.\n 2. Если координаты не указаны — используются countryId, cityId, cityName и address.\n 3. Если по координатам не удалось распознать адрес — используются countryId, cityId, cityName и address.\n\nФормат значения зависит от страны. Для населенных пунктов:\n- внутри РФ - необходимо указывать код ФИАС (уровень 4 или 6) или КЛАДР,\n- в странах Беларуси, Казахстана и Узбекистана - Тип объекта и Идентификатор объекта в базе OpenStreetMap. Пример <i>relation:2465058</i> (https://ru.wikipedia.org/wiki/OpenStreetMap).\n- в остальных населенных пунктов за пределами РФ - Идентификатор объекта в базе GeoNames (https://ru.wikipedia.org/wiki/GeoNames).\nГород должен попадать в указанную в параметре country страну.\nЭтот параметр очень важен и определяет в том числе какому поставщику будет передан заказа. Также этот параметр\nвлияет на цену"
              },
              "cityName": {
                "type": "string",
                "description": "Название города (опционально).\nЛогика выбора:\n    1. Если указаны координаты — используются только координаты.\n    2. Если координаты не указаны, но указан CityId — используются CityId, а CityName игнорируется.\n    3. Если CityId не указан — выполняется поиск по CityName.\nДля точного определения, пожалуйста, используйте CityId или координаты.",
                "nullable": true
              },
              "postalCode": {
                "type": "string",
                "description": "Почтовый индекс населенного пункта. Не обязательный параметр",
                "nullable": true
              },
              "pickupPointId": {
                "type": "string",
                "description": "Идентификатор точки выдачи. Обязательно для ContactType = PickupPoint; игнорируется, если ContactType не равен PickupPoint",
                "nullable": true
              },
              "latitude": {
                "type": "number",
                "description": "Широта адреса. Если указаны latitude и longitude, остальные параметры (countryId, cityId, address) становятся необязательными. В приоритете используются координаты.",
                "format": "double",
                "nullable": true
              },
              "longitude": {
                "type": "number",
                "description": "Долгота адреса. Если указаны latitude и longitude, остальные параметры (countryId, cityId, address) становятся необязательными. В приоритете используются координаты.",
                "format": "double",
                "nullable": true
              },
              "pickupPointVendorId": {
                "type": "integer",
                "description": "Поставщик для PickupPointId. Обязательно для ContactType = PickupPoint; игнорируется, если ContactType не равен PickupPoint",
                "format": "int32",
                "nullable": true
              },
              "pickupPointType": {
                "$ref": "#/components/schemas/ApiPickupPointType"
              },
              "loadingWorks": {
                "type": "object",
                "properties": {
                  "floor": {
                    "type": "integer",
                    "description": "На каком этаже выполняются работы по спуску груза. По умолчанию 1"
                  },
                  "hasFreightLift": {
                    "type": "boolean",
                    "description": "Имеется ли грузовой лифт"
                  },
                  "loadersCount": {
                    "type": "integer",
                    "description": "Количество грузчиков. По умолчанию 1"
                  }
                },
                "additionalProperties": false,
                "description": "Погрузочные работы"
              },
              "transportRequirements": {
                "type": "object",
                "properties": {
                  "requirements": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/ApiTransportRequirementsType"
                    },
                    "description": "Перечень требований к транспортному средству. Необходимо указать массив требований, которые необходимы для транспорта. Список требований можно посмотреть: <a href=\"/api/reference/transportRequirementsType\">Справочник значений</a>"
                  }
                },
                "additionalProperties": false,
                "description": "Требования к транспорту для получателя"
              },
              "assemblyWorks": {
                "type": "object",
                "properties": {
                  "assemblersCount": {
                    "type": "integer",
                    "description": "Количество сборщиков. По умолчанию 1"
                  }
                },
                "additionalProperties": false,
                "description": "Работы по разборке груза"
              },
              "partialPayParameters": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PartialPaySurchargeRule"
                },
                "description": "Параметры услуги \"Частичный выкуп\"\nПри выкупе на сумму порога оплаты или ниже – соответствующая доплата за доставку.\nДля выкупа выше порога оплаты – доплата отсутствует.",
                "nullable": true
              },
              "address": {
                "type": "string",
                "description": "Адрес произвольной строкой. Адрес должен относиться к указанному в city городу и стране - эта проверка не выполняется, но если в поле адрес будет указан адрес из другого региона - доставка не гарантируется. Не обязателен, но может влиять на стоимость доставки\nОбязателен, когда contactType=Door и не указаны координаты. Если указаны координаты, Address может быть не заполнен.",
                "nullable": true
              }
            },
            "additionalProperties": false,
            "description": "Информация об отправителе",
            "example": {
              "contactType": 1,
              "countryId": "RU",
              "cityId": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5",
              "postalCode": "101000",
              "address": "Смоленская площадь, д. 3",
              "loadingWorks": {
                "floor": 2,
                "hasFreightLift": false,
                "loadersCount": 5
              }
            }
          },
          "receiver": {
            "required": [
              "cityId",
              "countryId"
            ],
            "type": "object",
            "properties": {
              "contactType": {
                "enum": [
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8
                ],
                "type": "integer",
                "description": "Типы адресов. В зависимости от типа адреса необходимо заполнять разные поля. <br>Это перечисление поддерживает битовые флаги, что позволяет указывать комбинацию нескольких значений для расчета различных типов доставки. \n                <br> 1 = Door - Конкретный адрес (дверь)<br>4 = PickupPoint - Точка выдачи конкретного поставщика <br> Пример: Указание нескольких значений позволяет комбинировать типы адресов, например: 5 указывает, что будут расчитаны варианты доставки как от/до двери, так и от/до точки выдачи.",
                "format": "int32"
              },
              "countryId": {
                "minLength": 1,
                "type": "string",
                "description": "Указывается двухбуквенный код страны в соответствии с ISO 3166-1 alpha-2 (https://ru.wikipedia.org/wiki/ISO_3166-1).<br>Обязателен, если не указаны координаты (latitude и longitude). Если указаны координаты, countryId может быть не заполнен."
              },
              "cityId": {
                "minLength": 1,
                "type": "string",
                "description": "Код города или населенного пункта\nОбязателен, если не указаны координаты (latitude и longitude). Если координаты указаны — параметр cityId может быть не заполнен.\n\nПриоритет выбора адреса:\n\n 1. Если указаны latitude и longitude — используются только координаты.\n 2. Если координаты не указаны — используются countryId, cityId, cityName и address.\n 3. Если по координатам не удалось распознать адрес — используются countryId, cityId, cityName и address.\n\nФормат значения зависит от страны. Для населенных пунктов:\n- внутри РФ - необходимо указывать код ФИАС (уровень 4 или 6) или КЛАДР,\n- в странах Беларуси, Казахстана и Узбекистана - Тип объекта и Идентификатор объекта в базе OpenStreetMap. Пример <i>relation:2465058</i> (https://ru.wikipedia.org/wiki/OpenStreetMap).\n- в остальных населенных пунктов за пределами РФ - Идентификатор объекта в базе GeoNames (https://ru.wikipedia.org/wiki/GeoNames).\nГород должен попадать в указанную в параметре country страну.\nЭтот параметр очень важен и определяет в том числе какому поставщику будет передан заказа. Также этот параметр\nвлияет на цену"
              },
              "cityName": {
                "type": "string",
                "description": "Название города (опционально).\nЛогика выбора:\n    1. Если указаны координаты — используются только координаты.\n    2. Если координаты не указаны, но указан CityId — используются CityId, а CityName игнорируется.\n    3. Если CityId не указан — выполняется поиск по CityName.\nДля точного определения, пожалуйста, используйте CityId или координаты.",
                "nullable": true
              },
              "postalCode": {
                "type": "string",
                "description": "Почтовый индекс населенного пункта. Не обязательный параметр",
                "nullable": true
              },
              "pickupPointId": {
                "type": "string",
                "description": "Идентификатор точки выдачи. Обязательно для ContactType = PickupPoint; игнорируется, если ContactType не равен PickupPoint",
                "nullable": true
              },
              "latitude": {
                "type": "number",
                "description": "Широта адреса. Если указаны latitude и longitude, остальные параметры (countryId, cityId, address) становятся необязательными. В приоритете используются координаты.",
                "format": "double",
                "nullable": true
              },
              "longitude": {
                "type": "number",
                "description": "Долгота адреса. Если указаны latitude и longitude, остальные параметры (countryId, cityId, address) становятся необязательными. В приоритете используются координаты.",
                "format": "double",
                "nullable": true
              },
              "pickupPointVendorId": {
                "type": "integer",
                "description": "Поставщик для PickupPointId. Обязательно для ContactType = PickupPoint; игнорируется, если ContactType не равен PickupPoint",
                "format": "int32",
                "nullable": true
              },
              "pickupPointType": {
                "$ref": "#/components/schemas/ApiPickupPointType"
              },
              "loadingWorks": {
                "type": "object",
                "properties": {
                  "floor": {
                    "type": "integer",
                    "description": "На каком этаже выполняются работы по подъему груза. По умолчанию 1"
                  },
                  "hasFreightLift": {
                    "type": "boolean",
                    "description": "Имеется ли грузовой лифт"
                  },
                  "loadersCount": {
                    "type": "integer",
                    "description": "Количество грузчиков. По умолчанию 1"
                  }
                },
                "additionalProperties": false,
                "description": "Разгрузочные работы"
              },
              "transportRequirements": {
                "type": "object",
                "properties": {
                  "requirements": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/ApiTransportRequirementsType"
                    },
                    "description": "Перечень требований к транспортному средству. Необходимо указать массив требований, которые необходимы для транспорта. Список требований можно посмотреть: <a href=\"/api/reference/transportRequirementsType\">Справочник значений</a>"
                  }
                },
                "additionalProperties": false,
                "description": "Требования к транспорту для отправителя"
              },
              "assemblyWorks": {
                "type": "object",
                "properties": {
                  "assemblersCount": {
                    "type": "integer",
                    "description": "Количество сборщиков. По умолчанию 1"
                  }
                },
                "additionalProperties": false,
                "description": "Работы по сборке груза"
              },
              "partialPayParameters": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PartialPaySurchargeRule"
                },
                "description": "Параметры услуги \"Частичный выкуп\"\nПри выкупе на сумму порога оплаты или ниже – соответствующая доплата за доставку.\nДля выкупа выше порога оплаты – доплата отсутствует.",
                "nullable": true
              },
              "address": {
                "type": "string",
                "description": "Адрес произвольной строкой. Адрес должен относиться к указанному в city городу и стране - эта проверка не выполняется, но если в поле адрес будет указан адрес из другого региона - доставка не гарантируется. Не обязателен, но может влиять на стоимость доставки\nОбязателен, когда contactType=Door и не указаны координаты. Если указаны координаты, Address может быть не заполнен.",
                "nullable": true
              }
            },
            "additionalProperties": false,
            "description": "Информация о получателе",
            "example": {
              "contactType": 1,
              "countryId": "RU",
              "cityId": "c2deb16a-0330-4f05-821f-1d09c93331e6",
              "postalCode": "190000",
              "address": "ул. Рентгена, 4а"
            }
          },
          "cargo": {
            "$ref": "#/components/schemas/CargoDescModel"
          },
          "optionFilter": {
            "$ref": "#/components/schemas/OptionFilter"
          },
          "pickupInfo": {
            "$ref": "#/components/schemas/CallCourierPickupInfo"
          },
          "deliveryInfo": {
            "$ref": "#/components/schemas/ReqDeliveryInfo"
          },
          "services": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Service"
            },
            "description": "Перечень дополнительных услуг (страховка, наложенный платеж, частичный выкуп и т.д.)",
            "nullable": true,
            "example": [
              {
                "code": "Insurance",
                "parameter": "1000"
              },
              {
                "code": "PrintReceipt",
                "parameter": "{\"PaymentType\":\"Prepayment\",\"FiscalizationTarget\":\"Products\"}"
              }
            ]
          },
          "receiverDeliveryCharge": {
            "type": "number",
            "description": "Дополнительный сбор за доставку с получателя. Используется для расчёта комиссии за наложенный платёж",
            "format": "double",
            "example": 100
          },
          "companyId": {
            "type": "integer",
            "description": "Идентификатор компании от которой создается заказ. Если значение не задано, то используется идентификатор компании,\nкоторой принадлежит ключ API.\nЧтобы получить идентификаторы для работы с вашими компаниями, пожалуйста, обратитесь на support@versta24.ru",
            "format": "int32",
            "nullable": true,
            "example": null
          }
        },
        "additionalProperties": false
      },
      "CalcRequestByDays": {
        "required": [
          "cargo",
          "daysToCalculate",
          "receiver",
          "sender"
        ],
        "type": "object",
        "properties": {
          "daysToCalculate": {
            "type": "integer",
            "description": "Кол-во календарных дней, на которое нужно сделать расчет. Задается целым числом. Дни считаются с сегодня.\nНапример, если нам нужно сделать расчет на 7 дней вперед, то указываем 7.\nОбязательный параметр",
            "format": "int32"
          },
          "sender": {
            "required": [
              "cityId",
              "countryId"
            ],
            "type": "object",
            "properties": {
              "contactType": {
                "enum": [
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8
                ],
                "type": "integer",
                "description": "Типы адресов. В зависимости от типа адреса необходимо заполнять разные поля. <br>Это перечисление поддерживает битовые флаги, что позволяет указывать комбинацию нескольких значений для расчета различных типов доставки. \n                <br> 1 = Door - Конкретный адрес (дверь)<br>4 = PickupPoint - Точка выдачи конкретного поставщика <br> Пример: Указание нескольких значений позволяет комбинировать типы адресов, например: 5 указывает, что будут расчитаны варианты доставки как от/до двери, так и от/до точки выдачи.",
                "format": "int32"
              },
              "countryId": {
                "minLength": 1,
                "type": "string",
                "description": "Указывается двухбуквенный код страны в соответствии с ISO 3166-1 alpha-2 (https://ru.wikipedia.org/wiki/ISO_3166-1).<br>Обязателен, если не указаны координаты (latitude и longitude). Если указаны координаты, countryId может быть не заполнен."
              },
              "cityId": {
                "minLength": 1,
                "type": "string",
                "description": "Код города или населенного пункта\nОбязателен, если не указаны координаты (latitude и longitude). Если координаты указаны — параметр cityId может быть не заполнен.\n\nПриоритет выбора адреса:\n\n 1. Если указаны latitude и longitude — используются только координаты.\n 2. Если координаты не указаны — используются countryId, cityId, cityName и address.\n 3. Если по координатам не удалось распознать адрес — используются countryId, cityId, cityName и address.\n\nФормат значения зависит от страны. Для населенных пунктов:\n- внутри РФ - необходимо указывать код ФИАС (уровень 4 или 6) или КЛАДР,\n- в странах Беларуси, Казахстана и Узбекистана - Тип объекта и Идентификатор объекта в базе OpenStreetMap. Пример <i>relation:2465058</i> (https://ru.wikipedia.org/wiki/OpenStreetMap).\n- в остальных населенных пунктов за пределами РФ - Идентификатор объекта в базе GeoNames (https://ru.wikipedia.org/wiki/GeoNames).\nГород должен попадать в указанную в параметре country страну.\nЭтот параметр очень важен и определяет в том числе какому поставщику будет передан заказа. Также этот параметр\nвлияет на цену"
              },
              "cityName": {
                "type": "string",
                "description": "Название города (опционально).\nЛогика выбора:\n    1. Если указаны координаты — используются только координаты.\n    2. Если координаты не указаны, но указан CityId — используются CityId, а CityName игнорируется.\n    3. Если CityId не указан — выполняется поиск по CityName.\nДля точного определения, пожалуйста, используйте CityId или координаты.",
                "nullable": true
              },
              "postalCode": {
                "type": "string",
                "description": "Почтовый индекс населенного пункта. Не обязательный параметр",
                "nullable": true
              },
              "pickupPointId": {
                "type": "string",
                "description": "Идентификатор точки выдачи. Обязательно для ContactType = PickupPoint; игнорируется, если ContactType не равен PickupPoint",
                "nullable": true
              },
              "latitude": {
                "type": "number",
                "description": "Широта адреса. Если указаны latitude и longitude, остальные параметры (countryId, cityId, address) становятся необязательными. В приоритете используются координаты.",
                "format": "double",
                "nullable": true
              },
              "longitude": {
                "type": "number",
                "description": "Долгота адреса. Если указаны latitude и longitude, остальные параметры (countryId, cityId, address) становятся необязательными. В приоритете используются координаты.",
                "format": "double",
                "nullable": true
              },
              "pickupPointVendorId": {
                "type": "integer",
                "description": "Поставщик для PickupPointId. Обязательно для ContactType = PickupPoint; игнорируется, если ContactType не равен PickupPoint",
                "format": "int32",
                "nullable": true
              },
              "pickupPointType": {
                "$ref": "#/components/schemas/ApiPickupPointType"
              },
              "loadingWorks": {
                "type": "object",
                "properties": {
                  "floor": {
                    "type": "integer",
                    "description": "На каком этаже выполняются работы по спуску груза. По умолчанию 1"
                  },
                  "hasFreightLift": {
                    "type": "boolean",
                    "description": "Имеется ли грузовой лифт"
                  },
                  "loadersCount": {
                    "type": "integer",
                    "description": "Количество грузчиков. По умолчанию 1"
                  }
                },
                "additionalProperties": false,
                "description": "Погрузочные работы"
              },
              "transportRequirements": {
                "type": "object",
                "properties": {
                  "requirements": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/ApiTransportRequirementsType"
                    },
                    "description": "Перечень требований к транспортному средству. Необходимо указать массив требований, которые необходимы для транспорта. Список требований можно посмотреть: <a href=\"/api/reference/transportRequirementsType\">Справочник значений</a>"
                  }
                },
                "additionalProperties": false,
                "description": "Требования к транспорту для получателя"
              },
              "assemblyWorks": {
                "type": "object",
                "properties": {
                  "assemblersCount": {
                    "type": "integer",
                    "description": "Количество сборщиков. По умолчанию 1"
                  }
                },
                "additionalProperties": false,
                "description": "Работы по разборке груза"
              },
              "partialPayParameters": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PartialPaySurchargeRule"
                },
                "description": "Параметры услуги \"Частичный выкуп\"\nПри выкупе на сумму порога оплаты или ниже – соответствующая доплата за доставку.\nДля выкупа выше порога оплаты – доплата отсутствует.",
                "nullable": true
              },
              "address": {
                "type": "string",
                "description": "Адрес произвольной строкой. Адрес должен относиться к указанному в city городу и стране - эта проверка не выполняется, но если в поле адрес будет указан адрес из другого региона - доставка не гарантируется. Не обязателен, но может влиять на стоимость доставки\nОбязателен, когда contactType=Door и не указаны координаты. Если указаны координаты, Address может быть не заполнен.",
                "nullable": true
              }
            },
            "additionalProperties": false,
            "description": "Информация об отправителе",
            "example": {
              "contactType": 1,
              "countryId": "RU",
              "cityId": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5",
              "postalCode": "101000",
              "address": "Смоленская площадь, д. 3",
              "loadingWorks": {
                "floor": 2,
                "hasFreightLift": false,
                "loadersCount": 5
              }
            }
          },
          "receiver": {
            "required": [
              "cityId",
              "countryId"
            ],
            "type": "object",
            "properties": {
              "contactType": {
                "enum": [
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8
                ],
                "type": "integer",
                "description": "Типы адресов. В зависимости от типа адреса необходимо заполнять разные поля. <br>Это перечисление поддерживает битовые флаги, что позволяет указывать комбинацию нескольких значений для расчета различных типов доставки. \n                <br> 1 = Door - Конкретный адрес (дверь)<br>4 = PickupPoint - Точка выдачи конкретного поставщика <br> Пример: Указание нескольких значений позволяет комбинировать типы адресов, например: 5 указывает, что будут расчитаны варианты доставки как от/до двери, так и от/до точки выдачи.",
                "format": "int32"
              },
              "countryId": {
                "minLength": 1,
                "type": "string",
                "description": "Указывается двухбуквенный код страны в соответствии с ISO 3166-1 alpha-2 (https://ru.wikipedia.org/wiki/ISO_3166-1).<br>Обязателен, если не указаны координаты (latitude и longitude). Если указаны координаты, countryId может быть не заполнен."
              },
              "cityId": {
                "minLength": 1,
                "type": "string",
                "description": "Код города или населенного пункта\nОбязателен, если не указаны координаты (latitude и longitude). Если координаты указаны — параметр cityId может быть не заполнен.\n\nПриоритет выбора адреса:\n\n 1. Если указаны latitude и longitude — используются только координаты.\n 2. Если координаты не указаны — используются countryId, cityId, cityName и address.\n 3. Если по координатам не удалось распознать адрес — используются countryId, cityId, cityName и address.\n\nФормат значения зависит от страны. Для населенных пунктов:\n- внутри РФ - необходимо указывать код ФИАС (уровень 4 или 6) или КЛАДР,\n- в странах Беларуси, Казахстана и Узбекистана - Тип объекта и Идентификатор объекта в базе OpenStreetMap. Пример <i>relation:2465058</i> (https://ru.wikipedia.org/wiki/OpenStreetMap).\n- в остальных населенных пунктов за пределами РФ - Идентификатор объекта в базе GeoNames (https://ru.wikipedia.org/wiki/GeoNames).\nГород должен попадать в указанную в параметре country страну.\nЭтот параметр очень важен и определяет в том числе какому поставщику будет передан заказа. Также этот параметр\nвлияет на цену"
              },
              "cityName": {
                "type": "string",
                "description": "Название города (опционально).\nЛогика выбора:\n    1. Если указаны координаты — используются только координаты.\n    2. Если координаты не указаны, но указан CityId — используются CityId, а CityName игнорируется.\n    3. Если CityId не указан — выполняется поиск по CityName.\nДля точного определения, пожалуйста, используйте CityId или координаты.",
                "nullable": true
              },
              "postalCode": {
                "type": "string",
                "description": "Почтовый индекс населенного пункта. Не обязательный параметр",
                "nullable": true
              },
              "pickupPointId": {
                "type": "string",
                "description": "Идентификатор точки выдачи. Обязательно для ContactType = PickupPoint; игнорируется, если ContactType не равен PickupPoint",
                "nullable": true
              },
              "latitude": {
                "type": "number",
                "description": "Широта адреса. Если указаны latitude и longitude, остальные параметры (countryId, cityId, address) становятся необязательными. В приоритете используются координаты.",
                "format": "double",
                "nullable": true
              },
              "longitude": {
                "type": "number",
                "description": "Долгота адреса. Если указаны latitude и longitude, остальные параметры (countryId, cityId, address) становятся необязательными. В приоритете используются координаты.",
                "format": "double",
                "nullable": true
              },
              "pickupPointVendorId": {
                "type": "integer",
                "description": "Поставщик для PickupPointId. Обязательно для ContactType = PickupPoint; игнорируется, если ContactType не равен PickupPoint",
                "format": "int32",
                "nullable": true
              },
              "pickupPointType": {
                "$ref": "#/components/schemas/ApiPickupPointType"
              },
              "loadingWorks": {
                "type": "object",
                "properties": {
                  "floor": {
                    "type": "integer",
                    "description": "На каком этаже выполняются работы по подъему груза. По умолчанию 1"
                  },
                  "hasFreightLift": {
                    "type": "boolean",
                    "description": "Имеется ли грузовой лифт"
                  },
                  "loadersCount": {
                    "type": "integer",
                    "description": "Количество грузчиков. По умолчанию 1"
                  }
                },
                "additionalProperties": false,
                "description": "Разгрузочные работы"
              },
              "transportRequirements": {
                "type": "object",
                "properties": {
                  "requirements": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/ApiTransportRequirementsType"
                    },
                    "description": "Перечень требований к транспортному средству. Необходимо указать массив требований, которые необходимы для транспорта. Список требований можно посмотреть: <a href=\"/api/reference/transportRequirementsType\">Справочник значений</a>"
                  }
                },
                "additionalProperties": false,
                "description": "Требования к транспорту для отправителя"
              },
              "assemblyWorks": {
                "type": "object",
                "properties": {
                  "assemblersCount": {
                    "type": "integer",
                    "description": "Количество сборщиков. По умолчанию 1"
                  }
                },
                "additionalProperties": false,
                "description": "Работы по сборке груза"
              },
              "partialPayParameters": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PartialPaySurchargeRule"
                },
                "description": "Параметры услуги \"Частичный выкуп\"\nПри выкупе на сумму порога оплаты или ниже – соответствующая доплата за доставку.\nДля выкупа выше порога оплаты – доплата отсутствует.",
                "nullable": true
              },
              "address": {
                "type": "string",
                "description": "Адрес произвольной строкой. Адрес должен относиться к указанному в city городу и стране - эта проверка не выполняется, но если в поле адрес будет указан адрес из другого региона - доставка не гарантируется. Не обязателен, но может влиять на стоимость доставки\nОбязателен, когда contactType=Door и не указаны координаты. Если указаны координаты, Address может быть не заполнен.",
                "nullable": true
              }
            },
            "additionalProperties": false,
            "description": "Информация о получателе",
            "example": {
              "contactType": 1,
              "countryId": "RU",
              "cityId": "c2deb16a-0330-4f05-821f-1d09c93331e6",
              "postalCode": "190000",
              "address": "ул. Рентгена, 4а"
            }
          },
          "cargo": {
            "$ref": "#/components/schemas/CargoDescModel"
          },
          "optionFilter": {
            "$ref": "#/components/schemas/OptionFilter"
          },
          "pickupInfo": {
            "$ref": "#/components/schemas/CallCourierPickupInfo"
          },
          "deliveryInfo": {
            "$ref": "#/components/schemas/ReqDeliveryInfo"
          },
          "services": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Service"
            },
            "description": "Перечень дополнительных услуг (страховка, наложенный платеж, частичный выкуп и т.д.)",
            "nullable": true,
            "example": [
              {
                "code": "Insurance",
                "parameter": "1000"
              },
              {
                "code": "PrintReceipt",
                "parameter": "{\"PaymentType\":\"Prepayment\",\"FiscalizationTarget\":\"Products\"}"
              }
            ]
          },
          "receiverDeliveryCharge": {
            "type": "number",
            "description": "Дополнительный сбор за доставку с получателя. Используется для расчёта комиссии за наложенный платёж",
            "format": "double",
            "example": 100
          },
          "companyId": {
            "type": "integer",
            "description": "Идентификатор компании от которой создается заказ. Если значение не задано, то используется идентификатор компании,\nкоторой принадлежит ключ API.\nЧтобы получить идентификаторы для работы с вашими компаниями, пожалуйста, обратитесь на support@versta24.ru",
            "format": "int32",
            "nullable": true,
            "example": null
          }
        },
        "additionalProperties": false,
        "description": "Запрос доступных вариантов доставки по дням"
      },
      "CalcResponse": {
        "type": "object",
        "properties": {
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DeliveryOption"
            },
            "description": "Перечень доступных вариантов доставки",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CalcResponseByDay": {
        "type": "object",
        "properties": {
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DeliveryOptionByDay"
            },
            "description": "Варианты доставки на указанную дату",
            "nullable": true
          },
          "deliveryDate": {
            "type": "string",
            "description": "Варианты доставки на указанную дату\nДаты считаются с текущего дня + DaysToCalculate\nЕсли вариантов доставки на указанную дату нет - то элемент все равно будет, но с пустыми Options",
            "format": "date-time"
          },
          "dayType": {
            "$ref": "#/components/schemas/DayType"
          }
        },
        "additionalProperties": false,
        "description": "Варианты доставки на указанную дату"
      },
      "CalcResponseByDays": {
        "type": "object",
        "properties": {
          "deliveryDays": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CalcResponseByDay"
            },
            "description": "Массив дат доставки с вариантами доставки.\nДаты считаются с текущего дня + DaysToCalculate\nЕсли вариантов доставки на указанную дату нет - то элемент все равно будет, но с пустыми Options",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Варианты доставки на указанную дату\nДаты считаются с текущего дня + DaysToCalculate\nЕсли вариантов доставки на указанную дату нет - то элемент все равно будет, но с пустыми Options"
      },
      "CalcServiceResult": {
        "required": [
          "code"
        ],
        "type": "object",
        "properties": {
          "code": {
            "minLength": 1,
            "type": "string",
            "description": "Наименование услуги. Например: Insurance \n\nСписок услуг см. <a href=\"/api/reference/services\">справочник</a>",
            "example": "Insurance"
          },
          "status": {
            "$ref": "#/components/schemas/ApiServiceCalcStatus"
          }
        },
        "additionalProperties": false,
        "description": "Результат расчёта услуги"
      },
      "CallCourierPickupInfo": {
        "type": "object",
        "properties": {
          "autoChangeTakeDate": {
            "type": "boolean",
            "description": "Если true, то система будет пытаться автоматически поменять дату забора на ближайший доступный день, если на дату,\nзаданную в TakeDate, передача заказа с заданными VendorId и TariffId невозможна.\nПо умолчанию, true.\nПАРАМЕТР УСТАРЕЛ И БУДЕТ УДАЛЁН."
          },
          "takeDate": {
            "type": "string",
            "description": "Указывается дата забора груза в формате yyyy-MM-dd.\nПо умолчанию - текущая дата.\nНе все поставщики могут выполнять забор в выходные дни.\nТакже существуют ограничения на время размещения заказа с датой забора сегодня.\nБлижайшая доступная дата забора заказа возвращается в варианте доставки в takeDate.",
            "nullable": true,
            "example": "2020-03-31"
          },
          "timeFrom": {
            "type": "string",
            "description": "Указывается ограничение на время забора (начальное). Это ограничение носит рекомендательный характер и не всегда\nможет быть соблюдено.\nПо умолчанию указывается время забора 09:00.",
            "format": "date-span",
            "example": "12:00"
          },
          "timeTo": {
            "type": "string",
            "description": "Указывается ограничение на время забора (конечное). Это ограничение носит рекомендательный характер и не всегда\nможет быть соблюдено.\nПо умолчанию указывается время забора 18:00.",
            "format": "date-span",
            "example": "15:00"
          }
        },
        "additionalProperties": false,
        "description": "Сведения по забору заказа у отправителя"
      },
      "CancelOrderResponse": {
        "type": "object",
        "properties": {
          "orderId": {
            "type": "string",
            "description": "Номер отмененного заказа",
            "nullable": true,
            "example": "V24X-XXX-XXX-XXX"
          },
          "cancelled": {
            "type": "boolean",
            "description": "Признак, что заказ успешно отменен"
          }
        },
        "additionalProperties": false
      },
      "CargoDescModel": {
        "required": [
          "cargoItems",
          "cargoType"
        ],
        "type": "object",
        "properties": {
          "cargoType": {
            "$ref": "#/components/schemas/ApiCargoTypes"
          },
          "cargoState": {
            "$ref": "#/components/schemas/ApiCargoStates"
          },
          "isApproximateParameters": {
            "type": "boolean",
            "description": "Признак того, что указанные в CargoItems параметры примерные"
          },
          "cargoItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CargoItemModel"
            },
            "description": "Массив с описанием параметров мест. Как минимум одно место должно быть описано"
          },
          "cargoProducts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CargoProductModel"
            },
            "description": "Массив с описанием параметров перевозимых товаров",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "Краткое описание груза. Обязательно для любого типа груза, кроме документов",
            "nullable": true,
            "example": "Важные документы"
          },
          "customsValue": {
            "type": "number",
            "description": "Таможенная стоимость отправления. Обязательно указывается, если страна получателя и отправителя не совпадают\n(отправление пересекает границу)",
            "format": "double",
            "nullable": true,
            "example": 100.99
          },
          "customsCurrency": {
            "type": "string",
            "description": "Трехбуквенный код валюты таможенной стоимости в соответствии с ISO 4217 (https://ru.wikipedia.org/wiki/ISO_4217)",
            "nullable": true,
            "example": "RUB"
          },
          "natureOfGoods": {
            "type": "string",
            "description": "Характер груза (внутренний код Versta). Для получения доступных значений используйте GET /openapi/v2/NatureOfGoods. \\\nОбязателен для передачи заказов некоторым поставщикам (Деловые Линии, Спецсвязь, KIT и др). \\",
            "nullable": true,
            "example": "tires"
          },
          "isUsed": {
            "type": "boolean",
            "description": "Признак того, что груз является б/у"
          },
          "hsCode": {
            "type": "string",
            "description": "Товарная номенклатура внешнеэкономической деятельности",
            "nullable": true,
            "example": "4901990000"
          },
          "weight": {
            "type": "number",
            "format": "double",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "cargoDescModel - описание груза"
      },
      "CargoItemModel": {
        "required": [
          "qty",
          "weight"
        ],
        "type": "object",
        "properties": {
          "weight": {
            "type": "number",
            "description": "Вес места в кг",
            "format": "double",
            "example": 0.5
          },
          "qty": {
            "type": "integer",
            "description": "Указывается кол-во грузомест с обозначенными параметрами",
            "format": "int32",
            "example": 2
          },
          "l": {
            "type": "number",
            "description": "Габарит длина в сантиметрах.\nГабаритные значения груза необходимы для расчета объемного веса. Они необязательны для документов, но если указан\nхоть один, остальные также должны быть заданы",
            "format": "double",
            "nullable": true,
            "example": 13.5
          },
          "h": {
            "type": "number",
            "description": "Габарит высота в сантиметрах.\nГабаритные значения груза необходимы для расчета объемного веса. Они необязательны для документов, но если указан\nхоть один, остальные также должны быть заданы",
            "format": "double",
            "nullable": true,
            "example": 10
          },
          "w": {
            "type": "number",
            "description": "Габарит ширина в сантиметрах.\nГабаритные значения груза необходимы для расчета объемного веса. Они необязательны для документов, но если указан\nхоть один, остальные также должны быть заданы",
            "format": "double",
            "nullable": true,
            "example": 20
          },
          "volumeWeight": {
            "type": "number",
            "description": "Объемный вес в кг. Если заданы габаритные размеры груза, то рассчитывается объемный вес. Этот параметр\nрассчитывается автоматически и НЕ ЗАПОЛНЯЕТСЯ при создании заказа.",
            "format": "double",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "Описание грузоместа или комментарии к грузоместу",
            "nullable": true,
            "example": "Ноутбук"
          },
          "volume": {
            "type": "number",
            "description": "Объем в кубических метрах для всего грузового места.\nЭтот параметр является необязательным. Если он указан, то его значение применяется ко всей посылке.\nЕсли указано значение для `Volume`, то в CargoItems может быть указан только один объект.",
            "format": "double",
            "nullable": true,
            "example": 6
          }
        },
        "additionalProperties": false,
        "description": "cargoItemModel - описание грузоместа"
      },
      "CargoProductModel": {
        "required": [
          "name",
          "productId",
          "qty"
        ],
        "type": "object",
        "properties": {
          "barcode": {
            "maxLength": 150,
            "type": "string",
            "description": "Маркировка товара. Если указана маркировка, Qty не может быть больше 1",
            "nullable": true
          },
          "productId": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "Идентификатор/артикул товара",
            "example": "A12B3456"
          },
          "name": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string",
            "description": "Название товара. Может содержать его описание: размер, цвет и т.д.",
            "example": "Мобильные телефоны Nokia"
          },
          "weight": {
            "type": "number",
            "description": "Вес единицы товара в кг. Если не задан, то считаем что вес товара 0.1 кг",
            "format": "double",
            "example": 0.1
          },
          "cost": {
            "type": "number",
            "description": "Объявленная стоимость единицы товара",
            "format": "double",
            "example": 600
          },
          "costForReceiver": {
            "type": "number",
            "description": "Сумма, которую оплачивает получатель при вручении.\nОбязателен для заполнения, если запрошена услуга \"Наложенный платеж\"",
            "format": "double",
            "nullable": true,
            "example": 800
          },
          "vatRate": {
            "$ref": "#/components/schemas/ApiVatRate"
          },
          "qty": {
            "type": "integer",
            "description": "Количество товаров. Не может быть больше 1, если указана маркировка (Barcode)",
            "format": "int32",
            "example": 1
          },
          "purchasedQty": {
            "type": "integer",
            "description": "Количество выкупленных товаров. Если данных о выкупе нет - null",
            "format": "int32",
            "nullable": true
          },
          "purchasedAmount": {
            "type": "number",
            "description": "Сумма оплаты за выкупленные товары. Если данных о выкупе нет - null",
            "format": "double",
            "nullable": true
          },
          "serialNumber": {
            "type": "string",
            "nullable": true
          },
          "cargoItemIndex": {
            "type": "integer",
            "description": "Индекс места v24.OpenApi.Models.ApiV1.Orders.CargoItemModel, к которому относится товар",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "CargoProductModel - описание перевозимого товара"
      },
      "ChangesRequest": {
        "required": [
          "changes"
        ],
        "type": "object",
        "properties": {
          "changes": {
            "type": "object",
            "description": "Изменения, которые нужно внести. Нужно указать точное названия поля, учитывая регистр \\\nЕсли поле вложенное, то его необходимо указать через точку. Например \"sender.name\"",
            "example": {
              "sender.name": "Иванов",
              "cargo.description": "Оборудование"
            }
          }
        },
        "additionalProperties": false
      },
      "CompanyBalance": {
        "required": [
          "currencyId",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Идентификатор компании",
            "format": "int32",
            "example": 1
          },
          "vatNumber": {
            "type": "string",
            "description": "ИНН компании",
            "nullable": true,
            "example": "1181111110"
          },
          "name": {
            "minLength": 1,
            "type": "string",
            "description": "Название компании",
            "example": "ООО Ромашка"
          },
          "amount": {
            "type": "number",
            "description": "Текущий баланс",
            "format": "double",
            "example": 34830.25
          },
          "currencyId": {
            "minLength": 1,
            "type": "string",
            "description": "Трехбуквенный код валюты баланса в соответствии с ISO 4217 (https://ru.wikipedia.org/wiki/ISO_4217)",
            "example": "RUB"
          }
        },
        "additionalProperties": false,
        "description": "Данные текущего баланса компании"
      },
      "ContactRequestModel": {
        "required": [
          "name",
          "phone"
        ],
        "type": "object",
        "properties": {
          "name": {
            "minLength": 1,
            "type": "string",
            "description": "Указывается или название компании или конкретное физическое лицо"
          },
          "contactPerson": {
            "type": "string",
            "description": "Контактное лицо. Если в поле name указано название компании, то тут можно указать ФИО конкретного контактного лица. Необязательный параметр",
            "nullable": true
          },
          "phone": {
            "minLength": 1,
            "type": "string",
            "description": "Контактный телефон, по которому можно связаться с контактным лицом. Лучше указывать мобильный номер. Формат этого поля проверяется при добавлении заказа. Должен соответствовать следующим условиям: <br>\n            - номер должен начинаться со знака '+' или с '8'<br>\n             - если указывается несколько контактных номеров, то они должны быть разделены запятой <br>\n             - добавочный номер должен содержать только цифры и отделяется от основного номера словом 'доб.' или символом '#' <br>\n             - все дополнительные комментарии к номеру должны быть указаны в поле Info (ограничения на время звонка, контактное лицо и тп)"
          },
          "email": {
            "type": "string",
            "description": "Email контактного лица",
            "nullable": true
          },
          "contactType": {
            "$ref": "#/components/schemas/ApiContactTypes"
          },
          "countryId": {
            "type": "string",
            "description": "Указывается двухбуквенный код страны в соответствии с ISO 3166-1 alpha-2 (https://ru.wikipedia.org/wiki/ISO_3166-1).<br>Обязателен, если не указаны координаты (latitude и longitude). Если указаны координаты, countryId может быть не заполнен.",
            "nullable": true
          },
          "cityId": {
            "type": "string",
            "description": "Код города или населенного пункта\nОбязателен, если не указаны координаты (latitude и longitude). Если координаты указаны — параметр cityId может быть не заполнен.\n\nПриоритет выбора адреса:\n\n 1. Если указаны latitude и longitude — используются только координаты.\n 2. Если координаты не указаны — используются countryId, cityId, cityName и address.\n 3. Если по координатам не удалось распознать адрес — используются countryId, cityId, cityName и address.\n\nФормат значения зависит от страны. Для населенных пунктов:\n- внутри РФ - необходимо указывать код ФИАС (уровень 4 или 6) или КЛАДР,\n- в странах Беларуси, Казахстана и Узбекистана - Тип объекта и Идентификатор объекта в базе OpenStreetMap. Пример <i>relation:2465058</i> (https://ru.wikipedia.org/wiki/OpenStreetMap).\n- в остальных населенных пунктов за пределами РФ - Идентификатор объекта в базе GeoNames (https://ru.wikipedia.org/wiki/GeoNames).\nГород должен попадать в указанную в параметре country страну.\nЭтот параметр очень важен и определяет в том числе какому поставщику будет передан заказа. Также этот параметр\nвлияет на цену",
            "nullable": true
          },
          "cityName": {
            "type": "string",
            "description": "Название города (опционально).\nЛогика выбора:\n    1. Если указаны координаты — используются только координаты.\n    2. Если координаты не указаны, но указан CityId — используются CityId, а CityName игнорируется.\n    3. Если CityId не указан — выполняется поиск по CityName.\nДля точного определения, пожалуйста, используйте CityId или координаты.",
            "nullable": true
          },
          "postalCode": {
            "type": "string",
            "description": "Почтовый индекс населенного пункта. Не обязательный параметр. Обязателен, если отправление международное; указывается у отправителя и получателя",
            "nullable": true
          },
          "address": {
            "type": "string",
            "description": "Адрес произвольной строкой. Адрес должен относиться к указанному в city городу и стране - эта проверка не выполняется, но если в поле адрес будет указан адрес из другого региона - доставка не гарантируется. Не обязателен, но может влиять на стоимость доставки\nОбязателен, когда contactType=Door и не указаны координаты. Если указаны координаты, Address может быть не заполнен.",
            "nullable": true
          },
          "pickupPointId": {
            "type": "string",
            "description": "Идентификатор точки выдачи. Обязательно для ContactType = PickupPoint; игнорируется, если ContactType не равен PickupPoint",
            "nullable": true
          },
          "latitude": {
            "type": "number",
            "description": "Широта адреса. Если указаны latitude и longitude, остальные параметры (countryId, cityId, address) становятся необязательными. В приоритете используются координаты.",
            "format": "double",
            "nullable": true
          },
          "longitude": {
            "type": "number",
            "description": "Долгота адреса. Если указаны latitude и longitude, остальные параметры (countryId, cityId, address) становятся необязательными. В приоритете используются координаты.",
            "format": "double",
            "nullable": true
          },
          "pickupPointVendorId": {
            "type": "integer",
            "description": "Поставщик для PickupPointId. Обязательно для ContactType = PickupPoint; игнорируется, если ContactType не равен PickupPoint",
            "format": "int32",
            "nullable": true
          },
          "loadingWorks": {
            "$ref": "#/components/schemas/LoadingWorksParameters"
          },
          "assemblyWorks": {
            "$ref": "#/components/schemas/AssemblyWorksParameters"
          },
          "partialPayParameters": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "paymentThreshold": {
                  "type": "integer",
                  "description": "Порог доплаты",
                  "example": 3000
                },
                "deliverySurcharge": {
                  "type": "integer",
                  "description": "Доплата за доставку",
                  "example": 200
                }
              }
            },
            "description": "Параметры частичной оплаты. При выкупе на сумму порога оплаты или ниже – соответствующая доплата за доставку.\nДля выкупа выше порога оплаты – доплата отсутствует.",
            "nullable": true
          },
          "transportRequirements": {
            "$ref": "#/components/schemas/ApiTransportRequirementsParameters"
          },
          "tin": {
            "type": "string",
            "description": "ИНН. Указывается для юр. лица. Необязательный параметр.",
            "nullable": true,
            "example": "1181111110"
          },
          "legalType": {
            "$ref": "#/components/schemas/ApiLegalType"
          },
          "edoParticipantId": {
            "type": "string",
            "description": "ИдЭДО участника ФНС - идентификатор контрагента у оператора ЭДО. Идентификатор выдает ФНС, поэтому он есть только у российского юридического лица. Необязательный параметр.",
            "nullable": true,
            "example": "2BM-7701234567-770101001-201234567890123456789012345"
          },
          "instructions": {
            "type": "string",
            "description": "Дополнительная информация по адресу. Может быть указаны особенности прохода на территорию. Любая другая информация, которая должна помочь курьеру найти указанный адрес и контактное лицо. Необязательный параметр.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "ContactRequestModel - информация об отправителе или получаетеле"
      },
      "ContactResponseModel": {
        "required": [
          "name",
          "phone"
        ],
        "type": "object",
        "properties": {
          "legalType": {
            "$ref": "#/components/schemas/ApiLegalType"
          },
          "idCardDetails": {
            "type": "string",
            "description": "Номер документа удостоверяющего личность",
            "nullable": true
          },
          "tin": {
            "type": "string",
            "description": "ИНН",
            "nullable": true
          },
          "edoParticipantId": {
            "type": "string",
            "description": "ИдЭДО участника ФНС — идентификатор контрагента у оператора ЭДО. Заполнен только у российского\nюридического лица.",
            "nullable": true
          },
          "countryName": {
            "type": "string",
            "description": "Возвращает название страны на русском языке для отображения пользователю.",
            "nullable": true
          },
          "cityName": {
            "type": "string",
            "description": "Возвращает название города на русском языке для отображения пользователю.",
            "nullable": true
          },
          "name": {
            "minLength": 1,
            "type": "string",
            "description": "Название компании или конкретное физическое лицо"
          },
          "contactPerson": {
            "type": "string",
            "description": "Контактное лицо",
            "nullable": true
          },
          "phone": {
            "minLength": 1,
            "type": "string",
            "description": "Контактный телефон, по которому можно связаться с контактным лицом"
          },
          "email": {
            "type": "string",
            "description": "E-mail контактного лица",
            "nullable": true
          },
          "contactType": {
            "$ref": "#/components/schemas/ApiContactTypes"
          },
          "countryId": {
            "type": "string",
            "description": "Двухбуквенный код страны в соответствии с ISO 3166-1 alpha-2 (https://ru.wikipedia.org/wiki/ISO_3166-1)",
            "nullable": true
          },
          "cityId": {
            "type": "string",
            "description": "Код города или населенного пункта. Для населенных пунктов внутри РФ - необходимо указывать код ФИАС (уровень 4 или 6) или КЛАДР, для населенных пунктов за пределами РФ - Идентификатор объекта в базе GeoNames (https://ru.wikipedia.org/wiki/GeoNames)",
            "nullable": true
          },
          "postalCode": {
            "type": "string",
            "description": "Почтовый индекс населенного пункта. Не обязательный параметр",
            "nullable": true
          },
          "address": {
            "type": "string",
            "description": "Адрес произвольной строкой",
            "nullable": true
          },
          "pickupPointId": {
            "type": "string",
            "description": "Идентификатор точки выдачи.",
            "nullable": true
          },
          "pickupPointVendorId": {
            "type": "integer",
            "description": "Поставщик для PickupPointId.",
            "format": "int32",
            "nullable": true
          },
          "pickupPointType": {
            "$ref": "#/components/schemas/ApiPickupPointType"
          },
          "loadingWorks": {
            "$ref": "#/components/schemas/LoadingWorksParameters"
          },
          "assemblyWorks": {
            "$ref": "#/components/schemas/AssemblyWorksParameters"
          },
          "partialPayParameters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PartialPaySurchargeRule"
            },
            "description": "Параметры услуги \"Частичный выкуп\"\nПри выкупе на сумму порога оплаты или ниже – соответствующая доплата за доставку.\nДля выкупа выше порога оплаты – доплата отсутствует.",
            "nullable": true
          },
          "transportRequirements": {
            "$ref": "#/components/schemas/ApiTransportRequirementsParameters"
          },
          "instructions": {
            "type": "string",
            "description": "Дополнительная информация по адресу.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ContractRequest": {
        "type": "object",
        "properties": {
          "authorization": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "nullable": true
            },
            "description": "Список полей, необходимых для подключения поставщика по клиентскому договору",
            "nullable": true,
            "example": {
              "login": "logistics",
              "password": "secret"
            }
          }
        },
        "additionalProperties": false
      },
      "CreateCompanyModel": {
        "required": [
          "companyName",
          "contactEmail",
          "contactName"
        ],
        "type": "object",
        "properties": {
          "companyName": {
            "minLength": 1,
            "type": "string",
            "description": "Название компании",
            "example": "ООО Тестовая комапания"
          },
          "vatNumber": {
            "type": "string",
            "description": "ИНН",
            "nullable": true,
            "example": "789456123789"
          },
          "kpp": {
            "type": "string",
            "description": "КПП",
            "nullable": true,
            "example": "321654987"
          },
          "bankAccount": {
            "$ref": "#/components/schemas/BankAccount"
          },
          "contactName": {
            "minLength": 1,
            "type": "string",
            "description": "Имя пользователя",
            "example": "Петров Петр"
          },
          "contactPhone": {
            "type": "string",
            "description": "Телефон пользователя",
            "nullable": true,
            "example": "+79115554433"
          },
          "contactEmail": {
            "minLength": 1,
            "type": "string",
            "description": "E-mail пользователя",
            "example": "petrov_petr@gmail.com"
          },
          "generateApiKey": {
            "type": "boolean",
            "description": "Нужно ли сгенерировать ApiKey новому пользователю"
          },
          "sendUserCredentialByEmail": {
            "type": "boolean",
            "description": "Нужно ли отправить email новому пользователю с логином и паролем"
          },
          "comment": {
            "type": "string",
            "description": "Комментарий в свободной форме к создаваемой компании",
            "nullable": true,
            "example": "Комментарий к данной компании"
          }
        },
        "additionalProperties": false
      },
      "CreateCompanyResponse": {
        "type": "object",
        "properties": {
          "userApiKey": {
            "type": "string",
            "description": "ApiKey пользователя",
            "nullable": true,
            "example": "b9edb7b5-3673-4005-ae88-ef827edh2da6"
          }
        },
        "additionalProperties": false
      },
      "DayType": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "description": "Тип дня",
        "format": "int32"
      },
      "DeliveryOption": {
        "required": [
          "deliveryType",
          "price",
          "tariffId",
          "tariffName",
          "tariffPriceOnly",
          "vendorInfo"
        ],
        "type": "object",
        "properties": {
          "vendorInfo": {
            "$ref": "#/components/schemas/VendorInfo"
          },
          "tariffId": {
            "minLength": 1,
            "type": "string",
            "description": "Идентификатор данного вида доставки у указанного вендора. \\\nПоля VendorId, TariffId и TakeDate передаются для указания конкретного варианта доставки",
            "example": "4"
          },
          "tariffName": {
            "minLength": 1,
            "type": "string",
            "description": "Название тарифа для отображения пользователю",
            "example": "Срочная"
          },
          "comments": {
            "type": "string",
            "description": "Произвольные комментарии к тарифу, если есть",
            "nullable": true,
            "example": "Москва - Санкт-Петербург Срочная доставка"
          },
          "price": {
            "type": "number",
            "description": "Полная цена для пользователя в рублях. Включая все дополнительные сервисы, страховку и налоги и НДС (если\nприменимо)",
            "format": "double",
            "example": 490
          },
          "tariffPriceOnly": {
            "type": "number",
            "description": "Цена тарифа без дополнительных сервисов и страховки. Включая все налоги и НДС (если применимо)",
            "format": "double",
            "example": 490
          },
          "takeDate": {
            "type": "string",
            "description": "Дата забора (может не совпадать с переданной в запросе, если данный вариант тарифа уже нельзя сделать с забором на\nуказанную дату)",
            "format": "date-time",
            "example": "2020-04-16"
          },
          "deliveryType": {
            "$ref": "#/components/schemas/ApiDeliveryType"
          },
          "fromPickupPointType": {
            "enum": [
              0,
              1,
              2,
              3,
              4,
              5
            ],
            "type": "integer",
            "description": "Тип ПВЗ отправителя, если доставка от склада<br/>0 - ПВЗ<br/>1 - Постомат",
            "format": "int32"
          },
          "toPickupPointType": {
            "enum": [
              0,
              1,
              2,
              3,
              4,
              5
            ],
            "type": "integer",
            "description": "Тип ПВЗ получателя, если доставка до склада<br/>0 - ПВЗ<br/>1 - Постомат",
            "format": "int32"
          },
          "deliveryDateFrom": {
            "type": "string",
            "description": "Планируемая дата доставки (от)",
            "format": "date-time",
            "nullable": true,
            "example": "2020-04-16T00:00:00+03:00"
          },
          "deliveryDateTo": {
            "type": "string",
            "description": "Планируемая дата доставки (до)",
            "format": "date-time",
            "nullable": true,
            "example": "2020-04-17T00:00:00+03:00"
          },
          "minDays": {
            "type": "integer",
            "description": "Минимальное количество дней доставки",
            "format": "int32",
            "nullable": true
          },
          "maxDays": {
            "type": "integer",
            "description": "Максимальное количество дней доставки",
            "format": "int32",
            "nullable": true
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Теги. Перечень, который содержит дополнительные указания к вариантам доставки. Например, может быть указан способ транспортировки заказа Авиа /\nназемный транспорт",
            "nullable": true,
            "example": [
              "Авиа"
            ]
          },
          "services": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CalcServiceResult"
            },
            "description": "Перечень результатов расчёта дополнительных услуг",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Модель варианта доставки"
      },
      "DeliveryOptionByDay": {
        "required": [
          "price",
          "tariffId",
          "tariffName",
          "tariffPriceOnly",
          "vendorInfo"
        ],
        "type": "object",
        "properties": {
          "vendorInfo": {
            "$ref": "#/components/schemas/VendorInfo"
          },
          "tariffId": {
            "minLength": 1,
            "type": "string",
            "description": "Идентификатор данного вида доставки у указанного вендора. \\\nПоля VendorId, TariffId и TakeDate передаются для указания конкретного варианта доставки",
            "example": "4"
          },
          "tariffName": {
            "minLength": 1,
            "type": "string",
            "description": "Название тарифа для отображения пользователю",
            "example": "Срочная"
          },
          "comments": {
            "type": "string",
            "description": "Произвольные комментарии к тарифу, если есть",
            "nullable": true,
            "example": "Москва - Санкт-Петербург Срочная доставка"
          },
          "price": {
            "type": "number",
            "description": "Полная цена для пользователя в рублях. Включая все дополнительные сервисы, страховку и налоги и НДС (если\nприменимо)",
            "format": "double",
            "example": 490
          },
          "tariffPriceOnly": {
            "type": "number",
            "description": "Цена тарифа без дополнительных сервисов и страховки. Включая все налоги и НДС (если применимо)",
            "format": "double",
            "example": 490
          },
          "takeDate": {
            "type": "string",
            "description": "Дата забора (может не совпадать с переданной в запросе, если данный вариант тарифа уже нельзя сделать с забором на\nуказанную дату)",
            "format": "date-time",
            "example": "2020-04-16"
          },
          "deliveryDate": {
            "type": "string",
            "description": "Планируемая дата доставки",
            "format": "date-time",
            "nullable": true,
            "example": "2020-04-16T00:00:00+03:00"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Теги. Перечень, который содержит дополнительные указания к вариантам доставки. Например, может быть указан способ транспортировки заказа Авиа /\nназемный транспорт",
            "nullable": true,
            "example": [
              "Авиа"
            ]
          },
          "services": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CalcServiceResult"
            },
            "description": "Перечень результатов расчёта дополнительных услуг",
            "nullable": true
          },
          "timeSlot": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TimeSlot"
            },
            "description": "Возможные временные слоты для доставки",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Модель варианта доставки на конкретную дату"
      },
      "EditVendorParameterDto": {
        "type": "object",
        "properties": {
          "value": {
            "type": "string",
            "description": "Новое значение параметра поставщика",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EnableVendorRequest": {
        "type": "object",
        "properties": {
          "enable": {
            "type": "boolean",
            "description": "Включить/выключить поставщика",
            "example": true
          }
        },
        "additionalProperties": false
      },
      "EventAccessLevel": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "format": "int32"
      },
      "ExtendedDescription": {
        "type": "object",
        "properties": {
          "authorization": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "nullable": true
            },
            "description": "Список полей договора с поставщиком",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "description": "Идентификатор поставщика",
            "format": "int32",
            "example": 8
          },
          "name": {
            "type": "string",
            "description": "Название поставщика",
            "nullable": true,
            "example": "СДЭК"
          },
          "key": {
            "type": "string",
            "description": "Ключ-идентификатор поставщика",
            "nullable": true,
            "example": "CDEK"
          },
          "description": {
            "type": "string",
            "description": "Описание поставщика",
            "nullable": true,
            "example": "Интеграция со СДЭК"
          },
          "logo": {
            "type": "string",
            "description": "Ссылка на логотип поставщика",
            "nullable": true,
            "example": "https://my.versta24.ru/img/vendors/СДЭК.png"
          },
          "contractType": {
            "$ref": "#/components/schemas/VendorContractType"
          },
          "isEnabled": {
            "type": "boolean",
            "description": "Включён ли поставщик",
            "example": true
          },
          "schemaLink": {
            "type": "string",
            "description": "Ссылка на получение схемы подключения клиентского договора поставщика",
            "nullable": true,
            "example": "https://api.versta24.ru/OpenApi/v2/Vendors/CDEK/authSchema"
          },
          "vendorLink": {
            "type": "string",
            "description": "Ссылка на подробную информацию о поставщике",
            "nullable": true,
            "example": "https://api.versta24.ru/OpenApi/v2/Vendors/CDEK"
          },
          "contractLink": {
            "type": "string",
            "description": "Ссылка на данные договора",
            "nullable": true,
            "example": "https://api.versta24.ru/OpenApi/v2/Vendors/CDEK/contract"
          }
        },
        "additionalProperties": false
      },
      "FileMetadata": {
        "type": "object",
        "properties": {
          "guid": {
            "type": "string",
            "description": "Идентификатор файла",
            "nullable": true,
            "example": "b0d4ce5d-2757-4699-948c-cfa72ba94f86"
          },
          "downloadLink": {
            "type": "string",
            "description": "Ссылка для скачивания файла",
            "nullable": true,
            "example": "https://api.versta24.ru/openapi/v2/attachments/b0d4ce5d-2757-4699-948c-cfa72ba94f86"
          },
          "size": {
            "type": "integer",
            "description": "Размер файла в килобайтах",
            "format": "int64",
            "example": 12
          },
          "name": {
            "type": "string",
            "description": "Название файла",
            "nullable": true,
            "example": "file.pdf"
          },
          "mimeType": {
            "type": "string",
            "description": "MIME-тип файла",
            "nullable": true,
            "example": "application/pdf"
          },
          "fileType": {
            "enum": [
              0,
              1,
              2,
              4,
              8,
              16,
              32,
              64,
              128,
              256,
              512,
              1024,
              2048,
              4096,
              8192,
              16384,
              32768,
              536870912,
              1073741824
            ],
            "type": "integer",
            "description": "Тип содержимого файла. Можно использовать как маску <br />\n        0 = None - Без типа <br />\n        1 = AttachedFile - Вложение <br />\n        2 = OrderPrintedInvoice - Распечатанная накладная заказа <br />\n        4 = InsurancePolicy - Страховка <br />\n        8 = CargoBarcode - Штрихкод груза <br />\n        16 = OrderSourceFile - Исходный файл создания заказа <br />\n        32 = InvoiceScan - Скан накладной <br />\n        64 = YotaContract - Договор Yota <br />\n        128 = OrderTemplateAttachedFile - Шаблон файла загрузки для договора <br />\n        256 = PaymentAccount - Данные плательщика <br />\n        512 = ZipInvoiceScans - Архив сканов накладных <br />\n        1024 = Registry - Реестр по заказу <br />\n        2048 = ZipRegistries - Архив реестров по заказу <br />\n        4096 = LoadingPhoto - Фото погрузки <br />\n        8192 = UnloadingPhoto - Фото разгрузки <br />\n        16384 = Documents - Документы <br />\n        32768 = MailingSource - Исходный файл рассылки",
            "format": "int32",
            "example": 1
          },
          "itemType": {
            "enum": [
              0,
              1,
              2,
              3,
              0,
              1,
              2,
              3,
              0,
              1,
              2,
              3,
              0,
              1,
              2,
              3,
              0,
              1,
              2,
              3,
              0,
              1,
              2,
              3,
              0,
              1,
              2,
              3,
              0,
              1,
              2,
              3,
              0,
              1,
              2,
              3,
              0,
              1,
              2,
              3,
              0,
              1,
              2,
              3,
              0,
              1,
              2,
              3,
              0,
              1,
              2,
              3
            ],
            "type": "integer",
            "description": "Тип сущности, к которой привязывается файл <br />\n        0 = Order - К заказу versta24 <br />\n        1 = ProfLogVendor - Поставщик профлог <br />\n        2 = Resource - Информационный файл <br />\n        3 = PickupPoint - Пункт выдачи заказов",
            "format": "int32",
            "example": 0
          },
          "accessLevel": {
            "enum": [
              1,
              2,
              4
            ],
            "type": "integer",
            "description": "Уровень доступа к файлу <br />\n        1 = Admin - Доступен только администраторам versta24 <br />\n        2 = AuthorizedUser - Доступен всем авторизованным пользователям <br />\n        4 = NotAuthorizedUser - Доступен всем",
            "example": 2
          }
        },
        "additionalProperties": false,
        "description": "FileMetadata - модель данных файла"
      },
      "InitiatorType": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "format": "int32"
      },
      "LoadingWorksParameters": {
        "type": "object",
        "properties": {
          "floor": {
            "type": "integer",
            "description": "На каком этаже выполняются работы. Спуск/подъем. По умолчанию 1",
            "format": "int32",
            "example": 1
          },
          "hasFreightLift": {
            "type": "boolean",
            "description": "Имеется ли грузовой лифт"
          },
          "loadersCount": {
            "type": "integer",
            "description": "Количество грузчиков. По умолчанию 1",
            "format": "int32",
            "example": 2
          }
        },
        "additionalProperties": false,
        "description": "Параметры услуг \"Погрузочные работы\" и \"Разгрузочные работы\"\nv24.OpenApi.Models.ApiV2.Contacts.RoutePoint.AssemblyWorks"
      },
      "NatureOfGoodsModel": {
        "required": [
          "code",
          "name"
        ],
        "type": "object",
        "properties": {
          "code": {
            "minLength": 1,
            "type": "string",
            "description": "Внутренний код Versta. Используется в поле cargo.natureOfGoods при создании заказа и расчёте",
            "example": "tires"
          },
          "name": {
            "minLength": 1,
            "type": "string",
            "description": "Отображаемое название характера груза",
            "example": "Шины"
          }
        },
        "additionalProperties": false,
        "description": "Элемент справочника номенклатуры грузов (характер груза)"
      },
      "NatureOfGoodsModelListContainer": {
        "type": "object",
        "properties": {
          "values": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NatureOfGoodsModel"
            },
            "description": "Элементы коллекции",
            "nullable": true
          },
          "totalCount": {
            "type": "integer",
            "description": "Общее количество элементов в коллекции",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Option": {
        "required": [
          "tariffId",
          "vendorId"
        ],
        "type": "object",
        "properties": {
          "tariffId": {
            "minLength": 1,
            "type": "string",
            "description": "Идентификатор тарифа поставщика. Это поле служит для реализации сценария, когда пользователь посчитал цену в\nкалькуляторе, а теперь хочет сделать\nзаказ с выбранным вариантом",
            "example": "4"
          },
          "vendorId": {
            "type": "integer",
            "description": "Идентификатор поставщика, которому необходимо передать заказ. Это поле служит для реализации сценария, когда\nпользователь посчитал цену в калькуляторе, а теперь хочет сделать\nзаказ с выбранным вариантом",
            "format": "int32",
            "example": 1
          },
          "vendorContractType": {
            "enum": [
              0,
              1,
              0,
              1,
              0,
              1,
              0,
              1
            ],
            "type": "integer",
            "description": "Тип договора с поставщиком на который будет передан заказ. Необходимо указать,\nесли в ответе на Calc в выбранном Вами варианте указан vendorInfo.vendorContractType отличный от 0,\nиначе заказ будет передан по договору versta (0).<br/>\n0 = Versta - Договор vertsa24<br/>\n1 = Own - Клиентский договор",
            "format": "int32"
          },
          "reqDeliveryDate": {
            "type": "string",
            "description": "Желаемая дата доставки в формате yyyy-MM-dd. Если задан интервал, это его начало.\nМожет меняться в соответствии с выбранным тарифом поставщика.\nПри указании даты в заказ добавляется услуга v24.OpenApi.Models.ApiV2.ApiServiceCode.SelectDeliveryDate (Выбор даты доставки)",
            "nullable": true,
            "example": "2020-03-31"
          },
          "reqDeliveryDateTo": {
            "type": "string",
            "description": "Конец интервала желаемой даты доставки в формате yyyy-MM-dd.\nЕсли не указан, считается равным v24.OpenApi.Models.ApiV2.DeliveryConditions.Option.ReqDeliveryDate",
            "nullable": true,
            "example": "2020-04-02"
          },
          "reqDeliveryTimeFrom": {
            "type": "string",
            "description": "Желаемое начальное время доставки. Может меняться в соответствии с выбранным тарифом поставщика.\nВ большинстве сценариев будет проигнорировано",
            "format": "date-span",
            "nullable": true
          },
          "reqDeliveryTimeTo": {
            "type": "string",
            "description": "Желаемое конечное время доставки. Может меняться в соответствии с выбранным тарифом поставщика.\nВ большинстве сценариев будет проигнорировано",
            "format": "date-span",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Выбранный вариант доставки"
      },
      "OptionFilter": {
        "type": "object",
        "properties": {
          "tariffIdFilter": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Массив идентификаторов тарифов поставщиков. Используется, как фильтр в расчете вариантов доставки. Если массив\nзадан, то в ответе будут варианты доставки только с указанными в этом массиве тарифами. Необязательный параметр",
            "nullable": true,
            "example": [
              "4",
              "1"
            ]
          },
          "vendorsIdFilter": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Массив идентификаторов поставщиков. Используется, как фильтр в расчете вариантов доставки. Если массив задан, то в\nответе будут варианты доставки только от указанных в этом массиве поставщиков. Необязательный параметр",
            "nullable": true,
            "example": [
              0,
              8
            ]
          }
        },
        "additionalProperties": false,
        "description": "Фильтр вариантов доставки по поставщикам и тарифам"
      },
      "OptionResponse": {
        "required": [
          "tariffId",
          "vendorId"
        ],
        "type": "object",
        "properties": {
          "tags": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Теги. Перечень, который содержит дополнительные указания к вариантам доставки. Например, может быть указан способ транспортировки заказа Авиа /\nназемный транспорт",
            "nullable": true,
            "example": [
              "Авиа"
            ]
          },
          "tariffId": {
            "minLength": 1,
            "type": "string",
            "description": "Идентификатор тарифа поставщика. Это поле служит для реализации сценария, когда пользователь посчитал цену в\nкалькуляторе, а теперь хочет сделать\nзаказ с выбранным вариантом",
            "example": "4"
          },
          "vendorId": {
            "type": "integer",
            "description": "Идентификатор поставщика, которому необходимо передать заказ. Это поле служит для реализации сценария, когда\nпользователь посчитал цену в калькуляторе, а теперь хочет сделать\nзаказ с выбранным вариантом",
            "format": "int32",
            "example": 1
          },
          "vendorContractType": {
            "$ref": "#/components/schemas/VendorContractType"
          },
          "reqDeliveryDate": {
            "type": "string",
            "description": "Желаемая дата доставки в формате yyyy-MM-dd. Если задан интервал, это его начало.\nМожет меняться в соответствии с выбранным тарифом поставщика.\nПри указании даты в заказ добавляется услуга v24.OpenApi.Models.ApiV2.ApiServiceCode.SelectDeliveryDate (Выбор даты доставки)",
            "nullable": true,
            "example": "2020-03-31"
          },
          "reqDeliveryDateTo": {
            "type": "string",
            "description": "Конец интервала желаемой даты доставки в формате yyyy-MM-dd.\nЕсли не указан, считается равным v24.OpenApi.Models.ApiV2.DeliveryConditions.Option.ReqDeliveryDate",
            "nullable": true,
            "example": "2020-04-02"
          },
          "reqDeliveryTimeFrom": {
            "type": "string",
            "description": "Желаемое начальное время доставки. Может меняться в соответствии с выбранным тарифом поставщика.\nВ большинстве сценариев будет проигнорировано",
            "format": "date-span",
            "nullable": true
          },
          "reqDeliveryTimeTo": {
            "type": "string",
            "description": "Желаемое конечное время доставки. Может меняться в соответствии с выбранным тарифом поставщика.\nВ большинстве сценариев будет проигнорировано",
            "format": "date-span",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Выбранный вариант доставки"
      },
      "OrderApiErrorContainer": {
        "type": "object",
        "properties": {
          "orderId": {
            "type": "string",
            "description": "Номер заказа. Возвращается, если в результате выполнения запроса был создан или изменен заказ",
            "nullable": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiError"
            },
            "description": "Перечень ошибок, которые возникли во время выполнения запроса",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "OrderCreateRequest": {
        "required": [
          "cargo",
          "option",
          "receiver",
          "sender"
        ],
        "type": "object",
        "properties": {
          "sender": {
            "required": [
              "name",
              "phone",
              "address",
              "countryId",
              "cityId"
            ],
            "type": "object",
            "properties": {
              "name": {
                "minLength": 1,
                "type": "string",
                "description": "Указывается или название компании или конкретное физическое лицо"
              },
              "contactPerson": {
                "type": "string",
                "description": "Контактное лицо. Если в поле name указано название компании, то тут можно указать ФИО конкретного контактного лица. Необязательный параметр",
                "nullable": true
              },
              "phone": {
                "minLength": 1,
                "type": "string",
                "description": "Контактный телефон, по которому можно связаться с контактным лицом. Лучше указывать мобильный номер. Формат этого поля проверяется при добавлении заказа. Должен соответствовать следующим условиям: <br>\n            - номер должен начинаться со знака '+' или с '8'<br>\n             - если указывается несколько контактных номеров, то они должны быть разделены запятой <br>\n             - добавочный номер должен содержать только цифры и отделяется от основного номера словом 'доб.' или символом '#' <br>\n             - все дополнительные комментарии к номеру должны быть указаны в поле Info (ограничения на время звонка, контактное лицо и тп)"
              },
              "email": {
                "type": "string",
                "description": "Email контактного лица",
                "nullable": true
              },
              "contactType": {
                "enum": [
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8
                ],
                "type": "integer",
                "description": "Типы адресов. В зависимости от типа адреса необходимо заполнять разные поля.<br> 1 = Door - Конкретный адрес (дверь)\n        2 = MailingList - Рассылка - рассылка работает только в пределах одного города. Не используется и будет удален в дальнейшем<br>\n        4 = PickupPoint - Точка выдачи конкретного поставщика<br>\n        8 = PostOffice - Отделение почты РФ (зарезервировано для будущего использования)",
                "format": "int32"
              },
              "countryId": {
                "type": "string",
                "description": "Указывается двухбуквенный код страны в соответствии с ISO 3166-1 alpha-2 (https://ru.wikipedia.org/wiki/ISO_3166-1).<br>Обязателен, если не указаны координаты (latitude и longitude). Если указаны координаты, countryId может быть не заполнен.",
                "nullable": true
              },
              "cityId": {
                "type": "string",
                "description": "Код города или населенного пункта\nОбязателен, если не указаны координаты (latitude и longitude). Если координаты указаны — параметр cityId может быть не заполнен.\n\nПриоритет выбора адреса:\n\n 1. Если указаны latitude и longitude — используются только координаты.\n 2. Если координаты не указаны — используются countryId, cityId, cityName и address.\n 3. Если по координатам не удалось распознать адрес — используются countryId, cityId, cityName и address.\n\nФормат значения зависит от страны. Для населенных пунктов:\n- внутри РФ - необходимо указывать код ФИАС (уровень 4 или 6) или КЛАДР,\n- в странах Беларуси, Казахстана и Узбекистана - Тип объекта и Идентификатор объекта в базе OpenStreetMap. Пример <i>relation:2465058</i> (https://ru.wikipedia.org/wiki/OpenStreetMap).\n- в остальных населенных пунктов за пределами РФ - Идентификатор объекта в базе GeoNames (https://ru.wikipedia.org/wiki/GeoNames).\nГород должен попадать в указанную в параметре country страну.\nЭтот параметр очень важен и определяет в том числе какому поставщику будет передан заказа. Также этот параметр\nвлияет на цену",
                "nullable": true
              },
              "cityName": {
                "type": "string",
                "description": "Название города (опционально).\nЛогика выбора:\n    1. Если указаны координаты — используются только координаты.\n    2. Если координаты не указаны, но указан CityId — используются CityId, а CityName игнорируется.\n    3. Если CityId не указан — выполняется поиск по CityName.\nДля точного определения, пожалуйста, используйте CityId или координаты.",
                "nullable": true
              },
              "postalCode": {
                "type": "string",
                "description": "Почтовый индекс населенного пункта. Не обязательный параметр. Обязателен, если отправление международное; указывается у отправителя и получателя",
                "nullable": true
              },
              "address": {
                "type": "string",
                "description": "Адрес произвольной строкой. Адрес должен относиться к указанному в city городу и стране - эта проверка не выполняется, но если в поле адрес будет указан адрес из другого региона - доставка не гарантируется. Не обязателен, но может влиять на стоимость доставки\nОбязателен, когда contactType=Door и не указаны координаты. Если указаны координаты, Address может быть не заполнен.",
                "nullable": true
              },
              "pickupPointId": {
                "type": "string",
                "description": "Идентификатор точки выдачи. Обязательно для ContactType = PickupPoint; игнорируется, если ContactType не равен PickupPoint",
                "nullable": true
              },
              "latitude": {
                "type": "number",
                "description": "Широта адреса. Если указаны latitude и longitude, остальные параметры (countryId, cityId, address) становятся необязательными. В приоритете используются координаты.",
                "format": "double",
                "nullable": true
              },
              "longitude": {
                "type": "number",
                "description": "Долгота адреса. Если указаны latitude и longitude, остальные параметры (countryId, cityId, address) становятся необязательными. В приоритете используются координаты.",
                "format": "double",
                "nullable": true
              },
              "pickupPointVendorId": {
                "type": "integer",
                "description": "Поставщик для PickupPointId. Обязательно для ContactType = PickupPoint; игнорируется, если ContactType не равен PickupPoint",
                "format": "int32",
                "nullable": true
              },
              "loadingWorks": {
                "type": "object",
                "properties": {
                  "floor": {
                    "type": "integer",
                    "description": "На каком этаже выполняются работы по спуску груза. По умолчанию 1"
                  },
                  "hasFreightLift": {
                    "type": "boolean",
                    "description": "Имеется ли грузовой лифт"
                  },
                  "loadersCount": {
                    "type": "integer",
                    "description": "Количество грузчиков. По умолчанию 1"
                  }
                },
                "additionalProperties": false,
                "description": "Погрузочные работы"
              },
              "assemblyWorks": {
                "type": "object",
                "properties": {
                  "assemblersCount": {
                    "type": "integer",
                    "description": "Количество сборщиков. По умолчанию 1"
                  }
                },
                "additionalProperties": false,
                "description": "Работы по разборке груза"
              },
              "partialPayParameters": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "paymentThreshold": {
                      "type": "integer",
                      "description": "Порог доплаты",
                      "example": 3000
                    },
                    "deliverySurcharge": {
                      "type": "integer",
                      "description": "Доплата за доставку",
                      "example": 200
                    }
                  }
                },
                "description": "Параметры частичной оплаты. При выкупе на сумму порога оплаты или ниже – соответствующая доплата за доставку.\nДля выкупа выше порога оплаты – доплата отсутствует.",
                "nullable": true
              },
              "transportRequirements": {
                "type": "object",
                "properties": {
                  "requirements": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/ApiTransportRequirementsType"
                    },
                    "description": "Перечень требований к транспортному средству. Необходимо указать массив требований, которые необходимы для транспорта. Список требований можно посмотреть: <a href=\"/api/reference/transportRequirementsType\">Справочник значений</a>"
                  }
                },
                "additionalProperties": false,
                "description": "Требования к транспорту для получателя"
              },
              "tin": {
                "type": "string",
                "description": "ИНН. Указывается для юр. лица. Необязательный параметр.",
                "nullable": true,
                "example": "1181111110"
              },
              "legalType": {
                "enum": [
                  "Private",
                  "Legal"
                ],
                "type": "string",
                "description": "Тип контакта.<br> Private - физическое лицо<br> Legal - юридическое лицо<br>\n        Необязательный параметр, по умолчанию не задан. Если тип не задан, а указан ИНН, контакт считается юридическим лицом.",
                "nullable": true
              },
              "edoParticipantId": {
                "type": "string",
                "description": "ИдЭДО участника ФНС - идентификатор контрагента у оператора ЭДО. Идентификатор выдает ФНС, поэтому он есть только у российского юридического лица. Необязательный параметр.",
                "nullable": true,
                "example": "2BM-7701234567-770101001-201234567890123456789012345"
              },
              "instructions": {
                "type": "string",
                "description": "Дополнительная информация по адресу. Может быть указаны особенности прохода на территорию. Любая другая информация, которая должна помочь курьеру найти указанный адрес и контактное лицо. Необязательный параметр.",
                "nullable": true
              }
            },
            "additionalProperties": false,
            "description": "Информация об отправителе",
            "example": {
              "name": "ИП Иванов И.И",
              "contactPerson": "Иванов Иван",
              "phone": "84951234455, +79513337788",
              "email": "sender@example.com",
              "contactType": 1,
              "countryId": "RU",
              "cityId": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5",
              "postalCode": "101000",
              "address": "Смоленская площадь, д. 3",
              "instructions": "Офис-центр Смоленский пассаж, 3 этаж. Позвонить за 1 час",
              "tin": "1181111110",
              "legalType": "Legal",
              "edoParticipantId": "2BM-7701234567-770101001-201234567890123456789012345",
              "loadingWorks": {
                "floor": 2,
                "hasFreightLift": false,
                "loadersCount": 5
              }
            }
          },
          "receiver": {
            "required": [
              "name",
              "phone",
              "address",
              "countryId",
              "cityId"
            ],
            "type": "object",
            "properties": {
              "name": {
                "minLength": 1,
                "type": "string",
                "description": "Указывается или название компании или конкретное физическое лицо"
              },
              "contactPerson": {
                "type": "string",
                "description": "Контактное лицо. Если в поле name указано название компании, то тут можно указать ФИО конкретного контактного лица. Необязательный параметр",
                "nullable": true
              },
              "phone": {
                "minLength": 1,
                "type": "string",
                "description": "Контактный телефон, по которому можно связаться с контактным лицом. Лучше указывать мобильный номер. Формат этого поля проверяется при добавлении заказа. Должен соответствовать следующим условиям: <br>\n            - номер должен начинаться со знака '+' или с '8'<br>\n             - если указывается несколько контактных номеров, то они должны быть разделены запятой <br>\n             - добавочный номер должен содержать только цифры и отделяется от основного номера словом 'доб.' или символом '#' <br>\n             - все дополнительные комментарии к номеру должны быть указаны в поле Info (ограничения на время звонка, контактное лицо и тп)"
              },
              "email": {
                "type": "string",
                "description": "Email контактного лица",
                "nullable": true
              },
              "contactType": {
                "enum": [
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8
                ],
                "type": "integer",
                "description": "Типы адресов. В зависимости от типа адреса необходимо заполнять разные поля.<br> 1 = Door - Конкретный адрес (дверь)\n        2 = MailingList - Рассылка - рассылка работает только в пределах одного города. Не используется и будет удален в дальнейшем<br>\n        4 = PickupPoint - Точка выдачи конкретного поставщика<br>\n        8 = PostOffice - Отделение почты РФ (зарезервировано для будущего использования)",
                "format": "int32"
              },
              "countryId": {
                "type": "string",
                "description": "Указывается двухбуквенный код страны в соответствии с ISO 3166-1 alpha-2 (https://ru.wikipedia.org/wiki/ISO_3166-1).<br>Обязателен, если не указаны координаты (latitude и longitude). Если указаны координаты, countryId может быть не заполнен.",
                "nullable": true
              },
              "cityId": {
                "type": "string",
                "description": "Код города или населенного пункта\nОбязателен, если не указаны координаты (latitude и longitude). Если координаты указаны — параметр cityId может быть не заполнен.\n\nПриоритет выбора адреса:\n\n 1. Если указаны latitude и longitude — используются только координаты.\n 2. Если координаты не указаны — используются countryId, cityId, cityName и address.\n 3. Если по координатам не удалось распознать адрес — используются countryId, cityId, cityName и address.\n\nФормат значения зависит от страны. Для населенных пунктов:\n- внутри РФ - необходимо указывать код ФИАС (уровень 4 или 6) или КЛАДР,\n- в странах Беларуси, Казахстана и Узбекистана - Тип объекта и Идентификатор объекта в базе OpenStreetMap. Пример <i>relation:2465058</i> (https://ru.wikipedia.org/wiki/OpenStreetMap).\n- в остальных населенных пунктов за пределами РФ - Идентификатор объекта в базе GeoNames (https://ru.wikipedia.org/wiki/GeoNames).\nГород должен попадать в указанную в параметре country страну.\nЭтот параметр очень важен и определяет в том числе какому поставщику будет передан заказа. Также этот параметр\nвлияет на цену",
                "nullable": true
              },
              "cityName": {
                "type": "string",
                "description": "Название города (опционально).\nЛогика выбора:\n    1. Если указаны координаты — используются только координаты.\n    2. Если координаты не указаны, но указан CityId — используются CityId, а CityName игнорируется.\n    3. Если CityId не указан — выполняется поиск по CityName.\nДля точного определения, пожалуйста, используйте CityId или координаты.",
                "nullable": true
              },
              "postalCode": {
                "type": "string",
                "description": "Почтовый индекс населенного пункта. Не обязательный параметр. Обязателен, если отправление международное; указывается у отправителя и получателя",
                "nullable": true
              },
              "address": {
                "type": "string",
                "description": "Адрес произвольной строкой. Адрес должен относиться к указанному в city городу и стране - эта проверка не выполняется, но если в поле адрес будет указан адрес из другого региона - доставка не гарантируется. Не обязателен, но может влиять на стоимость доставки\nОбязателен, когда contactType=Door и не указаны координаты. Если указаны координаты, Address может быть не заполнен.",
                "nullable": true
              },
              "pickupPointId": {
                "type": "string",
                "description": "Идентификатор точки выдачи. Обязательно для ContactType = PickupPoint; игнорируется, если ContactType не равен PickupPoint",
                "nullable": true
              },
              "latitude": {
                "type": "number",
                "description": "Широта адреса. Если указаны latitude и longitude, остальные параметры (countryId, cityId, address) становятся необязательными. В приоритете используются координаты.",
                "format": "double",
                "nullable": true
              },
              "longitude": {
                "type": "number",
                "description": "Долгота адреса. Если указаны latitude и longitude, остальные параметры (countryId, cityId, address) становятся необязательными. В приоритете используются координаты.",
                "format": "double",
                "nullable": true
              },
              "pickupPointVendorId": {
                "type": "integer",
                "description": "Поставщик для PickupPointId. Обязательно для ContactType = PickupPoint; игнорируется, если ContactType не равен PickupPoint",
                "format": "int32",
                "nullable": true
              },
              "loadingWorks": {
                "type": "object",
                "properties": {
                  "floor": {
                    "type": "integer",
                    "description": "На каком этаже выполняются работы по подъему груза. По умолчанию 1"
                  },
                  "hasFreightLift": {
                    "type": "boolean",
                    "description": "Имеется ли грузовой лифт"
                  },
                  "loadersCount": {
                    "type": "integer",
                    "description": "Количество грузчиков. По умолчанию 1"
                  }
                },
                "additionalProperties": false,
                "description": "Разгрузочные работы"
              },
              "assemblyWorks": {
                "type": "object",
                "properties": {
                  "assemblersCount": {
                    "type": "integer",
                    "description": "Количество сборщиков. По умолчанию 1"
                  }
                },
                "additionalProperties": false,
                "description": "Работы по сборке груза"
              },
              "partialPayParameters": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "paymentThreshold": {
                      "type": "integer",
                      "description": "Порог доплаты",
                      "example": 3000
                    },
                    "deliverySurcharge": {
                      "type": "integer",
                      "description": "Доплата за доставку",
                      "example": 200
                    }
                  }
                },
                "description": "Параметры частичной оплаты. При выкупе на сумму порога оплаты или ниже – соответствующая доплата за доставку.\nДля выкупа выше порога оплаты – доплата отсутствует.",
                "nullable": true
              },
              "transportRequirements": {
                "type": "object",
                "properties": {
                  "requirements": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/ApiTransportRequirementsType"
                    },
                    "description": "Перечень требований к транспортному средству. Необходимо указать массив требований, которые необходимы для транспорта. Список требований можно посмотреть: <a href=\"/api/reference/transportRequirementsType\">Справочник значений</a>"
                  }
                },
                "additionalProperties": false,
                "description": "Требования к транспорту для отправителя"
              },
              "tin": {
                "type": "string",
                "description": "ИНН. Указывается для юр. лица. Необязательный параметр.",
                "nullable": true,
                "example": "1181111110"
              },
              "legalType": {
                "enum": [
                  "Private",
                  "Legal"
                ],
                "type": "string",
                "description": "Тип контакта.<br> Private - физическое лицо<br> Legal - юридическое лицо<br>\n        Необязательный параметр, по умолчанию не задан. Если тип не задан, а указан ИНН, контакт считается юридическим лицом.",
                "nullable": true
              },
              "edoParticipantId": {
                "type": "string",
                "description": "ИдЭДО участника ФНС - идентификатор контрагента у оператора ЭДО. Идентификатор выдает ФНС, поэтому он есть только у российского юридического лица. Необязательный параметр.",
                "nullable": true,
                "example": "2BM-7701234567-770101001-201234567890123456789012345"
              },
              "instructions": {
                "type": "string",
                "description": "Дополнительная информация по адресу. Может быть указаны особенности прохода на территорию. Любая другая информация, которая должна помочь курьеру найти указанный адрес и контактное лицо. Необязательный параметр.",
                "nullable": true
              }
            },
            "additionalProperties": false,
            "description": "Информация о получателе",
            "example": {
              "name": "ООО \"Тестовая комапания\"",
              "contactPerson": "Петров Петр",
              "phone": "88121234455 доб.123, +79534568899#578",
              "email": "receiver@example.com",
              "contactType": 1,
              "countryId": "RU",
              "cityId": "c2deb16a-0330-4f05-821f-1d09c93331e6",
              "postalCode": "190000",
              "address": "ул. Рентгена, 4а",
              "pickupPointId": null,
              "pickupPointVendorId": 0,
              "instructions": "Вход со двора",
              "tin": "1181111110",
              "legalType": "Legal",
              "loadingWorks": {
                "floor": 2,
                "hasFreightLift": false,
                "loadersCount": 5
              }
            }
          },
          "cargo": {
            "$ref": "#/components/schemas/CargoDescModel"
          },
          "option": {
            "$ref": "#/components/schemas/Option"
          },
          "pickupInfo": {
            "$ref": "#/components/schemas/OrderRequestPickupInfo"
          },
          "comments": {
            "type": "string",
            "description": "Общий комментарий, примечания к заказу",
            "nullable": true,
            "example": "Требуется доупаковка на складе"
          },
          "services": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Service"
            },
            "description": "Перечень дополнительных услуг (страховка, возврат груза и т.д.)",
            "nullable": true,
            "example": [
              {
                "code": "Insurance",
                "parameter": "1000"
              },
              {
                "code": "PrintReceipt",
                "parameter": "{\"PaymentType\":\"Prepayment\",\"FiscalizationTarget\":\"Products\"}"
              }
            ]
          },
          "companyId": {
            "type": "integer",
            "description": "Идентификатор компании от которой создается заказ. Если значение не задано, то используется идентификатор компании,\nкоторой принадлежит ключ API.\nЧтобы получить идентификаторы для работы с вашими компаниями, пожалуйста, обратитесь на support@versta24.ru",
            "format": "int32",
            "nullable": true,
            "example": null
          },
          "project": {
            "type": "string",
            "description": "Идентификатор проекта, к которому нужно отнести заказ. Служит для информации. Может в реестре отчетности для\nклиента",
            "nullable": true,
            "example": "Доставка товаров"
          },
          "department": {
            "type": "string",
            "description": "Идентификатор департамента, к которому нужно отнести заказ. Служит для информации. Может в реестре отчетности для\nклиента",
            "nullable": true,
            "example": "Логистика"
          },
          "customerOrderId": {
            "type": "string",
            "description": "Произвольная строка с номером заказа клиента. Сохраняется в заказе",
            "nullable": true,
            "example": "MX123456"
          },
          "customerOrderIdDontCheck": {
            "type": "boolean",
            "description": "Не проверять дублирование номера заказа клиента. Если установлен в false - то при сохранении заказа проверяется\nотсутствие дублей по указанному номеру заказа клиента\nПо умолчанию: true",
            "example": true
          },
          "customerActNumber": {
            "maxLength": 100,
            "type": "string",
            "description": "№ Акта/ТТН клиента",
            "nullable": true,
            "example": "A-654"
          },
          "receiverDeliveryCharge": {
            "type": "number",
            "description": "Дополнительный сбор за доставку с получателя",
            "format": "double",
            "example": 100
          },
          "receiverDeliveryChargeVatRate": {
            "$ref": "#/components/schemas/ApiVatRate"
          },
          "emergencyEmail": {
            "type": "string",
            "description": "E-mail адрес, на который будут приходить письма в случае если заказ не удалось передать поставщику по причине не\nдоступности поставщика.\nНа этот же e-mail будут приходить письма, когда заказ будет передан.",
            "nullable": true,
            "example": "emergency@email.com"
          },
          "isDraft": {
            "type": "boolean",
            "description": "Признак, что нужно создать только черновик закзаа. Если true, то заказ не будет передан поставщику. По умолчанию,\nfalse",
            "example": false
          }
        },
        "additionalProperties": false,
        "description": "OrderCreateRequest - модель данных для создания и передачи заказ поставщику"
      },
      "OrderCreateResponse": {
        "required": [
          "orderId",
          "orderKey",
          "status",
          "statusName"
        ],
        "type": "object",
        "properties": {
          "location": {
            "type": "string",
            "description": "Ссылка для получения подробной информации о заказе",
            "nullable": true,
            "example": "https://api.versta24.ru/openapi/v2/orders/V24X-XXX-XXX-XXX"
          },
          "orderId": {
            "minLength": 1,
            "type": "string",
            "description": "Идентификатор заказа Versta в формате V24X-XXX-XXX-XXX. Этот идентификатор необходимо сохранить.\nПо нему в дальнейшем будет осуществляться работа с данным заказом.",
            "example": "V24X-XXX-XXX-XXX"
          },
          "orderKey": {
            "minLength": 1,
            "type": "string",
            "description": "Ключ доступа к заказу без авторизации",
            "example": "xxxxxxx"
          },
          "vendorInvoiceNum": {
            "type": "string",
            "description": "Номер накладной поставщика. Этот номер печатается на накладной. Для отображения клиенту",
            "nullable": true,
            "example": "62377725-23"
          },
          "vendorPickupNum": {
            "type": "string",
            "description": "Номер заказа на вызов курьера от поставщика. Опциональный параметр. Для отображения пользователю",
            "nullable": true,
            "example": "4562389-78"
          },
          "customerOrderId": {
            "type": "string",
            "description": "Произвольная строка с номером заказа клиента. Сохраняется в заказе",
            "nullable": true,
            "example": "MX123456"
          },
          "price": {
            "type": "number",
            "description": "Стоимость заказа. Пока заказ не завершен и по нему не выставлен счет эта стоимость может меняться.\nСтоимость включает в себя тариф и дополнительные расходы.",
            "format": "double",
            "nullable": true,
            "example": 200
          },
          "planDeliveryDate": {
            "type": "string",
            "description": "Плановая дата доставки (максимальная)",
            "format": "date-time",
            "nullable": true,
            "example": "2020-04-18T00:00:00"
          },
          "vendorInfo": {
            "$ref": "#/components/schemas/VendorInfo"
          },
          "status": {
            "enum": [
              0,
              1,
              2,
              3,
              4,
              5,
              6,
              10,
              11,
              12,
              13,
              14,
              15,
              16,
              20,
              24,
              30,
              31,
              32,
              40,
              45,
              49,
              50,
              52,
              53,
              54,
              55,
              56,
              57,
              59,
              60,
              61,
              62,
              100,
              101,
              110,
              111,
              112,
              113,
              114,
              115,
              116,
              117,
              118,
              120,
              130,
              140,
              145,
              150,
              160,
              170,
              200,
              201,
              204,
              205,
              206,
              207,
              208,
              210,
              220,
              230,
              240,
              300,
              310,
              320,
              500,
              510,
              520,
              530,
              540,
              541,
              542,
              543,
              590,
              600,
              610,
              615,
              620,
              625,
              630,
              635,
              640,
              645,
              650,
              651,
              652,
              653,
              690,
              700,
              701,
              705,
              710,
              720,
              730,
              800,
              810,
              820,
              840,
              850,
              860,
              870,
              880,
              890
            ],
            "type": "integer",
            "description": "Код текущего статуса заказа. <a href=\"/api/reference/statuses\">Справочник значений</a>",
            "format": "int32",
            "example": 60
          },
          "statusName": {
            "minLength": 1,
            "type": "string",
            "description": "Текстовое описание статуса заказа для отображения пользователю. Зависит от поставщика и может быть достаточно\nразнообразным.\nНапример: Передан поставщику, Курьер назначен ...",
            "example": "Передан поставщику"
          },
          "emergencyEmail": {
            "type": "string",
            "description": "E-mail адрес, на который будут приходить письма в случае если заказ не удалось передать поставщику по причине не\nдоступности поставщика.\nНа этот же e-mail будут приходить письма, когда заказ будет передан.",
            "nullable": true,
            "example": "emergency@e-mail.com"
          }
        },
        "additionalProperties": false
      },
      "OrderCreateResponseContainer": {
        "type": "object",
        "properties": {
          "result": {
            "$ref": "#/components/schemas/OrderCreateResponse"
          },
          "messages": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Дополнительная информация, например предупреждения о необходимости оплаты заказа",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "OrderCreateResponseContainerWithErrors": {
        "type": "object",
        "properties": {
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiError"
            },
            "nullable": true
          },
          "result": {
            "$ref": "#/components/schemas/OrderCreateResponse"
          },
          "messages": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Дополнительная информация, например предупреждения о необходимости оплаты заказа",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "OrderGetResponse": {
        "required": [
          "cargo",
          "createDateTime",
          "masterStatus",
          "masterStatusName",
          "option",
          "orderId",
          "orderKey",
          "pickupInfo",
          "receiver",
          "sender",
          "status",
          "statusName"
        ],
        "type": "object",
        "properties": {
          "orderId": {
            "minLength": 1,
            "type": "string",
            "description": "Идентификатор заказа Versta в формате V24X-XXX-XXX-XXX",
            "example": "V24X-XXX-XXX-XXX"
          },
          "orderKey": {
            "minLength": 1,
            "type": "string",
            "description": "Ключ доступа к заказу без авторизации",
            "example": "xxxxxxx"
          },
          "vendorInvoiceNum": {
            "type": "string",
            "description": "Номер накладной поставщика. Этот номер печатается на накладной. Для отображения клиенту",
            "nullable": true,
            "example": "62377725-23"
          },
          "vendorReturnInvoiceNumber": {
            "type": "string",
            "description": "Номер возвратной накладной поставщика. Для отображения клиенту",
            "nullable": true
          },
          "vendorPickupNum": {
            "type": "string",
            "description": "Номер заказа на вызов курьера от поставщика. Опциональный параметр. Для отображения пользователю",
            "nullable": true,
            "example": "4562389-78"
          },
          "customerOrderId": {
            "type": "string",
            "description": "Произвольная строка с номером заказа клиента. Сохраняется в заказе",
            "nullable": true,
            "example": "MX123456"
          },
          "price": {
            "type": "number",
            "description": "Стоимость заказа. Пока заказ не завершен и по нему не выставлен счет эта стоимость может меняться.\nСтоимость включает в себя тариф и дополнительные расходы.",
            "format": "double",
            "nullable": true,
            "example": 200
          },
          "planDeliveryDate": {
            "type": "string",
            "description": "Плановая дата доставки (максимальная)",
            "format": "date-time",
            "nullable": true,
            "example": "2020-04-18T00:00:00"
          },
          "status": {
            "enum": [
              0,
              1,
              2,
              3,
              4,
              5,
              6,
              10,
              11,
              12,
              13,
              14,
              15,
              16,
              20,
              24,
              30,
              31,
              32,
              40,
              45,
              49,
              50,
              52,
              53,
              54,
              55,
              56,
              57,
              59,
              60,
              61,
              62,
              100,
              101,
              110,
              111,
              112,
              113,
              114,
              115,
              116,
              117,
              118,
              120,
              130,
              140,
              145,
              150,
              160,
              170,
              200,
              201,
              204,
              205,
              206,
              207,
              208,
              210,
              220,
              230,
              240,
              300,
              310,
              320,
              500,
              510,
              520,
              530,
              540,
              541,
              542,
              543,
              590,
              600,
              610,
              615,
              620,
              625,
              630,
              635,
              640,
              645,
              650,
              651,
              652,
              653,
              690,
              700,
              701,
              705,
              710,
              720,
              730,
              800,
              810,
              820,
              840,
              850,
              860,
              870,
              880,
              890
            ],
            "type": "integer",
            "description": "Код текущего статуса заказа. <a href=\"/api/reference/statuses\">Справочник значений</a>",
            "format": "int32",
            "example": 5
          },
          "statusName": {
            "minLength": 1,
            "type": "string",
            "description": "Текстовое описание статуса заказа для отображения пользователю. Зависит от поставщика и может быть достаточно\nразнообразным.\nНапример, Передан поставщику, Курьер назначен ...",
            "example": "Передан поставщику"
          },
          "masterStatus": {
            "enum": [
              0,
              10,
              20,
              30,
              40,
              50,
              60,
              100,
              200,
              300,
              500,
              600,
              700,
              800,
              900
            ],
            "type": "integer",
            "description": "Код группы статуса заказа. <a href=\"/api/reference/masterstatuses\">Справочник значений</a>",
            "format": "int32",
            "example": 50
          },
          "masterStatusName": {
            "minLength": 1,
            "type": "string",
            "description": "Текстовое описание группы статуса заказа для отображения пользователю.\nНапример, Передан поставщику, Транспортировка отправления ...",
            "example": "Передан поставщику"
          },
          "statusDate": {
            "type": "string",
            "description": "Дата и время установки текущего статуса заказа",
            "format": "date-time",
            "nullable": true,
            "example": "2020-04-23T12:54:22"
          },
          "emergencyEmail": {
            "type": "string",
            "description": "E-mail адрес, на который будут приходить письма в случае если заказ не удалось передать поставщику по причине не\nдоступности поставщика.\nНа этот же e-mail будут приходить письма, когда заказ будет передан.",
            "nullable": true,
            "example": "emergency@email.com"
          },
          "keepAtPickupPointDateLimit": {
            "type": "string",
            "description": "Дата, до которой заказ будет храниться на ПВЗ или складе поставщика бесплатно",
            "format": "date-time",
            "nullable": true
          },
          "sender": {
            "required": [
              "name",
              "phone",
              "address",
              "countryId",
              "cityId"
            ],
            "type": "object",
            "properties": {
              "legalType": {
                "$ref": "#/components/schemas/ApiLegalType"
              },
              "idCardDetails": {
                "type": "string",
                "description": "Номер документа удостоверяющего личность",
                "nullable": true
              },
              "tin": {
                "type": "string",
                "description": "ИНН",
                "nullable": true
              },
              "edoParticipantId": {
                "type": "string",
                "description": "ИдЭДО участника ФНС — идентификатор контрагента у оператора ЭДО. Заполнен только у российского\nюридического лица.",
                "nullable": true
              },
              "countryName": {
                "type": "string",
                "description": "Возвращает название страны на русском языке для отображения пользователю.",
                "nullable": true
              },
              "cityName": {
                "type": "string",
                "description": "Возвращает название города на русском языке для отображения пользователю.",
                "nullable": true
              },
              "name": {
                "minLength": 1,
                "type": "string",
                "description": "Название компании или конкретное физическое лицо"
              },
              "contactPerson": {
                "type": "string",
                "description": "Контактное лицо",
                "nullable": true
              },
              "phone": {
                "minLength": 1,
                "type": "string",
                "description": "Контактный телефон, по которому можно связаться с контактным лицом"
              },
              "email": {
                "type": "string",
                "description": "E-mail контактного лица",
                "nullable": true
              },
              "contactType": {
                "enum": [
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8
                ],
                "type": "integer",
                "description": "Типы адресов. В зависимости от типа адреса необходимо заполнять разные поля.<br> 1 = Door - Конкретный адрес (дверь)\n        2 = MailingList - Рассылка - рассылка работает только в пределах одного города. Не используется и будет удален в дальнейшем<br>\n        4 = PickupPoint - Точка выдачи конкретного поставщика<br>\n        8 = PostOffice - Отделение почты РФ (зарезервировано для будущего использования)",
                "format": "int32"
              },
              "countryId": {
                "type": "string",
                "description": "Двухбуквенный код страны в соответствии с ISO 3166-1 alpha-2 (https://ru.wikipedia.org/wiki/ISO_3166-1)",
                "nullable": true
              },
              "cityId": {
                "type": "string",
                "description": "Код города или населенного пункта. Для населенных пунктов внутри РФ - необходимо указывать код ФИАС (уровень 4 или 6) или КЛАДР, для населенных пунктов за пределами РФ - Идентификатор объекта в базе GeoNames (https://ru.wikipedia.org/wiki/GeoNames)",
                "nullable": true
              },
              "postalCode": {
                "type": "string",
                "description": "Почтовый индекс населенного пункта. Не обязательный параметр",
                "nullable": true
              },
              "address": {
                "type": "string",
                "description": "Адрес произвольной строкой",
                "nullable": true
              },
              "pickupPointId": {
                "type": "string",
                "description": "Идентификатор точки выдачи.",
                "nullable": true
              },
              "pickupPointVendorId": {
                "type": "integer",
                "description": "Поставщик для PickupPointId.",
                "format": "int32",
                "nullable": true
              },
              "pickupPointType": {
                "$ref": "#/components/schemas/ApiPickupPointType"
              },
              "loadingWorks": {
                "type": "object",
                "properties": {
                  "floor": {
                    "type": "integer",
                    "description": "На каком этаже выполняются работы по подъему груза. По умолчанию 1"
                  },
                  "hasFreightLift": {
                    "type": "boolean",
                    "description": "Имеется ли грузовой лифт"
                  },
                  "loadersCount": {
                    "type": "integer",
                    "description": "Количество грузчиков. По умолчанию 1"
                  }
                },
                "additionalProperties": false,
                "description": "Разгрузочные работы"
              },
              "assemblyWorks": {
                "type": "object",
                "properties": {
                  "assemblersCount": {
                    "type": "integer",
                    "description": "Количество сборщиков. По умолчанию 1"
                  }
                },
                "additionalProperties": false,
                "description": "Работы по сборке груза"
              },
              "partialPayParameters": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PartialPaySurchargeRule"
                },
                "description": "Параметры услуги \"Частичный выкуп\"\nПри выкупе на сумму порога оплаты или ниже – соответствующая доплата за доставку.\nДля выкупа выше порога оплаты – доплата отсутствует.",
                "nullable": true
              },
              "transportRequirements": {
                "$ref": "#/components/schemas/ApiTransportRequirementsParameters"
              },
              "instructions": {
                "type": "string",
                "description": "Дополнительная информация по адресу.",
                "nullable": true
              }
            },
            "additionalProperties": false,
            "description": "Информация об отправителе",
            "example": {
              "name": "ИП Иванов И.И",
              "contactPerson": "Иванов Иван",
              "phone": "84951234455, +79513337788",
              "email": "sender@example.com",
              "contactType": 1,
              "countryId": "RU",
              "countryName": "Россия",
              "cityId": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5",
              "cityName": "Москва",
              "postalCode": "101000",
              "address": "Смоленская площадь, д. 3",
              "pickupPointId": null,
              "pickupPointVendorId": 0,
              "instructions": "Офис-центр Смоленский пассаж, 3 этаж. Позвонить за 1 час",
              "loadingWorks": {
                "floor": 2,
                "hasFreightLift": false,
                "loadersCount": 5
              }
            }
          },
          "receiver": {
            "required": [
              "name",
              "phone",
              "address",
              "countryId",
              "cityId"
            ],
            "type": "object",
            "properties": {
              "legalType": {
                "$ref": "#/components/schemas/ApiLegalType"
              },
              "idCardDetails": {
                "type": "string",
                "description": "Номер документа удостоверяющего личность",
                "nullable": true
              },
              "tin": {
                "type": "string",
                "description": "ИНН",
                "nullable": true
              },
              "edoParticipantId": {
                "type": "string",
                "description": "ИдЭДО участника ФНС — идентификатор контрагента у оператора ЭДО. Заполнен только у российского\nюридического лица.",
                "nullable": true
              },
              "countryName": {
                "type": "string",
                "description": "Возвращает название страны на русском языке для отображения пользователю.",
                "nullable": true
              },
              "cityName": {
                "type": "string",
                "description": "Возвращает название города на русском языке для отображения пользователю.",
                "nullable": true
              },
              "name": {
                "minLength": 1,
                "type": "string",
                "description": "Название компании или конкретное физическое лицо"
              },
              "contactPerson": {
                "type": "string",
                "description": "Контактное лицо",
                "nullable": true
              },
              "phone": {
                "minLength": 1,
                "type": "string",
                "description": "Контактный телефон, по которому можно связаться с контактным лицом"
              },
              "email": {
                "type": "string",
                "description": "E-mail контактного лица",
                "nullable": true
              },
              "contactType": {
                "enum": [
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8
                ],
                "type": "integer",
                "description": "Типы адресов. В зависимости от типа адреса необходимо заполнять разные поля.<br> 1 = Door - Конкретный адрес (дверь)\n        2 = MailingList - Рассылка - рассылка работает только в пределах одного города. Не используется и будет удален в дальнейшем<br>\n        4 = PickupPoint - Точка выдачи конкретного поставщика<br>\n        8 = PostOffice - Отделение почты РФ (зарезервировано для будущего использования)",
                "format": "int32"
              },
              "countryId": {
                "type": "string",
                "description": "Двухбуквенный код страны в соответствии с ISO 3166-1 alpha-2 (https://ru.wikipedia.org/wiki/ISO_3166-1)",
                "nullable": true
              },
              "cityId": {
                "type": "string",
                "description": "Код города или населенного пункта. Для населенных пунктов внутри РФ - необходимо указывать код ФИАС (уровень 4 или 6) или КЛАДР, для населенных пунктов за пределами РФ - Идентификатор объекта в базе GeoNames (https://ru.wikipedia.org/wiki/GeoNames)",
                "nullable": true
              },
              "postalCode": {
                "type": "string",
                "description": "Почтовый индекс населенного пункта. Не обязательный параметр",
                "nullable": true
              },
              "address": {
                "type": "string",
                "description": "Адрес произвольной строкой",
                "nullable": true
              },
              "pickupPointId": {
                "type": "string",
                "description": "Идентификатор точки выдачи.",
                "nullable": true
              },
              "pickupPointVendorId": {
                "type": "integer",
                "description": "Поставщик для PickupPointId.",
                "format": "int32",
                "nullable": true
              },
              "pickupPointType": {
                "$ref": "#/components/schemas/ApiPickupPointType"
              },
              "loadingWorks": {
                "type": "object",
                "properties": {
                  "floor": {
                    "type": "integer",
                    "description": "На каком этаже выполняются работы по спуску груза. По умолчанию 1"
                  },
                  "hasFreightLift": {
                    "type": "boolean",
                    "description": "Имеется ли грузовой лифт"
                  },
                  "loadersCount": {
                    "type": "integer",
                    "description": "Количество грузчиков. По умолчанию 1"
                  }
                },
                "additionalProperties": false,
                "description": "Погрузочные работы"
              },
              "assemblyWorks": {
                "type": "object",
                "properties": {
                  "assemblersCount": {
                    "type": "integer",
                    "description": "Количество сборщиков. По умолчанию 1"
                  }
                },
                "additionalProperties": false,
                "description": "Работы по разборке груза"
              },
              "partialPayParameters": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PartialPaySurchargeRule"
                },
                "description": "Параметры услуги \"Частичный выкуп\"\nПри выкупе на сумму порога оплаты или ниже – соответствующая доплата за доставку.\nДля выкупа выше порога оплаты – доплата отсутствует.",
                "nullable": true
              },
              "transportRequirements": {
                "$ref": "#/components/schemas/ApiTransportRequirementsParameters"
              },
              "instructions": {
                "type": "string",
                "description": "Дополнительная информация по адресу.",
                "nullable": true
              }
            },
            "additionalProperties": false,
            "description": "Информация о получателе",
            "example": {
              "name": "ООО \"Тестовая комапания\"",
              "contactPerson": "Петров Петр",
              "phone": "88121234455 доб.123, +79534568899#578",
              "email": "receiver@example.com",
              "contactType": 1,
              "countryId": "RU",
              "countryName": "Россия",
              "cityId": "c2deb16a-0330-4f05-821f-1d09c93331e6",
              "cityName": "Санкт-Петербург",
              "postalCode": "190000",
              "address": "ул. Рентгена, 4а",
              "pickupPointId": null,
              "pickupPointVendorId": 0,
              "instructions": "Вход со двора"
            }
          },
          "cargo": {
            "$ref": "#/components/schemas/CargoDescModel"
          },
          "option": {
            "$ref": "#/components/schemas/OptionResponse"
          },
          "pickupInfo": {
            "$ref": "#/components/schemas/OrderResponsePickupInfo"
          },
          "comments": {
            "type": "string",
            "description": "Общий комментарий, примечания к заказу",
            "nullable": true,
            "example": "Треубуется доупаковка на складе"
          },
          "services": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Service"
            },
            "description": "Перечень дополнительных услуг (страховка, наложенный платеж, частичный выкуп и т.д.)",
            "nullable": true,
            "example": [
              {
                "code": 2,
                "parameter": "1000"
              }
            ]
          },
          "project": {
            "type": "string",
            "description": "Идентификатор проекта, к которому нужно отнести заказ. Служит для информации. Может в реестре отчетности для\nклиента",
            "nullable": true,
            "example": "Доставка товаров"
          },
          "department": {
            "type": "string",
            "description": "Идентификатор департамента, к которому нужно отнести заказ. Служит для информации. Может в реестре отчетности для\nклиента",
            "nullable": true,
            "example": "Логистика"
          },
          "customerActNumber": {
            "maxLength": 100,
            "type": "string",
            "description": "№ Акта/ТТН клиента",
            "nullable": true,
            "example": "A-654"
          },
          "receiverDeliveryCharge": {
            "type": "number",
            "description": "Дополнительный сбор за доставку с получателя",
            "format": "double",
            "example": 100
          },
          "receiverDeliveryChargeVatRate": {
            "$ref": "#/components/schemas/ApiVatRate"
          },
          "deliveryDate": {
            "type": "string",
            "description": "Фактическая дата доставки, если заказ уже завершен",
            "format": "date-time",
            "nullable": true,
            "example": "2022-10-03"
          },
          "receivedBy": {
            "type": "string",
            "description": "Получатель заказа. Проставляется, если заказ завершен. Для заказов с возвратом - тут проставляется ФИО получателя\n(до возврата)",
            "nullable": true,
            "example": "Иванов И.И."
          },
          "createDateTime": {
            "type": "string",
            "description": "Дата создания",
            "format": "date-time",
            "example": "2022-10-01"
          },
          "children": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ShortOrderInfo"
            },
            "description": "Список краткой информации о вложенных заказах",
            "nullable": true
          },
          "orderProperties": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderPropertyModel"
            },
            "description": "Список дополнительных атрибутов",
            "nullable": true
          },
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FileMetadata"
            },
            "description": "Список информации о прикреплённых к заказу файлах",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Даннные заказа"
      },
      "OrderGetResponseContainer": {
        "required": [
          "order"
        ],
        "type": "object",
        "properties": {
          "order": {
            "$ref": "#/components/schemas/OrderGetResponse"
          }
        },
        "additionalProperties": false
      },
      "OrderIdSearchMode": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6
        ],
        "type": "integer",
        "description": "Режимы поиска заказа",
        "format": "int32"
      },
      "OrderPropertyModel": {
        "required": [
          "key"
        ],
        "type": "object",
        "properties": {
          "key": {
            "minLength": 1,
            "type": "string",
            "description": "Ключ дополнительного атрибута",
            "example": "City"
          },
          "value": {
            "type": "string",
            "description": "Значение дополнительного атрибута",
            "nullable": true,
            "example": "Санкт-Петербург"
          }
        },
        "additionalProperties": false
      },
      "OrderRequestPickupInfo": {
        "type": "object",
        "properties": {
          "autoChangeTakeDate": {
            "type": "boolean",
            "description": "Если true, то система будет пытаться автоматически поменять дату забора на ближайший доступный день, если на дату,\nзаданную в TakeDate, передача заказа с заданными VendorId и TariffId невозможна.\nПо умолчанию, true.\nПАРАМЕТР УСТАРЕЛ И БУДЕТ УДАЛЁН."
          },
          "postponePickup": {
            "type": "boolean",
            "description": "Признак того, что курьера не нужно вызывать на указанную в TakeDate дату во время создания заказа с забором \"от двери\". Используется для\nсценария, когда клиент не знает точную дату забора и осуществит вызов курьера, спустя какое-то время, путем вызова метода CallCourier"
          },
          "takeDate": {
            "type": "string",
            "description": "Указывается дата забора груза в формате yyyy-MM-dd.\nПо умолчанию - текущая дата.\nНе все поставщики могут выполнять забор в выходные дни.\nТакже существуют ограничения на время размещения заказа с датой забора сегодня.\nБлижайшая доступная дата забора заказа возвращается в варианте доставки в takeDate.",
            "nullable": true,
            "example": "2020-03-31"
          },
          "timeFrom": {
            "type": "string",
            "description": "Указывается ограничение на время забора (начальное). Это ограничение носит рекомендательный характер и не всегда\nможет быть соблюдено.\nПо умолчанию указывается время забора 09:00.",
            "format": "date-span",
            "example": "12:00"
          },
          "timeTo": {
            "type": "string",
            "description": "Указывается ограничение на время забора (конечное). Это ограничение носит рекомендательный характер и не всегда\nможет быть соблюдено.\nПо умолчанию указывается время забора 18:00.",
            "format": "date-span",
            "example": "15:00"
          }
        },
        "additionalProperties": false,
        "description": "Сведения по забору заказа у отправителя"
      },
      "OrderResponsePickupInfo": {
        "type": "object",
        "properties": {
          "postponePickup": {
            "type": "boolean",
            "description": "Признак того, что курьера не нужно вызывать на указанную в TakeDate дату во время создания заказа с забором \"от двери\". Используется для\nсценария, когда клиент не знает точную дату забора и осуществит вызов курьера, спустя какое-то время, путем вызова метода CallCourier"
          },
          "takeDate": {
            "type": "string",
            "description": "Указывается дата забора груза в формате yyyy-MM-dd.\nПо умолчанию - текущая дата.\nНе все поставщики могут выполнять забор в выходные дни.\nТакже существуют ограничения на время размещения заказа с датой забора сегодня.\nБлижайшая доступная дата забора заказа возвращается в варианте доставки в takeDate.",
            "nullable": true,
            "example": "2020-03-31"
          },
          "timeFrom": {
            "type": "string",
            "description": "Указывается ограничение на время забора (начальное). Это ограничение носит рекомендательный характер и не всегда\nможет быть соблюдено.\nПо умолчанию указывается время забора 09:00.",
            "format": "date-span",
            "example": "12:00"
          },
          "timeTo": {
            "type": "string",
            "description": "Указывается ограничение на время забора (конечное). Это ограничение носит рекомендательный характер и не всегда\nможет быть соблюдено.\nПо умолчанию указывается время забора 18:00.",
            "format": "date-span",
            "example": "15:00"
          }
        },
        "additionalProperties": false,
        "description": "Сведения по забору заказа у отправителя"
      },
      "OrdersGetResponse": {
        "required": [
          "orders"
        ],
        "type": "object",
        "properties": {
          "orders": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderGetResponse"
            },
            "description": "Список заказов"
          },
          "totalCount": {
            "type": "integer",
            "description": "Общее количество заказов, удовлетворяющих фильтру (без учёта пагинации).",
            "format": "int32"
          },
          "nextLink": {
            "type": "string",
            "description": "Ссылка на следующую страницу заказов. NULL, если это последняя страница.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PartialPaySurchargeRule": {
        "type": "object",
        "properties": {
          "paymentThreshold": {
            "type": "integer",
            "description": "Порог доплаты",
            "format": "int32"
          },
          "deliverySurcharge": {
            "type": "integer",
            "description": "Доплата за доставку",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Правило доплаты за доставку при частичном выкупе"
      },
      "PickupPointCalcResultModel": {
        "required": [
          "cityId",
          "cityName",
          "country"
        ],
        "type": "object",
        "properties": {
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DeliveryOption"
            },
            "description": "Перечень доступных вариантов доставки",
            "nullable": true
          },
          "country": {
            "minLength": 1,
            "type": "string",
            "description": "Двухбуквенный код страны в соответствии с ISO 3166-1 alpha-2 (https://ru.wikipedia.org/wiki/ISO_3166-1)",
            "example": "RU"
          },
          "cityId": {
            "minLength": 1,
            "type": "string",
            "description": "Фильтр точек выдачи по городу. Обязательный параметр.\nКод города или населенного пункта. Для населенных пунктов внутри РФ - код ФИАС,\nдля населенных пунктов за пределами РФ - Идентификатор объекта в базе GeoNames\n(https://ru.wikipedia.org/wiki/GeoNames).",
            "example": "5bf5ddff-6353-4a3d-80c4-6fb27f00c6c1"
          },
          "regionId": {
            "type": "string",
            "description": "Код региона по ФИАС. Заполняется только для точек выдачи внутри РФ.",
            "nullable": true,
            "example": "5d372c86-4a1c-4e79-b5e8-2c30ba762b8b"
          },
          "cityName": {
            "minLength": 1,
            "type": "string",
            "description": "Название населенного пункта к которому относится пункт выдачи или постомат.",
            "example": "Воронеж г."
          },
          "address": {
            "type": "string",
            "description": "Адрес точки выдачи заказа поставщика",
            "nullable": true,
            "example": "[СДЭК] ул Ясеневая, 50 [MSK299]"
          },
          "pickupPointId": {
            "type": "string",
            "description": "Идентификатор точки выдачи заказа поставщика",
            "nullable": true,
            "example": "MSK299"
          },
          "vendorId": {
            "type": "integer",
            "description": "Идентификатор поставщика точки выдачи заказа",
            "format": "int32",
            "nullable": true,
            "example": 0
          },
          "vendorInfo": {
            "$ref": "#/components/schemas/VendorInfoModel"
          },
          "metroStation": {
            "type": "string",
            "description": "Ближайшая станция метро",
            "nullable": true,
            "example": "Московская"
          },
          "metroLineHexColor": {
            "type": "string",
            "description": "Цвет линии метро. Указывается в hex формате",
            "nullable": true,
            "example": "FFCD1C"
          },
          "workTime": {
            "type": "string",
            "description": "Время работы точки выдачи",
            "nullable": true,
            "example": "пн-пт 9-18, сб 9-16"
          },
          "pickupPointUrl": {
            "type": "string",
            "description": "Ссылка на страничку точки на сайте поставщика",
            "nullable": true,
            "example": "https://my.versta24.ru/offises/postamat-omnisdek-234"
          },
          "photos": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Массив строк со ссылками на фотографии точки",
            "nullable": true,
            "example": [
              "https://my.versta24.ru/img/22/47_1_SUR2",
              "https://my.versta24.ru/img/22/47_1_SUR2"
            ]
          },
          "latitude": {
            "type": "number",
            "description": "Широта нахождения точки выдачи поставшика",
            "format": "double",
            "example": 54.50598
          },
          "longitude": {
            "type": "number",
            "description": "Долгота нахождения точки выдачи поставшика",
            "format": "double",
            "example": 36.251661
          },
          "name": {
            "type": "string",
            "description": "Название точки выдачи",
            "nullable": true,
            "example": "[СДЭК] ул Ясеневая, 50"
          },
          "color": {
            "type": "string",
            "description": "Цвет ПВЗ на карте",
            "nullable": true,
            "example": "green"
          },
          "type": {
            "$ref": "#/components/schemas/ApiPickupPointType"
          },
          "description": {
            "type": "string",
            "description": "Описание. Дополнительная информация",
            "nullable": true,
            "example": "15 мин от станции метро..."
          },
          "phone": {
            "type": "string",
            "description": "Телефон точки выдачи",
            "nullable": true,
            "example": "+79998887766"
          },
          "freeStorageDays": {
            "type": "integer",
            "description": "Срок бесплатного хранения заказа на ПВЗ в днях. \\\nНе указывается для ПВЗ, работающих только на приём заказов (Mode = 1)",
            "format": "int32",
            "nullable": true,
            "example": 2
          },
          "cashPayment": {
            "type": "boolean",
            "description": "Принимает ли точка наличные",
            "example": true
          },
          "cardPayment": {
            "type": "boolean",
            "description": "Принимает ли точка безналичный расчет",
            "example": false
          },
          "minWeight": {
            "type": "number",
            "description": "Минимальный вес",
            "format": "double",
            "nullable": true,
            "example": null
          },
          "maxWeight": {
            "type": "number",
            "description": "Максимальный вес",
            "format": "double",
            "nullable": true,
            "example": 15
          },
          "maxWidth": {
            "type": "number",
            "description": "Максимальная ширина",
            "format": "double",
            "nullable": true,
            "example": 64.5
          },
          "maxHeight": {
            "type": "number",
            "description": "Максимальная высота",
            "format": "double",
            "nullable": true,
            "example": 36.5
          },
          "maxDepth": {
            "type": "number",
            "description": "Максимальная глубина",
            "format": "double",
            "nullable": true,
            "example": 40.5
          },
          "totalMaxVolume": {
            "type": "number",
            "description": "Максимальный объем для всего отправления в м3, принимаемый в ПВЗ",
            "format": "double",
            "nullable": true,
            "example": 0.4
          },
          "maxSizeSum": {
            "type": "number",
            "description": "Сумма максимальных габаритов",
            "format": "double",
            "nullable": true,
            "example": 250
          },
          "mode": {
            "$ref": "#/components/schemas/PickupPointModes"
          }
        },
        "additionalProperties": false
      },
      "PickupPointModes": {
        "enum": [
          1,
          2
        ],
        "type": "integer",
        "description": "Режимы работы ПВЗ",
        "format": "int32"
      },
      "PickupPointResultModel": {
        "required": [
          "cityId",
          "cityName",
          "country"
        ],
        "type": "object",
        "properties": {
          "country": {
            "minLength": 1,
            "type": "string",
            "description": "Двухбуквенный код страны в соответствии с ISO 3166-1 alpha-2 (https://ru.wikipedia.org/wiki/ISO_3166-1)",
            "example": "RU"
          },
          "cityId": {
            "minLength": 1,
            "type": "string",
            "description": "Фильтр точек выдачи по городу. Обязательный параметр.\nКод города или населенного пункта. Для населенных пунктов внутри РФ - код ФИАС,\nдля населенных пунктов за пределами РФ - Идентификатор объекта в базе GeoNames\n(https://ru.wikipedia.org/wiki/GeoNames).",
            "example": "5bf5ddff-6353-4a3d-80c4-6fb27f00c6c1"
          },
          "regionId": {
            "type": "string",
            "description": "Код региона по ФИАС. Заполняется только для точек выдачи внутри РФ.",
            "nullable": true,
            "example": "5d372c86-4a1c-4e79-b5e8-2c30ba762b8b"
          },
          "cityName": {
            "minLength": 1,
            "type": "string",
            "description": "Название населенного пункта к которому относится пункт выдачи или постомат.",
            "example": "Воронеж г."
          },
          "address": {
            "type": "string",
            "description": "Адрес точки выдачи заказа поставщика",
            "nullable": true,
            "example": "[СДЭК] ул Ясеневая, 50 [MSK299]"
          },
          "pickupPointId": {
            "type": "string",
            "description": "Идентификатор точки выдачи заказа поставщика",
            "nullable": true,
            "example": "MSK299"
          },
          "vendorId": {
            "type": "integer",
            "description": "Идентификатор поставщика точки выдачи заказа",
            "format": "int32",
            "nullable": true,
            "example": 0
          },
          "vendorInfo": {
            "$ref": "#/components/schemas/VendorInfoModel"
          },
          "metroStation": {
            "type": "string",
            "description": "Ближайшая станция метро",
            "nullable": true,
            "example": "Московская"
          },
          "metroLineHexColor": {
            "type": "string",
            "description": "Цвет линии метро. Указывается в hex формате",
            "nullable": true,
            "example": "FFCD1C"
          },
          "workTime": {
            "type": "string",
            "description": "Время работы точки выдачи",
            "nullable": true,
            "example": "пн-пт 9-18, сб 9-16"
          },
          "pickupPointUrl": {
            "type": "string",
            "description": "Ссылка на страничку точки на сайте поставщика",
            "nullable": true,
            "example": "https://my.versta24.ru/offises/postamat-omnisdek-234"
          },
          "photos": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Массив строк со ссылками на фотографии точки",
            "nullable": true,
            "example": [
              "https://my.versta24.ru/img/22/47_1_SUR2",
              "https://my.versta24.ru/img/22/47_1_SUR2"
            ]
          },
          "latitude": {
            "type": "number",
            "description": "Широта нахождения точки выдачи поставшика",
            "format": "double",
            "example": 54.50598
          },
          "longitude": {
            "type": "number",
            "description": "Долгота нахождения точки выдачи поставшика",
            "format": "double",
            "example": 36.251661
          },
          "name": {
            "type": "string",
            "description": "Название точки выдачи",
            "nullable": true,
            "example": "[СДЭК] ул Ясеневая, 50"
          },
          "color": {
            "type": "string",
            "description": "Цвет ПВЗ на карте",
            "nullable": true,
            "example": "green"
          },
          "type": {
            "enum": [
              0,
              1,
              2,
              3,
              4,
              5
            ],
            "type": "integer",
            "description": "Тип ПВЗ<br />0 - ПВЗ<br>1 - Постомат<br>2 - Абонентский ящик<br>3 - Маркетплейс",
            "format": "int32",
            "example": 0
          },
          "description": {
            "type": "string",
            "description": "Описание. Дополнительная информация",
            "nullable": true,
            "example": "15 мин от станции метро..."
          },
          "phone": {
            "type": "string",
            "description": "Телефон точки выдачи",
            "nullable": true,
            "example": "+79998887766"
          },
          "freeStorageDays": {
            "type": "integer",
            "description": "Срок бесплатного хранения заказа на ПВЗ в днях. \\\nНе указывается для ПВЗ, работающих только на приём заказов (Mode = 1)",
            "format": "int32",
            "nullable": true,
            "example": 2
          },
          "cashPayment": {
            "type": "boolean",
            "description": "Принимает ли точка наличные",
            "example": true
          },
          "cardPayment": {
            "type": "boolean",
            "description": "Принимает ли точка безналичный расчет",
            "example": false
          },
          "minWeight": {
            "type": "number",
            "description": "Минимальный вес",
            "format": "double",
            "nullable": true,
            "example": null
          },
          "maxWeight": {
            "type": "number",
            "description": "Максимальный вес",
            "format": "double",
            "nullable": true,
            "example": 15
          },
          "maxWidth": {
            "type": "number",
            "description": "Максимальная ширина",
            "format": "double",
            "nullable": true,
            "example": 64.5
          },
          "maxHeight": {
            "type": "number",
            "description": "Максимальная высота",
            "format": "double",
            "nullable": true,
            "example": 36.5
          },
          "maxDepth": {
            "type": "number",
            "description": "Максимальная глубина",
            "format": "double",
            "nullable": true,
            "example": 40.5
          },
          "totalMaxVolume": {
            "type": "number",
            "description": "Максимальный объем для всего отправления в м3, принимаемый в ПВЗ",
            "format": "double",
            "nullable": true,
            "example": 0.4
          },
          "maxSizeSum": {
            "type": "number",
            "description": "Сумма максимальных габаритов",
            "format": "double",
            "nullable": true,
            "example": 250
          },
          "mode": {
            "enum": [
              1,
              2
            ],
            "type": "integer",
            "description": "Режимы работы ПВЗ<br />Intake=1 На приём отправлений <br />Pickup=2 На выдачу отправлений <br />ПВЗ может работать как на прием, так и на выдачу отправление - принимать значение 3<br/>По умолчанию Pickup=2",
            "format": "int32",
            "example": 1
          }
        },
        "additionalProperties": false
      },
      "PickupPointsCalcResultModel": {
        "type": "object",
        "properties": {
          "pickupPoints": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PickupPointCalcResultModel"
            },
            "description": "Список точек выдачи с рассчитанными вариантами доставки",
            "nullable": true
          },
          "totalCount": {
            "type": "integer",
            "description": "Общее количество ПВЗ, удовлетворяющих фильтру (без учёта пагинации).",
            "format": "int32"
          },
          "nextLink": {
            "type": "string",
            "description": "Ссылка на следующую страницу. NULL, если это последняя страница.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PickupPointsResultModel": {
        "type": "object",
        "properties": {
          "pickupPoints": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PickupPointResultModel"
            },
            "description": "Список  точек выдачи поставщика",
            "nullable": true
          },
          "totalCount": {
            "type": "integer",
            "description": "Общее количество ПВЗ, удовлетворяющих фильтру (без учёта пагинации).",
            "format": "int32"
          },
          "nextLink": {
            "type": "string",
            "description": "Ссылка на следующую страницу. NULL, если это последняя страница",
            "nullable": true,
            "example": "https://api.versta24.ru/openapi/v2/pickupPoints?countryId=RU&cityId=0c5b2444-70a0-4932-980c-b4dc0d3f02b5&pageNum=4"
          }
        },
        "additionalProperties": false,
        "description": "Информация по запросу списка точек выдачи поставщика"
      },
      "PrintIncludeRequest": {
        "type": "object",
        "properties": {
          "includePdf": {
            "type": "string",
            "description": "base-64 строка Pdf-файла для соединения с накладной",
            "nullable": true,
            "example": "aW5jbHVkZSBwZGYgYmFzZTY0IHN0cmluZw=="
          },
          "includePosition": {
            "$ref": "#/components/schemas/ApiIncludeFilePosition"
          },
          "includeCopy": {
            "type": "integer",
            "description": "Количество копий IncludePdf файла. По умолчанию - 1",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "PushToVendorRequest": {
        "type": "object",
        "properties": {
          "option": {
            "$ref": "#/components/schemas/Option"
          },
          "pickupInfo": {
            "$ref": "#/components/schemas/OrderRequestPickupInfo"
          }
        },
        "additionalProperties": false
      },
      "ReqDeliveryInfo": {
        "type": "object",
        "properties": {
          "reqDeliveryDate": {
            "type": "string",
            "description": "Желаемая дата доставки в формате yyyy-MM-dd. Если задан интервал, это его начало.\nПри указании даты в расчет добавляется услуга v24.OpenApi.Models.ApiV2.ApiServiceCode.SelectDeliveryDate (Выбор даты доставки)",
            "nullable": true,
            "example": "2020-03-31"
          },
          "reqDeliveryDateTo": {
            "type": "string",
            "description": "Конец интервала желаемой даты доставки в формате yyyy-MM-dd.\nЕсли не указан, считается равным v24.OpenApi.Models.ApiV2.DeliveryConditions.ReqDeliveryInfo.ReqDeliveryDate",
            "nullable": true,
            "example": "2020-04-02"
          },
          "reqDeliveryTimeFrom": {
            "type": "string",
            "description": "Желаемое начальное время доставки. Носит рекомендательный характер и может быть изменено\nв соответствии с выбранным тарифом поставщика",
            "format": "date-span",
            "nullable": true,
            "example": "12:00"
          },
          "reqDeliveryTimeTo": {
            "type": "string",
            "description": "Желаемое конечное время доставки. Носит рекомендательный характер и может быть изменено\nв соответствии с выбранным тарифом поставщика",
            "format": "date-span",
            "nullable": true,
            "example": "18:00"
          }
        },
        "additionalProperties": false,
        "description": "Сведения о желаемой дате и времени доставки заказа получателю"
      },
      "RoutePoint": {
        "required": [
          "cityId",
          "countryId"
        ],
        "type": "object",
        "properties": {
          "contactType": {
            "$ref": "#/components/schemas/ApiContactTypes"
          },
          "countryId": {
            "minLength": 1,
            "type": "string",
            "description": "Указывается двухбуквенный код страны в соответствии с ISO 3166-1 alpha-2 (https://ru.wikipedia.org/wiki/ISO_3166-1).<br>Обязателен, если не указаны координаты (latitude и longitude). Если указаны координаты, countryId может быть не заполнен."
          },
          "cityId": {
            "minLength": 1,
            "type": "string",
            "description": "Код города или населенного пункта\nОбязателен, если не указаны координаты (latitude и longitude). Если координаты указаны — параметр cityId может быть не заполнен.\n\nПриоритет выбора адреса:\n\n 1. Если указаны latitude и longitude — используются только координаты.\n 2. Если координаты не указаны — используются countryId, cityId, cityName и address.\n 3. Если по координатам не удалось распознать адрес — используются countryId, cityId, cityName и address.\n\nФормат значения зависит от страны. Для населенных пунктов:\n- внутри РФ - необходимо указывать код ФИАС (уровень 4 или 6) или КЛАДР,\n- в странах Беларуси, Казахстана и Узбекистана - Тип объекта и Идентификатор объекта в базе OpenStreetMap. Пример <i>relation:2465058</i> (https://ru.wikipedia.org/wiki/OpenStreetMap).\n- в остальных населенных пунктов за пределами РФ - Идентификатор объекта в базе GeoNames (https://ru.wikipedia.org/wiki/GeoNames).\nГород должен попадать в указанную в параметре country страну.\nЭтот параметр очень важен и определяет в том числе какому поставщику будет передан заказа. Также этот параметр\nвлияет на цену"
          },
          "cityName": {
            "type": "string",
            "description": "Название города (опционально).\nЛогика выбора:\n    1. Если указаны координаты — используются только координаты.\n    2. Если координаты не указаны, но указан CityId — используются CityId, а CityName игнорируется.\n    3. Если CityId не указан — выполняется поиск по CityName.\nДля точного определения, пожалуйста, используйте CityId или координаты.",
            "nullable": true
          },
          "postalCode": {
            "type": "string",
            "description": "Почтовый индекс населенного пункта. Не обязательный параметр",
            "nullable": true
          },
          "pickupPointId": {
            "type": "string",
            "description": "Идентификатор точки выдачи. Обязательно для ContactType = PickupPoint; игнорируется, если ContactType не равен PickupPoint",
            "nullable": true
          },
          "latitude": {
            "type": "number",
            "description": "Широта адреса. Если указаны latitude и longitude, остальные параметры (countryId, cityId, address) становятся необязательными. В приоритете используются координаты.",
            "format": "double",
            "nullable": true
          },
          "longitude": {
            "type": "number",
            "description": "Долгота адреса. Если указаны latitude и longitude, остальные параметры (countryId, cityId, address) становятся необязательными. В приоритете используются координаты.",
            "format": "double",
            "nullable": true
          },
          "pickupPointVendorId": {
            "type": "integer",
            "description": "Поставщик для PickupPointId. Обязательно для ContactType = PickupPoint; игнорируется, если ContactType не равен PickupPoint",
            "format": "int32",
            "nullable": true
          },
          "pickupPointType": {
            "$ref": "#/components/schemas/ApiPickupPointType"
          },
          "loadingWorks": {
            "$ref": "#/components/schemas/LoadingWorksParameters"
          },
          "transportRequirements": {
            "$ref": "#/components/schemas/ApiTransportRequirementsParameters"
          },
          "assemblyWorks": {
            "$ref": "#/components/schemas/AssemblyWorksParameters"
          },
          "partialPayParameters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PartialPaySurchargeRule"
            },
            "description": "Параметры услуги \"Частичный выкуп\"\nПри выкупе на сумму порога оплаты или ниже – соответствующая доплата за доставку.\nДля выкупа выше порога оплаты – доплата отсутствует.",
            "nullable": true
          },
          "address": {
            "type": "string",
            "description": "Адрес произвольной строкой. Адрес должен относиться к указанному в city городу и стране - эта проверка не выполняется, но если в поле адрес будет указан адрес из другого региона - доставка не гарантируется. Не обязателен, но может влиять на стоимость доставки\nОбязателен, когда contactType=Door и не указаны координаты. Если указаны координаты, Address может быть не заполнен.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "RoutePoint -  Описание точки маршрута"
      },
      "SchemaField": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Код-идентификатор поля",
            "nullable": true,
            "example": "login"
          },
          "name": {
            "type": "string",
            "description": "Название поля",
            "nullable": true,
            "example": "Логин"
          },
          "description": {
            "type": "string",
            "description": "Описание поля",
            "nullable": true,
            "example": "Логин для авторизации у поставщика"
          }
        },
        "additionalProperties": false
      },
      "SchemaItem": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Код поля настройки",
            "nullable": true,
            "example": "login"
          },
          "name": {
            "type": "string",
            "description": "Название поля",
            "nullable": true,
            "example": "Логин"
          },
          "description": {
            "type": "string",
            "description": "Описание поля",
            "nullable": true,
            "example": "Логин"
          },
          "type": {
            "type": "string",
            "description": "Тип поля",
            "nullable": true,
            "example": "string"
          },
          "required": {
            "type": "boolean",
            "description": "Статус необходимости",
            "example": false
          },
          "multiple": {
            "type": "boolean",
            "description": "Поддерживает массив значений",
            "example": false
          },
          "values": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Возможные значения (при наличии)",
            "nullable": true,
            "example": [
              "cool",
              "guy"
            ]
          }
        },
        "additionalProperties": false
      },
      "SchemaList": {
        "type": "object",
        "properties": {
          "settings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SchemaItem"
            },
            "description": "Список полей настройки",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Service": {
        "required": [
          "code"
        ],
        "type": "object",
        "properties": {
          "code": {
            "minLength": 1,
            "type": "string",
            "description": "Наименование услуги. Например: Insurance \n\nСписок услуг см. <a href=\"/api/reference/services\">справочник</a>",
            "example": "Insurance"
          },
          "parameter": {
            "type": "string",
            "description": "Параметр услуги. Например, страховая стоимость, сумма наложенного платежа и др.",
            "nullable": true,
            "example": "1000"
          }
        },
        "additionalProperties": false
      },
      "Settings": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Название настройки",
            "nullable": true,
            "example": "Разрешить выбор языка"
          },
          "key": {
            "type": "string",
            "description": "Ключ-идентификатор настройки",
            "nullable": true,
            "example": "canSelectLanguage"
          },
          "value": {
            "type": "string",
            "description": "Текущее значение настройки",
            "nullable": true,
            "example": "true"
          },
          "schemaLink": {
            "type": "string",
            "description": "Ссылка на схему полей настройки",
            "nullable": true,
            "example": "https://api.versta24.ru/OpenApi/v2/Settings/canSelectLanguage/schema"
          },
          "access": {
            "$ref": "#/components/schemas/SettingsAccessLevel"
          },
          "description": {
            "type": "string",
            "description": "Описание настройки",
            "nullable": true,
            "example": "Даем возможность клиенту выбрать язык ЛК. У пользователя появится переключатель языков"
          }
        },
        "additionalProperties": false
      },
      "SettingsAccessLevel": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "description": "Уровень доступа к настройкам \\\n0 = Admin - Только администратор \\\n1 = Read - Только просмотр \\\n2 = ReadWrite - Просмотр и запись",
        "format": "int32"
      },
      "SettingsList": {
        "type": "object",
        "properties": {
          "settings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Settings"
            },
            "description": "Список настроек пользователя",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ShortOrderInfo": {
        "required": [
          "location",
          "orderId",
          "orderKey"
        ],
        "type": "object",
        "properties": {
          "orderId": {
            "minLength": 1,
            "type": "string",
            "description": "Идентификатор заказа Versta в формате V24X-XXX-XXX-XXX",
            "example": "V24X-XXX-XXX-XXX"
          },
          "orderKey": {
            "minLength": 1,
            "type": "string",
            "description": "Ключ доступа к заказу без авторизации",
            "example": "xxxxxxx"
          },
          "location": {
            "minLength": 1,
            "type": "string",
            "description": "Ссылка для получения подробной информации о заказе",
            "example": "https://api.versta24.ru/openapi/v2/orders/V24X-XXX-XXX-XXX"
          },
          "vendorInvoiceNumber": {
            "type": "string",
            "description": "Номер накладной поставщика",
            "nullable": true,
            "example": "62377725-23"
          }
        },
        "additionalProperties": false,
        "description": "Краткая информация по заказу"
      },
      "SysApp": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10
        ],
        "type": "integer",
        "format": "int32"
      },
      "TariffModel": {
        "required": [
          "tariffId",
          "tariffName",
          "vendorId",
          "vendorKey",
          "vendorName"
        ],
        "type": "object",
        "properties": {
          "tariffId": {
            "minLength": 1,
            "type": "string",
            "description": "Идентифиатор тарифа поставщика",
            "example": "376"
          },
          "tariffName": {
            "minLength": 1,
            "type": "string",
            "description": "Название тарифа",
            "example": "Экономичная посылка дверь-постамат"
          },
          "vendorId": {
            "type": "integer",
            "description": "Идентификатор поставщика",
            "format": "int32",
            "example": 8
          },
          "vendorKey": {
            "minLength": 1,
            "type": "string",
            "description": "Ключ поставщика",
            "example": "CDEK"
          },
          "vendorName": {
            "minLength": 1,
            "type": "string",
            "description": "Название поставщика",
            "example": "СДЭК"
          },
          "senderContactType": {
            "enum": [
              1,
              2,
              4,
              8
            ],
            "type": "integer",
            "description": "Тип адреса отправителя<br/>1 - Дверь<br/>4 - ПВЗ",
            "format": "int32"
          },
          "senderPickupPointType": {
            "enum": [
              0,
              1,
              2,
              3,
              4,
              5
            ],
            "type": "integer",
            "description": "Тип ПВЗ отправителя, если доставка от склада<br/>0 - ПВЗ<br/>1 - Постомат",
            "format": "int32"
          },
          "receiverContactType": {
            "enum": [
              1,
              2,
              4,
              8
            ],
            "type": "integer",
            "description": "Тип адреса получателя<br/>1 - Дверь<br/>4 - ПВЗ",
            "format": "int32"
          },
          "receiverPickupPointType": {
            "enum": [
              0,
              1,
              2,
              3,
              4,
              5
            ],
            "type": "integer",
            "description": "Тип ПВЗ получателя, если доставка до склада<br/>0 - ПВЗ<br/>1 - Постомат",
            "format": "int32"
          },
          "description": {
            "type": "string",
            "description": "Описание тарифа",
            "nullable": true,
            "example": "Экономичная доставка грузов и документов по России"
          }
        },
        "additionalProperties": false,
        "description": "Описание тарифа поставщика"
      },
      "TariffModelListContainer": {
        "type": "object",
        "properties": {
          "values": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TariffModel"
            },
            "description": "Элементы коллекции",
            "nullable": true
          },
          "totalCount": {
            "type": "integer",
            "description": "Общее количество элементов в коллекции",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "TimeSlot": {
        "type": "object",
        "properties": {
          "timeFrom": {
            "type": "string",
            "description": "Время доставки от",
            "format": "date-span",
            "nullable": true
          },
          "timeTo": {
            "type": "string",
            "description": "Время доставки до",
            "format": "date-span",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Временной слот для доставки. Время всегда местное. В рамках одной опции может быть доступно несколько\nвременных слотов"
      },
      "TrackItem": {
        "required": [
          "eventDateTime",
          "eventSource",
          "eventText",
          "isReturn",
          "masterStatus",
          "status"
        ],
        "type": "object",
        "properties": {
          "eventDateTime": {
            "type": "string",
            "description": "Дата и время события. Часовой пояс - всегда Москва",
            "format": "date-time",
            "example": "2020-03-04T12:05:38.328169"
          },
          "eventSource": {
            "minLength": 1,
            "type": "string",
            "description": "Источник события. Тут обычно указывается название поставщика",
            "example": "СДЭК"
          },
          "eventText": {
            "minLength": 1,
            "type": "string",
            "description": "Текст события. Может быть произвольным",
            "example": "[Офис СДЭК]: Принят"
          },
          "status": {
            "enum": [
              0,
              1,
              2,
              3,
              4,
              5,
              6,
              10,
              11,
              12,
              13,
              14,
              15,
              16,
              20,
              24,
              30,
              31,
              32,
              40,
              45,
              49,
              50,
              52,
              53,
              54,
              55,
              56,
              57,
              59,
              60,
              61,
              62,
              100,
              101,
              110,
              111,
              112,
              113,
              114,
              115,
              116,
              117,
              118,
              120,
              130,
              140,
              145,
              150,
              160,
              170,
              200,
              201,
              204,
              205,
              206,
              207,
              208,
              210,
              220,
              230,
              240,
              300,
              310,
              320,
              500,
              510,
              520,
              530,
              540,
              541,
              542,
              543,
              590,
              600,
              610,
              615,
              620,
              625,
              630,
              635,
              640,
              645,
              650,
              651,
              652,
              653,
              690,
              700,
              701,
              705,
              710,
              720,
              730,
              800,
              810,
              820,
              840,
              850,
              860,
              870,
              880,
              890
            ],
            "type": "integer",
            "description": "Код события.  <a href=\"/api/reference/statuses\">Справочник значений</a>",
            "format": "int32",
            "example": 5
          },
          "masterStatus": {
            "enum": [
              0,
              10,
              20,
              30,
              40,
              50,
              60,
              100,
              200,
              300,
              500,
              600,
              700,
              800,
              900
            ],
            "type": "integer",
            "description": "Код группы статуса заказа. <a href=\"/api/reference/masterstatuses\">Справочник значений</a>",
            "format": "int32",
            "example": 50
          },
          "isReturn": {
            "type": "boolean",
            "description": "Признак того, что событие связано с возвратом заказа отправителю",
            "example": false
          }
        },
        "additionalProperties": false
      },
      "TrackingResult": {
        "required": [
          "events"
        ],
        "type": "object",
        "properties": {
          "events": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TrackItem"
            },
            "description": "События по заказу отсортированные в хронологическом порядке",
            "example": "\n                [{\"eventDateTime\": \"2020-03-04T16:28:51\",\"eventSource\": \"СДЭК\",\"eventText\": \"Выдан на отправку в\n                г.-отправителе [Москва]\", \"status\": 9},{\"eventDateTime\": \"2020-03-04T15:59:00\",\"eventSource\": \"СДЭК\",\"eventText\":\n                \"Принят на\n                склад отправителя [Москва]\", \"status\": 7},{\"eventDateTime\": \"2020-03-04T12:05:38.328169\",\"eventSource\":\n                \"Versta\",\"eventText\":\n                \"Заказ зарегистрирован в системе\", \"status\": 5}]\n            "
          }
        },
        "additionalProperties": false
      },
      "UniversalReportItemValues": {
        "type": "object",
        "properties": {
          "itemValues": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Получаемые поля по шаблону отчета вида \"ключ\" : \"значение\"",
            "nullable": true,
            "example": {
              "id": "V245-700-125-419-000",
              "sender": "Иванов Иван",
              "receiver": "Петров Петр"
            }
          }
        },
        "additionalProperties": false
      },
      "UniversalReportItemValuesArrayContainer": {
        "type": "object",
        "properties": {
          "values": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UniversalReportItemValues"
            },
            "nullable": true
          },
          "totalCount": {
            "type": "integer",
            "description": "Общее количество элементов в коллекции",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "UpdateSettingsRequest": {
        "type": "object",
        "properties": {
          "enable": {
            "type": "boolean",
            "description": "Включить/выключить настройку"
          },
          "fields": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Словарь записей настройки, где ключом выступает код настройки",
            "nullable": true,
            "example": {
              "toggle": "true"
            }
          }
        },
        "additionalProperties": false
      },
      "UploadRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Название файла",
            "nullable": true,
            "example": "file.pdf"
          },
          "mimeType": {
            "type": "string",
            "description": "MIME-тип файла",
            "nullable": true,
            "example": "application/pdf"
          },
          "itemType": {
            "enum": [
              0,
              1,
              2,
              3,
              0,
              1,
              2,
              3,
              0,
              1,
              2,
              3
            ],
            "type": "integer",
            "description": "Тип сущности, к которой привязывается файл <br />\n        0 = Order - К заказу versta24 <br />\n        1 = ProfLogVendor - Поставщик профлог <br />\n        2 = Resource - Информационный файл <br />\n        3 = PickupPoint - Пункт выдачи заказов",
            "format": "int32",
            "example": 0
          },
          "itemId": {
            "type": "string",
            "description": "Идентификатор сущности, к которой привязывается файл",
            "nullable": true,
            "example": "V24X-XXX-XXX-XXX"
          },
          "fileType": {
            "enum": [
              0,
              1,
              2,
              4,
              8,
              16,
              32,
              64,
              128,
              256,
              512,
              1024,
              2048,
              4096,
              8192,
              16384,
              32768,
              536870912,
              1073741824
            ],
            "type": "integer",
            "description": "Тип содержимого файла. Можно использовать как маску <br />\n        0 = None - Без типа <br />\n        1 = AttachedFile - Вложение <br />\n        2 = OrderPrintedInvoice - Распечатанная накладная заказа <br />\n        4 = InsurancePolicy - Страховка <br />\n        8 = CargoBarcode - Штрихкод груза <br />\n        16 = OrderSourceFile - Исходный файл создания заказа <br />\n        32 = InvoiceScan - Скан накладной <br />\n        64 = YotaContract - Договор Yota <br />\n        128 = OrderTemplateAttachedFile - Шаблон файла загрузки для договора <br />\n        256 = PaymentAccount - Данные плательщика <br />\n        512 = ZipInvoiceScans - Архив сканов накладных <br />\n        1024 = Registry - Реестр по заказу <br />\n        2048 = ZipRegistries - Архив реестров по заказу <br />\n        4096 = LoadingPhoto - Фото погрузки <br />\n        8192 = UnloadingPhoto - Фото разгрузки <br />\n        16384 = Documents - Документы <br />\n        32768 = MailingSource - Исходный файл рассылки",
            "format": "int32",
            "example": 1
          },
          "base64File": {
            "type": "string",
            "description": "Файл, закодированный в base64-строку",
            "nullable": true,
            "example": "0J/RgNC40LzQtdGAINGB0YLRgNC+0LrQuCDQsiBiYXNlNjQ="
          },
          "accessLevel": {
            "enum": [
              1,
              2,
              4
            ],
            "type": "integer",
            "description": "Уровень доступа к файлу <br />\n        1 = Admin - Доступен только администраторам versta24 <br />\n        2 = AuthorizedUser - Доступен всем авторизованным пользователям <br />\n        4 = NotAuthorizedUser - Доступен всем",
            "example": 2
          }
        },
        "additionalProperties": false,
        "description": "UploadRequest - модель данных для загрузки файла"
      },
      "VendorContractDescription": {
        "type": "object",
        "properties": {
          "authorization": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "nullable": true
            },
            "description": "Список полей договора с поставщиком",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "VendorContractType": {
        "enum": [
          0,
          1
        ],
        "type": "integer",
        "description": "Тип договора с поставщиком \\\n0 = Versta - Договор vertsa24 \\\n1 = Own - Клиентский договор",
        "format": "int32"
      },
      "VendorDescription": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Идентификатор поставщика",
            "format": "int32",
            "example": 8
          },
          "name": {
            "type": "string",
            "description": "Название поставщика",
            "nullable": true,
            "example": "СДЭК"
          },
          "key": {
            "type": "string",
            "description": "Ключ-идентификатор поставщика",
            "nullable": true,
            "example": "CDEK"
          },
          "description": {
            "type": "string",
            "description": "Описание поставщика",
            "nullable": true,
            "example": "Интеграция со СДЭК"
          },
          "logo": {
            "type": "string",
            "description": "Ссылка на логотип поставщика",
            "nullable": true,
            "example": "https://my.versta24.ru/img/vendors/СДЭК.png"
          },
          "contractType": {
            "$ref": "#/components/schemas/VendorContractType"
          },
          "isEnabled": {
            "type": "boolean",
            "description": "Включён ли поставщик",
            "example": true
          },
          "schemaLink": {
            "type": "string",
            "description": "Ссылка на получение схемы подключения клиентского договора поставщика",
            "nullable": true,
            "example": "https://api.versta24.ru/OpenApi/v2/Vendors/CDEK/authSchema"
          },
          "vendorLink": {
            "type": "string",
            "description": "Ссылка на подробную информацию о поставщике",
            "nullable": true,
            "example": "https://api.versta24.ru/OpenApi/v2/Vendors/CDEK"
          },
          "contractLink": {
            "type": "string",
            "description": "Ссылка на данные договора",
            "nullable": true,
            "example": "https://api.versta24.ru/OpenApi/v2/Vendors/CDEK/contract"
          }
        },
        "additionalProperties": false,
        "description": "Данные о поставщике"
      },
      "VendorInfo": {
        "required": [
          "vendorContractType",
          "vendorId",
          "vendorLogoUrl",
          "vendorName"
        ],
        "type": "object",
        "properties": {
          "vendorId": {
            "type": "integer",
            "description": "Внутренний идентификатор вендора от которого был получен данный вариант.",
            "format": "int32",
            "example": 0
          },
          "vendorName": {
            "minLength": 1,
            "type": "string",
            "description": "Название поставщика",
            "example": "Versta"
          },
          "vendorLogoUrl": {
            "minLength": 1,
            "type": "string",
            "description": "Ссылка на лого вендора для его отображения пользователю",
            "example": "https://my.versta24.ru/img/vendors/Versta.png"
          },
          "vendorContractType": {
            "enum": [
              0,
              1,
              0,
              1,
              0,
              1,
              0,
              1,
              0,
              1
            ],
            "type": "integer",
            "description": "Тип договора с поставщиком, по которому получен данный вариант.<br/>\n0 = Versta - Договор vertsa24<br/>\n1 = Own - Клиентский договор",
            "format": "int32"
          },
          "vendorKey": {
            "type": "string",
            "description": "Ключ поставщика - сокращенное название по которому его можно будет найти в OpenAPI",
            "nullable": true,
            "example": "CDEK"
          }
        },
        "additionalProperties": false,
        "description": "Информация о поставщике"
      },
      "VendorInfoModel": {
        "required": [
          "vendorId",
          "vendorLogoUrl",
          "vendorName"
        ],
        "type": "object",
        "properties": {
          "vendorId": {
            "type": "integer",
            "description": "Внутренний идентификатор вендора от которого был получен данный вариант. \\",
            "format": "int32",
            "example": 0
          },
          "vendorName": {
            "minLength": 1,
            "type": "string",
            "description": "Название поставщика",
            "example": "Versta"
          },
          "vendorLogoUrl": {
            "minLength": 1,
            "type": "string",
            "description": "Ссылка на лого вендора для его отображения пользователю",
            "example": "https://my.versta24.ru/img/vendors/Versta.png"
          },
          "vendorKey": {
            "type": "string",
            "description": "Ключ поставщика - сокращенное название по которому его можно будет найти в OpenAPI",
            "nullable": true,
            "example": "CDEK"
          }
        },
        "additionalProperties": false,
        "description": "Информация о поставщике"
      },
      "VendorListResponse": {
        "type": "object",
        "properties": {
          "vendors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VendorDescription"
            },
            "description": "Список поставщиков со статусом подключения",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "VendorSchema": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "Уникальный ключ-идентификатор поставщика",
            "nullable": true,
            "example": "CDEK"
          },
          "fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SchemaField"
            },
            "description": "Сохранённый список полей, необходимых для подключения клиентского договора",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "VendorUpdateContainer": {
        "type": "object",
        "properties": {
          "vendor": {
            "$ref": "#/components/schemas/VendorDescription"
          },
          "message": {
            "type": "string",
            "description": "Сообщение-индикатор успешности подключения поставщика",
            "nullable": true,
            "example": "Поставщик подключен"
          }
        },
        "additionalProperties": false
      }
    }
  },
  "tags": [
    {
      "name": "Attachments"
    },
    {
      "name": "Calc"
    },
    {
      "name": "Companies"
    },
    {
      "name": "NatureOfGoods"
    },
    {
      "name": "Orders"
    },
    {
      "name": "PickupPoints"
    },
    {
      "name": "Settings"
    },
    {
      "name": "Tariffs"
    },
    {
      "name": "Vendors"
    }
  ],
  "servers": [
    {
      "url": "https://api.versta24.ru"
    }
  ]
}
