openapi: 3.0.4
info:
  title: versta.io Open API
  description: >-
    Спецификация к открытому API компании Верста. Для работы с API вам
    необходимо получить ключ доступа. Для получения ключа, пожалуйста, напишите
    нам на support@versta24.ru.
  version: v1
paths:
  /OpenAPI/v1/Create:
    post:
      tags:
        - OpenAPI
      summary: create - Создание заказа
      description: >-
        Создает заказ с переданными параметрами в статусе Черновик (Draft) и
        передает его поставщику на выполнение или

        возвращает возможные вариант доставки. \

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

        DeliveryOptions \

        Если данные поля не заполнены, то возвращается список возможных
        вариантов доставки (DeliveryOptions) \

        После выбора варианта и для передачи заказа поставщику, необходимо
        вызывать метод PushToVendor.
      requestBody:
        description: Параметры создаваемого заказа
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderCreateModel'
      responses:
        '200':
          description: >-
            Заказ сохранен в статусе Draft. Возвращает информацию об ошибках при
            передаче
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderPushErrorModel'
        '201':
          description: >-
            Заказ сохранен и передан поставщику. Возвращает информацию о
            сохраненном заказе
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderCreateResultModel'
        '500':
          description: >-
            При сохранении заказа произошла ошибка. Возвращает информацию об
            ошибке
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiErrorModel'
  /OpenAPI/v1/CreateMany:
    post:
      tags:
        - OpenAPI
      summary: createMany - Создание массива заказов
      description: >-
        Создает заказы с переданными параметрами в статусе Черновик (Draft) и
        передает их поставщику(-ам) на выполнение или

        возвращает возможные варианты доставки. \

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

        DeliveryOptions \

        Если данные поля не заполнены, то возвращается список возможных
        вариантов доставки (DeliveryOptions) \

        После выбора варианта и для передачи заказа поставщику, необходимо
        вызывать метод PushToVendor.
      requestBody:
        description: Параметры создаваемых заказов
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/OrderCreateModel'
      responses:
        '200':
          description: >-
            Заказ сохранен в статусе Draft. Возвращает возможные варианты
            доставки для данного заказа
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DeliveryOptionsModel'
        '201':
          description: >-
            Заказ сохранен и передан поставщику. Возвращает информацию о
            сохраненном заказе
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OrderCreateResultModel'
        '500':
          description: >-
            При сохранении заказа произошла ошибка. Возвращает информацию об
            ошибке
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiErrorModel'
  /OpenAPI/v1/PushToVendor:
    post:
      tags:
        - OpenAPI
      summary: pushToVendor - Передача заказа поставщику
      description: >-
        Передает сохраненный в черновике заказ выбранному поставщику с выбранным
        вариантом доставки
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PushToVendorModel'
      responses:
        '200':
          description: >-
            Заказ успешно передан поставщику. Ответ содержит дополнительную
            информацию о переданном заказе
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderCreateResultModel'
        '400':
          description: >-
            Заказ не может быть передан с запрашиваемым типом
            срочности/поставщиком. В ответе содержаться

            варианты по которым заказ может быть передан. При отображении этих
            вариантов НЕ УЧИТЫВАЕТСЯ изначально запрошенный

            для заказа тип срочности
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeliveryOptionsModel'
        '500':
          description: >-
            При передачи заказа поставщику произошла ошибка. Возвращает
            информацию об ошибке
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiErrorModel'
  /OpenAPI/v1/CallCourier:
    post:
      tags:
        - OpenAPI
      summary: callCourier - вызов курьера
      description: >-
        Для вызова курьера Вы можете указать перечень заказов, по которым будет
        вызван курьер, либо фильтры по

        размещенным заказам: дата размещения заказа, поставщик, город и адрес
        отправителя. Также нужно указать дату и

        интервал приезда курьера
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CallCourierRequestModel'
      responses:
        '200':
          description: Список заказов со сведениями о вызове курьера по каждому заказу
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallCourierRequestResultModel'
        '500':
          description: Информация об ошибке
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiErrorModel'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiErrorModel'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiErrorModel'
  /OpenAPI/v1/Print:
    post:
      tags:
        - OpenAPI
      summary: print - Печать накладной по заказу
      description: Возвращает pdf файл с накладной по конкретному заказу
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PrintRequestModel'
      responses:
        '200':
          description: OK
          content:
            application/octet-stream: {}
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiErrorModel'
  /OpenAPI/v1/Calc:
    post:
      tags:
        - OpenAPI
      summary: calc - расчет стоимости
      description: >-
        Рассчитывает стоимость по переданным параметрам и возвращает возможные
        варианты доставки для отображения

        пользователю.
      requestBody:
        description: Параметры для поиска вариантов доставки
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CalcRequestModel'
      responses:
        '200':
          description: Возможные варианты доставки
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeliveryOptionsModel'
        '500':
          description: Информация об ошибке
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiErrorModel'
  /OpenAPI/v1/CalcMany:
    post:
      tags:
        - OpenAPI
      summary: calcMany - расчет стоимости массива заказов
      description: >-
        Рассчитывает стоимость по переданным параметрам и возвращает возможные
        варианты доставки для отображения

        пользователю.
      requestBody:
        description: Массив параметров для поиска вариантов доставки
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/CalcManyRequestModel'
      responses:
        '200':
          description: Возможные варианты доставки
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManyDeliveryOptionsModel'
        '500':
          description: Информация об ошибке
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiErrorModel'
  /OpenAPI/v1/Update:
    post:
      tags:
        - OpenAPI
      summary: update - Обновить данные заказа
      description: Обновляет данные в заказе
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderUpdateModel'
      responses:
        '200':
          description: Информация о сохраненном заказе
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderGetModel'
        '500':
          description: Информация об ошибке
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiErrorModel'
  /OpenAPI/v1/Get:
    post:
      tags:
        - OpenAPI
      summary: get - Получить заказ по orderId
      description: Возвращает полную информацию о заказе по его orderId
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderRequestModel'
      responses:
        '200':
          description: Информация о сохраненном заказе
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderGetModel'
        '500':
          description: Информация об ошибке
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiErrorModel'
  /OpenAPI/v1/GetOrders:
    post:
      tags:
        - OpenAPI
      summary: getOrders - Получить заказы по фильтрам
      description: Возвращает полную информацию о заказах по переданным фильтрам
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetOrdersRequestModel'
      responses:
        '200':
          description: Информация о сохраненных заказах
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderGetModel'
        '500':
          description: Информация об ошибке
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiErrorModel'
  /OpenAPI/v1/Track:
    post:
      tags:
        - OpenAPI
      summary: track - отслеживание заказов
      description: Возвращает отслеживание по заказу.
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderRequestModel'
      responses:
        '200':
          description: Информация об отслеживании заказа
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrackResultsModel'
        '500':
          description: Информация об ошибке
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiErrorModel'
  /OpenAPI/v1/Cancel:
    post:
      tags:
        - OpenAPI
      summary: cancel - отмена заказа
      description: >-
        Создает запрос на отмену заказа и возвращает результат создания этого
        запроса. Следует обратить внимание, что по

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

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

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

        (см. тарифное положение)
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderRequestModel'
      responses:
        '200':
          description: Заявка на отмену заказа успешно размещена и будет обработана
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CancelOrderResponse'
        '500':
          description: Информация об ошибке
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiErrorModel'
  /OpenAPI/v1/GetPickupPoints:
    post:
      tags:
        - OpenAPI
      summary: getPickupPoints - список точек выдачи
      description: Возвращает список точек выдачи поставщиков
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PickupPointsRequestModel'
      responses:
        '200':
          description: Список точек выдачи и их параметры
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PickupPointsResultModel'
        '500':
          description: Информация об ошибке
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiErrorModel'
  /OpenAPI/v1/GetOrderStatuses:
    post:
      tags:
        - OpenAPI
      summary: getOrderStatuses - список актуальных статусов
      description: Возвращает список актуальных статусов по заказам
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderStatusesInfoModel'
      responses:
        '200':
          description: список актуальных статусов с номерами заказов
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderStatusesInfoModel'
        '500':
          description: Информация об ошибке
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiErrorModel'
components:
  schemas:
    AdditionalServicesModel:
      type: object
      properties:
        insuranceSum:
          type: number
          description: >-
            Устаревшее! Укажите услугу в Services с Code=2 и
            Parameter=InsuranceSum \

            Стоимость застрахованного отправления - см. договор про условия и
            правила страхования грузов
          format: double
          nullable: true
          example: 10.99
        insuranceCurrency:
          type: string
          description: >-
            Устаревшее! \

            Указывается трехбуквенный код валюты суммы страховки (в соответствии
            с ISO 4217

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

            В настоящий момент поддерживается только RUB
          nullable: true
          example: RUB
      additionalProperties: false
      description: additionalServicesModel - дополнительные сервисы
    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
    ApiDirectionTypes:
      enum:
        - 1
        - 2
      type: integer
      description: |-
        Направление отправки. Может использоваться как маска. \
        1 = OneWay - отправка в одну сторону \
        2 = WithReturn - отправка с возвратом
      format: int32
    ApiErrorModel:
      required:
        - errorCode
        - errorDescription
      type: object
      properties:
        errorCode:
          minLength: 1
          type: string
          description: Код ошибки
          example: ApiKeyEmpty
        errorDescription:
          minLength: 1
          type: string
          description: Текстовое описание ошибки
          example: Не указан ApiKey
        errorAdditionalInfo:
          type: string
          description: Дополнительная информация об ошибке, если есть
          nullable: true
          example: null
      additionalProperties: false
      description: Описание информации об ошибке
    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
    ApiPayerTypes:
      enum:
        - 1
        - 2
        - 4
      type: integer
      description: >-
        Тип плательщика. Может использоваться как маска. \

        1 = Customer - клиент с оплатой по безналичному расчету (по-умолчанию) \

        2 = Sender - доставку оплачивает отправитель (применяется только вместе
        с типом оплаты - наличные) \

        4 = Recipient - доставку оплачивает получатель (применяется только
        вместе с типом оплаты - наличные)
      format: int32
    ApiPaymentStatuses:
      enum:
        - 1
        - 2
        - 4
        - 8
        - 16
        - 32
      type: integer
      format: int32
    ApiPaymentTypes:
      enum:
        - 1
        - 2
        - 4
      type: integer
      description: >-
        Тип оплаты. Может использоваться как маска. \

        1 = Invoice - оплата по-безналичному расчету. Значение по-умолчанию

        2 = Cash - оплата наличными курьеру - этот тип нужно использовать
        осторожно. В ближайшее время мы от него откажемся

        в пользу приема денег с карты
      format: int32
    ApiPickupPointType:
      enum:
        - 0
        - 1
        - 2
        - 3
        - 4
        - 5
      type: integer
      format: int32
    ApiStorageFileTypes:
      enum:
        - 0
        - 1
        - 2
        - 4
        - 8
        - 16
        - 32
        - 64
        - 128
        - 256
      type: integer
      format: int32
    ApiUrgentTypes:
      enum:
        - 1
        - 2
        - 4
        - 8
        - 16
        - 32
        - 64
        - 128
        - 256
        - 512
        - 1024
        - 2048
        - 4096
        - 8192
      type: integer
      description: >-
        Типы срочности. Может использоваться как маска. \

        1 = Econom - Экономная доставка - больше сроки, ниже цена \

        2 = Standard - Стандартная доставка (используется по-умолчанию) \

        4 = Express - Экспресс доставка (быстрее чем стандартная, но и дороже) \

        8 = OnTimeExpress - Доставка ко времени (специальный вид доставки) \

        16 = DayOffExpress - Доставка в выходные и праздничные дни (специальный
        вид доставки, требует согласования с

        менеджером) \

        512 - CargoLTL - Сборные грузы LTL \

        1024 - CargoFTL - Выделенная машина FTL \

        Варианты 32, 64, 128, 256 - не используются и будут удалены в следующей
        версии
      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
    BanaoPrimaryStatus:
      enum:
        - 0
        - 10
        - 20
        - 100
      type: integer
      format: int32
    CalcManyRequestModel:
      required:
        - apiKey
        - cargo
        - deliveryOptions
        - receiver
        - sender
      type: object
      properties:
        customerOrderId:
          type: string
          description: Произвольная строка с номером заказа клиента. Сохраняется в заказе
          nullable: true
          example: MX123456
        companyId:
          type: integer
          description: >-
            Идентификатор компании, для которой рассчитываются цены. Если
            идентификатор не задан, то берется компания,

            привязанные к ключу API
          format: int32
          nullable: true
        showVendorsOptions:
          type: boolean
          description: >-
            Признак, возвращать или нет дополнительные варианты от поставщиков.
            По умолчанию - false
        sender:
          $ref: '#/components/schemas/RoutePointModel'
        receiver:
          $ref: '#/components/schemas/RoutePointModel'
        cargo:
          $ref: '#/components/schemas/CargoDescModel'
        deliveryOptions:
          $ref: '#/components/schemas/OrderDeliveryOptionsModel'
        services:
          type: array
          items:
            $ref: '#/components/schemas/OrderServiceModel'
          description: >-
            Перечень дополнительных услуг (страховка, наложенный платеж,
            частичный выкуп и т.д.)
          nullable: true
          example:
            - code: 1
              parameter: null
            - code: 2
              parameter: 2000
        additionalServices:
          $ref: '#/components/schemas/AdditionalServicesModel'
        apiKey:
          minLength: 1
          type: string
          description: apiKey - ключ клиента
          example: apiKey
      additionalProperties: false
      description: >-
        Модель для создания запроса на расчет вариантов доставки для множества
        заказов
    CalcRequestModel:
      required:
        - apiKey
        - cargo
        - deliveryOptions
        - receiver
        - sender
      type: object
      properties:
        companyId:
          type: integer
          description: >-
            Идентификатор компании, для которой рассчитываются цены. Если
            идентификатор не задан, то берется компания,

            привязанные к ключу API
          format: int32
          nullable: true
        showVendorsOptions:
          type: boolean
          description: >-
            Признак, возвращать или нет дополнительные варианты от поставщиков.
            По умолчанию - false
        sender:
          $ref: '#/components/schemas/RoutePointModel'
        receiver:
          $ref: '#/components/schemas/RoutePointModel'
        cargo:
          $ref: '#/components/schemas/CargoDescModel'
        deliveryOptions:
          $ref: '#/components/schemas/OrderDeliveryOptionsModel'
        services:
          type: array
          items:
            $ref: '#/components/schemas/OrderServiceModel'
          description: >-
            Перечень дополнительных услуг (страховка, наложенный платеж,
            частичный выкуп и т.д.)
          nullable: true
          example:
            - code: 1
              parameter: null
            - code: 2
              parameter: 2000
        additionalServices:
          $ref: '#/components/schemas/AdditionalServicesModel'
        apiKey:
          minLength: 1
          type: string
          description: apiKey - ключ клиента
          example: apiKey
      additionalProperties: false
      description: Модель для создания запроса на расчет вариантов доставки
    CallCourierRequestModel:
      required:
        - apiKey
      type: object
      properties:
        ordersId:
          type: array
          items:
            type: string
          description: >-
            Перечень идентификаторов заказов Versta, по которым нужно вызвать
            курьера

            Если указан, следующие параметры игнорируются: OrderPlaceDate
            SenderCityId, SenderAddress, VendorsId
          nullable: true
          example:
            - VS000-000-000
            - VS000-000-001
            - VS000-000-002
        orderPlaceDate:
          type: string
          description: >-
            Фильтр заказов по дата размещения в Versta. Указывается в формате
            yyyy-MM-dd. По умолчанию, текущая дата.

            Обязательно, если не указан OrdersId
          nullable: true
          example: '2020-04-20'
        senderCityId:
          type: string
          description: >-
            Фильтр заказов по коду города или населенного пункта отправителя.
            Для населенных пунктов внутри РФ - необходимо

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

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

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

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

            Обязательно, если указан SenderAddress
          nullable: true
          example: 0c5b2444-70a0-4932-980c-b4dc0d3f02b5
        senderAddress:
          type: string
          description: >-
            Фильтр заказов по адресу отправителя. Должен полностью совпадать с
            адресом, указанном в заказах!!!
          nullable: true
          example: ул Сухонская, д 11
        vendorsId:
          type: array
          items:
            type: integer
            format: int32
          description: >-
            Фильтр по поставщикам заказов. Идентификатор поставщика указан в
            параметре VendorInfo.VendorId ответа на запрос

            create
          nullable: true
          example:
            - 1
            - 2
            - 5
        takeDate:
          type: string
          description: >-
            Указывается дата забора груза в формате yyyy-MM-dd. Дата забора не
            может попадать на выходные или праздничные дни,

            если тип срочности отличный от DayOffExpress.

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

            возвращается сообщение об ошибке при создании заказа.

            По умолчанию - текущая дата.
          nullable: true
          example: '2020-04-21'
        timeFrom:
          type: string
          description: >-
            Указывается ограничение на время забора (начальное). Это ограничение
            носит рекомендательный характер и не всегда

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

            Будет указано текущее время, если TakeDate - текущая дата, и
            переданное TimeFrom ранее текущего.

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

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

            По умолчанию указывается время забора 18:00.
          format: date-span
          example: '15:00'
        apiKey:
          minLength: 1
          type: string
          description: apiKey - ключ клиента
          example: apiKey
      additionalProperties: false
      description: Описание заявки на вызов курьера по заказам
    CallCourierRequestResultModel:
      type: object
      properties:
        orders:
          type: array
          items:
            $ref: '#/components/schemas/OrderCallCourierInfo'
          description: Сведения о заказах, по которым вызывался курьер
          nullable: true
      additionalProperties: false
    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 - описание перевозимого товара
    ContactItemModel:
      required:
        - address
        - cityId
        - country
        - name
        - phone
      type: object
      properties:
        name:
          minLength: 1
          type: string
          description: Указывается или название компании или конкретное физическое лицо
        contactPerson:
          type: string
          description: >-
            Контактное лицо. Если в поле name указано название компании, то тут
            можно указать ФИО конкретного контактного лица.

            Необязательный параметр
          nullable: true
        countryName:
          type: string
          description: >-
            Возвращает название страны на русском языке для отображения
            пользователю. \

            Не заполняется при создании заказа.
          nullable: true
        cityName:
          type: string
          description: >-
            Возвращает название города на русском языке для отображения
            пользователю. \

            Не заполняется при создании заказа
          nullable: true
        address:
          minLength: 1
          type: string
          description: >-
            Адрес произвольной строкой. Адрес должен относиться к указанному в
            city городу и стране - эта проверка не

            выполняется,

            но если в поле адрес будет указан адрес из другого региона -
            доставка не гарантируется.
        phone:
          minLength: 1
          type: string
          description: >-
            Контактный телефон, по которому можно связаться с контактным лицом.
            Лучше указывать мобильный номер.

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

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

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

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

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

            лицо и тп)
        email:
          type: string
          description: E-mail контактного лица
          nullable: true
        info:
          type: string
          description: >-
            Дополнительная информация по адресу.

            Может быть указаны особенности прохода на территорию. Любая другая
            информация, которая должна помочь курьеру найти

            указанный адрес и контактное лицо.

            Необязательный параметр.
          nullable: true
        contactType:
          $ref: '#/components/schemas/ApiContactTypes'
        country:
          minLength: 1
          type: string
          description: >-
            Указывается двухбуквенный код страны в соответствии с ISO 3166-1
            alpha-2 (https://ru.wikipedia.org/wiki/ISO_3166-1)
        cityId:
          minLength: 1
          type: string
          description: >-
            Код города или населенного пункта. Для населенных пунктов: 


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


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

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


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

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


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

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

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

            указывается у отправителя и получателя
          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
      additionalProperties: false
      description: contactItemModel - информация об отправителе или получаетеле
    DeliveryOption:
      required:
        - price
        - tariff
        - tariffName
        - vendorInfo
        - vendorUrgentTypeId
      type: object
      properties:
        vendorInfo:
          $ref: '#/components/schemas/VendorInfoModel'
        vendorUrgentTypeId:
          minLength: 1
          type: string
          description: >-
            Идентификатор данного вида доставки у указанного вендора. \

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

            указанную дату)
          format: date-time
          example: '2020-04-16T00:00:00'
        deliveryTimeFrom:
          type: string
          description: Планируемая дата доставки (от)
          format: date-time
          nullable: true
          example: '2020-04-16T00:00:00+03:00'
        deliveryTimeTo:
          type: string
          description: Планируемая дата доставки (до)
          format: date-time
          nullable: true
          example: '2020-04-17T00:00:00+03:00'
        deliveryTime:
          type: string
          description: Срок доставки в виде текста для отображения пользователю
          nullable: true
          example: 1-2
        minDays:
          type: integer
          description: Минимальное количество дней доставки
          format: int32
          nullable: true
        maxDays:
          type: integer
          description: Максимальное количество дней доставки
          format: int32
          nullable: true
      additionalProperties: false
      description: Описание конкретного варианта доставки
    DeliveryOptionsModel:
      required:
        - options
      type: object
      properties:
        orderId:
          type: string
          description: >-
            Идентификатор заказа. Обязательно заполняется в ответе на вызов
            метода create и не заполняется в ответе calc
          nullable: true
        options:
          type: array
          items:
            $ref: '#/components/schemas/DeliveryOption'
          description: >-
            Варианты доставки. Если ни один вариант доставки не найден, то
            доставка в этот регион не осуществляется и

            возвращается пустой массив

            (это исключительная ситуация)
      additionalProperties: false
      description: Отображение возможных вариантов доставки
    GetOrdersRequestModel:
      required:
        - apiKey
      type: object
      properties:
        ordersId:
          type: array
          items:
            type: string
          description: |-
            Перечень идентификаторов заказов Versta
            Если указан, остальные фильтры игнорируются
          nullable: true
          example:
            - VS000-000-000
            - VS000-000-001
            - VS000-000-002
        createDateFrom:
          type: string
          description: >-
            Фильтр по дате создания заказа (начальная дата). Указывается дата в
            формате yyyy-MM-dd
          nullable: true
          example: '2020-04-18'
        createDateTo:
          type: string
          description: >-
            Фильтр по дате создания заказа (конечная дата). Указывается дата в
            формате yyyy-MM-dd
          nullable: true
          example: '2020-04-20'
        statuses:
          type: array
          items:
            $ref: '#/components/schemas/OpenApiOrderStatus'
          description: Фильтр по статусу заказа
          nullable: true
          example:
            - 5
            - 6
            - 90
        apiKey:
          minLength: 1
          type: string
          description: apiKey - ключ клиента
          example: apiKey
      additionalProperties: false
    ManyDeliveryOptionsModel:
      type: object
      properties:
        hasErrors:
          type: boolean
        options:
          type: array
          items:
            $ref: '#/components/schemas/OptionsModel'
          description: Отображение возможных вариантов доставки
          nullable: true
        total:
          $ref: '#/components/schemas/Total'
      additionalProperties: false
      description: Отображение вариантов доставки для множества заказов
    OpenApiOrderStatus:
      enum:
        - 0
        - 1
        - 2
        - 3
        - 4
        - 5
        - 6
        - 7
        - 8
        - 9
        - 10
        - 11
        - 12
        - 13
        - 14
        - 30
        - 31
        - 32
        - 50
        - 51
        - 80
        - 90
        - 91
        - 92
        - 93
        - 95
        - 97
        - 98
        - 99
      type: integer
      description: >-
        Статус заказа. Все статусы разделены на несколько групп:

        Группа 1 - Передача заказа

        Draft = 0 - Черновик

        OnApproval = 1 - На согласовании менеджера

        TransferringToVendor = 2 - Передается поставщику

        VendorError = 3 - Ошибка передачи поставщику

        VendorUnavailable = 4 - Поставщик недоступен

        TransferredToVendor = 5 - Передан поставщику

        Группа 2 - Забор заказа у отправителя

        CourierAssigned = 6 - Курьер назначен

        ParcelPickedUp = 7 - Груз забран

        CourierOnTheWay = 8 - Курьер в пути (используется для служб, у которых
        нет отдельного статуса груз забран)

        Группа 3 - Доставка в пути

        ParcelOnTheWay = 9 - Посылка в пути

        ParcelInTheRecipientCity = 10 - Посылка в городе получателя

        ParcelHandedForDelivery = 11 - Посылка передана на доставку,

        ParcelInPickupPoint = 12 - Посылка доставлена и ожидает забора в пункте
        выдачи,

        VendorStatus = 13 - Статус поставщика,

        InProgress = 14 - Исполняется,

        Группа 4 - Попытки вручения

        ChangeDateByReceiver = 30  - Дата вручения изменена получателем

        FailedDeliveryAttempt = 31 - Неудачная попытка вручения

        StoragePeriodExpires = 32 - Исполняется

        Группа 5 - Проблемы

        RequestForInformation = 50 - Запрошена дополнительная информация

        ProblemDetected = 51 - Обнаружена проблема в процессе доставки

        Группа 6 - Возврат документов

        Returning = 80 - Осуществляется возврат документов

        Группа 7 - Финальные статусы - доставка завершена с определенным
        результатом

        Finished = 90 - Заказ выполнен,

        FinishedWithAdditional = 91 - Заказы выполнен с дополнительными
        действиями (используется для спец. проектов)

        FinishedWithReturn = 93 - Заказ завершен с возвратом. Может быть в трех
        ситуациях - возврат документов, возврат груза или возврат не
        выкупленного заказа

        AutoFinished = 92 - Автозавершение

        RefuseOfDelivery = 95 - Отказ от вручения

        Группа 8 - Отмена и удаление

        CancelRequest = 97 - Запрошена отмена заказа (промежуточный статус,
        ожидаем подтверждение отмены у поставщика)

        Canceled = 98 - Заказ отменен

        Removed = 99 - Заказ удален (системный статус)
      format: int32
      example: 5
    OptionsModel:
      type: object
      properties:
        customerOrderId:
          type: string
          description: Произвольная строка с номером заказа клиента. Сохраняется в заказе
          nullable: true
          example: MX123456
        deliveryOptions:
          $ref: '#/components/schemas/DeliveryOptionsModel'
        error:
          $ref: '#/components/schemas/ApiErrorModel'
      additionalProperties: false
      description: >-
        Отображение возможных вариантов доставки для заказа при множественном
        расчёте
    OrderCallCourierInfo:
      type: object
      properties:
        orderId:
          type: string
          description: Идентификатор заказа Versta в формате VSXXXX-XXX-XXX-XXX-[XXX]
          nullable: true
        vendorPickupNum:
          type: string
          description: >-
            Номер заказа на вызов курьера от поставщика. Если null - вызвать
            курьера по заказу OrderId не удалось
          nullable: true
      additionalProperties: false
    OrderCreateModel:
      required:
        - apiKey
        - cargo
        - deliveryOptions
        - receiver
        - sender
      type: object
      properties:
        callCourier:
          type: boolean
          description: Нужен ли вызов. По умолчанию - да
        sender:
          required:
            - name
            - address
            - phone
            - country
            - cityId
          type: object
          properties:
            contactType:
              enum:
                - 1
                - 2
                - 4
                - 8
              type: integer
              description: >-
                Типы адресов. В зависимости от типа адреса необходимо заполнять
                разные поля.<br> 1 = Door - Конкретный адрес (дверь)
                        2 = MailingList - Рассылка - рассылка работает только в пределах одного города. Не используется и будет удален в дальнейшем<br>
                        4 = PickupPoint - Точка выдачи конкретного поставщика<br>
                        8 = PostOffice - Отделение почты РФ (зарезервировано для будущего использования)
            country:
              type: string
              description: >-
                Указывается двухбуквенный код страны в соответствии с ISO 3166-1
                alpha-2 (https://ru.wikipedia.org/wiki/ISO_3166-1)
            countryName:
              type: string
              description: >-
                Возвращает название страны на русском языке для отображения
                пользователю. Не заполняется при создании заказа.
            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 страну.

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

                влияет на цену 
            cityName:
              type: string
              description: >-
                Возвращает название города на русском языке для отображения
                пользователю. Не заполняется при создании заказа
            postalCode:
              type: string
              description: >-
                Почтовый индекс населенного пункта. Не обязательный параметр.
                Обязателен, если отправление международное; указывается у
                отправителя и получателя
            pickupPointId:
              type: string
              description: >-
                Идентификатор точки выдачи. Обязательно для ContactType =
                PickupPoint; игнорируется, если ContactType не равен PickupPoint
            pickupPointVendorId:
              type: string
              description: >-
                Поставщик для PickupPointId. Обязательно для ContactType =
                PickupPoint; игнорируется, если ContactType не равен PickupPoint
            name:
              type: string
              description: Указывается или название компании или конкретное физическое лицо
            contactPerson:
              type: string
              description: >-
                Контактное лицо. Если в поле name указано название компании, то
                тут можно указать ФИО конкретного контактного лица.
                Необязательный параметр
            address:
              type: string
              description: >-
                Адрес произвольной строкой. Адрес должен относиться к указанному
                в city городу и стране - эта проверка не выполняется, но если в
                поле адрес будет указан адрес из другого региона - доставка не
                гарантируется.
            phone:
              type: string
              description: >-
                Контактный телефон, по которому можно связаться с контактным
                лицом. Лучше указывать мобильный номер. Формат этого поля
                проверяется при добавлении заказа. Должен соответствовать
                следующим условиям: <br>
                            - номер должен начинаться со знака '+' или с '8'<br>
                             - если указывается несколько контактных номеров, то они должны быть разделены запятой <br>
                             - добавочный номер должен содержать только цифры и отделяется от основного номера словом 'доб.' или символом '#' <br>
                             - все дополнительные комментарии к номеру должны быть указаны в поле Info (ограничения на время звонка, контактное лицо и тп)
            email:
              type: string
              description: Email контактного лица
            info:
              type: string
              description: >-
                Дополнительная информация по адресу. Может быть указаны
                особенности прохода на территорию. Любая другая информация,
                которая должна помочь курьеру найти указанный адрес и контактное
                лицо. Необязательный параметр.
          description: >-
            Информация об отправителе. <b>Необходимо заполнять при создании
            заказа</b>
          example:
            contactType: 1
            country: RU
            cityId: 0c5b2444-70a0-4932-980c-b4dc0d3f02b5
            cityName: ИП Иванов И.И
            postalCode: '101000'
            pickupPointId: null
            pickupPointVendorId: 0
            contactPerson: Иванов Иван
            address: Смоленская площадь, д. 3
            phone: 84951234455, +79513337788
            info: Офис-центр Смоленский пассаж, 3 этаж. Позвонить за 1 час
        receiver:
          required:
            - name
            - address
            - phone
            - country
            - cityId
          type: object
          properties:
            contactType:
              enum:
                - 1
                - 2
                - 4
                - 8
              type: integer
              description: >-
                Типы адресов. В зависимости от типа адреса необходимо заполнять
                разные поля.<br> 1 = Door - Конкретный адрес (дверь)
                        2 = MailingList - Рассылка - рассылка работает только в пределах одного города. Не используется и будет удален в дальнейшем<br>
                        4 = PickupPoint - Точка выдачи конкретного поставщика<br>
                        8 = PostOffice - Отделение почты РФ (зарезервировано для будущего использования)
            country:
              type: string
              description: >-
                Указывается двухбуквенный код страны в соответствии с ISO 3166-1
                alpha-2 (https://ru.wikipedia.org/wiki/ISO_3166-1)
            countryName:
              type: string
              description: >-
                Возвращает название страны на русском языке для отображения
                пользователю. Не заполняется при создании заказа.
            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 страну.

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

                влияет на цену 
            cityName:
              type: string
              description: >-
                Возвращает название города на русском языке для отображения
                пользователю. Не заполняется при создании заказа
            postalCode:
              type: string
              description: >-
                Почтовый индекс населенного пункта. Не обязательный параметр.
                Обязателен, если отправление международное; указывается у
                отправителя и получателя
            pickupPointId:
              type: string
              description: >-
                Идентификатор точки выдачи. Обязательно для ContactType =
                PickupPoint; игнорируется, если ContactType не равен PickupPoint
            pickupPointVendorId:
              type: string
              description: >-
                Поставщик для PickupPointId. Обязательно для ContactType =
                PickupPoint; игнорируется, если ContactType не равен PickupPoint
            name:
              type: string
              description: Указывается или название компании или конкретное физическое лицо
            contactPerson:
              type: string
              description: >-
                Контактное лицо. Если в поле name указано название компании, то
                тут можно указать ФИО конкретного контактного лица.
                Необязательный параметр
            address:
              type: string
              description: >-
                Адрес произвольной строкой. Адрес должен относиться к указанному
                в city городу и стране - эта проверка не выполняется, но если в
                поле адрес будет указан адрес из другого региона - доставка не
                гарантируется.
            phone:
              type: string
              description: >-
                Контактный телефон, по которому можно связаться с контактным
                лицом. Лучше указывать мобильный номер. Формат этого поля
                проверяется при добавлении заказа. Должен соответствовать
                следующим условиям: <br>
                            - номер должен начинаться со знака '+' или с '8'<br>
                             - если указывается несколько контактных номеров, то они должны быть разделены запятой <br>
                             - добавочный номер должен содержать только цифры и отделяется от основного номера словом 'доб.' или символом '#' <br>
                             - все дополнительные комментарии к номеру должны быть указаны в поле Info (ограничения на время звонка, контактное лицо и тп)
            email:
              type: string
              description: Email контактного лица
            info:
              type: string
              description: >-
                Дополнительная информация по адресу. Может быть указаны
                особенности прохода на территорию. Любая другая информация,
                которая должна помочь курьеру найти указанный адрес и контактное
                лицо. Необязательный параметр.
          description: >-
            Информация о получателе. <b>Необходимо заполнять при создании
            заказа</b>
          example:
            contactType: 1
            country: RU
            cityId: c2deb16a-0330-4f05-821f-1d09c93331e6
            cityName: ООО "Тестовая комапания"
            postalCode: '190000'
            pickupPointId: null
            pickupPointVendorId: 0
            contactPerson: Петров Петр
            address: ул. Рентгена, 4а
            phone: 88121234455 доб.123, +79534568899#578
            info: Вход со двора
        seller:
          $ref: '#/components/schemas/SellerModel'
        cargo:
          $ref: '#/components/schemas/CargoDescModel'
        deliveryOptions:
          $ref: '#/components/schemas/OrderDeliveryOptionsModel'
        services:
          type: array
          items:
            $ref: '#/components/schemas/OrderServiceModel'
          description: >-
            Перечень дополнительных услуг (страховка, наложенный платеж,
            частичный выкуп и т.д.)
          nullable: true
          example:
            - code: 2
              parameter: '1000'
        additionalServices:
          $ref: '#/components/schemas/AdditionalServicesModel'
        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: >-
            Email адрес, на который будут приходить письма в случае если заказ
            не удалось передать поставщику по причине не доступности поставщика.
            На этот же email будут приходить письма, когда заказ будет передан.
          nullable: true
          example: emergency@email.com
        parentOrderId:
          type: string
          description: Идентификатор родительского заказа (Верста). Необязателен.
          nullable: true
          example: VSXXX-XXX-XXX-XXX
        apiKey:
          minLength: 1
          type: string
          description: apiKey - ключ клиента
          example: apiKey
      additionalProperties: false
      description: orderModel - описание заказа на перевозку
    OrderCreateResultModel:
      type: object
      properties:
        orderPushResult:
          $ref: '#/components/schemas/ResponseType'
        orderId:
          type: string
          description: >-
            Идентификатор заказа Versta в формате VSXXXX-XXX-XXX-XXX-[XXX]. Этот
            идентификатор необходимо сохранить.

            По нему в дальнейшем будет осуществляться работа с данным заказом.
          nullable: true
          example: V24X-XXX-XXX-XXX
        orderKey:
          type: string
          description: Ключ доступа к заказу без авторизации
          nullable: true
          example: xxxxxxx
        vendorInvoiceNum:
          type: string
          description: >-
            Номер накладной поставщика. Этот номер печатается на накладной. Для
            отображения клиенту
          nullable: true
          example: 62377725-23
        vendorPickupNum:
          type: string
          description: >-
            Номер заказа на вызов курьера от поставщика. Опциональный параметр.
            Для отображения пользователю
          nullable: true
          example: 4562389-78
        price:
          type: number
          description: >-
            Стоимость заказа. Пока заказ не завершен и по нему не выставлен счет
            эта стоимость может меняться.

            Стоимость включает в себя тариф и дополнительные расходы.
          format: double
          nullable: true
          example: 200
        planDeliveryDate:
          type: string
          description: Плановая дата доставки (максимальная)
          format: date-time
          example: '2020-04-18T00:00:00'
        vendorInfo:
          $ref: '#/components/schemas/VendorInfoModel'
        status:
          $ref: '#/components/schemas/OpenApiOrderStatus'
        statusName:
          type: string
          description: >-
            Текстовое описание статуса заказа для отображения пользователю.
            Зависит от поставщика и может быть достаточно

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

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

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

            На этот же e-mail будут приходить письма, когда заказ будет передан.
          nullable: true
          example: emergency@email.com
      additionalProperties: false
      description: Информация о созданном заказе
    OrderDeliveryOptionsModel:
      type: object
      properties:
        directionType:
          $ref: '#/components/schemas/ApiDirectionTypes'
        urgentType:
          $ref: '#/components/schemas/ApiUrgentTypes'
        vendorId:
          type: integer
          description: >-
            Идентификатор вендора, которому необходимо передать заказ. Если поля
            VendorId и VendorUrgentTypeId заполнены, то

            поиск дополнительных вариантов не производится.

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

            заказ с выбранным вариантом
          format: int32
          nullable: true
          example: 0
        vendorUrgentTypeId:
          type: string
          description: >-
            Идентификатор срочности вендора. Если поля VendorId и
            VendorUrgentTypeId заполнены, то поиск дополнительных

            вариантов не производится.

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

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

            ответе будут варианты доставки только от указанных в этом массиве
            поставщиков
          nullable: true
          example:
            - 0
            - 8
        vendorUrgentTypesIdFilter:
          type: array
          items:
            type: string
          description: >-
            Массив идентификаторов срочностей вендоров. Используется, как фильтр
            в расчете вариантов доставки. Если массив

            задан, то в ответе будут варианты доставки только с указанными в
            этом массиве срочностями
          nullable: true
          example:
            - '4'
            - '1'
        payer:
          $ref: '#/components/schemas/ApiPayerTypes'
        paymentType:
          $ref: '#/components/schemas/ApiPaymentTypes'
        takeDate:
          type: string
          description: >-
            Указывается дата забора груза в формате yyyy-MM-dd. Дата забора не
            может попадать на выходные или праздничные дни,

            если тип срочности отличный от DayOffExpress.

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

            возвращается сообщение об ошибке при создании заказа.

            По умолчанию - текущая дата.
          nullable: true
          example: '2020-03-31'
        autoChangeTakeDate:
          type: boolean
          description: >-
            Если true - то система будет пытаться автоматически поменять дату
            забора на следующий рабочий день, если на дату

            заданную в TakeDate

            передача заказа с заданными VendorId и VendorUrgentTypeId не
            возможна.

            По умолчанию - false
        timeFrom:
          type: string
          description: >-
            Указывается ограничение на время забора (начальное). Это ограничение
            носит рекомендательный характер и не всегда

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

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

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

            По умолчанию указывается время забора 18:00.
          format: date-span
          example: '15:00'
        comments:
          type: string
          description: >-
            Описываются необходимые действия при выполнении заказа.
            Необязательное поле
          nullable: true
          example: Курьер должен оформить пропуск на проходной
        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: DeliveryOptionMode - параметры условий доставки и забора отправления
    OrderGetModel:
      required:
        - orderInfo
      type: object
      properties:
        orderInfo:
          $ref: '#/components/schemas/OrderInfoModel'
        callCourier:
          type: boolean
          description: Нужен ли вызов. По умолчанию - да
        sender:
          required:
            - name
            - address
            - phone
            - country
            - cityId
          type: object
          properties:
            contactType:
              enum:
                - 1
                - 2
                - 4
                - 8
              type: integer
              description: >-
                Типы адресов. В зависимости от типа адреса необходимо заполнять
                разные поля.<br> 1 = Door - Конкретный адрес (дверь)
                        2 = MailingList - Рассылка - рассылка работает только в пределах одного города. Не используется и будет удален в дальнейшем<br>
                        4 = PickupPoint - Точка выдачи конкретного поставщика<br>
                        8 = PostOffice - Отделение почты РФ (зарезервировано для будущего использования)
            country:
              type: string
              description: >-
                Указывается двухбуквенный код страны в соответствии с ISO 3166-1
                alpha-2 (https://ru.wikipedia.org/wiki/ISO_3166-1)
            countryName:
              type: string
              description: >-
                Возвращает название страны на русском языке для отображения
                пользователю. Не заполняется при создании заказа.
            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 страну.

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

                влияет на цену 
            cityName:
              type: string
              description: >-
                Возвращает название города на русском языке для отображения
                пользователю. Не заполняется при создании заказа
            postalCode:
              type: string
              description: >-
                Почтовый индекс населенного пункта. Не обязательный параметр.
                Обязателен, если отправление международное; указывается у
                отправителя и получателя
            pickupPointId:
              type: string
              description: >-
                Идентификатор точки выдачи. Обязательно для ContactType =
                PickupPoint; игнорируется, если ContactType не равен PickupPoint
            pickupPointVendorId:
              type: string
              description: >-
                Поставщик для PickupPointId. Обязательно для ContactType =
                PickupPoint; игнорируется, если ContactType не равен PickupPoint
            name:
              type: string
              description: Указывается или название компании или конкретное физическое лицо
            contactPerson:
              type: string
              description: >-
                Контактное лицо. Если в поле name указано название компании, то
                тут можно указать ФИО конкретного контактного лица.
                Необязательный параметр
            address:
              type: string
              description: >-
                Адрес произвольной строкой. Адрес должен относиться к указанному
                в city городу и стране - эта проверка не выполняется, но если в
                поле адрес будет указан адрес из другого региона - доставка не
                гарантируется.
            phone:
              type: string
              description: >-
                Контактный телефон, по которому можно связаться с контактным
                лицом. Лучше указывать мобильный номер. Формат этого поля
                проверяется при добавлении заказа. Должен соответствовать
                следующим условиям: <br>
                            - номер должен начинаться со знака '+' или с '8'<br>
                             - если указывается несколько контактных номеров, то они должны быть разделены запятой <br>
                             - добавочный номер должен содержать только цифры и отделяется от основного номера словом 'доб.' или символом '#' <br>
                             - все дополнительные комментарии к номеру должны быть указаны в поле Info (ограничения на время звонка, контактное лицо и тп)
            email:
              type: string
              description: Email контактного лица
            info:
              type: string
              description: >-
                Дополнительная информация по адресу. Может быть указаны
                особенности прохода на территорию. Любая другая информация,
                которая должна помочь курьеру найти указанный адрес и контактное
                лицо. Необязательный параметр.
          description: >-
            Информация об отправителе. <b>Необходимо заполнять при создании
            заказа</b>
          example:
            contactType: 1
            country: RU
            cityId: 0c5b2444-70a0-4932-980c-b4dc0d3f02b5
            cityName: ИП Иванов И.И
            postalCode: '101000'
            pickupPointId: null
            pickupPointVendorId: 0
            contactPerson: Иванов Иван
            address: Смоленская площадь, д. 3
            phone: 84951234455, +79513337788
            info: Офис-центр Смоленский пассаж, 3 этаж. Позвонить за 1 час
        receiver:
          required:
            - name
            - address
            - phone
            - country
            - cityId
          type: object
          properties:
            contactType:
              enum:
                - 1
                - 2
                - 4
                - 8
              type: integer
              description: >-
                Типы адресов. В зависимости от типа адреса необходимо заполнять
                разные поля.<br> 1 = Door - Конкретный адрес (дверь)
                        2 = MailingList - Рассылка - рассылка работает только в пределах одного города. Не используется и будет удален в дальнейшем<br>
                        4 = PickupPoint - Точка выдачи конкретного поставщика<br>
                        8 = PostOffice - Отделение почты РФ (зарезервировано для будущего использования)
            country:
              type: string
              description: >-
                Указывается двухбуквенный код страны в соответствии с ISO 3166-1
                alpha-2 (https://ru.wikipedia.org/wiki/ISO_3166-1)
            countryName:
              type: string
              description: >-
                Возвращает название страны на русском языке для отображения
                пользователю. Не заполняется при создании заказа.
            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 страну.

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

                влияет на цену 
            cityName:
              type: string
              description: >-
                Возвращает название города на русском языке для отображения
                пользователю. Не заполняется при создании заказа
            postalCode:
              type: string
              description: >-
                Почтовый индекс населенного пункта. Не обязательный параметр.
                Обязателен, если отправление международное; указывается у
                отправителя и получателя
            pickupPointId:
              type: string
              description: >-
                Идентификатор точки выдачи. Обязательно для ContactType =
                PickupPoint; игнорируется, если ContactType не равен PickupPoint
            pickupPointVendorId:
              type: string
              description: >-
                Поставщик для PickupPointId. Обязательно для ContactType =
                PickupPoint; игнорируется, если ContactType не равен PickupPoint
            name:
              type: string
              description: Указывается или название компании или конкретное физическое лицо
            contactPerson:
              type: string
              description: >-
                Контактное лицо. Если в поле name указано название компании, то
                тут можно указать ФИО конкретного контактного лица.
                Необязательный параметр
            address:
              type: string
              description: >-
                Адрес произвольной строкой. Адрес должен относиться к указанному
                в city городу и стране - эта проверка не выполняется, но если в
                поле адрес будет указан адрес из другого региона - доставка не
                гарантируется.
            phone:
              type: string
              description: >-
                Контактный телефон, по которому можно связаться с контактным
                лицом. Лучше указывать мобильный номер. Формат этого поля
                проверяется при добавлении заказа. Должен соответствовать
                следующим условиям: <br>
                            - номер должен начинаться со знака '+' или с '8'<br>
                             - если указывается несколько контактных номеров, то они должны быть разделены запятой <br>
                             - добавочный номер должен содержать только цифры и отделяется от основного номера словом 'доб.' или символом '#' <br>
                             - все дополнительные комментарии к номеру должны быть указаны в поле Info (ограничения на время звонка, контактное лицо и тп)
            email:
              type: string
              description: Email контактного лица
            info:
              type: string
              description: >-
                Дополнительная информация по адресу. Может быть указаны
                особенности прохода на территорию. Любая другая информация,
                которая должна помочь курьеру найти указанный адрес и контактное
                лицо. Необязательный параметр.
          description: >-
            Информация о получателе. <b>Необходимо заполнять при создании
            заказа</b>
          example:
            contactType: 1
            country: RU
            cityId: c2deb16a-0330-4f05-821f-1d09c93331e6
            cityName: ООО "Тестовая комапания"
            postalCode: '190000'
            pickupPointId: null
            pickupPointVendorId: 0
            contactPerson: Петров Петр
            address: ул. Рентгена, 4а
            phone: 88121234455 доб.123, +79534568899#578
            info: Вход со двора
        seller:
          $ref: '#/components/schemas/SellerModel'
        cargo:
          $ref: '#/components/schemas/CargoDescModel'
        deliveryOptions:
          $ref: '#/components/schemas/OrderDeliveryOptionsModel'
        services:
          type: array
          items:
            $ref: '#/components/schemas/OrderServiceModel'
          description: >-
            Перечень дополнительных услуг (страховка, наложенный платеж,
            частичный выкуп и т.д.)
          nullable: true
          example:
            - code: 2
              parameter: '1000'
        additionalServices:
          $ref: '#/components/schemas/AdditionalServicesModel'
        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: >-
            Email адрес, на который будут приходить письма в случае если заказ
            не удалось передать поставщику по причине не доступности поставщика.
            На этот же email будут приходить письма, когда заказ будет передан.
          nullable: true
          example: emergency@email.com
        orderProperties:
          type: array
          items:
            $ref: '#/components/schemas/OrderPropertyModel'
          nullable: true
        parentOrderId:
          type: string
          description: Идентификатор родительского заказа (Верста). Необязателен.
          nullable: true
          example: VSXXX-XXX-XXX-XXX
      additionalProperties: false
    OrderInfoModel:
      type: object
      properties:
        deliveryDate:
          type: string
          description: Фактическая дата доставки, если заказ уже завершен
          format: date-time
          nullable: true
        receivedBy:
          type: string
          description: >-
            Получатель заказа. Проставляется, если заказ завершен. Для заказов с
            возвратом - тут проставляется ФИО получателя

            (до возврата)
          nullable: true
        orderId:
          type: string
          description: >-
            Идентификатор заказа Versta в формате VSXXXX-XXX-XXX-XXX-[XXX]. Этот
            идентификатор необходимо сохранить.

            По нему в дальнейшем будет осуществляться работа с данным заказом.
          nullable: true
          example: V24X-XXX-XXX-XXX
        orderKey:
          type: string
          description: Ключ доступа к заказу без авторизации
          nullable: true
          example: xxxxxxx
        vendorInvoiceNum:
          type: string
          description: >-
            Номер накладной поставщика. Этот номер печатается на накладной. Для
            отображения клиенту
          nullable: true
          example: 62377725-23
        vendorPickupNum:
          type: string
          description: >-
            Номер заказа на вызов курьера от поставщика. Опциональный параметр.
            Для отображения пользователю
          nullable: true
          example: 4562389-78
        price:
          type: number
          description: >-
            Стоимость заказа. Пока заказ не завершен и по нему не выставлен счет
            эта стоимость может меняться.

            Стоимость включает в себя тариф и дополнительные расходы.
          format: double
          nullable: true
          example: 200
        planDeliveryDate:
          type: string
          description: Плановая дата доставки (максимальная)
          format: date-time
          example: '2020-04-18T00:00:00'
        vendorInfo:
          $ref: '#/components/schemas/VendorInfoModel'
        status:
          $ref: '#/components/schemas/OpenApiOrderStatus'
        statusName:
          type: string
          description: >-
            Текстовое описание статуса заказа для отображения пользователю.
            Зависит от поставщика и может быть достаточно

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

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

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

            На этот же e-mail будут приходить письма, когда заказ будет передан.
          nullable: true
          example: emergency@email.com
      additionalProperties: false
      description: Модель базовых параметров заказа
    OrderPropertyModel:
      required:
        - key
      type: object
      properties:
        key:
          minLength: 1
          type: string
          description: Ключ дополнительного атрибута
          example: City
        value:
          type: string
          description: Значение дополнительного атрибута
          nullable: true
          example: Санкт-Петербург
      additionalProperties: false
    OrderPushErrorModel:
      required:
        - errors
        - orderId
      type: object
      properties:
        orderId:
          minLength: 1
          type: string
          description: Идентификатор заказа
          example: VSXXX-XXX-XXX-XXX
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ApiErrorModel'
          description: Ошибки при передаче заказа
          example:
            - errorCode: DeliveryOptionsNotFound
              errorDescription: Варианты доставки не найдены
      additionalProperties: false
      description: Модель ошибки при передаче заказа
    OrderRequestModel:
      required:
        - apiKey
        - orderId
      type: object
      properties:
        orderId:
          minLength: 1
          type: string
          description: Номер заказа Versta
          example: |2-

                            "VSXXX-XXX-XXX"
                        
        orderKey:
          type: string
          description: Ключ доступа к заказу
          nullable: true
          example: key
        apiKey:
          minLength: 1
          type: string
          description: apiKey - ключ клиента
          example: apiKey
      additionalProperties: false
    OrderServiceModel:
      required:
        - code
      type: object
      properties:
        code:
          type: integer
          description: |-
            Код услуги
            1 - Возврат документов отправителю \
            2 - Страхование груза \
            3 - Холостой пробег \
            4 - Упаковка \
            5 - Комплектация \
            6 - Проверка/примерка \
            7 - Частичный выкуп \
            8 - Осмотр вложения \
            9 - SMS-информирование \
            10 - Подтверждение заказа
          format: int32
        parameter:
          type: string
          description: >-
            Параметр услуги. Например, страховая стоимость, сумма наложенного
            платежа и др.
          nullable: true
      additionalProperties: false
      description: >-
        Перечень дополнительных услуг (страховка, наложенный платеж, частичный
        выкуп и т.д.)
    OrderStatusInfoModel:
      type: object
      properties:
        vendorInvoiceNumber:
          type: string
          description: Номер накладной поставщика. Используется в печатной накладной
          nullable: true
          example: '12312313424'
        vendorPickupNumber:
          type: string
          description: Номер вызова курьера или заказа поставщика
          nullable: true
          example: '1212312312324'
        orderStatus:
          $ref: '#/components/schemas/OpenApiOrderStatus'
        outerOrderId:
          type: string
          description: Номер заказа из внешней системы
          nullable: true
          example: '12344567678'
        verstaOrderNumber:
          type: string
          description: Наш номер заказа
          nullable: true
      additionalProperties: false
    OrderStatusesInfoModel:
      required:
        - apiKey
      type: object
      properties:
        orderStatusesInfo:
          type: array
          items:
            $ref: '#/components/schemas/OrderStatusInfoModel'
          nullable: true
        apiKey:
          minLength: 1
          type: string
          description: apiKey - ключ клиента
          example: apiKey
      additionalProperties: false
      description: >-
        Список номеров заказов поставщика и номеров накладных, для получения
        актуальных статусов по этим заказам
    OrderUpdateModel:
      required:
        - apiKey
        - cargo
        - deliveryOptions
        - orderId
        - receiver
        - sender
      type: object
      properties:
        callCourier:
          type: boolean
          description: Нужен ли вызов. По умолчанию - да
        sender:
          required:
            - name
            - address
            - phone
            - country
            - cityId
          type: object
          properties:
            contactType:
              enum:
                - 1
                - 2
                - 4
                - 8
              type: integer
              description: >-
                Типы адресов. В зависимости от типа адреса необходимо заполнять
                разные поля.<br> 1 = Door - Конкретный адрес (дверь)
                        2 = MailingList - Рассылка - рассылка работает только в пределах одного города. Не используется и будет удален в дальнейшем<br>
                        4 = PickupPoint - Точка выдачи конкретного поставщика<br>
                        8 = PostOffice - Отделение почты РФ (зарезервировано для будущего использования)
            country:
              type: string
              description: >-
                Указывается двухбуквенный код страны в соответствии с ISO 3166-1
                alpha-2 (https://ru.wikipedia.org/wiki/ISO_3166-1)
            countryName:
              type: string
              description: >-
                Возвращает название страны на русском языке для отображения
                пользователю. Не заполняется при создании заказа.
            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 страну.

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

                влияет на цену 
            cityName:
              type: string
              description: >-
                Возвращает название города на русском языке для отображения
                пользователю. Не заполняется при создании заказа
            postalCode:
              type: string
              description: >-
                Почтовый индекс населенного пункта. Не обязательный параметр.
                Обязателен, если отправление международное; указывается у
                отправителя и получателя
            pickupPointId:
              type: string
              description: >-
                Идентификатор точки выдачи. Обязательно для ContactType =
                PickupPoint; игнорируется, если ContactType не равен PickupPoint
            pickupPointVendorId:
              type: string
              description: >-
                Поставщик для PickupPointId. Обязательно для ContactType =
                PickupPoint; игнорируется, если ContactType не равен PickupPoint
            name:
              type: string
              description: Указывается или название компании или конкретное физическое лицо
            contactPerson:
              type: string
              description: >-
                Контактное лицо. Если в поле name указано название компании, то
                тут можно указать ФИО конкретного контактного лица.
                Необязательный параметр
            address:
              type: string
              description: >-
                Адрес произвольной строкой. Адрес должен относиться к указанному
                в city городу и стране - эта проверка не выполняется, но если в
                поле адрес будет указан адрес из другого региона - доставка не
                гарантируется.
            phone:
              type: string
              description: >-
                Контактный телефон, по которому можно связаться с контактным
                лицом. Лучше указывать мобильный номер. Формат этого поля
                проверяется при добавлении заказа. Должен соответствовать
                следующим условиям: <br>
                            - номер должен начинаться со знака '+' или с '8'<br>
                             - если указывается несколько контактных номеров, то они должны быть разделены запятой <br>
                             - добавочный номер должен содержать только цифры и отделяется от основного номера словом 'доб.' или символом '#' <br>
                             - все дополнительные комментарии к номеру должны быть указаны в поле Info (ограничения на время звонка, контактное лицо и тп)
            email:
              type: string
              description: Email контактного лица
            info:
              type: string
              description: >-
                Дополнительная информация по адресу. Может быть указаны
                особенности прохода на территорию. Любая другая информация,
                которая должна помочь курьеру найти указанный адрес и контактное
                лицо. Необязательный параметр.
          description: >-
            Информация об отправителе. <b>Необходимо заполнять при создании
            заказа</b>
          example:
            contactType: 1
            country: RU
            cityId: 0c5b2444-70a0-4932-980c-b4dc0d3f02b5
            cityName: ИП Иванов И.И
            postalCode: '101000'
            pickupPointId: null
            pickupPointVendorId: 0
            contactPerson: Иванов Иван
            address: Смоленская площадь, д. 3
            phone: 84951234455, +79513337788
            info: Офис-центр Смоленский пассаж, 3 этаж. Позвонить за 1 час
        receiver:
          required:
            - name
            - address
            - phone
            - country
            - cityId
          type: object
          properties:
            contactType:
              enum:
                - 1
                - 2
                - 4
                - 8
              type: integer
              description: >-
                Типы адресов. В зависимости от типа адреса необходимо заполнять
                разные поля.<br> 1 = Door - Конкретный адрес (дверь)
                        2 = MailingList - Рассылка - рассылка работает только в пределах одного города. Не используется и будет удален в дальнейшем<br>
                        4 = PickupPoint - Точка выдачи конкретного поставщика<br>
                        8 = PostOffice - Отделение почты РФ (зарезервировано для будущего использования)
            country:
              type: string
              description: >-
                Указывается двухбуквенный код страны в соответствии с ISO 3166-1
                alpha-2 (https://ru.wikipedia.org/wiki/ISO_3166-1)
            countryName:
              type: string
              description: >-
                Возвращает название страны на русском языке для отображения
                пользователю. Не заполняется при создании заказа.
            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 страну.

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

                влияет на цену 
            cityName:
              type: string
              description: >-
                Возвращает название города на русском языке для отображения
                пользователю. Не заполняется при создании заказа
            postalCode:
              type: string
              description: >-
                Почтовый индекс населенного пункта. Не обязательный параметр.
                Обязателен, если отправление международное; указывается у
                отправителя и получателя
            pickupPointId:
              type: string
              description: >-
                Идентификатор точки выдачи. Обязательно для ContactType =
                PickupPoint; игнорируется, если ContactType не равен PickupPoint
            pickupPointVendorId:
              type: string
              description: >-
                Поставщик для PickupPointId. Обязательно для ContactType =
                PickupPoint; игнорируется, если ContactType не равен PickupPoint
            name:
              type: string
              description: Указывается или название компании или конкретное физическое лицо
            contactPerson:
              type: string
              description: >-
                Контактное лицо. Если в поле name указано название компании, то
                тут можно указать ФИО конкретного контактного лица.
                Необязательный параметр
            address:
              type: string
              description: >-
                Адрес произвольной строкой. Адрес должен относиться к указанному
                в city городу и стране - эта проверка не выполняется, но если в
                поле адрес будет указан адрес из другого региона - доставка не
                гарантируется.
            phone:
              type: string
              description: >-
                Контактный телефон, по которому можно связаться с контактным
                лицом. Лучше указывать мобильный номер. Формат этого поля
                проверяется при добавлении заказа. Должен соответствовать
                следующим условиям: <br>
                            - номер должен начинаться со знака '+' или с '8'<br>
                             - если указывается несколько контактных номеров, то они должны быть разделены запятой <br>
                             - добавочный номер должен содержать только цифры и отделяется от основного номера словом 'доб.' или символом '#' <br>
                             - все дополнительные комментарии к номеру должны быть указаны в поле Info (ограничения на время звонка, контактное лицо и тп)
            email:
              type: string
              description: Email контактного лица
            info:
              type: string
              description: >-
                Дополнительная информация по адресу. Может быть указаны
                особенности прохода на территорию. Любая другая информация,
                которая должна помочь курьеру найти указанный адрес и контактное
                лицо. Необязательный параметр.
          description: >-
            Информация о получателе. <b>Необходимо заполнять при создании
            заказа</b>
          example:
            contactType: 1
            country: RU
            cityId: c2deb16a-0330-4f05-821f-1d09c93331e6
            cityName: ООО "Тестовая комапания"
            postalCode: '190000'
            pickupPointId: null
            pickupPointVendorId: 0
            contactPerson: Петров Петр
            address: ул. Рентгена, 4а
            phone: 88121234455 доб.123, +79534568899#578
            info: Вход со двора
        seller:
          $ref: '#/components/schemas/SellerModel'
        cargo:
          $ref: '#/components/schemas/CargoDescModel'
        deliveryOptions:
          $ref: '#/components/schemas/OrderDeliveryOptionsModel'
        services:
          type: array
          items:
            $ref: '#/components/schemas/OrderServiceModel'
          description: >-
            Перечень дополнительных услуг (страховка, наложенный платеж,
            частичный выкуп и т.д.)
          nullable: true
          example:
            - code: 2
              parameter: '1000'
        additionalServices:
          $ref: '#/components/schemas/AdditionalServicesModel'
        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: Логистика
        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: >-
            Email адрес, на который будут приходить письма в случае если заказ
            не удалось передать поставщику по причине не доступности поставщика.
            На этот же email будут приходить письма, когда заказ будет передан.
          nullable: true
          example: emergency@email.com
        parentOrderId:
          type: string
          description: Идентификатор родительского заказа (Верста). Необязателен.
          nullable: true
          example: VSXXX-XXX-XXX-XXX
        orderId:
          minLength: 1
          type: string
          description: Номер заказа Versta
          example: |2-

                            "VSXXX-XXX-XXX"
                        
        orderKey:
          type: string
          description: Ключ доступа к заказу
          nullable: true
          example: key
        apiKey:
          minLength: 1
          type: string
          description: apiKey - ключ клиента
          example: apiKey
        customerOrderId:
          description: Произвольная строка с номером заказа клиента. Сохраняется в заказе
          example: MX123456
      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
    PickupPointsRequestModel:
      required:
        - apiKey
        - cityId
        - 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: >-
            Фильтр точек выдачи по городу. Обязательный параметр.

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

            6) или КЛАДР,

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

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

            Город должен попадать в указанную в параметре country страну.
          example: 0c5b2444-70a0-4932-980c-b4dc0d3f02b5
        vendorId:
          type: integer
          description: >-
            Фильтр по поставщику.

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

            Если данный параметр не указан, то возвращается список точек выдачи
            всех доступных поставщиков.
          format: int32
          nullable: true
          example: 8
        cargoType:
          $ref: '#/components/schemas/ApiCargoTypes'
        cargoItems:
          type: array
          items:
            $ref: '#/components/schemas/CargoItemModel'
          description: >-
            Массив с описанием параметров мест. Необязательный параметр для
            заполнения.

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

            суммарному весу.

            Если указан данный параметр необходима указать тип груза CargoType
          nullable: true
          example:
            - weight: 2
              qty: 2
              l: 13.5
              h: 10
              w: 20
            - weight: 10
              qty: 1
              l: 13.5
              h: 30
              w: 40
        withPriceCalc:
          type: boolean
          description: >-
            Если указано true, то к каждой точке также считаются варианты
            доставки (это увеличивает время работы метода)

            Данная опция является эксперементальной. По-умолчанию - false
          example: false
        weight:
          type: number
          description: >-
            Если задан параметр WithPriceCalc, то тут задаем вес в кг который
            будет использоваться для расчета вариантов
          format: double
          example: 1
        apiKey:
          minLength: 1
          type: string
          description: apiKey - ключ клиента
          example: apiKey
      additionalProperties: false
      description: Информация для запроса списка точек выдачи поставщика
    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: Информация по запросу списка точек выдачи поставщика
    PrintRequestModel:
      required:
        - apiKey
        - orderId
      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
        invoiceCopy:
          type: integer
          description: Количество копий накладной. По умолчанию - 2
          format: int32
        printInvoice:
          type: boolean
          description: Печатать накладную. По умолчанию - true
        printInsurance:
          type: boolean
          description: Печатать страховой полис
        printMarks:
          type: boolean
          description: Печатать грузовые марки
        docsToPrint:
          $ref: '#/components/schemas/ApiStorageFileTypes'
        orderId:
          minLength: 1
          type: string
          description: Номер заказа Versta
          example: |2-

                            "VSXXX-XXX-XXX"
                        
        orderKey:
          type: string
          description: Ключ доступа к заказу
          nullable: true
          example: key
        apiKey:
          minLength: 1
          type: string
          description: apiKey - ключ клиента
          example: apiKey
      additionalProperties: false
    PushToVendorModel:
      required:
        - apiKey
        - orderId
        - vendorId
        - vendorUrgentTypeId
      type: object
      properties:
        vendorId:
          type: integer
          description: >-
            Идентификатор вендора, которому необходимо передать заказ. Этот
            идентификатор необходимо взять из вариантов

            доставки (DeliveryOptions)
          format: int32
          example: 0
        vendorUrgentTypeId:
          minLength: 1
          type: string
          description: >-
            Идентификатор срочности поставщика. Этот идентификатор необходимо
            взять из вариантов доставки (DeliveryOptions)
          example: '4'
        autoChangeTakeDate:
          type: boolean
          description: >-
            Если true - то система будет пытаться автоматически поменять дату
            забора на следующий рабочий день, если на дату

            заданную в TakeDate

            передача заказа с заданными VendorId и VendorUrgentTypeId не
            возможна.

            По-умолчанию - false
        orderId:
          minLength: 1
          type: string
          description: Номер заказа Versta
          example: |2-

                            "VSXXX-XXX-XXX"
                        
        orderKey:
          type: string
          description: Ключ доступа к заказу
          nullable: true
          example: key
        apiKey:
          minLength: 1
          type: string
          description: apiKey - ключ клиента
          example: apiKey
      additionalProperties: false
      description: Модель запроса при передаче заказа поставщику
    ResponseType:
      enum:
        - 0
        - 1
        - 2
      type: integer
      description: >-
        Типы ошибок при передаче заказа поставщику: \

        0 = EverythingIsOk - заказ успешно передан поставщику, можно печатать
        накладную \

        1 = WasErrorButCanPrint - при передаче заказа возникла ошибка, но
        пользователь может печатать накладную

        (ошибка будет исправлена автоматически, никакие дополнительные действие
        не требуются) \

        2 = WasErrorAndCantPrint - при передачи поставщику возникла ошибка и
        накладная не может быть напечатана сейчас.

        Ошибка будет исправлена автоматически и после этого можно будет
        распечатать накладную (такие ситуации возникают не

        часто)
      format: int32
    RoutePointModel:
      required:
        - cityId
        - country
      type: object
      properties:
        contactType:
          $ref: '#/components/schemas/ApiContactTypes'
        country:
          minLength: 1
          type: string
          description: >-
            Указывается двухбуквенный код страны в соответствии с ISO 3166-1
            alpha-2 (https://ru.wikipedia.org/wiki/ISO_3166-1)
        cityId:
          minLength: 1
          type: string
          description: >-
            Код города или населенного пункта. Для населенных пунктов: 


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


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

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


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

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


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

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

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

            указывается у отправителя и получателя
          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
      additionalProperties: false
      description: Описание точки маршрута
    SellerModel:
      type: object
      properties:
        name:
          maxLength: 100
          type: string
          description: Название истинного продавца товара
          nullable: true
        phone:
          maxLength: 100
          type: string
          description: Телефонный номер истинного продавца товара
          nullable: true
        address:
          maxLength: 100
          type: string
          description: Адрес истинного продавца товара
          nullable: true
      additionalProperties: false
      description: >-
        Информация об истинном продавце. <b>Необходимо заполнять при создании
        заказа интернет-магазина</b>
    Total:
      required:
        - price
      type: object
      properties:
        deliveryTime:
          type: string
          description: Срок доставки в виде текста для отображения пользователю
          nullable: true
          example: 1-2
        minDays:
          type: integer
          description: Минимальное количество дней доставки
          format: int32
          nullable: true
        maxDays:
          type: integer
          description: Максимальное количество дней доставки
          format: int32
          nullable: true
        price:
          type: number
          description: >-
            Полная цена для пользователя в рублях. Включая все дополнительные
            сервисы, страховку и налоги и НДС (если

            применимо)
          format: double
          example: 490
      additionalProperties: false
      description: >-
        Суммированные сроки (минимум минимального - максимум максимального) и
        цена всех заказов
    TrackItem:
      required:
        - eventDateTime
        - eventSource
        - eventText
        - isReturn
        - 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:
          $ref: '#/components/schemas/OpenApiOrderStatus'
        isReturn:
          type: boolean
          description: Признак того, что событие связано с возвратом заказа отправителю
          example: false
      additionalProperties: false
      description: Строчка отслеживания
    TrackResultsModel:
      required:
        - trackItems
      type: object
      properties:
        trackItems:
          type: array
          items:
            $ref: '#/components/schemas/TrackItem'
          description: События по заказу отсортированные в хронологическом порядке
      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: Информация о поставщике
