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: >-
        Рассчитывает стоимость по переданным параметрам и возвращает возможные
        варианты доставки для отображения

        пользователю.
      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: >-
        Рассчитывает стоимость по переданным параметрам и возвращает возможные
        варианты доставки на каждую дату доставки

        начиная с сегодняшней + указанное количество дней.
      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.

        Поиск осуществляется по названию (регистронезависимый, поддерживает
        смену раскладки клавиатуры).

        Если параметр 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) и передает его поставщику на

        выполнение \

        Для того, чтобы заказ был сразу передан поставщику, необходимо указать
        поля VendorId и TariffId в

        Option
      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: >-
            При сохранении заказа произошла ошибка. Возвращает информацию об
            ошибке (Если произошла ошибка

            валидации, то <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: |2-
             Фильтр по номерам заказа. Может быть указаны  следующие номера:
            - номер заказа верста - OrderId - V24X-XXX-XXX-XXX
            - клиентский номер заказа - CustomerOrderId
            - номер накладной поставщика 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: Department
          in: query
          description: >-
            Фильтр по аналитике "подразделение" из заказов. Сравнение происходит
            регистронезависимо, но совпадение должно быть 100%
          schema:
            type: string
            example: Финансы
          example: Финансы
        - name: Project
          in: query
          description: >-
            Фильтр по аналитике "проект" из заказов. Сравнение происходит
            регистронезависимо, но совпадение должно быть 100%
          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: Список заказов с информацией о каждом заказе
          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, клиентский номер или номер накладной
            поставщика
          required: true
          schema:
            type: string
          example: V24X-XXX-XXX-XXX-XXX
        - name: searchMode
          in: query
          description: >-
            Какому полю должен соответствовать orderId, без указания параметра
            поиск будет производиться

            по номеру заказа versta24.


            0 - По номеру заказа в системе Верста (ByVerstaNum)


            1 - По номеру накладной поставщика (ByVendorInvoiceNum)


            2 - По номеру возвратной накладной поставщика
            (ByVendorReturnInvoiceNum)


            3 - По номеру заказа или вызова курьера поставщика
            (ByVendorPickupNum)


            4 - По клиентскому номеру (ByCustomerNum)


            5 - По дополнительному номеру для трекинга (ByTrackingId)


            6 - По всем номерам заказа (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, без указания параметра
            поиск будет производиться

            по номеру заказа versta24.


            0 - По номеру заказа в системе Верста (ByVerstaNum)


            1 - По номеру накладной поставщика (ByVendorInvoiceNum)


            2 - По номеру возвратной накладной поставщика
            (ByVendorReturnInvoiceNum)


            3 - По номеру заказа или вызова курьера поставщика
            (ByVendorPickupNum)


            4 - По клиентскому номеру (ByCustomerNum)


            5 - По дополнительному номеру для трекинга (ByTrackingId)


            6 - По всем номерам заказа (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: >-
        Создает запрос на отмену заказа и возвращает результат создания этого
        запроса. Следует обратить внимание, что по

        правилам тарифного положения

        бесплатная отмена заказа доступна только в течении 20 минут после его
        создания. Далее за каждый отмененный заказ

        может взиматься плата, согласно тарифу

        (см. тарифное положение)
      parameters:
        - name: orderId
          in: path
          description: >-
            Номер заказа versta24, клиентский номер или номер накладной
            поставщика
          required: true
          schema:
            type: string
          example: V24X-XXX-XXX-XXX
        - name: searchMode
          in: query
          description: >-
            Какому полю должен соответствовать orderId, без указания параметра
            поиск будет производиться

            по номеру заказа versta24.


            0 - По номеру заказа в системе Верста (ByVerstaNum)


            1 - По номеру накладной поставщика (ByVendorInvoiceNum)


            2 - По номеру возвратной накладной поставщика
            (ByVendorReturnInvoiceNum)


            3 - По номеру заказа или вызова курьера поставщика
            (ByVendorPickupNum)


            4 - По клиентскому номеру (ByCustomerNum)


            5 - По дополнительному номеру для трекинга (ByTrackingId)


            6 - По всем номерам заказа (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, без указания параметра
            поиск будет производиться

            по номеру заказа versta24.


            0 - По номеру заказа в системе Верста (ByVerstaNum)


            1 - По номеру накладной поставщика (ByVendorInvoiceNum)


            2 - По номеру возвратной накладной поставщика
            (ByVendorReturnInvoiceNum)


            3 - По номеру заказа или вызова курьера поставщика
            (ByVendorPickupNum)


            4 - По клиентскому номеру (ByCustomerNum)


            5 - По дополнительному номеру для трекинга (ByTrackingId)


            6 - По всем номерам заказа (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 файл с накладной по конкретному заказу. Распечатать
        накладную или ШК грузомест можно только по

        заказам, которые уже были в статусе "Передан поставщику" и не отменены
      parameters:
        - name: orderId
          in: path
          description: >-
            Номер заказа versta24, клиентский номер или номер накладной
            поставщика
          required: true
          schema:
            type: string
          example: V24X-XXX-XXX-XXX
        - name: searchMode
          in: query
          description: >-
            Какому полю должен соответствовать orderId, без указания параметра
            поиск будет производиться

            по номеру заказа versta24.


            0 - По номеру заказа в системе Верста (ByVerstaNum)


            1 - По номеру накладной поставщика (ByVendorInvoiceNum)


            2 - По номеру возвратной накладной поставщика
            (ByVendorReturnInvoiceNum)


            3 - По номеру заказа или вызова курьера поставщика
            (ByVendorPickupNum)


            4 - По клиентскому номеру (ByCustomerNum)


            5 - По дополнительному номеру для трекинга (ByTrackingId)


            6 - По всем номерам заказа (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: |-
            Тип печатаемого файла. Можно использовать как маску
            Invoice = 1 - Накладная заказа,

            Barcode = 2 - Штрихкод груза,

            InsurancePolicy = 4 - Страховка,

            InvoiceScan = 8 - Скан накладной,

            DeliveryConfirmation = 16 - Подтверждение заказа
          schema:
            $ref: '#/components/schemas/ApiPrintDocTypes'
        - name: marksFormat
          in: query
          description: |-
            Формат печатаемого штрихкода. 

            A4 = 0,

            A5 = 1,

            A6 = 2,

            A7 = 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 файл с накладной по конкретному заказу вместе с
        переданным в запросе документом клиента. Распечатать

        накладную или ШК грузомест можно только по заказам, которые уже были в
        статусе "Передан поставщику" и не отменены
      parameters:
        - name: orderId
          in: path
          description: >-
            Номер заказа versta24, клиентский номер или номер накладной
            поставщика
          required: true
          schema:
            type: string
          example: V24X-XXX-XXX-XXX
        - name: searchMode
          in: query
          description: >-
            Какому полю должен соответствовать orderId, без указания параметра
            поиск будет производиться

            по номеру заказа versta24.


            0 - По номеру заказа в системе Верста (ByVerstaNum)


            1 - По номеру накладной поставщика (ByVendorInvoiceNum)


            2 - По номеру возвратной накладной поставщика
            (ByVendorReturnInvoiceNum)


            3 - По номеру заказа или вызова курьера поставщика
            (ByVendorPickupNum)


            4 - По клиентскому номеру (ByCustomerNum)


            5 - По дополнительному номеру для трекинга (ByTrackingId)


            6 - По всем номерам заказа (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: |-
            Тип печатаемого файла. Можно использовать как маску
            Invoice = 1 - Накладная заказа,

            Barcode = 2 - Штрихкод груза,

            InsurancePolicy = 4 - Страховка,

            DeliveryConfirmation = 16 - Подтверждение заказа
          schema:
            $ref: '#/components/schemas/ApiPrintDocTypes'
        - name: marksFormat
          in: query
          description: |-
            Формат печатаемого штрихкода. 

            A4 = 0,

            A5 = 1,

            A6 = 2,

            A7 = 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 файл с накладной по конкретному заказу вместе с
        переданным в запросе документом клиента. Распечатать

        накладную или ШК грузомест можно только по заказам, которые уже были в
        статусе "Передан поставщику" и не отменены
      parameters:
        - name: ordersId[]
          in: query
          description: Список номеров заказа versta24
          required: true
          schema:
            type: array
            items:
              type: string
        - name: searchMode
          in: query
          description: >-
            Какому полю должен соответствовать orderId, без указания параметра
            поиск будет производиться

            по номеру заказа versta24.


            0 - По номеру заказа в системе Верста (ByVerstaNum)


            1 - По номеру накладной поставщика (ByVendorInvoiceNum)


            2 - По номеру возвратной накладной поставщика
            (ByVendorReturnInvoiceNum)


            3 - По номеру заказа или вызова курьера поставщика
            (ByVendorPickupNum)


            4 - По клиентскому номеру (ByCustomerNum)


            5 - По дополнительному номеру для трекинга (ByTrackingId)


            6 - По всем номерам заказа (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: |-
            Тип печатаемого файла. Можно использовать как маску
            Invoice = 1 - Накладная заказа,

            Barcode = 2 - Штрихкод груза,

            InsurancePolicy = 4 - Страховка,

            DeliveryConfirmation = 16 - Подтверждение заказа
          required: true
          schema:
            $ref: '#/components/schemas/ApiPrintDocTypes'
        - name: marksFormat
          in: query
          description: |-
            Формат печатаемого штрихкода. 

            A4 = 0,

            A5 = 1,

            A6 = 2,

            A7 = 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: >-
        Передает сохраненный заказ выбранному поставщику с выбранным вариантом
        доставки. 


        Если не были переданы параметры в запросе, то берем из заказа
      parameters:
        - name: orderId
          in: path
          description: >-
            Номер заказа versta24, клиентский номер или номер накладной
            поставщика
          required: true
          schema:
            type: string
          example: V24X-XXX-XXX-XXX
        - name: searchMode
          in: query
          description: >-
            Какому полю должен соответствовать orderId, без указания параметра
            поиск будет производиться

            по номеру заказа versta24.


            0 - По номеру заказа в системе Верста (ByVerstaNum)


            1 - По номеру накладной поставщика (ByVendorInvoiceNum)


            2 - По номеру возвратной накладной поставщика
            (ByVendorReturnInvoiceNum)


            3 - По номеру заказа или вызова курьера поставщика
            (ByVendorPickupNum)


            4 - По клиентскому номеру (ByCustomerNum)


            5 - По дополнительному номеру для трекинга (ByTrackingId)


            6 - По всем номерам заказа (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: >-
            При передачи заказа поставщику произошла ошибка. Возвращает
            информацию об ошибке. (Если произошла

            ошибка валидации, то <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, без указания параметра
            поиск будет производиться

            по номеру заказа versta24.


            0 - По номеру заказа в системе Верста (ByVerstaNum)


            1 - По номеру накладной поставщика (ByVendorInvoiceNum)


            2 - По номеру возвратной накладной поставщика
            (ByVendorReturnInvoiceNum)


            3 - По номеру заказа или вызова курьера поставщика
            (ByVendorPickupNum)


            4 - По клиентскому номеру (ByCustomerNum)


            5 - По дополнительному номеру для трекинга (ByTrackingId)


            6 - По всем номерам заказа (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: |2-
             Фильтр по номерам заказа. Может быть указаны  следующие номера:
            - номер заказа верста - OrderId - V24X-XXX-XXX-XXX
            - клиентский номер заказа - CustomerOrderId
            - номер накладной поставщика 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: Department
          in: query
          description: >-
            Фильтр по аналитике "подразделение" из заказов. Сравнение происходит
            регистронезависимо, но совпадение должно быть 100%
          schema:
            type: string
            example: Финансы
          example: Финансы
        - name: Project
          in: query
          description: >-
            Фильтр по аналитике "проект" из заказов. Сравнение происходит
            регистронезависимо, но совпадение должно быть 100%
          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: 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, без указания параметра
            поиск будет производиться

            по номеру заказа versta24.


            0 - По номеру заказа в системе Верста (ByVerstaNum)


            1 - По номеру накладной поставщика (ByVendorInvoiceNum)


            2 - По номеру возвратной накладной поставщика
            (ByVendorReturnInvoiceNum)


            3 - По номеру заказа или вызова курьера поставщика
            (ByVendorPickupNum)


            4 - По клиентскому номеру (ByCustomerNum)


            5 - По дополнительному номеру для трекинга (ByTrackingId)


            6 - По всем номерам заказа (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/PickupPoints:
    get:
      tags:
        - PickupPoints
      summary: List - список пунктов выдачи и приемки заказов
      description: >-
        Возвращает список пунктов выдачи и приемки заказов по заданным фильтрам
        географии, постащику, характеру и

        параметрам груза
      parameters:
        - name: VendorId
          in: query
          description: >-
            Необязательный параметр. Фильтр по одному поставщику.

            Если указан идентификатор поставщика, то возвращаются только точки
            выдачи конкретного поставщика.

            Если данный параметр не указан, то возвращается список точек выдачи
            всех доступных поставщиков.

            <b>Приоритет:</b> если указан VendorId, параметр VendorIds
            игнорируется.
          schema:
            type: integer
            format: int32
            example: 1
          example: 1
        - name: VendorIds
          in: query
          description: >-
            Необязательный параметр. Фильтр по нескольким поставщикам.

            Позволяет указать массив идентификаторов поставщиков для получения
            точек выдачи нескольких конкретных поставщиков.

            Если данный параметр не указан (и VendorId тоже не указан), то
            возвращается список точек выдачи всех доступных поставщиков.

            <b>Приоритет:</b> если указан VendorId, параметр VendorIds
            игнорируется.
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: CargoQty
          in: query
          description: >-
            Необязательный параметр. Фильтр по количеству грузомест, которое
            может принять

            пункт выдачи и приемки заказов
          schema:
            type: integer
            format: int32
            example: 1
          example: 1
        - name: TotalWeight
          in: query
          description: >-
            Необязательный параметр. Фильтр по максимальной весу (в кг), которое
            может принять

            пункт выдачи и приемки заказов
          schema:
            type: number
            format: double
            example: 1.5
          example: 1.5
        - name: MaxWidth
          in: query
          description: >-
            Необязательный параметр. Фильтр по максимальной ширине (в см)
            грузоместа, которое может

            принять пункт выдачи и приемки заказов
          schema:
            type: number
            format: double
            example: 15
          example: 15
        - name: MaxLength
          in: query
          description: >-
            Необязательный параметр. Фильтр по максимальной длине (в см)
            грузоместа, которое может

            принять пункт выдачи и приемки заказов
          schema:
            type: number
            format: double
            example: 16
          example: 16
        - name: MaxHeight
          in: query
          description: >-
            Необязательный параметр. Фильтр по максимальной высоте (в см)
            грузоместа, которое может

            принять пункт выдачи и приемки заказов
          schema:
            type: number
            format: double
            example: 25
          example: 25
        - name: Mode
          in: query
          description: |-
            Режимы работы ПВЗ

            Intake=1 На приём отправлений 

            Pickup=2 На выдачу отправлений 

            По умолчанию может работать как на выдачу, так и на приём
          schema:
            $ref: '#/components/schemas/PickupPointModes'
          example: 3
        - name: Type
          in: query
          description: |-
            Тип ПВЗ

            0 - ПВЗ \
            1 - Постомат \
            2 - Абонентский ящик \
            3 - Маркетплейс
          schema:
            $ref: '#/components/schemas/ApiPickupPointType'
        - name: services
          in: query
          description: >-
            Список кодов услуг. Например: Check 


            Список услуг см. <a
            href="/docs/specification/services/">справочник</a>
          schema:
            type: array
            items:
              type: string
        - name: MinLat
          in: query
          description: >-
            Минимальная широта bounding box (южная граница), [-90, 90].

            Используется для запроса ПВЗ без указания города.

            Если город определён, 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: |-
            Номер страницы.
            Необязательный параметр для получения результатов постранично.
          schema:
            type: integer
            format: int32
        - name: PageSize
          in: query
          description: >-
            Размер страницы.

            Необязательный параметр для получения результатов постранично.

            Постраничный вывод работает только если оба параметра заданы
            корректно.
          schema:
            type: integer
            format: int32
        - name: CountryId
          in: query
          description: >-
            Возвращает список пунктов выдачи и приемки заказов по заданным
            фильтрам географии, постащику, характеру и

            параметрам груза
          required: true
          schema:
            type: string
            example: RU
          example: RU
        - name: CityId
          in: query
          description: >-
            Фильтр пунктов выдачи и приемки заказов по id города.

            Код города или населенного пункта. Для населенных пуктов внутри РФ -
            необходимо указывать код ФИАС (уровень 4 или

            6) или КЛАДР,

            для населенных пунктов за пределами РФ - Идентификатор объекта в
            базе GeoNames

            (https://ru.wikipedia.org/wiki/GeoNames).

            Город должен попадать в указанную в параметре country страну.

            Если не указан, поиск будет осуществляться по названию города
            (CityName) или по координатам (Bbox). Если не указано ничего, поиск
            будет осуществляться по всей стране.

            Имеет приоритет над CityName и параметрами Bbox.
          schema:
            type: string
            example: 0c5b2444-70a0-4932-980c-b4dc0d3f02b5
          example: 0c5b2444-70a0-4932-980c-b4dc0d3f02b5
        - name: SenderCityId
          in: query
          description: >-
            Фильтр точек выдачи по городу отправителя. Необязательный параметр.

            Код города или населенного пункта. Для населенных пуктов внутри РФ -
            необходимо указывать код ФИАС (уровень 4 или

            6) или КЛАДР,

            для населенных пунктов за пределами РФ - Идентификатор объекта в
            базе GeoNames

            (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).
            Необязательный параметр.
          schema:
            type: string
            example: RU
          example: RU
        - name: CityName
          in: query
          description: |-
            Фильтр пунктов выдачи и приемки заказов по названию города.
            Город должен попадать в указанную в параметре country страну.
            Имеет меньший приоритет при поиске, чем 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: >-
            Возвращает список пунктов выдачи и приемки заказов по заданным
            фильтрам географии, постащику, характеру и

            параметрам груза
          required: true
          schema:
            type: string
            example: RU
          example: RU
        - name: CityId
          in: query
          description: >-
            Фильтр пунктов выдачи и приемки заказов по id города.

            Код города или населенного пункта. Для населенных пуктов внутри РФ -
            необходимо указывать код ФИАС (уровень 4 или

            6) или КЛАДР,

            для населенных пунктов за пределами РФ - Идентификатор объекта в
            базе GeoNames

            (https://ru.wikipedia.org/wiki/GeoNames).

            Город должен попадать в указанную в параметре country страну.

            Если не указан, поиск будет осуществляться по названию города
            (CityName) или по координатам (Bbox). Если не указано ничего, поиск
            будет осуществляться по всей стране.

            Имеет приоритет над CityName и параметрами Bbox.
          schema:
            type: string
            example: 0c5b2444-70a0-4932-980c-b4dc0d3f02b5
          example: 0c5b2444-70a0-4932-980c-b4dc0d3f02b5
        - name: SenderCityId
          in: query
          description: >-
            Фильтр точек выдачи по городу отправителя. Необязательный параметр.

            Код города или населенного пункта. Для населенных пуктов внутри РФ -
            необходимо указывать код ФИАС (уровень 4 или

            6) или КЛАДР,

            для населенных пунктов за пределами РФ - Идентификатор объекта в
            базе GeoNames

            (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).
            Необязательный параметр.
          schema:
            type: string
            example: RU
          example: RU
        - name: CityName
          in: query
          description: |-
            Фильтр пунктов выдачи и приемки заказов по названию города.
            Город должен попадать в указанную в параметре country страну.
            Имеет меньший приоритет при поиске, чем 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: |-
            Необязательный параметр. Фильтр по типу ПВЗ.
            Тип ПВЗ:

                            0 - ПВЗ \
                            1 - Постомат \
                            2 - Абонентский ящик \
                            3 - Маркетплейс
          schema:
            $ref: '#/components/schemas/ApiPickupPointType'
        - name: services
          in: query
          description: >-
            Необязательный параметр, фильтр по дополнительным услугам,
            оказываемым на ПВЗ.
          schema:
            type: array
            items:
              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/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: |-
        Уровень доступа к файлу
        1 = Admin - Доступен только администраторам versta24 \
        2 = AuthorizedUser - Доступен всем авторизованным пользователям \
        4 = 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: |-
        Состояние груза: 
        0 - Новый \
        1 - Б/У \
      format: int32
    ApiCargoTypes:
      enum:
        - 1
        - 2
        - 4
        - 8
        - 32
        - 64
        - 128
        - 256
      type: integer
      description: >-
        Тип груза для перевозки: \

        1 - Docs - Документы \

        2 - CargoRegular - Обычный груз \

        4 - CargoDanger - Опасный груз (к опасным грузам относятся грузы
        определенной категории. см. правила перевозки) 

        8 - CargoOversize - (устаревшее) Негабаритный груз - груз в котором одно
        из мест по сумме трех измерений первышает 270 см или

        вес превышает 80 кг. Вместо этого признака нужно передавать габариты и
        вес груза. Под каждого поставщика данный параметр определяется
        автоматически по габаритам. Сейчас ни на что не влияет \

        32 - CargoFragile - Хрупкий груз - груз при перевозке которого должны
        соблюдаться специальные условия размещения

        (см. правила перевозки) \

        64 - OnlineStoreOrder - Посылка интернет-магазина
      format: int32
    ApiContactTypes:
      enum:
        - 1
        - 2
        - 4
        - 8
      type: integer
      description: >-
        Типы адресов. В зависимости от типа адреса необходимо заполнять разные
        поля.

        1 = Door - Конкретный адрес (дверь) \

        2 = MailingList - Рассылка - рассылка работает только в пределах одного
        города. Не используется и будет удален в

        дальнейшем \

        4 = PickupPoint - Точка выдачи конкретного поставщика \

        8 = PostOffice - Отделение почты РФ (зарезервировано для будущего
        использования)
      format: int32
    ApiDeliveryType:
      enum:
        - 0
        - 1
        - 2
        - 3
      type: integer
      description: |-
        Тип доставки. \
        0 - Дверь-Дверь \
        1 - Дверь-ПВЗ \
        2 - ПВЗ-ПВЗ \
        3 - ПВЗ-Дверь
      format: int32
    ApiError:
      required:
        - code
        - message
      type: object
      properties:
        code:
          minLength: 1
          type: string
          description: Код ошибки <a href="/docs/specification/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: |-
        Тип содержимого файла. Можно использовать как маску
        0 = None - Без типа \
        1 = AttachedFile - Вложение \
        2 = OrderPrintedInvoice - Распечатанная накладная заказа \
        4 = InsurancePolicy - Страховка \
        8 = CargoBarcode - Штрихкод груза \
        16 = OrderSourceFile - Исходный файл создания заказа \
        32 = InvoiceScan - Скан накладной \
        64 = YotaContract - Договор Yota \
        128 = OrderTemplateAttachedFile - Шаблон файла загрузки для договора \
        256 = PaymentAccount - Данные плательщика \
        512 = ZipInvoiceScans - Архив сканов накладных \
        1024 = Registry - Реестр по заказу \
        2048 = ZipRegistries - Архив реестров по заказу \
        4096 = LoadingPhoto - Фото погрузки \
        8192 = UnloadingPhoto - Фото разгрузки \
        16384 = Documents - Документы \
        32768 = MailingSource - Исходный файл рассылки \
        536870912 = LoadingVideo - Видео погрузки \
        1073741824 = UnloadingVideo - Видео разгрузки
      format: int32
    ApiItemType:
      enum:
        - 0
        - 1
        - 2
        - 3
      type: integer
      description: |-
        Тип сущности, которой относится файл
        0 = Order - К заказу versta24 \
        1 = ProfLogVendor - Поставщик профлог \
        2 = Resource - Информационный файл \
        3 = PickupPoint - Пункт выдачи заказов
      format: int32
    ApiLegalType:
      enum:
        - 1
        - 2
      type: integer
      format: int32
    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
      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
        - 500
        - 510
        - 520
        - 530
        - 540
        - 541
        - 542
        - 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: |-
        Тип печатаемого файла. Можно использовать как маску
        None = 0, - Без типа \
        Invoice = 1, - Накладная заказа \
        Barcode = 2, - Штрихкод груза \
        InsurancePolicy = 4, - Страховка \
        InvoiceScan = 8, - Скан накладной \
        DeliveryConfirmation = 16, - Подтверждение заказа \
      format: int32
    ApiServiceCalcStatus:
      enum:
        - 0
        - 10
      type: integer
      description: |-
        Статус расчёта запрошенной дополнительной услуги \
        0 - NotProvided - Услуга не оказана в варианте доставки \
        10 - 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: |-
        Ставка НДС \
        VAT0 - НДС 0% \
        VAT5 - НДС 5% \
        VAT7 - НДС 7% \
        VAT10 - НДС 10% \
        VAT18 - НДС 18% \
        VAT20 - НДС 20% \
        VAT22 - НДС 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:
            - countryId
            - cityId
          type: object
          properties:
            contactType:
              enum:
                - 1
                - 2
                - 4
                - 8
              type: integer
              description: >-
                Типы адресов. В зависимости от типа адреса необходимо заполнять
                разные поля. <br>Это перечисление поддерживает битовые флаги,
                что позволяет указывать комбинацию нескольких значений для
                расчета различных типов доставки. 
                                <br> 1 = Door - Конкретный адрес (дверь)<br>4 = PickupPoint - Точка выдачи конкретного поставщика <br> Пример: Указание нескольких значений позволяет комбинировать типы адресов, например: 5 указывает, что будут расчитаны варианты доставки как от/до двери, так и от/до точки выдачи.
            countryId:
              type: string
              description: >-
                Указывается двухбуквенный код страны в соответствии с ISO 3166-1
                alpha-2
                (https://ru.wikipedia.org/wiki/ISO_3166-1).<br>Обязателен, если
                не указаны координаты (latitude и longitude). Если указаны
                координаты, countryId может быть не заполнен.
            cityId:
              type: string
              description: >-
                Код города или населенного пункта

                Обязателен, если не указаны координаты (latitude и longitude).
                Если координаты указаны — параметр cityId может быть не
                заполнен.


                Приоритет выбора адреса:

                 1. Если указаны latitude и longitude — используются только координаты.
                 2. Если координаты не указаны — используются countryId, cityId, cityName и address.
                 3. Если по координатам не удалось распознать адрес — используются countryId, cityId, cityName и address.

                Формат значения зависит от страны. Для населенных пунктов:

                - внутри РФ - необходимо указывать код ФИАС (уровень 4 или 6)
                или КЛАДР,

                - в странах Беларуси, Казахстана и Узбекистана - Тип объекта и
                Идентификатор объекта в базе OpenStreetMap. Пример
                <i>relation:2465058</i>
                (https://ru.wikipedia.org/wiki/OpenStreetMap).

                - в остальных населенных пунктов за пределами РФ - Идентификатор
                объекта в базе GeoNames
                (https://ru.wikipedia.org/wiki/GeoNames).

                Город должен попадать в указанную в параметре country страну.

                Этот параметр очень важен и определяет в том числе какому
                поставщику будет передан заказа. Также этот параметр

                влияет на цену
            cityName:
              type: string
              description: >-
                Название города (опционально).

                Логика выбора:
                    1. Если указаны координаты — используются только координаты.
                    2. Если координаты не указаны, но указан CityId — используются CityId, а CityName игнорируется.
                    3. Если CityId не указан — выполняется поиск по CityName.
                Для точного определения, пожалуйста, используйте CityId или
                координаты.
            address:
              type: string
              description: >-
                Адрес произвольной строкой. Адрес должен относиться к указанному
                в city городу и стране - эта проверка не выполняется, но если в
                поле адрес будет указан адрес из другого региона - доставка не
                гарантируется. Не обязателен, но может влиять на стоимость
                доставки

                Обязателен, когда contactType=Door и не указаны координаты. Если
                указаны координаты, Address может быть не заполнен.
            postalCode:
              type: string
              description: Почтовый индекс населенного пункта. Не обязательный параметр
            latitude:
              type: double
              description: >-
                Широта адреса. Если указаны latitude и longitude, остальные
                параметры (countryId, cityId, address) становятся
                необязательными. В приоритете используются координаты.
            longitude:
              type: double
              description: >-
                Долгота адреса. Если указаны latitude и longitude, остальные
                параметры (countryId, cityId, address) становятся
                необязательными. В приоритете используются координаты.
            pickupPointId:
              type: string
              description: >-
                Идентификатор точки отгрузки. Обязательно, если ContactType =
                PickupPoint и VendorId= 16, 17,23,24;28,41; игнорируется, если
                ContactType не равен PickupPoint
            pickupPointVendorId:
              type: string
              description: >-
                Поставщик для PickupPointId. Обязательно для ContactType =
                PickupPoint; игнорируется, если ContactType не равен PickupPoint
            loadingWorks:
              type: object
              properties:
                floor:
                  type: integer
                  description: >-
                    На каком этаже выполняются работы по спуску груза. По
                    умолчанию 1
                hasFreightLift:
                  type: boolean
                  description: Имеется ли грузовой лифт
                loadersCount:
                  type: integer
                  description: Количество грузчиков. По умолчанию 1
              description: Погрузочные работы
            assemblyWorks:
              type: object
              properties:
                assemblersCount:
                  type: integer
                  description: Количество сборщиков. По умолчанию 1
              description: Работы по разборке груза
            transportRequirements:
              type: object
              properties:
                requirements:
                  type: ApiTransportRequirementsType[]
                  description: >-
                    Перечень требований к транспортному средству. Необходимо
                    указать массив требований, которые необходимы для
                    транспорта. Список требований можно посмотреть: <a
                    href="/docs/specification/transportRequirementsType/">Справочник
                    значений</a>
              description: Требования к транспорту для получателя
          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:
            - countryId
            - cityId
          type: object
          properties:
            contactType:
              enum:
                - 1
                - 2
                - 4
                - 8
              type: integer
              description: >-
                Типы адресов. В зависимости от типа адреса необходимо заполнять
                разные поля. <br>Это перечисление поддерживает битовые флаги,
                что позволяет указывать комбинацию нескольких значений для
                расчета различных типов доставки. 
                                <br> 1 = Door - Конкретный адрес (дверь)<br>4 = PickupPoint - Точка выдачи конкретного поставщика <br> Пример: Указание нескольких значений позволяет комбинировать типы адресов, например: 5 указывает, что будут расчитаны варианты доставки как от/до двери, так и от/до точки выдачи.
            countryId:
              type: string
              description: >-
                Указывается двухбуквенный код страны в соответствии с ISO 3166-1
                alpha-2
                (https://ru.wikipedia.org/wiki/ISO_3166-1).<br>Обязателен, если
                не указаны координаты (latitude и longitude). Если указаны
                координаты, countryId может быть не заполнен.
            cityId:
              type: string
              description: >-
                Код города или населенного пункта

                Обязателен, если не указаны координаты (latitude и longitude).
                Если координаты указаны — параметр cityId может быть не
                заполнен.


                Приоритет выбора адреса:

                 1. Если указаны latitude и longitude — используются только координаты.
                 2. Если координаты не указаны — используются countryId, cityId, cityName и address.
                 3. Если по координатам не удалось распознать адрес — используются countryId, cityId, cityName и address.

                Формат значения зависит от страны. Для населенных пунктов:

                - внутри РФ - необходимо указывать код ФИАС (уровень 4 или 6)
                или КЛАДР,

                - в странах Беларуси, Казахстана и Узбекистана - Тип объекта и
                Идентификатор объекта в базе OpenStreetMap. Пример
                <i>relation:2465058</i>
                (https://ru.wikipedia.org/wiki/OpenStreetMap).

                - в остальных населенных пунктов за пределами РФ - Идентификатор
                объекта в базе GeoNames
                (https://ru.wikipedia.org/wiki/GeoNames).

                Город должен попадать в указанную в параметре country страну.

                Этот параметр очень важен и определяет в том числе какому
                поставщику будет передан заказа. Также этот параметр

                влияет на цену
            cityName:
              type: string
              description: >-
                Название города (опционально).

                Логика выбора:
                    1. Если указаны координаты — используются только координаты.
                    2. Если координаты не указаны, но указан CityId — используются CityId, а CityName игнорируется.
                    3. Если CityId не указан — выполняется поиск по CityName.
                Для точного определения, пожалуйста, используйте CityId или
                координаты.
            address:
              type: string
              description: >-
                Адрес произвольной строкой. Адрес должен относиться к указанному
                в city городу и стране - эта проверка не выполняется, но если в
                поле адрес будет указан адрес из другого региона - доставка не
                гарантируется. Не обязателен, но может влиять на стоимость
                доставки

                Обязателен, когда contactType=Door и не указаны координаты. Если
                указаны координаты, Address может быть не заполнен.
            postalCode:
              type: string
              description: Почтовый индекс населенного пункта. Не обязательный параметр
            latitude:
              type: double
              description: >-
                Широта адреса. Если указаны latitude и longitude, остальные
                параметры (countryId, cityId, address) становятся
                необязательными. В приоритете используются координаты.
            longitude:
              type: double
              description: >-
                Долгота адреса. Если указаны latitude и longitude, остальные
                параметры (countryId, cityId, address) становятся
                необязательными. В приоритете используются координаты.
            pickupPointId:
              type: string
              description: >-
                Идентификатор точки выдачи. Обязательно для ContactType =
                PickupPoint; игнорируется, если ContactType не равен PickupPoint
            pickupPointVendorId:
              type: string
              description: >-
                Поставщик для PickupPointId. Обязательно для ContactType =
                PickupPoint; игнорируется, если ContactType не равен PickupPoint
            loadingWorks:
              type: object
              properties:
                floor:
                  type: integer
                  description: >-
                    На каком этаже выполняются работы по подъему груза. По
                    умолчанию 1
                hasFreightLift:
                  type: boolean
                  description: Имеется ли грузовой лифт
                loadersCount:
                  type: integer
                  description: Количество грузчиков. По умолчанию 1
              description: Разгрузочные работы
            assemblyWorks:
              type: object
              properties:
                assemblersCount:
                  type: integer
                  description: Количество сборщиков. По умолчанию 1
              description: Работы по сборке груза
            transportRequirements:
              type: object
              properties:
                requirements:
                  type: ApiTransportRequirementsType[]
                  description: >-
                    Перечень требований к транспортному средству. Необходимо
                    указать массив требований, которые необходимы для
                    транспорта. Список требований можно посмотреть: <a
                    href="/docs/specification/transportRequirementsType/">Справочник
                    значений</a>
              description: Требования к транспорту для отправителя
          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'
        services:
          type: array
          items:
            $ref: '#/components/schemas/Service'
          description: >-
            Перечень дополнительных услуг (страховка, наложенный платеж,
            частичный выкуп и т.д.)
          nullable: true
          example:
            - code: Insurance
              parameter: '1000'
        receiverDeliveryCharge:
          type: number
          description: >-
            Дополнительный сбор за доставку с получателя. Используется для
            расчёта комиссии за наложенный платёж
          format: double
          example: 100
        companyId:
          type: integer
          description: >-
            Идентификатор компании от которой создается заказ. Если значение не
            задано, то используется идентификатор компании,

            которой принадлежит ключ API.

            Чтобы получить идентификаторы для работы с вашими компаниями,
            пожалуйста, обратитесь на support@versta24.ru
          format: int32
          nullable: true
          example: null
      additionalProperties: false
    CalcRequestByDays:
      required:
        - cargo
        - daysToCalculate
        - receiver
        - sender
      type: object
      properties:
        daysToCalculate:
          type: integer
          description: >-
            Кол-во календарных дней, на которое нужно сделать расчет. Задается
            целым числом. Дни считаются с сегодня.

            Например, если нам нужно сделать расчет на 7 дней вперед, то
            указываем 7.

            Обязательный параметр
          format: int32
        sender:
          required:
            - countryId
            - cityId
          type: object
          properties:
            contactType:
              enum:
                - 1
                - 2
                - 4
                - 8
              type: integer
              description: >-
                Типы адресов. В зависимости от типа адреса необходимо заполнять
                разные поля. <br>Это перечисление поддерживает битовые флаги,
                что позволяет указывать комбинацию нескольких значений для
                расчета различных типов доставки. 
                                <br> 1 = Door - Конкретный адрес (дверь)<br>4 = PickupPoint - Точка выдачи конкретного поставщика <br> Пример: Указание нескольких значений позволяет комбинировать типы адресов, например: 5 указывает, что будут расчитаны варианты доставки как от/до двери, так и от/до точки выдачи.
            countryId:
              type: string
              description: >-
                Указывается двухбуквенный код страны в соответствии с ISO 3166-1
                alpha-2
                (https://ru.wikipedia.org/wiki/ISO_3166-1).<br>Обязателен, если
                не указаны координаты (latitude и longitude). Если указаны
                координаты, countryId может быть не заполнен.
            cityId:
              type: string
              description: >-
                Код города или населенного пункта

                Обязателен, если не указаны координаты (latitude и longitude).
                Если координаты указаны — параметр cityId может быть не
                заполнен.


                Приоритет выбора адреса:

                 1. Если указаны latitude и longitude — используются только координаты.
                 2. Если координаты не указаны — используются countryId, cityId, cityName и address.
                 3. Если по координатам не удалось распознать адрес — используются countryId, cityId, cityName и address.

                Формат значения зависит от страны. Для населенных пунктов:

                - внутри РФ - необходимо указывать код ФИАС (уровень 4 или 6)
                или КЛАДР,

                - в странах Беларуси, Казахстана и Узбекистана - Тип объекта и
                Идентификатор объекта в базе OpenStreetMap. Пример
                <i>relation:2465058</i>
                (https://ru.wikipedia.org/wiki/OpenStreetMap).

                - в остальных населенных пунктов за пределами РФ - Идентификатор
                объекта в базе GeoNames
                (https://ru.wikipedia.org/wiki/GeoNames).

                Город должен попадать в указанную в параметре country страну.

                Этот параметр очень важен и определяет в том числе какому
                поставщику будет передан заказа. Также этот параметр

                влияет на цену
            cityName:
              type: string
              description: >-
                Название города (опционально).

                Логика выбора:
                    1. Если указаны координаты — используются только координаты.
                    2. Если координаты не указаны, но указан CityId — используются CityId, а CityName игнорируется.
                    3. Если CityId не указан — выполняется поиск по CityName.
                Для точного определения, пожалуйста, используйте CityId или
                координаты.
            address:
              type: string
              description: >-
                Адрес произвольной строкой. Адрес должен относиться к указанному
                в city городу и стране - эта проверка не выполняется, но если в
                поле адрес будет указан адрес из другого региона - доставка не
                гарантируется. Не обязателен, но может влиять на стоимость
                доставки

                Обязателен, когда contactType=Door и не указаны координаты. Если
                указаны координаты, Address может быть не заполнен.
            postalCode:
              type: string
              description: Почтовый индекс населенного пункта. Не обязательный параметр
            latitude:
              type: double
              description: >-
                Широта адреса. Если указаны latitude и longitude, остальные
                параметры (countryId, cityId, address) становятся
                необязательными. В приоритете используются координаты.
            longitude:
              type: double
              description: >-
                Долгота адреса. Если указаны latitude и longitude, остальные
                параметры (countryId, cityId, address) становятся
                необязательными. В приоритете используются координаты.
            pickupPointId:
              type: string
              description: >-
                Идентификатор точки отгрузки. Обязательно, если ContactType =
                PickupPoint и VendorId= 16, 17,23,24;28,41; игнорируется, если
                ContactType не равен PickupPoint
            pickupPointVendorId:
              type: string
              description: >-
                Поставщик для PickupPointId. Обязательно для ContactType =
                PickupPoint; игнорируется, если ContactType не равен PickupPoint
            loadingWorks:
              type: object
              properties:
                floor:
                  type: integer
                  description: >-
                    На каком этаже выполняются работы по спуску груза. По
                    умолчанию 1
                hasFreightLift:
                  type: boolean
                  description: Имеется ли грузовой лифт
                loadersCount:
                  type: integer
                  description: Количество грузчиков. По умолчанию 1
              description: Погрузочные работы
            assemblyWorks:
              type: object
              properties:
                assemblersCount:
                  type: integer
                  description: Количество сборщиков. По умолчанию 1
              description: Работы по разборке груза
            transportRequirements:
              type: object
              properties:
                requirements:
                  type: ApiTransportRequirementsType[]
                  description: >-
                    Перечень требований к транспортному средству. Необходимо
                    указать массив требований, которые необходимы для
                    транспорта. Список требований можно посмотреть: <a
                    href="/docs/specification/transportRequirementsType/">Справочник
                    значений</a>
              description: Требования к транспорту для получателя
          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:
            - countryId
            - cityId
          type: object
          properties:
            contactType:
              enum:
                - 1
                - 2
                - 4
                - 8
              type: integer
              description: >-
                Типы адресов. В зависимости от типа адреса необходимо заполнять
                разные поля. <br>Это перечисление поддерживает битовые флаги,
                что позволяет указывать комбинацию нескольких значений для
                расчета различных типов доставки. 
                                <br> 1 = Door - Конкретный адрес (дверь)<br>4 = PickupPoint - Точка выдачи конкретного поставщика <br> Пример: Указание нескольких значений позволяет комбинировать типы адресов, например: 5 указывает, что будут расчитаны варианты доставки как от/до двери, так и от/до точки выдачи.
            countryId:
              type: string
              description: >-
                Указывается двухбуквенный код страны в соответствии с ISO 3166-1
                alpha-2
                (https://ru.wikipedia.org/wiki/ISO_3166-1).<br>Обязателен, если
                не указаны координаты (latitude и longitude). Если указаны
                координаты, countryId может быть не заполнен.
            cityId:
              type: string
              description: >-
                Код города или населенного пункта

                Обязателен, если не указаны координаты (latitude и longitude).
                Если координаты указаны — параметр cityId может быть не
                заполнен.


                Приоритет выбора адреса:

                 1. Если указаны latitude и longitude — используются только координаты.
                 2. Если координаты не указаны — используются countryId, cityId, cityName и address.
                 3. Если по координатам не удалось распознать адрес — используются countryId, cityId, cityName и address.

                Формат значения зависит от страны. Для населенных пунктов:

                - внутри РФ - необходимо указывать код ФИАС (уровень 4 или 6)
                или КЛАДР,

                - в странах Беларуси, Казахстана и Узбекистана - Тип объекта и
                Идентификатор объекта в базе OpenStreetMap. Пример
                <i>relation:2465058</i>
                (https://ru.wikipedia.org/wiki/OpenStreetMap).

                - в остальных населенных пунктов за пределами РФ - Идентификатор
                объекта в базе GeoNames
                (https://ru.wikipedia.org/wiki/GeoNames).

                Город должен попадать в указанную в параметре country страну.

                Этот параметр очень важен и определяет в том числе какому
                поставщику будет передан заказа. Также этот параметр

                влияет на цену
            cityName:
              type: string
              description: >-
                Название города (опционально).

                Логика выбора:
                    1. Если указаны координаты — используются только координаты.
                    2. Если координаты не указаны, но указан CityId — используются CityId, а CityName игнорируется.
                    3. Если CityId не указан — выполняется поиск по CityName.
                Для точного определения, пожалуйста, используйте CityId или
                координаты.
            address:
              type: string
              description: >-
                Адрес произвольной строкой. Адрес должен относиться к указанному
                в city городу и стране - эта проверка не выполняется, но если в
                поле адрес будет указан адрес из другого региона - доставка не
                гарантируется. Не обязателен, но может влиять на стоимость
                доставки

                Обязателен, когда contactType=Door и не указаны координаты. Если
                указаны координаты, Address может быть не заполнен.
            postalCode:
              type: string
              description: Почтовый индекс населенного пункта. Не обязательный параметр
            latitude:
              type: double
              description: >-
                Широта адреса. Если указаны latitude и longitude, остальные
                параметры (countryId, cityId, address) становятся
                необязательными. В приоритете используются координаты.
            longitude:
              type: double
              description: >-
                Долгота адреса. Если указаны latitude и longitude, остальные
                параметры (countryId, cityId, address) становятся
                необязательными. В приоритете используются координаты.
            pickupPointId:
              type: string
              description: >-
                Идентификатор точки выдачи. Обязательно для ContactType =
                PickupPoint; игнорируется, если ContactType не равен PickupPoint
            pickupPointVendorId:
              type: string
              description: >-
                Поставщик для PickupPointId. Обязательно для ContactType =
                PickupPoint; игнорируется, если ContactType не равен PickupPoint
            loadingWorks:
              type: object
              properties:
                floor:
                  type: integer
                  description: >-
                    На каком этаже выполняются работы по подъему груза. По
                    умолчанию 1
                hasFreightLift:
                  type: boolean
                  description: Имеется ли грузовой лифт
                loadersCount:
                  type: integer
                  description: Количество грузчиков. По умолчанию 1
              description: Разгрузочные работы
            assemblyWorks:
              type: object
              properties:
                assemblersCount:
                  type: integer
                  description: Количество сборщиков. По умолчанию 1
              description: Работы по сборке груза
            transportRequirements:
              type: object
              properties:
                requirements:
                  type: ApiTransportRequirementsType[]
                  description: >-
                    Перечень требований к транспортному средству. Необходимо
                    указать массив требований, которые необходимы для
                    транспорта. Список требований можно посмотреть: <a
                    href="/docs/specification/transportRequirementsType/">Справочник
                    значений</a>
              description: Требования к транспорту для отправителя
          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'
        services:
          type: array
          items:
            $ref: '#/components/schemas/Service'
          description: >-
            Перечень дополнительных услуг (страховка, наложенный платеж,
            частичный выкуп и т.д.)
          nullable: true
          example:
            - code: Insurance
              parameter: '1000'
        receiverDeliveryCharge:
          type: number
          description: >-
            Дополнительный сбор за доставку с получателя. Используется для
            расчёта комиссии за наложенный платёж
          format: double
          example: 100
        companyId:
          type: integer
          description: >-
            Идентификатор компании от которой создается заказ. Если значение не
            задано, то используется идентификатор компании,

            которой принадлежит ключ API.

            Чтобы получить идентификаторы для работы с вашими компаниями,
            пожалуйста, обратитесь на 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: >-
            Варианты доставки на указанную дату

            Даты считаются с текущего дня + DaysToCalculate

            Если вариантов доставки на указанную дату нет - то элемент все равно
            будет, но с пустыми 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: >-
            Массив дат доставки с вариантами доставки.

            Даты считаются с текущего дня + DaysToCalculate

            Если вариантов доставки на указанную дату нет - то элемент все равно
            будет, но с пустыми Options
          nullable: true
      additionalProperties: false
      description: >-
        Варианты доставки на указанную дату

        Даты считаются с текущего дня + DaysToCalculate

        Если вариантов доставки на указанную дату нет - то элемент все равно
        будет, но с пустыми Options
    CalcServiceResult:
      required:
        - code
      type: object
      properties:
        code:
          minLength: 1
          type: string
          description: >-
            Наименование услуги. Например: Insurance 


            Список услуг см. <a
            href="/docs/specification/services/">справочник</a>
          example: Insurance
        status:
          $ref: '#/components/schemas/ApiServiceCalcStatus'
      additionalProperties: false
      description: Результат расчёта услуги
    CallCourierPickupInfo:
      type: object
      properties:
        autoChangeTakeDate:
          type: boolean
          description: >-
            Если true, то система будет пытаться автоматически поменять дату
            забора на ближайший доступный день, если на дату,

            заданную в TakeDate, передача заказа с заданными VendorId и TariffId
            невозможна.

            По умолчанию, true.

            ПАРАМЕТР УСТАРЕЛ И БУДЕТ УДАЛЁН.
        takeDate:
          type: string
          description: >-
            Указывается дата забора груза в формате yyyy-MM-dd.

            По умолчанию - текущая дата.

            Не все поставщики могут выполнять забор в выходные дни.

            Также существуют ограничения на время размещения заказа с датой
            забора сегодня.

            Ближайшая доступная дата забора заказа возвращается в варианте
            доставки в takeDate.
          nullable: true
          example: '2020-03-31'
        timeFrom:
          type: string
          description: >-
            Указывается ограничение на время забора (начальное). Это ограничение
            носит рекомендательный характер и не всегда

            может быть соблюдено.

            По умолчанию указывается время забора 09:00.
          format: date-span
          example: '12:00'
        timeTo:
          type: string
          description: >-
            Указывается ограничение на время забора (конечное). Это ограничение
            носит рекомендательный характер и не всегда

            может быть соблюдено.

            По умолчанию указывается время забора 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: >-
            Таможенная стоимость отправления. Обязательно указывается, если
            страна получателя и отправителя не совпадают

            (отправление пересекает границу)
          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. \

            Обязателен для передачи заказов некоторым поставщикам (Деловые
            Линии, Спецсвязь, 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: >-
            Габарит длина в сантиметрах.

            Габаритные значения груза необходимы для расчета объемного веса. Они
            необязательны для документов, но если указан

            хоть один, остальные также должны быть заданы
          format: double
          nullable: true
          example: 13.5
        h:
          type: number
          description: >-
            Габарит высота в сантиметрах.

            Габаритные значения груза необходимы для расчета объемного веса. Они
            необязательны для документов, но если указан

            хоть один, остальные также должны быть заданы
          format: double
          nullable: true
          example: 10
        w:
          type: number
          description: >-
            Габарит ширина в сантиметрах.

            Габаритные значения груза необходимы для расчета объемного веса. Они
            необязательны для документов, но если указан

            хоть один, остальные также должны быть заданы
          format: double
          nullable: true
          example: 20
        volumeWeight:
          type: number
          description: >-
            Объемный вес в кг. Если заданы габаритные размеры груза, то
            рассчитывается объемный вес. Этот параметр

            рассчитывается автоматически и НЕ ЗАПОЛНЯЕТСЯ при создании заказа.
          format: double
          nullable: true
        description:
          type: string
          description: Описание грузоместа или комментарии к грузоместу
          nullable: true
          example: Ноутбук
        volume:
          type: number
          description: >-
            Объем в кубических метрах для всего грузового места. 

            Этот параметр является необязательным. Если он указан, то его
            значение применяется ко всей посылке. 

            Если указано значение для `Volume`, то в CargoItems может быть
            указан только один объект.
          format: double
          nullable: true
          example: 6
      additionalProperties: false
      description: cargoItemModel - описание грузоместа
    CargoProductModel:
      required:
        - name
        - productId
        - qty
      type: object
      properties:
        barcode:
          maxLength: 50
          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: |-
            Сумма, которую оплачивает получатель при вручении.
            Обязателен для заполнения, если запрошена услуга "Наложенный платеж"
          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: >-
            Изменения, которые нужно внести. Нужно указать точное названия поля,
            учитывая регистр \

            Если поле вложенное, то его необходимо указать через точку. Например
            "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: >-
            Контактный телефон, по которому можно связаться с контактным лицом.
            Лучше указывать мобильный номер.

            Формат этого поля проверяется при добавлении заказа. Должен
            соответствовать следующим условиям:

            - номер должен начинаться со знака "+" или с "8"

            - если указывается несколько контактных номеров, то они должны быть
            разделены запятой

            - добавочный номер должен содержать только цифры и отделяется от
            основного номера словом "доб." или символом "#"

            - все дополнительные комментарии к номеру должны быть указаны в поле
            Instructions (ограничения на время звонка, контактное

            лицо и тп)
        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) или
            КЛАДР,


            - в странах Беларуси, Казахстана и Узбекистана - Тип объекта и
            Идентификатор объекта в базе OpenStreetMap. Пример
            <i>relation:2465058</i>.

            (https://ru.wikipedia.org/wiki/OpenStreetMap)


            - в остальных населенных пунктов за пределами РФ - Идентификатор
            объекта в базе GeoNames

            (https://ru.wikipedia.org/wiki/GeoNames).


            Город должен попадать в указанную в параметре country страну.

            Этот параметр очень важен и определяет в том числе какому поставщику
            будет передан заказа. Также этот параметр

            влияет на цену
          nullable: true
        cityName:
          type: string
          description: |-
            Название города (опционально) 
            Логика выбора: 
                1. Если указан CityId - используется он, а CityName игнорируется.
                2. Если CityId не указан - выполняется поиск по CityName.
            Для точного определения, пожалуйста, используйте CityId.
          nullable: true
        postalCode:
          type: string
          description: >-
            Почтовый индекс населенного пункта. Необязательный параметр.
            Обязателен, если отправление международное
          nullable: true
        address:
          type: string
          description: >-
            Адрес произвольной строкой. Адрес должен относиться к указанному в
            cityId городу и стране. Эта проверка не

            выполняется. Если в поле адрес будет указан адрес из другого
            региона, доставка не гарантируется. /

            Обязателен, когда ContactType=Door. Необязателен и игнорируется,
            ContactType=PickupPoint
          nullable: true
        pickupPointId:
          type: string
          description: >-
            Идентификатор пункта выдадачи и приемки заказов. Обязательно для
            ContactType = PickupPoint; игнорируется, если

            ContactType не равен PickupPoint
          nullable: true
        latitude:
          type: number
          description: Широта
          format: double
          nullable: true
        longitude:
          type: number
          description: Долгота
          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:
            $ref: '#/components/schemas/PartialPaySurchargeRule'
          description: Частичный выкуп
          nullable: true
        transportRequirements:
          $ref: '#/components/schemas/ApiTransportRequirementsParameters'
        tin:
          type: string
          description: |-
            ИНН. Указывается для юр. лица.
            Необязательный параметр.
          nullable: true
          example: '1181111110'
        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
        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: >-
            Контактный телефон, по которому можно связаться с контактным лицом.
            Лучше указывать мобильный номер.

            Формат этого поля проверяется при добавлении заказа. Должен
            соответствовать следующим условиям:

            - номер должен начинаться со знака "+" или с "8"

            - если указывается несколько контактных номеров, то они должны быть
            разделены запятой

            - добавочный номер должен содержать только цифры и отделяется от
            основного номера словом "доб." или символом "#"

            - все дополнительные комментарии к номеру должны быть указаны в поле
            Info (ограничения на время звонка, контактное

            лицо и тп)
        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).

            Город должен попадать в указанную в параметре country страну.

            Этот параметр очень важен и определяет в том числе какому поставщику
            будет передан заказа. Также этот параметр

            влияет на цену
          nullable: true
        postalCode:
          type: string
          description: >-
            Почтовый индекс населенного пункта. Необязательный параметр.
            Обязателен, если отправление международное
          nullable: true
        address:
          type: string
          description: >-
            Адрес произвольной строкой. Адрес должен относиться к указанному в
            cityId городу и стране - эта проверка не

            выполняется. Если в поле адрес будет указан адрес из другого
            региона, доставка не гарантируется. /

            Обязателен, когда ContactType=Door. Необязателен и игнорируется,
            ContactType=PickupPoint
          nullable: true
        pickupPointId:
          type: string
          description: >-
            Идентификатор пункта выдадачи и приемки заказов. Обязательно для
            ContactType = PickupPoint; игнорируется, если

            ContactType не равен PickupPoint
          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'
        assemblyWorks:
          $ref: '#/components/schemas/AssemblyWorksParameters'
        partialPayParameters:
          type: array
          items:
            $ref: '#/components/schemas/PartialPaySurchargeRule'
          description: >-
            Параметры услуги "Частичный выкуп"

            При выкупе на сумму порога оплаты или ниже – соответствующая доплата
            за доставку.

            Для выкупа выше порога оплаты – доплата отсутствует.
          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: >-
            Идентификатор данного вида доставки у указанного вендора. \

            Поля VendorId, TariffId и TakeDate передаются для указания
            конкретного варианта доставки
          example: '4'
        tariffName:
          minLength: 1
          type: string
          description: Название тарифа для отображения пользователю
          example: Срочная
        comments:
          type: string
          description: Произвольные комментарии к тарифу, если есть
          nullable: true
          example: Москва - Санкт-Петербург Срочная доставка
        price:
          type: number
          description: >-
            Полная цена для пользователя в рублях. Включая все дополнительные
            сервисы, страховку и налоги и НДС (если

            применимо)
          format: double
          example: 490
        tariffPriceOnly:
          type: number
          description: >-
            Цена тарифа без дополнительных сервисов и страховки. Включая все
            налоги и НДС (если применимо)
          format: double
          example: 490
        takeDate:
          type: string
          description: >-
            Дата забора (может не совпадать с переданной в запросе, если данный
            вариант тарифа уже нельзя сделать с забором на

            указанную дату)
          format: date-time
          example: '2020-04-16'
        deliveryType:
          $ref: '#/components/schemas/ApiDeliveryType'
        fromPickupPointType:
          type: integer
          description: >-
            Тип ПВЗ отправителя, если доставка от склада<br/>0 - ПВЗ<br/>1 -
            Постомат
        toPickupPointType:
          type: integer
          description: >-
            Тип ПВЗ получателя, если доставка до склада<br/>0 - ПВЗ<br/>1 -
            Постомат
        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: >-
            Теги. Перечень, который содержит дополнительные указания к вариантам
            доставки. Например, может быть указан способ транспортировки заказа
            Авиа / наземный транспорт
          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: >-
            Идентификатор данного вида доставки у указанного вендора. \

            Поля VendorId, TariffId и TakeDate передаются для указания
            конкретного варианта доставки
          example: '4'
        tariffName:
          minLength: 1
          type: string
          description: Название тарифа для отображения пользователю
          example: Срочная
        comments:
          type: string
          description: Произвольные комментарии к тарифу, если есть
          nullable: true
          example: Москва - Санкт-Петербург Срочная доставка
        price:
          type: number
          description: >-
            Полная цена для пользователя в рублях. Включая все дополнительные
            сервисы, страховку и налоги и НДС (если

            применимо)
          format: double
          example: 490
        tariffPriceOnly:
          type: number
          description: >-
            Цена тарифа без дополнительных сервисов и страховки. Включая все
            налоги и НДС (если применимо)
          format: double
          example: 490
        takeDate:
          type: string
          description: >-
            Дата забора (может не совпадать с переданной в запросе, если данный
            вариант тарифа уже нельзя сделать с забором на

            указанную дату)
          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: >-
            Теги. Перечень, который содержит дополнительные указания к вариантам
            доставки. Например, может быть указан способ транспортировки заказа
            Авиа / наземный транспорт
          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:
          type: integer
          description: |-
            Тип содержимого файла. Можно использовать как маску <br />
                    0 = None - Без типа <br />
                    1 = AttachedFile - Вложение <br />
                    2 = OrderPrintedInvoice - Распечатанная накладная заказа <br />
                    4 = InsurancePolicy - Страховка <br />
                    8 = CargoBarcode - Штрихкод груза <br />
                    16 = OrderSourceFile - Исходный файл создания заказа <br />
                    32 = InvoiceScan - Скан накладной <br />
                    64 = YotaContract - Договор Yota <br />
                    128 = OrderTemplateAttachedFile - Шаблон файла загрузки для договора <br />
                    256 = PaymentAccount - Данные плательщика <br />
                    512 = ZipInvoiceScans - Архив сканов накладных <br />
                    1024 = Registry - Реестр по заказу <br />
                    2048 = ZipRegistries - Архив реестров по заказу <br />
                    4096 = LoadingPhoto - Фото погрузки <br />
                    8192 = UnloadingPhoto - Фото разгрузки <br />
                    16384 = Documents - Документы <br />
                    32768 = MailingSource - Исходный файл рассылки
          example: 1
        itemType:
          type: integer
          description: |-
            Тип сущности, к которой привязывается файл <br />
                    0 = Order - К заказу versta24 <br />
                    1 = ProfLogVendor - Поставщик профлог <br />
                    2 = Resource - Информационный файл <br />
                    3 = PickupPoint - Пункт выдачи заказов
          example: 0
        accessLevel:
          enum:
            - 1
            - 2
            - 4
            - 0
            - 1
            - 2
            - 3
          type: integer
          description: |-
            Уровень доступа к файлу <br />
                    1 = Admin - Доступен только администраторам versta24 <br />
                    2 = AuthorizedUser - Доступен всем авторизованным пользователям <br />
                    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: |-
        Параметры услуг "Погрузочные работы" и "Разгрузочные работы"
        v24.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: >-
            Идентификатор тарифа поставщика. Это поле служит для реализации
            сценария, когда пользователь посчитал цену в

            калькуляторе, а теперь хочет сделать

            заказ с выбранным вариантом
          example: '4'
        vendorId:
          type: integer
          description: >-
            Идентификатор поставщика, которому необходимо передать заказ. Это
            поле служит для реализации сценария, когда

            пользователь посчитал цену в калькуляторе, а теперь хочет сделать

            заказ с выбранным вариантом
          format: int32
          example: 1
        vendorContractType:
          enum:
            - 0
            - 1
          type: integer
          description: >-
            Тип договора с поставщиком на который будет передан заказ.
            Необходимо указать,

            если в ответе на Calc в выбранном Вами варианте указан
            vendorInfo.vendorContractType отличный от 0,

            иначе заказ будет передан по договору versta (0).<br/>

            0 = Versta - Договор vertsa24<br/>

            1 = Own - Клиентский договор
        reqDeliveryDate:
          type: string
          description: >-
            Желаемая дата доставки. Может меняться в соответствии с выбранным
            тарифом поставщика.

            Используется только для доставок Интернет Магазинов. В большинстве
            сценариев будет проигнорирована. 

            Дата указывается в формате yyyy-MM-dd
          nullable: true
        reqDeliveryTimeFrom:
          type: string
          description: >-
            Желаемое начальное время доставки. Может меняться в соответствии с
            выбранным тарифом поставщика.

            В большинстве сценариев будет проигнорировано
          format: date-span
          nullable: true
        reqDeliveryTimeTo:
          type: string
          description: >-
            Желаемое конечное время доставки. Может меняться в соответствии с
            выбранным тарифом поставщика.

            В большинстве сценариев будет проигнорировано
          format: date-span
          nullable: true
      additionalProperties: false
      description: Выбранный вариант доставки
    OptionFilter:
      type: object
      properties:
        tariffIdFilter:
          type: array
          items:
            type: string
          description: >-
            Массив идентификаторов тарифов поставщиков. Используется, как фильтр
            в расчете вариантов доставки. Если массив

            задан, то в ответе будут варианты доставки только с указанными в
            этом массиве тарифами. Необязательный параметр
          nullable: true
          example:
            - '4'
            - '1'
        vendorsIdFilter:
          type: array
          items:
            type: integer
            format: int32
          description: >-
            Массив идентификаторов поставщиков. Используется, как фильтр в
            расчете вариантов доставки. Если массив задан, то в

            ответе будут варианты доставки только от указанных в этом массиве
            поставщиков. Необязательный параметр
          nullable: true
          example:
            - 0
            - 8
      additionalProperties: false
      description: Фильтр вариантов доставки по поставщикам и тарифам
    OptionResponse:
      required:
        - tariffId
        - vendorId
      type: object
      properties:
        tags:
          uniqueItems: true
          type: array
          items:
            type: string
          description: >-
            Теги. Перечень, который содержит дополнительные указания к вариантам
            доставки. Например, может быть указан способ транспортировки заказа
            Авиа / наземный транспорт
          nullable: true
          example:
            - Авиа
        tariffId:
          minLength: 1
          type: string
          description: >-
            Идентификатор тарифа поставщика. Это поле служит для реализации
            сценария, когда пользователь посчитал цену в

            калькуляторе, а теперь хочет сделать

            заказ с выбранным вариантом
          example: '4'
        vendorId:
          type: integer
          description: >-
            Идентификатор поставщика, которому необходимо передать заказ. Это
            поле служит для реализации сценария, когда

            пользователь посчитал цену в калькуляторе, а теперь хочет сделать

            заказ с выбранным вариантом
          format: int32
          example: 1
        vendorContractType:
          $ref: '#/components/schemas/VendorContractType'
        reqDeliveryDate:
          type: string
          description: >-
            Желаемая дата доставки. Может меняться в соответствии с выбранным
            тарифом поставщика.

            Используется только для доставок Интернет Магазинов. В большинстве
            сценариев будет проигнорирована. 

            Дата указывается в формате yyyy-MM-dd
          nullable: true
        reqDeliveryTimeFrom:
          type: string
          description: >-
            Желаемое начальное время доставки. Может меняться в соответствии с
            выбранным тарифом поставщика.

            В большинстве сценариев будет проигнорировано
          format: date-span
          nullable: true
        reqDeliveryTimeTo:
          type: string
          description: >-
            Желаемое конечное время доставки. Может меняться в соответствии с
            выбранным тарифом поставщика.

            В большинстве сценариев будет проигнорировано
          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
            - address
            - phone
            - countryId
            - cityId
          type: object
          properties:
            contactType:
              enum:
                - 1
                - 2
                - 4
                - 8
              type: integer
              description: >-
                Типы адресов. В зависимости от типа адреса необходимо заполнять
                разные поля.<br> 1 = Door - Конкретный адрес (дверь)
                        2 = MailingList - Рассылка - рассылка работает только в пределах одного города. Не используется и будет удален в дальнейшем<br>
                        4 = PickupPoint - Точка выдачи конкретного поставщика<br>
                        8 = PostOffice - Отделение почты РФ (зарезервировано для будущего использования)
            countryId:
              type: string
              description: >-
                Указывается двухбуквенный код страны в соответствии с ISO 3166-1
                alpha-2
                (https://ru.wikipedia.org/wiki/ISO_3166-1).<br>Обязателен, если
                не указаны координаты (latitude и longitude). Если указаны
                координаты, countryId может быть не заполнен.
            cityId:
              type: string
              description: >-
                Код города или населенного пункта

                Обязателен, если не указаны координаты (latitude и longitude).
                Если координаты указаны — параметр cityId может быть не
                заполнен.


                Приоритет выбора адреса:

                 1. Если указаны latitude и longitude — используются только координаты.
                 2. Если координаты не указаны — используются countryId, cityId, cityName и address.
                 3. Если по координатам не удалось распознать адрес — используются countryId, cityId, cityName и address.

                Формат значения зависит от страны. Для населенных пунктов:

                - внутри РФ - необходимо указывать код ФИАС (уровень 4 или 6)
                или КЛАДР,

                - в странах Беларуси, Казахстана и Узбекистана - Тип объекта и
                Идентификатор объекта в базе OpenStreetMap. Пример
                <i>relation:2465058</i>
                (https://ru.wikipedia.org/wiki/OpenStreetMap).

                - в остальных населенных пунктов за пределами РФ - Идентификатор
                объекта в базе GeoNames
                (https://ru.wikipedia.org/wiki/GeoNames).

                Город должен попадать в указанную в параметре country страну.

                Этот параметр очень важен и определяет в том числе какому
                поставщику будет передан заказа. Также этот параметр

                влияет на цену
            cityName:
              type: string
              description: >-
                Название города (опционально).

                Логика выбора:
                    1. Если указаны координаты — используются только координаты.
                    2. Если координаты не указаны, но указан CityId — используются CityId, а CityName игнорируется.
                    3. Если CityId не указан — выполняется поиск по CityName.
                Для точного определения, пожалуйста, используйте CityId или
                координаты.
            latitude:
              type: double
              description: >-
                Широта адреса. Если указаны latitude и longitude, остальные
                параметры (countryId, cityId, address) становятся
                необязательными. В приоритете используются координаты.
            longitude:
              type: double
              description: >-
                Долгота адреса. Если указаны latitude и longitude, остальные
                параметры (countryId, cityId, address) становятся
                необязательными. В приоритете используются координаты.
            pickupPointId:
              type: string
              description: >-
                Идентификатор точки отгрузки. Обязательно, если ContactType =
                PickupPoint и VendorId = 16, 17, 23,24, 28, 41; игнорируется,
                если ContactType не равен PickupPoint
            pickupPointVendorId:
              type: string
              description: >-
                Поставщик для PickupPointId. Обязательно для ContactType =
                PickupPoint; игнорируется, если ContactType не равен PickupPoint
            postalCode:
              type: string
              description: >-
                Почтовый индекс населенного пункта. Не обязательный параметр.
                Обязателен, если отправление международное; указывается у
                отправителя и получателя
            name:
              type: string
              description: Указывается или название компании или конкретное физическое лицо
            contactPerson:
              type: string
              description: >-
                Контактное лицо. Если в поле name указано название компании, то
                тут можно указать ФИО конкретного контактного лица.
                Необязательный параметр
            address:
              type: string
              description: >-
                Адрес произвольной строкой. Адрес должен относиться к указанному
                в city городу и стране - эта проверка не выполняется, но если в
                поле адрес будет указан адрес из другого региона - доставка не
                гарантируется. Не обязателен, но может влиять на стоимость
                доставки

                Обязателен, когда contactType=Door и не указаны координаты. Если
                указаны координаты, Address может быть не заполнен.
            phone:
              type: string
              description: >-
                Контактный телефон, по которому можно связаться с контактным
                лицом. Лучше указывать мобильный номер. Формат этого поля
                проверяется при добавлении заказа. Должен соответствовать
                следующим условиям: <br>
                            - номер должен начинаться со знака '+' или с '8'<br>
                             - если указывается несколько контактных номеров, то они должны быть разделены запятой <br>
                             - добавочный номер должен содержать только цифры и отделяется от основного номера словом 'доб.' или символом '#' <br>
                             - все дополнительные комментарии к номеру должны быть указаны в поле Info (ограничения на время звонка, контактное лицо и тп)
            email:
              type: string
              description: Email контактного лица
            instructions:
              type: string
              description: >-
                Дополнительная информация по адресу. Может быть указаны
                особенности прохода на территорию. Любая другая информация,
                которая должна помочь курьеру найти указанный адрес и контактное
                лицо. Необязательный параметр.
            tin:
              type: string
              description: ИНН. Указывается для юр. лица. Необязательный параметр.
            loadingWorks:
              type: object
              properties:
                floor:
                  type: integer
                  description: >-
                    На каком этаже выполняются работы по спуску груза. По
                    умолчанию 1
                hasFreightLift:
                  type: boolean
                  description: Имеется ли грузовой лифт
                loadersCount:
                  type: integer
                  description: Количество грузчиков. По умолчанию 1
              description: Погрузочные работы
            assemblyWorks:
              type: object
              properties:
                assemblersCount:
                  type: integer
                  description: Количество сборщиков. По умолчанию 1
              description: Работы по разборке груза
            transportRequirements:
              type: object
              properties:
                requirements:
                  type: ApiTransportRequirementsType[]
                  description: >-
                    Перечень требований к транспортному средству. Необходимо
                    указать массив требований, которые необходимы для
                    транспорта. Список требований можно посмотреть: <a
                    href="/docs/specification/transportRequirementsType/">Справочник
                    значений</a>
              description: Требования к транспорту для получателя
          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'
            loadingWorks:
              floor: 2
              hasFreightLift: false
              loadersCount: 5
        receiver:
          required:
            - name
            - address
            - phone
            - countryId
            - cityId
          type: object
          properties:
            contactType:
              enum:
                - 1
                - 2
                - 4
                - 8
              type: integer
              description: >-
                Типы адресов. В зависимости от типа адреса необходимо заполнять
                разные поля.<br> 1 = Door - Конкретный адрес (дверь)
                        2 = MailingList - Рассылка - рассылка работает только в пределах одного города. Не используется и будет удален в дальнейшем<br>
                        4 = PickupPoint - Точка выдачи конкретного поставщика<br>
                        8 = PostOffice - Отделение почты РФ (зарезервировано для будущего использования)
            countryId:
              type: string
              description: >-
                Указывается двухбуквенный код страны в соответствии с ISO 3166-1
                alpha-2
                (https://ru.wikipedia.org/wiki/ISO_3166-1).<br>Обязателен, если
                не указаны координаты (latitude и longitude). Если указаны
                координаты, countryId может быть не заполнен.
            cityId:
              type: string
              description: >-
                Код города или населенного пункта

                Обязателен, если не указаны координаты (latitude и longitude).
                Если координаты указаны — параметр cityId может быть не
                заполнен.


                Приоритет выбора адреса:

                 1. Если указаны latitude и longitude — используются только координаты.
                 2. Если координаты не указаны — используются countryId, cityId, cityName и address.
                 3. Если по координатам не удалось распознать адрес — используются countryId, cityId, cityName и address.

                Формат значения зависит от страны. Для населенных пунктов:

                - внутри РФ - необходимо указывать код ФИАС (уровень 4 или 6)
                или КЛАДР,

                - в странах Беларуси, Казахстана и Узбекистана - Тип объекта и
                Идентификатор объекта в базе OpenStreetMap. Пример
                <i>relation:2465058</i>
                (https://ru.wikipedia.org/wiki/OpenStreetMap).

                - в остальных населенных пунктов за пределами РФ - Идентификатор
                объекта в базе GeoNames
                (https://ru.wikipedia.org/wiki/GeoNames).

                Город должен попадать в указанную в параметре country страну.

                Этот параметр очень важен и определяет в том числе какому
                поставщику будет передан заказа. Также этот параметр

                влияет на цену
            cityName:
              type: string
              description: >-
                Название города (опционально).

                Логика выбора:
                    1. Если указаны координаты — используются только координаты.
                    2. Если координаты не указаны, но указан CityId — используются CityId, а CityName игнорируется.
                    3. Если CityId не указан — выполняется поиск по CityName.
                Для точного определения, пожалуйста, используйте CityId или
                координаты.
            latitude:
              type: double
              description: >-
                Широта адреса. Если указаны latitude и longitude, остальные
                параметры (countryId, cityId, address) становятся
                необязательными. В приоритете используются координаты.
            longitude:
              type: double
              description: >-
                Долгота адреса. Если указаны latitude и longitude, остальные
                параметры (countryId, cityId, address) становятся
                необязательными. В приоритете используются координаты.
            pickupPointId:
              type: string
              description: >-
                Идентификатор точки выдачи. Обязательно для ContactType =
                PickupPoint; игнорируется, если ContactType не равен PickupPoint
            pickupPointVendorId:
              type: string
              description: >-
                Поставщик для PickupPointId. Обязательно для ContactType =
                PickupPoint; игнорируется, если ContactType не равен PickupPoint
            postalCode:
              type: string
              description: >-
                Почтовый индекс населенного пункта. Не обязательный параметр.
                Обязателен, если отправление международное; указывается у
                отправителя и получателя
            name:
              type: string
              description: Указывается или название компании или конкретное физическое лицо
            contactPerson:
              type: string
              description: >-
                Контактное лицо. Если в поле name указано название компании, то
                тут можно указать ФИО конкретного контактного лица.
                Необязательный параметр
            address:
              type: string
              description: >-
                Адрес произвольной строкой. Адрес должен относиться к указанному
                в city городу и стране - эта проверка не выполняется, но если в
                поле адрес будет указан адрес из другого региона - доставка не
                гарантируется. Не обязателен, но может влиять на стоимость
                доставки

                Обязателен, когда contactType=Door и не указаны координаты. Если
                указаны координаты, Address может быть не заполнен.
            phone:
              type: string
              description: >-
                Контактный телефон, по которому можно связаться с контактным
                лицом. Лучше указывать мобильный номер. Формат этого поля
                проверяется при добавлении заказа. Должен соответствовать
                следующим условиям: <br>
                            - номер должен начинаться со знака '+' или с '8'<br>
                             - если указывается несколько контактных номеров, то они должны быть разделены запятой <br>
                             - добавочный номер должен содержать только цифры и отделяется от основного номера словом 'доб.' или символом '#' <br>
                             - все дополнительные комментарии к номеру должны быть указаны в поле Info (ограничения на время звонка, контактное лицо и тп)
            email:
              type: string
              description: Email контактного лица
            instructions:
              type: string
              description: >-
                Дополнительная информация по адресу. Может быть указаны
                особенности прохода на территорию. Любая другая информация,
                которая должна помочь курьеру найти указанный адрес и контактное
                лицо. Необязательный параметр.
            tin:
              type: string
              description: ИНН. Указывается для юр. лица. Необязательный параметр.
            loadingWorks:
              type: object
              properties:
                floor:
                  type: integer
                  description: >-
                    На каком этаже выполняются работы по подъему груза. По
                    умолчанию 1
                hasFreightLift:
                  type: boolean
                  description: Имеется ли грузовой лифт
                loadersCount:
                  type: integer
                  description: Количество грузчиков. По умолчанию 1
              description: Разгрузочные работы
            assemblyWorks:
              type: object
              properties:
                assemblersCount:
                  type: integer
                  description: Количество сборщиков. По умолчанию 1
              description: Работы по сборке груза
            transportRequirements:
              type: object
              properties:
                requirements:
                  type: ApiTransportRequirementsType[]
                  description: >-
                    Перечень требований к транспортному средству. Необходимо
                    указать массив требований, которые необходимы для
                    транспорта. Список требований можно посмотреть: <a
                    href="/docs/specification/transportRequirementsType/">Справочник
                    значений</a>
              description: Требования к транспорту для отправителя
            partialPayParameters:
              type: array
              items:
                type: object
                properties:
                  paymentThreshold:
                    type: integer
                    description: Порог доплаты
                    example: 3000
                  deliverySurcharge:
                    type: integer
                    description: Доплата за доставку
                    example: 200
              description: >-
                Параметры частичной оплаты. При выкупе на сумму порога оплаты
                или ниже – соответствующая доплата за доставку.

                Для выкупа выше порога оплаты – доплата отсутствует.
          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'
            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'
        companyId:
          type: integer
          description: >-
            Идентификатор компании от которой создается заказ. Если значение не
            задано, то используется идентификатор компании,

            которой принадлежит ключ API.

            Чтобы получить идентификаторы для работы с вашими компаниями,
            пожалуйста, обратитесь на support@versta24.ru
          format: int32
          nullable: true
          example: null
        project:
          type: string
          description: >-
            Идентификатор проекта, к которому нужно отнести заказ. Служит для
            информации. Может в реестре отчетности для

            клиента
          nullable: true
          example: Доставка товаров
        department:
          type: string
          description: >-
            Идентификатор департамента, к которому нужно отнести заказ. Служит
            для информации. Может в реестре отчетности для

            клиента
          nullable: true
          example: Логистика
        customerOrderId:
          type: string
          description: Произвольная строка с номером заказа клиента. Сохраняется в заказе
          nullable: true
          example: MX123456
        customerOrderIdDontCheck:
          type: boolean
          description: >-
            Не проверять дублирование номера заказа клиента. Если установлен в
            false - то при сохранении заказа проверяется

            отсутствие дублей по указанному номеру заказа клиента

            По умолчанию: 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 адрес, на который будут приходить письма в случае если заказ
            не удалось передать поставщику по причине не

            доступности поставщика.

            На этот же e-mail будут приходить письма, когда заказ будет передан.
          nullable: true
          example: emergency@email.com
        isDraft:
          type: boolean
          description: >-
            Признак, что нужно создать только черновик закзаа. Если true, то
            заказ не будет передан поставщику. По умолчанию,

            false
          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. Этот
            идентификатор необходимо сохранить.

            По нему в дальнейшем будет осуществляться работа с данным заказом.
          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: >-
            Стоимость заказа. Пока заказ не завершен и по нему не выставлен счет
            эта стоимость может меняться.

            Стоимость включает в себя тариф и дополнительные расходы.
          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:
          type: integer
          description: >-
            Код текущего статуса заказа. <a
            href="/docs/specification/statuses/">Справочник значений</a>
          example: 60
        statusName:
          minLength: 1
          type: string
          description: >-
            Текстовое описание статуса заказа для отображения пользователю.
            Зависит от поставщика и может быть достаточно

            разнообразным.

            Например: Передан поставщику, Курьер назначен ...
          example: Передан поставщику
        emergencyEmail:
          type: string
          description: >-
            E-mail адрес, на который будут приходить письма в случае если заказ
            не удалось передать поставщику по причине не

            доступности поставщика.

            На этот же 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
        vendorPickupNum:
          type: string
          description: >-
            Номер заказа на вызов курьера от поставщика. Опциональный параметр.
            Для отображения пользователю
          nullable: true
          example: 4562389-78
        customerOrderId:
          type: string
          description: Произвольная строка с номером заказа клиента. Сохраняется в заказе
          nullable: true
          example: MX123456
        price:
          type: number
          description: >-
            Стоимость заказа. Пока заказ не завершен и по нему не выставлен счет
            эта стоимость может меняться.

            Стоимость включает в себя тариф и дополнительные расходы.
          format: double
          nullable: true
          example: 200
        planDeliveryDate:
          type: string
          description: Плановая дата доставки (максимальная)
          format: date-time
          nullable: true
          example: '2020-04-18T00:00:00'
        status:
          type: integer
          description: >-
            Код текущего статуса заказа. <a
            href="/docs/specification/statuses/">Справочник значений</a>
          example: 5
        statusName:
          minLength: 1
          type: string
          description: >-
            Текстовое описание статуса заказа для отображения пользователю.
            Зависит от поставщика и может быть достаточно

            разнообразным.

            Например, Передан поставщику, Курьер назначен ...
          example: Передан поставщику
        masterStatus:
          type: integer
          description: >-
            Код группы статуса заказа. <a
            href="/docs/specification/masterstatuses/">Справочник значений</a>
          example: 50
        masterStatusName:
          minLength: 1
          type: string
          description: >-
            Текстовое описание группы статуса заказа для отображения
            пользователю.

            Например, Передан поставщику, Транспортировка отправления ...
          example: Передан поставщику
        statusDate:
          type: string
          description: Дата и время установки текущего статуса заказа
          format: date-time
          nullable: true
          example: '2020-04-23T12:54:22'
        emergencyEmail:
          type: string
          description: >-
            E-mail адрес, на который будут приходить письма в случае если заказ
            не удалось передать поставщику по причине не

            доступности поставщика.

            На этот же e-mail будут приходить письма, когда заказ будет передан.
          nullable: true
          example: emergency@email.com
        keepAtPickupPointDateLimit:
          type: string
          description: >-
            Дата, до которой заказ будет храниться на ПВЗ или складе поставщика
            бесплатно
          format: date-time
          nullable: true
        sender:
          required:
            - name
            - address
            - phone
            - countryId
            - cityId
          type: object
          properties:
            contactType:
              enum:
                - 1
                - 2
                - 4
                - 8
              type: integer
              description: >-
                Типы адресов. В зависимости от типа адреса необходимо заполнять
                разные поля.<br> 1 = Door - Конкретный адрес (дверь)
                        2 = MailingList - Рассылка - рассылка работает только в пределах одного города. Не используется и будет удален в дальнейшем<br>
                        4 = PickupPoint - Точка выдачи конкретного поставщика<br>
                        8 = PostOffice - Отделение почты РФ (зарезервировано для будущего использования)
            countryId:
              type: string
              description: >-
                Двухбуквенный код страны в соответствии с ISO 3166-1 alpha-2
                (https://ru.wikipedia.org/wiki/ISO_3166-1)
            cityId:
              type: string
              description: >-
                Код города или населенного пункта. Для населенных пунктов внутри
                РФ - необходимо указывать код ФИАС (уровень 4 или 6) или КЛАДР,
                для населенных пунктов за пределами РФ - Идентификатор объекта в
                базе GeoNames (https://ru.wikipedia.org/wiki/GeoNames)
            postalCode:
              type: string
              description: Почтовый индекс населенного пункта. Не обязательный параметр
            pickupPointId:
              type: string
              description: Идентификатор точки выдачи.
            pickupPointVendorId:
              type: string
              description: Поставщик для PickupPointId.
            name:
              type: string
              description: Название компании или конкретное физическое лицо
            contactPerson:
              type: string
              description: Контактное лицо
            address:
              type: string
              description: Адрес произвольной строкой
            phone:
              type: string
              description: >-
                Контактный телефон, по которому можно связаться с контактным
                лицом
            email:
              type: string
              description: E-mail контактного лица
            instructions:
              type: string
              description: Дополнительная информация по адресу.
            loadingWorks:
              type: object
              properties:
                floor:
                  type: integer
                  description: >-
                    На каком этаже выполняются работы по подъему груза. По
                    умолчанию 1
                hasFreightLift:
                  type: boolean
                  description: Имеется ли грузовой лифт
                loadersCount:
                  type: integer
                  description: Количество грузчиков. По умолчанию 1
              description: Разгрузочные работы
            assemblyWorks:
              type: object
              properties:
                assemblersCount:
                  type: integer
                  description: Количество сборщиков. По умолчанию 1
              description: Работы по сборке груза
          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
            - address
            - phone
            - countryId
            - cityId
          type: object
          properties:
            contactType:
              enum:
                - 1
                - 2
                - 4
                - 8
              type: integer
              description: >-
                Типы адресов. В зависимости от типа адреса необходимо заполнять
                разные поля.<br> 1 = Door - Конкретный адрес (дверь)
                        2 = MailingList - Рассылка - рассылка работает только в пределах одного города. Не используется и будет удален в дальнейшем<br>
                        4 = PickupPoint - Точка выдачи конкретного поставщика<br>
                        8 = PostOffice - Отделение почты РФ (зарезервировано для будущего использования)
            countryId:
              type: string
              description: >-
                Двухбуквенный код страны в соответствии с ISO 3166-1 alpha-2
                (https://ru.wikipedia.org/wiki/ISO_3166-1)
            cityId:
              type: string
              description: >-
                Код города или населенного пункта. Для населенных пунктов внутри
                РФ - необходимо указывать код ФИАС (уровень 4 или 6) или КЛАДР,
                для населенных пунктов за пределами РФ - Идентификатор объекта в
                базе GeoNames (https://ru.wikipedia.org/wiki/GeoNames)
            postalCode:
              type: string
              description: Почтовый индекс населенного пункта. Не обязательный параметр
            pickupPointId:
              type: string
              description: Идентификатор точки выдачи.
            pickupPointVendorId:
              type: string
              description: Поставщик для PickupPointId.
            name:
              type: string
              description: Название компании или конкретное физическое лицо
            contactPerson:
              type: string
              description: Контактное лицо
            address:
              type: string
              description: Адрес произвольной строкой
            phone:
              type: string
              description: >-
                Контактный телефон, по которому можно связаться с контактным
                лицом
            email:
              type: string
              description: E-mail контактного лица
            instructions:
              type: string
              description: Дополнительная информация по адресу.
            loadingWorks:
              type: object
              properties:
                floor:
                  type: integer
                  description: >-
                    На каком этаже выполняются работы по спуску груза. По
                    умолчанию 1
                hasFreightLift:
                  type: boolean
                  description: Имеется ли грузовой лифт
                loadersCount:
                  type: integer
                  description: Количество грузчиков. По умолчанию 1
              description: Погрузочные работы
            assemblyWorks:
              type: object
              properties:
                assemblersCount:
                  type: integer
                  description: Количество сборщиков. По умолчанию 1
              description: Работы по разборке груза
          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: >-
            Идентификатор проекта, к которому нужно отнести заказ. Служит для
            информации. Может в реестре отчетности для

            клиента
          nullable: true
          example: Доставка товаров
        department:
          type: string
          description: >-
            Идентификатор департамента, к которому нужно отнести заказ. Служит
            для информации. Может в реестре отчетности для

            клиента
          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: >-
            Получатель заказа. Проставляется, если заказ завершен. Для заказов с
            возвратом - тут проставляется ФИО получателя

            (до возврата)
          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, то система будет пытаться автоматически поменять дату
            забора на ближайший доступный день, если на дату,

            заданную в TakeDate, передача заказа с заданными VendorId и TariffId
            невозможна.

            По умолчанию, true.

            ПАРАМЕТР УСТАРЕЛ И БУДЕТ УДАЛЁН.
        postponePickup:
          type: boolean
          description: >-
            Признак того, что курьера не нужно вызывать на указанную в TakeDate
            дату во время создания заказа с забором "от двери". Используется для
            сценария, когда клиент не знает точную дату забора и осуществит
            вызов курьера, спустя какое-то время, путем вызова метода
            CallCourier
        takeDate:
          type: string
          description: >-
            Указывается дата забора груза в формате yyyy-MM-dd.

            По умолчанию - текущая дата.

            Не все поставщики могут выполнять забор в выходные дни.

            Также существуют ограничения на время размещения заказа с датой
            забора сегодня.

            Ближайшая доступная дата забора заказа возвращается в варианте
            доставки в takeDate.
          nullable: true
          example: '2020-03-31'
        timeFrom:
          type: string
          description: >-
            Указывается ограничение на время забора (начальное). Это ограничение
            носит рекомендательный характер и не всегда

            может быть соблюдено.

            По умолчанию указывается время забора 09:00.
          format: date-span
          example: '12:00'
        timeTo:
          type: string
          description: >-
            Указывается ограничение на время забора (конечное). Это ограничение
            носит рекомендательный характер и не всегда

            может быть соблюдено.

            По умолчанию указывается время забора 18:00.
          format: date-span
          example: '15:00'
      additionalProperties: false
      description: Сведения по забору заказа у отправителя
    OrderResponsePickupInfo:
      type: object
      properties:
        postponePickup:
          type: boolean
          description: >-
            Признак того, что курьера не нужно вызывать на указанную в TakeDate
            дату во время создания заказа с забором "от двери". Используется для
            сценария, когда клиент не знает точную дату забора и осуществит
            вызов курьера, спустя какое-то время, путем вызова метода
            CallCourier
        takeDate:
          type: string
          description: >-
            Указывается дата забора груза в формате yyyy-MM-dd.

            По умолчанию - текущая дата.

            Не все поставщики могут выполнять забор в выходные дни.

            Также существуют ограничения на время размещения заказа с датой
            забора сегодня.

            Ближайшая доступная дата забора заказа возвращается в варианте
            доставки в takeDate.
          nullable: true
          example: '2020-03-31'
        timeFrom:
          type: string
          description: >-
            Указывается ограничение на время забора (начальное). Это ограничение
            носит рекомендательный характер и не всегда

            может быть соблюдено.

            По умолчанию указывается время забора 09:00.
          format: date-span
          example: '12:00'
        timeTo:
          type: string
          description: >-
            Указывается ограничение на время забора (конечное). Это ограничение
            носит рекомендательный характер и не всегда

            может быть соблюдено.

            По умолчанию указывается время забора 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: Список заказов
      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: >-
            Фильтр точек выдачи по городу. Обязательный параметр.

            Код города или населенного пункта. Для населенных пунктов внутри РФ
            - код ФИАС,

            для населенных пунктов за пределами РФ - Идентификатор объекта в
            базе GeoNames

            (https://ru.wikipedia.org/wiki/GeoNames).
          example: 5bf5ddff-6353-4a3d-80c4-6fb27f00c6c1
        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.25166
        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: >-
            Срок бесплатного хранения заказа на ПВЗ в днях. \

            Не указывается для ПВЗ, работающих только на приём заказов (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: >-
            Фильтр точек выдачи по городу. Обязательный параметр.

            Код города или населенного пункта. Для населенных пунктов внутри РФ
            - код ФИАС,

            для населенных пунктов за пределами РФ - Идентификатор объекта в
            базе GeoNames

            (https://ru.wikipedia.org/wiki/GeoNames).
          example: 5bf5ddff-6353-4a3d-80c4-6fb27f00c6c1
        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.25166
        name:
          type: string
          description: Название точки выдачи
          nullable: true
          example: '[СДЭК] ул Ясеневая, 50'
        color:
          type: string
          description: Цвет ПВЗ на карте
          nullable: true
          example: green
        type:
          type: integer
          description: >-
            Тип ПВЗ<br />0 - ПВЗ<br>1 - Постомат<br>2 - Абонентский ящик<br>3 -
            Маркетплейс
          example: 0
        description:
          type: string
          description: Описание. Дополнительная информация
          nullable: true
          example: 15 мин от станции метро...
        phone:
          type: string
          description: Телефон точки выдачи
          nullable: true
          example: '+79998887766'
        freeStorageDays:
          type: integer
          description: >-
            Срок бесплатного хранения заказа на ПВЗ в днях. \

            Не указывается для ПВЗ, работающих только на приём заказов (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:
          type: integer
          description: >-
            Режимы работы ПВЗ<br />Intake=1 На приём отправлений <br />Pickup=2
            На выдачу отправлений <br />ПВЗ может работать как на прием, так и
            на выдачу отправление - принимать значение 3<br/>По умолчанию
            Pickup=2
          example: 1
      additionalProperties: false
    PickupPointsCalcResultModel:
      type: object
      properties:
        pickupPoints:
          type: array
          items:
            $ref: '#/components/schemas/PickupPointCalcResultModel'
          description: Список точек выдачи с рассчитанными вариантами доставки
          nullable: true
      additionalProperties: false
    PickupPointsResultModel:
      type: object
      properties:
        pickupPoints:
          type: array
          items:
            $ref: '#/components/schemas/PickupPointResultModel'
          description: Список  точек выдачи поставщика
          nullable: true
        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
    RoutePoint:
      required:
        - cityId
        - countryId
      type: object
      properties:
        contactType:
          $ref: '#/components/schemas/ApiContactTypes'
        countryId:
          minLength: 1
          type: string
        cityId:
          minLength: 1
          type: string
        cityName:
          type: string
          nullable: true
        postalCode:
          type: string
          nullable: true
        pickupPointId:
          type: string
          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
          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: >-
            Параметры услуги "Частичный выкуп"

            При выкупе на сумму порога оплаты или ниже – соответствующая доплата
            за доставку.

            Для выкупа выше порога оплаты – доплата отсутствует.
          nullable: true
        address:
          type: string
          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 


            Список услуг см. <a
            href="/docs/specification/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: |-
        Уровень доступа к настройкам \
        0 = Admin - Только администратор \
        1 = Read - Только просмотр \
        2 = 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:
          type: integer
          description: Тип адреса отправителя<br/>1 - Дверь<br/>4 - ПВЗ
        senderPickupPointType:
          type: integer
          description: >-
            Тип ПВЗ отправителя, если доставка от склада<br/>0 - ПВЗ<br/>1 -
            Постомат
        receiverContactType:
          type: integer
          description: Тип адреса получателя<br/>1 - Дверь<br/>4 - ПВЗ
        receiverPickupPointType:
          type: integer
          description: >-
            Тип ПВЗ получателя, если доставка до склада<br/>0 - ПВЗ<br/>1 -
            Постомат
        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: >-
        Временной слот для доставки. Время всегда местное. В рамках одной опции
        может быть доступно несколько

        временных слотов
    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:
          type: integer
          description: >-
            Код события.  <a href="/docs/specification/statuses/">Справочник
            значений</a>
          example: 5
        masterStatus:
          type: integer
          description: >-
            Код группы статуса заказа. <a
            href="/docs/specification/masterstatuses/">Справочник значений</a>
          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: События по заказу отсортированные в хронологическом порядке
      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:
          type: integer
          description: |-
            Тип сущности, к которой привязывается файл <br />
                    0 = Order - К заказу versta24 <br />
                    1 = ProfLogVendor - Поставщик профлог <br />
                    2 = Resource - Информационный файл <br />
                    3 = PickupPoint - Пункт выдачи заказов
          example: 0
        itemId:
          type: string
          description: Идентификатор сущности, к которой привязывается файл
          nullable: true
          example: V24X-XXX-XXX-XXX
        fileType:
          type: integer
          description: |-
            Тип содержимого файла. Можно использовать как маску <br />
                    0 = None - Без типа <br />
                    1 = AttachedFile - Вложение <br />
                    2 = OrderPrintedInvoice - Распечатанная накладная заказа <br />
                    4 = InsurancePolicy - Страховка <br />
                    8 = CargoBarcode - Штрихкод груза <br />
                    16 = OrderSourceFile - Исходный файл создания заказа <br />
                    32 = InvoiceScan - Скан накладной <br />
                    64 = YotaContract - Договор Yota <br />
                    128 = OrderTemplateAttachedFile - Шаблон файла загрузки для договора <br />
                    256 = PaymentAccount - Данные плательщика <br />
                    512 = ZipInvoiceScans - Архив сканов накладных <br />
                    1024 = Registry - Реестр по заказу <br />
                    2048 = ZipRegistries - Архив реестров по заказу <br />
                    4096 = LoadingPhoto - Фото погрузки <br />
                    8192 = UnloadingPhoto - Фото разгрузки <br />
                    16384 = Documents - Документы <br />
                    32768 = MailingSource - Исходный файл рассылки
          example: 1
        base64File:
          type: string
          description: Файл, закодированный в base64-строку
          nullable: true
          example: 0J/RgNC40LzQtdGAINGB0YLRgNC+0LrQuCDQsiBiYXNlNjQ=
        accessLevel:
          enum:
            - 1
            - 2
            - 4
            - 0
            - 1
            - 2
            - 3
          type: integer
          description: |-
            Уровень доступа к файлу <br />
                    1 = Admin - Доступен только администраторам versta24 <br />
                    2 = AuthorizedUser - Доступен всем авторизованным пользователям <br />
                    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: |-
        Тип договора с поставщиком \
        0 = Versta - Договор vertsa24 \
        1 = 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
          type: integer
          description: |-
            Тип договора с поставщиком, по которому получен данный вариант.<br/>
            0 = Versta - Договор vertsa24<br/>
            1 = Own - Клиентский договор
      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
      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
