{
  "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) и передает его поставщику на выполнение или\nвозвращает возможные вариант доставки. \\\nДля того чтобы заказ был сразу передан поставщику, необходимо указать поля VendorId и VendorUrgentTypeId в\nDeliveryOptions \\\nЕсли данные поля не заполнены, то возвращается список возможных вариантов доставки (DeliveryOptions) \\\nПосле выбора варианта и для передачи заказа поставщику, необходимо вызывать метод 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) и передает их поставщику(-ам) на выполнение или\nвозвращает возможные варианты доставки. \\\nДля того чтобы заказ был сразу передан поставщику, необходимо указать поля VendorId и VendorUrgentTypeId в\nDeliveryOptions \\\nЕсли данные поля не заполнены, то возвращается список возможных вариантов доставки (DeliveryOptions) \\\nПосле выбора варианта и для передачи заказа поставщику, необходимо вызывать метод 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": "Заказ не может быть передан с запрашиваемым типом срочности/поставщиком. В ответе содержаться\nварианты по которым заказ может быть передан. При отображении этих вариантов НЕ УЧИТЫВАЕТСЯ изначально запрошенный\nдля заказа тип срочности",
            "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": "Для вызова курьера Вы можете указать перечень заказов, по которым будет вызван курьер, либо фильтры по\nразмещенным заказам: дата размещения заказа, поставщик, город и адрес отправителя. Также нужно указать дату и\nинтервал приезда курьера",
        "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": "Рассчитывает стоимость по переданным параметрам и возвращает возможные варианты доставки для отображения\nпользователю.",
        "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": "Рассчитывает стоимость по переданным параметрам и возвращает возможные варианты доставки для отображения\nпользователю.",
        "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": "Создает запрос на отмену заказа и возвращает результат создания этого запроса. Следует обратить внимание, что по\nправилам тарифного положения\nбесплатная отмена заказа доступна только в течении 20 минут после его создания. Далее за каждый отмененный заказ\nможет взиматься плата, согласно тарифу\n(см. тарифное положение)",
        "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 \\\nСтоимость застрахованного отправления - см. договор про условия и правила страхования грузов",
            "format": "double",
            "nullable": true,
            "example": 10.99
          },
          "insuranceCurrency": {
            "type": "string",
            "description": "Устаревшее! \\\nУказывается трехбуквенный код валюты суммы страховки (в соответствии с ISO 4217\n(https://ru.wikipedia.org/wiki/ISO_4217).\nВ настоящий момент поддерживается только 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": "Состояние груза:\n0 - Новый \\\n1 - Б/У \\",
        "format": "int32"
      },
      "ApiCargoTypes": {
        "enum": [
          1,
          2,
          4,
          8,
          32,
          64,
          128,
          256,
          512
        ],
        "type": "integer",
        "description": "Тип груза для перевозки: \\\n1 - Docs - Документы \\\n2 - CargoRegular - Обычный груз \\\n4 - CargoDanger - Опасный груз (к опасным грузам относятся грузы определенной категории. см. правила перевозки)\n8 - CargoOversize - (устаревшее) Негабаритный груз - груз в котором одно из мест по сумме трех измерений первышает 270 см или\nвес превышает 80 кг. Вместо этого признака нужно передавать габариты и вес груза. Под каждого поставщика данный параметр определяется\nавтоматически по габаритам. Сейчас ни на что не влияет \\\n32 - CargoFragile - Хрупкий груз - груз при перевозке которого должны соблюдаться специальные условия размещения\n(см. правила перевозки) \\\n64 - OnlineStoreOrder - Посылка интернет-магазина\n128 - LTL -  Сборный груз\n256 - FTL - Выделенная машина\n512 - RussianPostDocs - Документы почты России.",
        "format": "int32"
      },
      "ApiContactTypes": {
        "enum": [
          1,
          2,
          4,
          8
        ],
        "type": "integer",
        "description": "Типы адресов. В зависимости от типа адреса необходимо заполнять разные поля.\n1 = Door - Конкретный адрес (дверь) \\\n2 = MailingList - Рассылка - рассылка работает только в пределах одного города. Не используется и будет удален в\nдальнейшем \\\n4 = PickupPoint - Точка выдачи конкретного поставщика \\\n8 = PostOffice - Отделение почты РФ (зарезервировано для будущего использования)",
        "format": "int32"
      },
      "ApiDangerClass": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9
        ],
        "type": "integer",
        "description": "Класс опасности груза",
        "format": "int32"
      },
      "ApiDirectionTypes": {
        "enum": [
          1,
          2
        ],
        "type": "integer",
        "description": "Направление отправки. Может использоваться как маска. \\\n1 = OneWay - отправка в одну сторону \\\n2 = 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": "Тип плательщика. Может использоваться как маска. \\\n1 = Customer - клиент с оплатой по безналичному расчету (по-умолчанию) \\\n2 = Sender - доставку оплачивает отправитель (применяется только вместе с типом оплаты - наличные) \\\n4 = Recipient - доставку оплачивает получатель (применяется только вместе с типом оплаты - наличные)",
        "format": "int32"
      },
      "ApiPaymentStatuses": {
        "enum": [
          1,
          2,
          4,
          8,
          16,
          32
        ],
        "type": "integer",
        "format": "int32"
      },
      "ApiPaymentTypes": {
        "enum": [
          1,
          2,
          4,
          8
        ],
        "type": "integer",
        "description": "Тип оплаты. Может использоваться как маска. \\\n1 = Invoice - оплата по безналичному расчету. Значение по-умолчанию \\\n2 = Cash - оплата наличными курьеру - этот тип нужно использовать осторожно. В ближайшее время мы от него откажемся \\\n4 = Card - оплата картой перевозчику при передаче груза \\\n8 = OnlineAcquiring - онлайн-предоплата через интернет-эквайринг",
        "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": "Типы срочности. Может использоваться как маска. \\\n1 = Econom - Экономная доставка - больше сроки, ниже цена \\\n2 = Standard - Стандартная доставка (используется по-умолчанию) \\\n4 = Express - Экспресс доставка (быстрее чем стандартная, но и дороже) \\\n8 = OnTimeExpress - Доставка ко времени (специальный вид доставки) \\\n16 = DayOffExpress - Доставка в выходные и праздничные дни (специальный вид доставки, требует согласования с\nменеджером) \\\n512 - CargoLTL - Сборные грузы LTL \\\n1024 - CargoFTL - Выделенная машина FTL \\\nВарианты 32, 64, 128, 256 - не используются и будут удалены в следующей версии",
        "format": "int32"
      },
      "ApiVatRate": {
        "enum": [
          0,
          5,
          7,
          10,
          18,
          20,
          22
        ],
        "type": "integer",
        "description": "Ставка НДС \\\nVAT0 - НДС 0% \\\nVAT5 - НДС 5% \\\nVAT7 - НДС 7% \\\nVAT10 - НДС 10% \\\nVAT18 - НДС 18% \\\nVAT20 - НДС 20% \\\nVAT22 - НДС 22% \\",
        "format": "int32"
      },
      "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": "Идентификатор компании, для которой рассчитываются цены. Если идентификатор не задан, то берется компания,\nпривязанные к ключу 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": "Идентификатор компании, для которой рассчитываются цены. Если идентификатор не задан, то берется компания,\nпривязанные к ключу 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, по которым нужно вызвать курьера\nЕсли указан, следующие параметры игнорируются: OrderPlaceDate SenderCityId, SenderAddress, VendorsId",
            "nullable": true,
            "example": [
              "VS000-000-000",
              "VS000-000-001",
              "VS000-000-002"
            ]
          },
          "orderPlaceDate": {
            "type": "string",
            "description": "Фильтр заказов по дата размещения в Versta. Указывается в формате yyyy-MM-dd. По умолчанию, текущая дата.\nОбязательно, если не указан OrdersId",
            "nullable": true,
            "example": "2020-04-20"
          },
          "senderCityId": {
            "type": "string",
            "description": "Фильтр заказов по коду города или населенного пункта отправителя. Для населенных пунктов внутри РФ - необходимо\nуказывать код ФИАС (уровень 4 или 6) или КЛАДР,\nдля населенных пунктов за пределами РФ - Идентификатор объекта в базе GeoNames\n(https://ru.wikipedia.org/wiki/GeoNames).\nГород должен попадать в указанную в параметре country страну.\nОбязательно, если указан 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 ответа на запрос\ncreate",
            "nullable": true,
            "example": [
              1,
              2,
              5
            ]
          },
          "takeDate": {
            "type": "string",
            "description": "Указывается дата забора груза в формате yyyy-MM-dd. Дата забора не может попадать на выходные или праздничные дни,\nесли тип срочности отличный от DayOffExpress.\nТакже, существуют ограничения на время размещения заказа с датой забора сегодня. Если дата не подходящая, то\nвозвращается сообщение об ошибке при создании заказа.\nПо умолчанию - текущая дата.",
            "nullable": true,
            "example": "2020-04-21"
          },
          "timeFrom": {
            "type": "string",
            "description": "Указывается ограничение на время забора (начальное). Это ограничение носит рекомендательный характер и не всегда\nможет быть соблюдено.\nБудет указано текущее время, если TakeDate - текущая дата, и переданное TimeFrom ранее текущего.\nПо умолчанию указывается время забора 09:00 или текущее время, если TakeDate - текущая дата.",
            "format": "date-span",
            "example": "12:00"
          },
          "timeTo": {
            "type": "string",
            "description": "Указывается ограничение на время забора (конечное). Это ограничение носит рекомендательный характер и не всегда\nможет быть соблюдено.\nПо умолчанию указывается время забора 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,
            "example": "\n                [{OrderId: \"VS000-000-000\", \"VendorPickupNum\": \"123456\"}, {OrderId: \"VS000-000-001\", \"VendorPickupNum\": null},\n                {OrderId: \"VS000-000-002\", \"VendorPickupNum\": \"4563322\"}]\n            "
          }
        },
        "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": "Таможенная стоимость отправления. Обязательно указывается, если страна получателя и отправителя не совпадают\n(отправление пересекает границу)",
            "format": "double",
            "nullable": true,
            "example": 100.99
          },
          "customsCurrency": {
            "type": "string",
            "description": "Трехбуквенный код валюты таможенной стоимости в соответствии с ISO 4217 (https://ru.wikipedia.org/wiki/ISO_4217)",
            "nullable": true,
            "example": "RUB"
          },
          "natureOfGoods": {
            "type": "string",
            "description": "Характер груза (внутренний код Versta). Для получения доступных значений используйте GET /openapi/v2/NatureOfGoods. \\\nОбязателен для передачи заказов некоторым поставщикам (Деловые Линии, Спецсвязь, KIT и др). \\",
            "nullable": true,
            "example": "tires"
          },
          "isUsed": {
            "type": "boolean",
            "description": "Признак того, что груз является б/у"
          },
          "hsCode": {
            "type": "string",
            "description": "Товарная номенклатура внешнеэкономической деятельности",
            "nullable": true,
            "example": "4901990000"
          },
          "weight": {
            "type": "number",
            "format": "double",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "cargoDescModel - описание груза"
      },
      "CargoItemModel": {
        "required": [
          "qty",
          "weight"
        ],
        "type": "object",
        "properties": {
          "weight": {
            "type": "number",
            "description": "Вес места в кг",
            "format": "double",
            "example": 0.5
          },
          "qty": {
            "type": "integer",
            "description": "Указывается кол-во грузомест с обозначенными параметрами",
            "format": "int32",
            "example": 2
          },
          "l": {
            "type": "number",
            "description": "Габарит длина в сантиметрах.\nГабаритные значения груза необходимы для расчета объемного веса. Они необязательны для документов, но если указан\nхоть один, остальные также должны быть заданы",
            "format": "double",
            "nullable": true,
            "example": 13.5
          },
          "h": {
            "type": "number",
            "description": "Габарит высота в сантиметрах.\nГабаритные значения груза необходимы для расчета объемного веса. Они необязательны для документов, но если указан\nхоть один, остальные также должны быть заданы",
            "format": "double",
            "nullable": true,
            "example": 10
          },
          "w": {
            "type": "number",
            "description": "Габарит ширина в сантиметрах.\nГабаритные значения груза необходимы для расчета объемного веса. Они необязательны для документов, но если указан\nхоть один, остальные также должны быть заданы",
            "format": "double",
            "nullable": true,
            "example": 20
          },
          "volumeWeight": {
            "type": "number",
            "description": "Объемный вес в кг. Если заданы габаритные размеры груза, то рассчитывается объемный вес. Этот параметр\nрассчитывается автоматически и НЕ ЗАПОЛНЯЕТСЯ при создании заказа.",
            "format": "double",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "Описание грузоместа или комментарии к грузоместу",
            "nullable": true,
            "example": "Ноутбук"
          },
          "volume": {
            "type": "number",
            "description": "Объем в кубических метрах для всего грузового места.\nЭтот параметр является необязательным. Если он указан, то его значение применяется ко всей посылке.\nЕсли указано значение для `Volume`, то в CargoItems может быть указан только один объект.",
            "format": "double",
            "nullable": true,
            "example": 6
          }
        },
        "additionalProperties": false,
        "description": "cargoItemModel - описание грузоместа"
      },
      "CargoProductModel": {
        "required": [
          "name",
          "productId",
          "qty"
        ],
        "type": "object",
        "properties": {
          "barcode": {
            "maxLength": 150,
            "type": "string",
            "description": "Маркировка товара. Если указана маркировка, Qty не может быть больше 1",
            "nullable": true
          },
          "productId": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "Идентификатор/артикул товара",
            "example": "A12B3456"
          },
          "name": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string",
            "description": "Название товара. Может содержать его описание: размер, цвет и т.д.",
            "example": "Мобильные телефоны Nokia"
          },
          "weight": {
            "type": "number",
            "description": "Вес единицы товара в кг. Если не задан, то считаем что вес товара 0.1 кг",
            "format": "double",
            "example": 0.1
          },
          "cost": {
            "type": "number",
            "description": "Объявленная стоимость единицы товара",
            "format": "double",
            "example": 600
          },
          "costForReceiver": {
            "type": "number",
            "description": "Сумма, которую оплачивает получатель при вручении.\nОбязателен для заполнения, если запрошена услуга \"Наложенный платеж\"",
            "format": "double",
            "nullable": true,
            "example": 800
          },
          "vatRate": {
            "$ref": "#/components/schemas/ApiVatRate"
          },
          "qty": {
            "type": "integer",
            "description": "Количество товаров. Не может быть больше 1, если указана маркировка (Barcode)",
            "format": "int32",
            "example": 1
          },
          "purchasedQty": {
            "type": "integer",
            "description": "Количество выкупленных товаров. Если данных о выкупе нет - null",
            "format": "int32",
            "nullable": true
          },
          "purchasedAmount": {
            "type": "number",
            "description": "Сумма оплаты за выкупленные товары. Если данных о выкупе нет - null",
            "format": "double",
            "nullable": true
          },
          "serialNumber": {
            "type": "string",
            "nullable": true
          },
          "cargoItemIndex": {
            "type": "integer",
            "description": "Индекс места v24.OpenApi.Models.ApiV1.Orders.CargoItemModel, к которому относится товар",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "CargoProductModel - описание перевозимого товара"
      },
      "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": "Контактный телефон, по которому можно связаться с контактным лицом. Лучше указывать мобильный номер. Формат этого поля проверяется при добавлении заказа. Должен соответствовать следующим условиям: <br>\n            - номер должен начинаться со знака '+' или с '8'<br>\n             - если указывается несколько контактных номеров, то они должны быть разделены запятой <br>\n             - добавочный номер должен содержать только цифры и отделяется от основного номера словом 'доб.' или символом '#' <br>\n             - все дополнительные комментарии к номеру должны быть указаны в поле Info (ограничения на время звонка, контактное лицо и тп)"
          },
          "email": {
            "type": "string",
            "description": "Email контактного лица",
            "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": "Код города или населенного пункта. Для населенных пунктов: \n- внутри РФ - необходимо указывать код ФИАС (уровень 4 или 6) или КЛАДР,\n- в странах Беларуси, Казахстана и Узбекистана - Тип объекта и Идентификатор объекта в базе OpenStreetMap. Пример <i>relation:2465058</i> (https://ru.wikipedia.org/wiki/OpenStreetMap).\n- в остальных населенных пунктов за пределами РФ - Идентификатор объекта в базе GeoNames (https://ru.wikipedia.org/wiki/GeoNames).\nГород должен попадать в указанную в параметре country страну.\nЭтот параметр очень важен и определяет в том числе какому поставщику будет передан заказа. Также этот параметр\nвлияет на цену "
          },
          "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": "Идентификатор данного вида доставки у указанного вендора. \\\nПоля VendorId, VendorUrgentTypeId и TakeDate передаются для указания конкретного варианта доставки",
            "example": "4"
          },
          "tariffName": {
            "minLength": 1,
            "type": "string",
            "description": "Название тарифа для отображения пользователю",
            "example": "Срочная"
          },
          "comments": {
            "type": "string",
            "description": "Произвольные комментарии к тарифу, если есть",
            "nullable": true,
            "example": "Москва - Санкт-Петербург Срочная доставка"
          },
          "price": {
            "type": "number",
            "description": "Полная цена для пользователя в рублях. Включая все дополнительные сервисы, страховку и налоги и НДС (если\nприменимо)",
            "format": "double",
            "example": 490
          },
          "tariff": {
            "type": "number",
            "description": "Цена тарифа без дополнительных сервисов и страховки. Включая все налоги и НДС (если применимо)",
            "format": "double",
            "example": 490
          },
          "takeDate": {
            "type": "string",
            "description": "Дата забора (может не совпадать с переданной в запросе, если данный вариант тарифа уже нельзя сделать с забором на\nуказанную дату)",
            "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": "Варианты доставки. Если ни один вариант доставки не найден, то доставка в этот регион не осуществляется и\nвозвращается пустой массив\n(это исключительная ситуация)"
          }
        },
        "additionalProperties": false,
        "description": "Отображение возможных вариантов доставки"
      },
      "GetOrdersRequestModel": {
        "required": [
          "apiKey"
        ],
        "type": "object",
        "properties": {
          "ordersId": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Перечень идентификаторов заказов Versta\nЕсли указан, остальные фильтры игнорируются",
            "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": "Статус заказа. Все статусы разделены на несколько групп:\nГруппа 1 - Передача заказа\nDraft = 0 - Черновик\nOnApproval = 1 - На согласовании менеджера\nTransferringToVendor = 2 - Передается поставщику\nVendorError = 3 - Ошибка передачи поставщику\nVendorUnavailable = 4 - Поставщик недоступен\nTransferredToVendor = 5 - Передан поставщику\nГруппа 2 - Забор заказа у отправителя\nCourierAssigned = 6 - Курьер назначен\nParcelPickedUp = 7 - Груз забран\nCourierOnTheWay = 8 - Курьер в пути (используется для служб, у которых нет отдельного статуса груз забран)\nГруппа 3 - Доставка в пути\nParcelOnTheWay = 9 - Посылка в пути\nParcelInTheRecipientCity = 10 - Посылка в городе получателя\nParcelHandedForDelivery = 11 - Посылка передана на доставку,\nParcelInPickupPoint = 12 - Посылка доставлена и ожидает забора в пункте выдачи,\nVendorStatus = 13 - Статус поставщика,\nInProgress = 14 - Исполняется,\nГруппа 4 - Попытки вручения\nChangeDateByReceiver = 30  - Дата вручения изменена получателем\nFailedDeliveryAttempt = 31 - Неудачная попытка вручения\nStoragePeriodExpires = 32 - Исполняется\nГруппа 5 - Проблемы\nRequestForInformation = 50 - Запрошена дополнительная информация\nProblemDetected = 51 - Обнаружена проблема в процессе доставки\nГруппа 6 - Возврат документов\nReturning = 80 - Осуществляется возврат документов\nГруппа 7 - Финальные статусы - доставка завершена с определенным результатом\nFinished = 90 - Заказ выполнен,\nFinishedWithAdditional = 91 - Заказы выполнен с дополнительными действиями (используется для спец. проектов)\nFinishedWithReturn = 93 - Заказ завершен с возвратом. Может быть в трех ситуациях - возврат документов, возврат груза или возврат не выкупленного\nзаказа\nAutoFinished = 92 - Автозавершение\nRefuseOfDelivery = 95 - Отказ от вручения\nГруппа 8 - Отмена и удаление\nCancelRequest = 97 - Запрошена отмена заказа (промежуточный статус, ожидаем подтверждение отмены у поставщика)\nCanceled = 98 - Заказ отменен\nRemoved = 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": [
              "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": "Контактный телефон, по которому можно связаться с контактным лицом. Лучше указывать мобильный номер. Формат этого поля проверяется при добавлении заказа. Должен соответствовать следующим условиям: <br>\n            - номер должен начинаться со знака '+' или с '8'<br>\n             - если указывается несколько контактных номеров, то они должны быть разделены запятой <br>\n             - добавочный номер должен содержать только цифры и отделяется от основного номера словом 'доб.' или символом '#' <br>\n             - все дополнительные комментарии к номеру должны быть указаны в поле Info (ограничения на время звонка, контактное лицо и тп)"
              },
              "email": {
                "type": "string",
                "description": "Email контактного лица",
                "nullable": true
              },
              "info": {
                "type": "string",
                "description": "Дополнительная информация по адресу. Может быть указаны особенности прохода на территорию. Любая другая информация, которая должна помочь курьеру найти указанный адрес и контактное лицо. Необязательный параметр.",
                "nullable": true
              },
              "contactType": {
                "enum": [
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8
                ],
                "type": "integer",
                "description": "Типы адресов. В зависимости от типа адреса необходимо заполнять разные поля.<br> 1 = Door - Конкретный адрес (дверь)\n        2 = MailingList - Рассылка - рассылка работает только в пределах одного города. Не используется и будет удален в дальнейшем<br>\n        4 = PickupPoint - Точка выдачи конкретного поставщика<br>\n        8 = PostOffice - Отделение почты РФ (зарезервировано для будущего использования)",
                "format": "int32"
              },
              "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": "Код города или населенного пункта. Для населенных пунктов: \n- внутри РФ - необходимо указывать код ФИАС (уровень 4 или 6) или КЛАДР,\n- в странах Беларуси, Казахстана и Узбекистана - Тип объекта и Идентификатор объекта в базе OpenStreetMap. Пример <i>relation:2465058</i> (https://ru.wikipedia.org/wiki/OpenStreetMap).\n- в остальных населенных пунктов за пределами РФ - Идентификатор объекта в базе GeoNames (https://ru.wikipedia.org/wiki/GeoNames).\nГород должен попадать в указанную в параметре country страну.\nЭтот параметр очень важен и определяет в том числе какому поставщику будет передан заказа. Также этот параметр\nвлияет на цену "
              },
              "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": "Информация об отправителе. <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": [
              "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": "Контактный телефон, по которому можно связаться с контактным лицом. Лучше указывать мобильный номер. Формат этого поля проверяется при добавлении заказа. Должен соответствовать следующим условиям: <br>\n            - номер должен начинаться со знака '+' или с '8'<br>\n             - если указывается несколько контактных номеров, то они должны быть разделены запятой <br>\n             - добавочный номер должен содержать только цифры и отделяется от основного номера словом 'доб.' или символом '#' <br>\n             - все дополнительные комментарии к номеру должны быть указаны в поле Info (ограничения на время звонка, контактное лицо и тп)"
              },
              "email": {
                "type": "string",
                "description": "Email контактного лица",
                "nullable": true
              },
              "info": {
                "type": "string",
                "description": "Дополнительная информация по адресу. Может быть указаны особенности прохода на территорию. Любая другая информация, которая должна помочь курьеру найти указанный адрес и контактное лицо. Необязательный параметр.",
                "nullable": true
              },
              "contactType": {
                "enum": [
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8
                ],
                "type": "integer",
                "description": "Типы адресов. В зависимости от типа адреса необходимо заполнять разные поля.<br> 1 = Door - Конкретный адрес (дверь)\n        2 = MailingList - Рассылка - рассылка работает только в пределах одного города. Не используется и будет удален в дальнейшем<br>\n        4 = PickupPoint - Точка выдачи конкретного поставщика<br>\n        8 = PostOffice - Отделение почты РФ (зарезервировано для будущего использования)",
                "format": "int32"
              },
              "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": "Код города или населенного пункта. Для населенных пунктов: \n- внутри РФ - необходимо указывать код ФИАС (уровень 4 или 6) или КЛАДР,\n- в странах Беларуси, Казахстана и Узбекистана - Тип объекта и Идентификатор объекта в базе OpenStreetMap. Пример <i>relation:2465058</i> (https://ru.wikipedia.org/wiki/OpenStreetMap).\n- в остальных населенных пунктов за пределами РФ - Идентификатор объекта в базе GeoNames (https://ru.wikipedia.org/wiki/GeoNames).\nГород должен попадать в указанную в параметре country страну.\nЭтот параметр очень важен и определяет в том числе какому поставщику будет передан заказа. Также этот параметр\nвлияет на цену "
              },
              "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": "Информация о получателе. <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
          },
          "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": {
            "enum": [
              0,
              5,
              7,
              10,
              18,
              20,
              22
            ],
            "type": "integer",
            "description": "Ставка НДС дополнительного сбора за доставку с получателя. По умолчанию null - без НДС",
            "format": "int32"
          },
          "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]. Этот идентификатор необходимо сохранить.\nПо нему в дальнейшем будет осуществляться работа с данным заказом.",
            "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": "Стоимость заказа. Пока заказ не завершен и по нему не выставлен счет эта стоимость может меняться.\nСтоимость включает в себя тариф и дополнительные расходы.",
            "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": "Текстовое описание статуса заказа для отображения пользователю. Зависит от поставщика и может быть достаточно\nразнообразным.\nНапример: Передан поставщику, Курьер назначен ...",
            "nullable": true,
            "example": "Передан поставщику"
          },
          "emergencyEmail": {
            "type": "string",
            "description": "E-mail адрес, на который будут приходить письма в случае если заказ не удалось передать поставщику по причине не\nдоступности поставщика.\nНа этот же 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 заполнены, то\nпоиск дополнительных вариантов не производится.\nЭто поле служит для реализации сценария, когда пользователь посчитал цену в калькуляторе, а теперь хочет сделать\nзаказ с выбранным вариантом",
            "format": "int32",
            "nullable": true,
            "example": 0
          },
          "vendorUrgentTypeId": {
            "type": "string",
            "description": "Идентификатор срочности вендора. Если поля VendorId и VendorUrgentTypeId заполнены, то поиск дополнительных\nвариантов не производится.\nЭто поле служит для реализации сценария, когда пользователь посчитал цену в калькуляторе, а теперь хочет сделать\nзаказ с выбранным вариантом",
            "nullable": true,
            "example": "4"
          },
          "vendorsIdFilter": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Массив идентификаторов вендоров. Используется, как фильтр в расчете вариантов доставки. Если массив задан, то в\nответе будут варианты доставки только от указанных в этом массиве поставщиков",
            "nullable": true,
            "example": [
              0,
              8
            ]
          },
          "vendorUrgentTypesIdFilter": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Массив идентификаторов срочностей вендоров. Используется, как фильтр в расчете вариантов доставки. Если массив\nзадан, то в ответе будут варианты доставки только с указанными в этом массиве срочностями",
            "nullable": true,
            "example": [
              "4",
              "1"
            ]
          },
          "payer": {
            "$ref": "#/components/schemas/ApiPayerTypes"
          },
          "paymentType": {
            "$ref": "#/components/schemas/ApiPaymentTypes"
          },
          "takeDate": {
            "type": "string",
            "description": "Указывается дата забора груза в формате yyyy-MM-dd. Дата забора не может попадать на выходные или праздничные дни,\nесли тип срочности отличный от DayOffExpress.\nТакже, существуют ограничения на время размещения заказа с датой забора сегодня. Если дата не подходящая, то\nвозвращается сообщение об ошибке при создании заказа.\nПо умолчанию - текущая дата.",
            "nullable": true,
            "example": "2020-03-31"
          },
          "autoChangeTakeDate": {
            "type": "boolean",
            "description": "Если true - то система будет пытаться автоматически поменять дату забора на следующий рабочий день, если на дату\nзаданную в TakeDate\nпередача заказа с заданными VendorId и VendorUrgentTypeId не возможна.\nПо умолчанию - false"
          },
          "timeFrom": {
            "type": "string",
            "description": "Указывается ограничение на время забора (начальное). Это ограничение носит рекомендательный характер и не всегда\nможет быть соблюдено.\nПо умолчанию указывается время забора 09:00.",
            "format": "date-span",
            "example": "12:00"
          },
          "timeTo": {
            "type": "string",
            "description": "Указывается ограничение на время забора (конечное). Это ограничение носит рекомендательный характер и не всегда\nможет быть соблюдено.\nПо умолчанию указывается время забора 18:00.",
            "format": "date-span",
            "example": "15:00"
          },
          "comments": {
            "type": "string",
            "description": "Описываются необходимые действия при выполнении заказа. Необязательное поле",
            "nullable": true,
            "example": "Курьер должен оформить пропуск на проходной"
          },
          "reqDeliveryDate": {
            "type": "string",
            "description": "Желаемая дата доставки. Может меняться в соответствии с выбранным тарифом поставщика.\nДата указывается в формате 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": [
              "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": "Контактный телефон, по которому можно связаться с контактным лицом. Лучше указывать мобильный номер. Формат этого поля проверяется при добавлении заказа. Должен соответствовать следующим условиям: <br>\n            - номер должен начинаться со знака '+' или с '8'<br>\n             - если указывается несколько контактных номеров, то они должны быть разделены запятой <br>\n             - добавочный номер должен содержать только цифры и отделяется от основного номера словом 'доб.' или символом '#' <br>\n             - все дополнительные комментарии к номеру должны быть указаны в поле Info (ограничения на время звонка, контактное лицо и тп)"
              },
              "email": {
                "type": "string",
                "description": "Email контактного лица",
                "nullable": true
              },
              "info": {
                "type": "string",
                "description": "Дополнительная информация по адресу. Может быть указаны особенности прохода на территорию. Любая другая информация, которая должна помочь курьеру найти указанный адрес и контактное лицо. Необязательный параметр.",
                "nullable": true
              },
              "contactType": {
                "enum": [
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8
                ],
                "type": "integer",
                "description": "Типы адресов. В зависимости от типа адреса необходимо заполнять разные поля.<br> 1 = Door - Конкретный адрес (дверь)\n        2 = MailingList - Рассылка - рассылка работает только в пределах одного города. Не используется и будет удален в дальнейшем<br>\n        4 = PickupPoint - Точка выдачи конкретного поставщика<br>\n        8 = PostOffice - Отделение почты РФ (зарезервировано для будущего использования)",
                "format": "int32"
              },
              "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": "Код города или населенного пункта. Для населенных пунктов: \n- внутри РФ - необходимо указывать код ФИАС (уровень 4 или 6) или КЛАДР,\n- в странах Беларуси, Казахстана и Узбекистана - Тип объекта и Идентификатор объекта в базе OpenStreetMap. Пример <i>relation:2465058</i> (https://ru.wikipedia.org/wiki/OpenStreetMap).\n- в остальных населенных пунктов за пределами РФ - Идентификатор объекта в базе GeoNames (https://ru.wikipedia.org/wiki/GeoNames).\nГород должен попадать в указанную в параметре country страну.\nЭтот параметр очень важен и определяет в том числе какому поставщику будет передан заказа. Также этот параметр\nвлияет на цену "
              },
              "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": "Информация об отправителе. <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": [
              "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": "Контактный телефон, по которому можно связаться с контактным лицом. Лучше указывать мобильный номер. Формат этого поля проверяется при добавлении заказа. Должен соответствовать следующим условиям: <br>\n            - номер должен начинаться со знака '+' или с '8'<br>\n             - если указывается несколько контактных номеров, то они должны быть разделены запятой <br>\n             - добавочный номер должен содержать только цифры и отделяется от основного номера словом 'доб.' или символом '#' <br>\n             - все дополнительные комментарии к номеру должны быть указаны в поле Info (ограничения на время звонка, контактное лицо и тп)"
              },
              "email": {
                "type": "string",
                "description": "Email контактного лица",
                "nullable": true
              },
              "info": {
                "type": "string",
                "description": "Дополнительная информация по адресу. Может быть указаны особенности прохода на территорию. Любая другая информация, которая должна помочь курьеру найти указанный адрес и контактное лицо. Необязательный параметр.",
                "nullable": true
              },
              "contactType": {
                "enum": [
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8
                ],
                "type": "integer",
                "description": "Типы адресов. В зависимости от типа адреса необходимо заполнять разные поля.<br> 1 = Door - Конкретный адрес (дверь)\n        2 = MailingList - Рассылка - рассылка работает только в пределах одного города. Не используется и будет удален в дальнейшем<br>\n        4 = PickupPoint - Точка выдачи конкретного поставщика<br>\n        8 = PostOffice - Отделение почты РФ (зарезервировано для будущего использования)",
                "format": "int32"
              },
              "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": "Код города или населенного пункта. Для населенных пунктов: \n- внутри РФ - необходимо указывать код ФИАС (уровень 4 или 6) или КЛАДР,\n- в странах Беларуси, Казахстана и Узбекистана - Тип объекта и Идентификатор объекта в базе OpenStreetMap. Пример <i>relation:2465058</i> (https://ru.wikipedia.org/wiki/OpenStreetMap).\n- в остальных населенных пунктов за пределами РФ - Идентификатор объекта в базе GeoNames (https://ru.wikipedia.org/wiki/GeoNames).\nГород должен попадать в указанную в параметре country страну.\nЭтот параметр очень важен и определяет в том числе какому поставщику будет передан заказа. Также этот параметр\nвлияет на цену "
              },
              "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": "Информация о получателе. <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
          },
          "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": {
            "enum": [
              0,
              5,
              7,
              10,
              18,
              20,
              22
            ],
            "type": "integer",
            "description": "Ставка НДС дополнительного сбора за доставку с получателя. По умолчанию null - без НДС",
            "format": "int32"
          },
          "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": "Получатель заказа. Проставляется, если заказ завершен. Для заказов с возвратом - тут проставляется ФИО получателя\n(до возврата)",
            "nullable": true
          },
          "orderId": {
            "type": "string",
            "description": "Идентификатор заказа Versta в формате VSXXXX-XXX-XXX-XXX-[XXX]. Этот идентификатор необходимо сохранить.\nПо нему в дальнейшем будет осуществляться работа с данным заказом.",
            "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": "Стоимость заказа. Пока заказ не завершен и по нему не выставлен счет эта стоимость может меняться.\nСтоимость включает в себя тариф и дополнительные расходы.",
            "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": "Текстовое описание статуса заказа для отображения пользователю. Зависит от поставщика и может быть достаточно\nразнообразным.\nНапример: Передан поставщику, Курьер назначен ...",
            "nullable": true,
            "example": "Передан поставщику"
          },
          "emergencyEmail": {
            "type": "string",
            "description": "E-mail адрес, на который будут приходить письма в случае если заказ не удалось передать поставщику по причине не\nдоступности поставщика.\nНа этот же 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": "\n                \"VSXXX-XXX-XXX\"\n            "
          },
          "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": "Код услуги\n1 - Возврат документов отправителю \\\n2 - Страхование груза \\\n3 - Холостой пробег \\\n4 - Упаковка \\\n5 - Комплектация \\\n6 - Проверка/примерка \\\n7 - Частичный выкуп \\\n8 - Осмотр вложения \\\n9 - SMS-информирование \\\n10 - Подтверждение заказа",
            "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": [
              "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": "Контактный телефон, по которому можно связаться с контактным лицом. Лучше указывать мобильный номер. Формат этого поля проверяется при добавлении заказа. Должен соответствовать следующим условиям: <br>\n            - номер должен начинаться со знака '+' или с '8'<br>\n             - если указывается несколько контактных номеров, то они должны быть разделены запятой <br>\n             - добавочный номер должен содержать только цифры и отделяется от основного номера словом 'доб.' или символом '#' <br>\n             - все дополнительные комментарии к номеру должны быть указаны в поле Info (ограничения на время звонка, контактное лицо и тп)"
              },
              "email": {
                "type": "string",
                "description": "Email контактного лица",
                "nullable": true
              },
              "info": {
                "type": "string",
                "description": "Дополнительная информация по адресу. Может быть указаны особенности прохода на территорию. Любая другая информация, которая должна помочь курьеру найти указанный адрес и контактное лицо. Необязательный параметр.",
                "nullable": true
              },
              "contactType": {
                "enum": [
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8
                ],
                "type": "integer",
                "description": "Типы адресов. В зависимости от типа адреса необходимо заполнять разные поля.<br> 1 = Door - Конкретный адрес (дверь)\n        2 = MailingList - Рассылка - рассылка работает только в пределах одного города. Не используется и будет удален в дальнейшем<br>\n        4 = PickupPoint - Точка выдачи конкретного поставщика<br>\n        8 = PostOffice - Отделение почты РФ (зарезервировано для будущего использования)",
                "format": "int32"
              },
              "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": "Код города или населенного пункта. Для населенных пунктов: \n- внутри РФ - необходимо указывать код ФИАС (уровень 4 или 6) или КЛАДР,\n- в странах Беларуси, Казахстана и Узбекистана - Тип объекта и Идентификатор объекта в базе OpenStreetMap. Пример <i>relation:2465058</i> (https://ru.wikipedia.org/wiki/OpenStreetMap).\n- в остальных населенных пунктов за пределами РФ - Идентификатор объекта в базе GeoNames (https://ru.wikipedia.org/wiki/GeoNames).\nГород должен попадать в указанную в параметре country страну.\nЭтот параметр очень важен и определяет в том числе какому поставщику будет передан заказа. Также этот параметр\nвлияет на цену "
              },
              "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": "Информация об отправителе. <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": [
              "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": "Контактный телефон, по которому можно связаться с контактным лицом. Лучше указывать мобильный номер. Формат этого поля проверяется при добавлении заказа. Должен соответствовать следующим условиям: <br>\n            - номер должен начинаться со знака '+' или с '8'<br>\n             - если указывается несколько контактных номеров, то они должны быть разделены запятой <br>\n             - добавочный номер должен содержать только цифры и отделяется от основного номера словом 'доб.' или символом '#' <br>\n             - все дополнительные комментарии к номеру должны быть указаны в поле Info (ограничения на время звонка, контактное лицо и тп)"
              },
              "email": {
                "type": "string",
                "description": "Email контактного лица",
                "nullable": true
              },
              "info": {
                "type": "string",
                "description": "Дополнительная информация по адресу. Может быть указаны особенности прохода на территорию. Любая другая информация, которая должна помочь курьеру найти указанный адрес и контактное лицо. Необязательный параметр.",
                "nullable": true
              },
              "contactType": {
                "enum": [
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8,
                  1,
                  2,
                  4,
                  8
                ],
                "type": "integer",
                "description": "Типы адресов. В зависимости от типа адреса необходимо заполнять разные поля.<br> 1 = Door - Конкретный адрес (дверь)\n        2 = MailingList - Рассылка - рассылка работает только в пределах одного города. Не используется и будет удален в дальнейшем<br>\n        4 = PickupPoint - Точка выдачи конкретного поставщика<br>\n        8 = PostOffice - Отделение почты РФ (зарезервировано для будущего использования)",
                "format": "int32"
              },
              "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": "Код города или населенного пункта. Для населенных пунктов: \n- внутри РФ - необходимо указывать код ФИАС (уровень 4 или 6) или КЛАДР,\n- в странах Беларуси, Казахстана и Узбекистана - Тип объекта и Идентификатор объекта в базе OpenStreetMap. Пример <i>relation:2465058</i> (https://ru.wikipedia.org/wiki/OpenStreetMap).\n- в остальных населенных пунктов за пределами РФ - Идентификатор объекта в базе GeoNames (https://ru.wikipedia.org/wiki/GeoNames).\nГород должен попадать в указанную в параметре country страну.\nЭтот параметр очень важен и определяет в том числе какому поставщику будет передан заказа. Также этот параметр\nвлияет на цену "
              },
              "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": "Информация о получателе. <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
          },
          "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": {
            "enum": [
              0,
              5,
              7,
              10,
              18,
              20,
              22
            ],
            "type": "integer",
            "description": "Ставка НДС дополнительного сбора за доставку с получателя. По умолчанию null - без НДС",
            "format": "int32"
          },
          "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": "\n                \"VSXXX-XXX-XXX\"\n            "
          },
          "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": "Фильтр точек выдачи по городу. Обязательный параметр.\nКод города или населенного пункта. Для населенных пунктов внутри РФ - код ФИАС,\nдля населенных пунктов за пределами РФ - Идентификатор объекта в базе GeoNames\n(https://ru.wikipedia.org/wiki/GeoNames).",
            "example": "5bf5ddff-6353-4a3d-80c4-6fb27f00c6c1"
          },
          "regionId": {
            "type": "string",
            "description": "Код региона по ФИАС. Заполняется только для точек выдачи внутри РФ.",
            "nullable": true,
            "example": "5d372c86-4a1c-4e79-b5e8-2c30ba762b8b"
          },
          "cityName": {
            "minLength": 1,
            "type": "string",
            "description": "Название населенного пункта к которому относится пункт выдачи или постомат.",
            "example": "Воронеж г."
          },
          "address": {
            "type": "string",
            "description": "Адрес точки выдачи заказа поставщика",
            "nullable": true,
            "example": "[СДЭК] ул Ясеневая, 50 [MSK299]"
          },
          "pickupPointId": {
            "type": "string",
            "description": "Идентификатор точки выдачи заказа поставщика",
            "nullable": true,
            "example": "MSK299"
          },
          "vendorId": {
            "type": "integer",
            "description": "Идентификатор поставщика точки выдачи заказа",
            "format": "int32",
            "nullable": true,
            "example": 0
          },
          "vendorInfo": {
            "$ref": "#/components/schemas/VendorInfoModel"
          },
          "metroStation": {
            "type": "string",
            "description": "Ближайшая станция метро",
            "nullable": true,
            "example": "Московская"
          },
          "metroLineHexColor": {
            "type": "string",
            "description": "Цвет линии метро. Указывается в hex формате",
            "nullable": true,
            "example": "FFCD1C"
          },
          "workTime": {
            "type": "string",
            "description": "Время работы точки выдачи",
            "nullable": true,
            "example": "пн-пт 9-18, сб 9-16"
          },
          "pickupPointUrl": {
            "type": "string",
            "description": "Ссылка на страничку точки на сайте поставщика",
            "nullable": true,
            "example": "https://my.versta24.ru/offises/postamat-omnisdek-234"
          },
          "photos": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Массив строк со ссылками на фотографии точки",
            "nullable": true,
            "example": [
              "https://my.versta24.ru/img/22/47_1_SUR2",
              "https://my.versta24.ru/img/22/47_1_SUR2"
            ]
          },
          "latitude": {
            "type": "number",
            "description": "Широта нахождения точки выдачи поставшика",
            "format": "double",
            "example": 54.50598
          },
          "longitude": {
            "type": "number",
            "description": "Долгота нахождения точки выдачи поставшика",
            "format": "double",
            "example": 36.251661
          },
          "name": {
            "type": "string",
            "description": "Название точки выдачи",
            "nullable": true,
            "example": "[СДЭК] ул Ясеневая, 50"
          },
          "color": {
            "type": "string",
            "description": "Цвет ПВЗ на карте",
            "nullable": true,
            "example": "green"
          },
          "type": {
            "enum": [
              0,
              1,
              2,
              3,
              4,
              5
            ],
            "type": "integer",
            "description": "Тип ПВЗ<br />0 - ПВЗ<br>1 - Постомат<br>2 - Абонентский ящик<br>3 - Маркетплейс",
            "format": "int32",
            "example": 0
          },
          "description": {
            "type": "string",
            "description": "Описание. Дополнительная информация",
            "nullable": true,
            "example": "15 мин от станции метро..."
          },
          "phone": {
            "type": "string",
            "description": "Телефон точки выдачи",
            "nullable": true,
            "example": "+79998887766"
          },
          "freeStorageDays": {
            "type": "integer",
            "description": "Срок бесплатного хранения заказа на ПВЗ в днях. \\\nНе указывается для ПВЗ, работающих только на приём заказов (Mode = 1)",
            "format": "int32",
            "nullable": true,
            "example": 2
          },
          "cashPayment": {
            "type": "boolean",
            "description": "Принимает ли точка наличные",
            "example": true
          },
          "cardPayment": {
            "type": "boolean",
            "description": "Принимает ли точка безналичный расчет",
            "example": false
          },
          "minWeight": {
            "type": "number",
            "description": "Минимальный вес",
            "format": "double",
            "nullable": true,
            "example": null
          },
          "maxWeight": {
            "type": "number",
            "description": "Максимальный вес",
            "format": "double",
            "nullable": true,
            "example": 15
          },
          "maxWidth": {
            "type": "number",
            "description": "Максимальная ширина",
            "format": "double",
            "nullable": true,
            "example": 64.5
          },
          "maxHeight": {
            "type": "number",
            "description": "Максимальная высота",
            "format": "double",
            "nullable": true,
            "example": 36.5
          },
          "maxDepth": {
            "type": "number",
            "description": "Максимальная глубина",
            "format": "double",
            "nullable": true,
            "example": 40.5
          },
          "totalMaxVolume": {
            "type": "number",
            "description": "Максимальный объем для всего отправления в м3, принимаемый в ПВЗ",
            "format": "double",
            "nullable": true,
            "example": 0.4
          },
          "maxSizeSum": {
            "type": "number",
            "description": "Сумма максимальных габаритов",
            "format": "double",
            "nullable": true,
            "example": 250
          },
          "mode": {
            "enum": [
              1,
              2
            ],
            "type": "integer",
            "description": "Режимы работы ПВЗ<br />Intake=1 На приём отправлений <br />Pickup=2 На выдачу отправлений <br />ПВЗ может работать как на прием, так и на выдачу отправление - принимать значение 3<br/>По умолчанию Pickup=2",
            "format": "int32",
            "example": 1
          }
        },
        "additionalProperties": false
      },
      "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": "Фильтр точек выдачи по городу. Обязательный параметр.\nКод города или населенного пункта. Для населенных пуктов внутри РФ - необходимо указывать код ФИАС (уровень 4 или\n6) или КЛАДР,\nдля населенных пунктов за пределами РФ - Идентификатор объекта в базе GeoNames\n(https://ru.wikipedia.org/wiki/GeoNames).\nГород должен попадать в указанную в параметре country страну.",
            "example": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
          },
          "vendorId": {
            "type": "integer",
            "description": "Фильтр по поставщику.\nЕсли указан идентификатор поставщика, то возвращаются только точки выдачи конкретного поставщика.\nЕсли данный параметр не указан, то возвращается список точек выдачи всех доступных поставщиков.",
            "format": "int32",
            "nullable": true,
            "example": 8
          },
          "cargoType": {
            "$ref": "#/components/schemas/ApiCargoTypes"
          },
          "cargoItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CargoItemModel"
            },
            "description": "Массив с описанием параметров мест. Необязательный параметр для заполнения.\nЕсли данный параметр не указан, то возвращается весь список точек выдачи без фильтра по максимальным габаратам и\nсуммарному весу.\nЕсли указан данный параметр необходима указать тип груза 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, то к каждой точке также считаются варианты доставки (это увеличивает время работы метода)\nДанная опция является эксперементальной. По-умолчанию - 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
          },
          "totalCount": {
            "type": "integer",
            "description": "Общее количество ПВЗ, удовлетворяющих фильтру (без учёта пагинации).",
            "format": "int32"
          },
          "nextLink": {
            "type": "string",
            "description": "Ссылка на следующую страницу. NULL, если это последняя страница",
            "nullable": true,
            "example": "https://api.versta24.ru/openapi/v2/pickupPoints?countryId=RU&cityId=0c5b2444-70a0-4932-980c-b4dc0d3f02b5&pageNum=4"
          }
        },
        "additionalProperties": false,
        "description": "Информация по запросу списка точек выдачи поставщика"
      },
      "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": "\n                \"VSXXX-XXX-XXX\"\n            "
          },
          "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": "Идентификатор вендора, которому необходимо передать заказ. Этот идентификатор необходимо взять из вариантов\nдоставки (DeliveryOptions)",
            "format": "int32",
            "example": 0
          },
          "vendorUrgentTypeId": {
            "minLength": 1,
            "type": "string",
            "description": "Идентификатор срочности поставщика. Этот идентификатор необходимо взять из вариантов доставки (DeliveryOptions)",
            "example": "4"
          },
          "autoChangeTakeDate": {
            "type": "boolean",
            "description": "Если true - то система будет пытаться автоматически поменять дату забора на следующий рабочий день, если на дату\nзаданную в TakeDate\nпередача заказа с заданными VendorId и VendorUrgentTypeId не возможна.\nПо-умолчанию - false"
          },
          "orderId": {
            "minLength": 1,
            "type": "string",
            "description": "Номер заказа Versta",
            "example": "\n                \"VSXXX-XXX-XXX\"\n            "
          },
          "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": "Типы ошибок при передаче заказа поставщику: \\\n0 = EverythingIsOk - заказ успешно передан поставщику, можно печатать накладную \\\n1 = WasErrorButCanPrint - при передаче заказа возникла ошибка, но пользователь может печатать накладную\n(ошибка будет исправлена автоматически, никакие дополнительные действие не требуются) \\\n2 = WasErrorAndCantPrint - при передачи поставщику возникла ошибка и накладная не может быть напечатана сейчас.\nОшибка будет исправлена автоматически и после этого можно будет распечатать накладную (такие ситуации возникают не\nчасто)",
        "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": "Код города или населенного пункта. Для населенных пунктов: \n\n- внутри РФ - необходимо указывать код ФИАС (уровень 4 или 6) или КЛАДР,\n\n- в странах Беларуси, Казахстана и Узбекистана - Тип объекта и Идентификатор объекта в базе OpenStreetMap. Пример <i>relation:2465058</i>.\n(https://ru.wikipedia.org/wiki/OpenStreetMap)\n\n- в остальных населенных пунктов за пределами РФ - Идентификатор объекта в базе GeoNames\n(https://ru.wikipedia.org/wiki/GeoNames).\n\nГород должен попадать в указанную в параметре country страну.\nЭтот параметр очень важен и определяет в том числе какому поставщику будет передан заказа. Также этот параметр\nвлияет на цену"
          },
          "postalCode": {
            "type": "string",
            "description": "Почтовый индекс населенного пункта. Необязательный параметр. Обязателен, если отправление международное;\nуказывается у отправителя и получателя",
            "nullable": true
          },
          "pickupPointId": {
            "type": "string",
            "description": "Идентификатор точки выдачи. Обязательно для ContactType = PickupPoint; игнорируется, если ContactType не равен\nPickupPoint",
            "nullable": true
          },
          "pickupPointVendorId": {
            "type": "integer",
            "description": "Поставщик для PickupPointId. Обязательно для ContactType = PickupPoint; игнорируется, если ContactType не равен\nPickupPoint",
            "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": "Полная цена для пользователя в рублях. Включая все дополнительные сервисы, страховку и налоги и НДС (если\nприменимо)",
            "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": "События по заказу отсортированные в хронологическом порядке",
            "example": "\n                [{\"eventDateTime\": \"2020-03-04T16:28:51\",\"eventSource\": \"СДЭК\",\"eventText\": \"Выдан на отправку в\n                г.-отправителе [Москва]\", \"status\": 9},{\"eventDateTime\": \"2020-03-04T15:59:00\",\"eventSource\": \"СДЭК\",\"eventText\":\n                \"Принят на\n                склад отправителя [Москва]\", \"status\": 7},{\"eventDateTime\": \"2020-03-04T12:05:38.328169\",\"eventSource\":\n                \"Versta\",\"eventText\":\n                \"Заказ зарегистрирован в системе\", \"status\": 5}]\n            "
          }
        },
        "additionalProperties": false,
        "description": "Результаты отслеживания заказа"
      },
      "VendorInfoModel": {
        "required": [
          "vendorId",
          "vendorLogoUrl",
          "vendorName"
        ],
        "type": "object",
        "properties": {
          "vendorId": {
            "type": "integer",
            "description": "Внутренний идентификатор вендора от которого был получен данный вариант. \\",
            "format": "int32",
            "example": 0
          },
          "vendorName": {
            "minLength": 1,
            "type": "string",
            "description": "Название поставщика",
            "example": "Versta"
          },
          "vendorLogoUrl": {
            "minLength": 1,
            "type": "string",
            "description": "Ссылка на лого вендора для его отображения пользователю",
            "example": "https://my.versta24.ru/img/vendors/Versta.png"
          },
          "vendorKey": {
            "type": "string",
            "description": "Ключ поставщика - сокращенное название по которому его можно будет найти в OpenAPI",
            "nullable": true,
            "example": "CDEK"
          }
        },
        "additionalProperties": false,
        "description": "Информация о поставщике"
      }
    }
  },
  "tags": [
    {
      "name": "OpenAPI"
    }
  ],
  "servers": [
    {
      "url": "https://api.versta24.ru"
    }
  ]
}
