API для интеграции сервиса Яндекс Еда
version: 1.0-oas3
Описание API для работы с сервисом Яндекс Еда по моделям Yandex и
Marketplace. Все методы, описанные ниже, должны быть реализованы на стороне
партнера в процессе интеграции. В части методов сервис Яндекс Еда выступает в роли
клиента, а Вам необходимо реализовать серверную часть. Общение происходит на
основании pull-модели: сервис Яндекс Еда как клиент запрашивает
информацию о ресурсе либо может создавать или обновлять ресурсы если это
необходимо.
В блоке Vendor Management Integration API описана push-модель,
т.е. сервис Яндекс Еда выступает в роли сервера.
Authentication
Sections
- Аутентификация
- Меню
- Заказы
- Рестораны
- Отзывы
- Зоны доставки
- График работы
- Vendor Management Integration API
Specification
Open API
{
"openapi": "3.0.1",
"info": {
"title": "API для интеграции сервиса Яндекс Еда",
"description": "Описание API для работы с сервисом Яндекс Еда по моделям Yandex и\nMarketplace. Все методы, описанные ниже, должны быть реализованы на стороне\nпартнера в процессе интеграции. В части методов сервис Яндекс Еда выступает в роли\nклиента, а Вам необходимо реализовать серверную часть. Общение происходит на\nосновании pull-модели: сервис Яндекс Еда как клиент запрашивает\nинформацию о ресурсе либо может создавать или обновлять ресурсы если это\nнеобходимо.\n\nВ блоке Vendor Management Integration API описана push-модель,\nт.е. сервис Яндекс Еда выступает в роли сервера.\n\n\n# Authentication\n\n\n<!-- ReDoc-Inject: <security-definitions> -->\n",
"version": "1.0-oas3",
"x-logo": {
"url": "public/logo.svg",
"altText": "Yandex.Eda logo"
}
},
"servers": [
{
"url": ""
}
],
"tags": [
{
"name": "Аутентификация",
"description": "Аутентификация в системе"
},
{
"name": "Меню",
"description": "Меню"
},
{
"name": "Заказы",
"description": "Прием и обновление заказов от Яндекс Еды"
},
{
"name": "Рестораны",
"description": "Список заведений партнера"
},
{
"name": "Отзывы",
"description": "Отзыв клиента по заказу"
},
{
"name": "Зоны доставки",
"description": "Получение зон доставки"
},
{
"name": "График работы",
"description": "Получение графика работы ресторана"
},
{
"name": "Vendor Management Integration API",
"description": "PUSH-методы работы с ресторанами"
}
],
"security": [
{
"OAuth2": [
"read",
"write"
]
}
],
"paths": {
"/v1/feedback": {
"post": {
"tags": [
"Отзывы"
],
"summary": "Передать отзыв клиента по заказу.",
"description": "Передать отзыв клиента по заказу.\n\n{% note info %}\n\nМетод доступен только по подписке.\n\n{% endnote %}\n\nМетод для предоставления ответа на отзыв находится в блоке Vendor Management Integration API.\n",
"operationId": "partner.feedback.post",
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"feedback": {
"type": "object",
"description": "Информация об отзыве клиента",
"properties": {
"id": {
"type": "string",
"description": "Идентификатор отзыва на стороне Яндекс.Еды"
},
"createdAt": {
"type": "string",
"description": "Дата создания отзыва в формате RFC3339 с дробной частью секунд (Y-m-d\\TH:i:s.uP)",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
},
"eatsId": {
"type": "string",
"description": "Сквозной идентификатор заказа на стороне Яндекс.Еды в формате DDDDDD-DDDDDDDD",
"example": "190330-12345678"
},
"orderId": {
"type": "string",
"description": "Идентификатор заказа в системе партнера"
},
"predefinedComment": {
"type": "string",
"description": "Предопредленные комметарии на стороне Яндекс.Еды, выбранные клиентом"
},
"comment": {
"type": "string",
"description": "Текстовый отзыв клиента по заказу"
},
"restaurantId": {
"type": "string",
"description": "Идентификатор ресторана в системе партнера"
},
"rating": {
"type": "integer",
"description": "Оценка клиента по заказу от 1 до 5",
"example": 5
},
"takenAt": {
"type": "string",
"description": "Дата, когда курьер забрал заказ из ресторана, в формате ISO 8601 без дробной части секунд (Y-m-d\\TH:i:s+hh:ss)",
"format": "date-time",
"example": "1937-01-01T12:00:27+00:20"
},
"deliveredAt": {
"type": "string",
"description": "Дата, когда заказ был доставлен в формате ISO 8601 без дробной части секунд (Y-m-d\\TH:i:s+hh:ss)",
"format": "date-time",
"example": "1937-01-01T12:00:27+00:20"
}
},
"required": [
"uuid",
"createdAt",
"eatsId",
"orderId",
"restaurantId",
"rating",
"deliveredAt",
"orderInfo"
]
},
"orderInfo": {
"type": "object",
"description": "Информация о заказе",
"properties": {
"createdAt": {
"type": "string",
"description": "Дата создания отзыва в формате RFC3339 с дробной частью секунд (Y-m-d\\TH:i:s.uP)",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
},
"platform": {
"type": "string",
"description": "Идентификатор платформы. YE - Yandex Eda, DC - Delivery club",
"enum": [
"YE",
"DC"
]
},
"discriminator": {
"type": "string",
"description": "Тип доставки заказа:\n\nyandex - доставка курьерами Яндекс Еда\nmarketplace - доставка курьерами ресторана\npickup - самовывоз клиентом из ресторана\n",
"enum": [
"marketplace",
"yandex",
"pickup"
],
"example": "marketplace"
},
"deliveryInfo": {
"description": "Информация о доставке",
"properties": {
"clientName": {
"type": "string",
"description": "Имя клиента в сервисе Яндекс Еда",
"example": "Иванов Иван Иванович"
}
},
"required": [
"clientName"
]
},
"paymentInfo": {
"properties": {
"total": {
"type": "number",
"format": "double",
"example": 200.99,
"description": "Общая стоимость заказа"
}
},
"required": [
"total"
]
},
"items": {
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID позиции меню в системе партнера",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Наименование позиции меню",
"example": "Пицца Пепперони"
},
"quantity": {
"type": "number",
"format": "float",
"description": "Количество позиции в заказе",
"example": 3.5
},
"price": {
"type": "number",
"format": "double",
"description": "Стоимость одной позиции вместе со стоимостью модификаций. В следующей версии будет исправлено на чистую цену позиции без модификаций",
"example": 100
},
"modifications": {
"description": "Список выбранных модификаций. Может быть пустым, передаётся\nявно для каждой отдельной позиции в заказе. При заказе двух позиций\nодного и того же блюда с разным набором модификаций передаются разные\nпозиции с разными списками `modifications`.\n",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID модификатора в системе партнера",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Наименование модификатора",
"example": "Европейские приборы"
},
"quantity": {
"type": "integer",
"description": "Количество в заказе",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Цена модификатора для пункта меню (например - дополнительный соус)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
},
"type": "array"
}
},
"required": [
"id",
"modifications",
"price",
"quantity"
]
},
"type": "array"
},
"comment": {
"type": "string",
"description": "Дополнительная информация о заказе",
"example": "Дополнительная информация о заказе: ..."
}
},
"required": [
"createdAt",
"discriminator",
"comment",
"marketplaceOrderDelivery",
"eatsId",
"items",
"deliveryInfo",
"paymentInfo",
"marketplaceOrderPayment"
]
}
},
"required": [
"feedback"
]
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Отзыв успешно обработан внутренней системой ресторана.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"result": {
"type": "string",
"example": "OK"
}
}
}
}
}
},
"400": {
"description": "Bad request. Ошибка в параметрах, **_В теле ответа ожидается массив с объектом из списка ошибок_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
},
"401": {
"description": "Не пройдена авторизация - истек токен, либо не был передан в\nзапросе. Будет сделан ретрай.\n",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Причина, по которой не прошла авторизация",
"example": "Access token has been expired. You should request a new one"
}
},
"required": [
"reason"
]
}
}
}
},
"500": {
"description": "Внутренние ошибки сервера.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
}
},
"security": [
{
"OAuth2": [
"read",
"write"
]
}
]
}
},
"/oauth2/token": {
"post": {
"summary": "Получение токена авторизации",
"operationId": "BlocksAuth",
"tags": [
"Vendor Management Integration API"
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"description": "Описания параметров авторизации",
"type": "object",
"additionalProperties": false,
"required": [
"client_id",
"client_secret"
],
"properties": {
"client_id": {
"description": "Идентификатор клиента",
"type": "string"
},
"client_secret": {
"description": "Секретный ключ",
"type": "string"
}
}
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK,",
"content": {
"application/json": {
"schema": {
"description": "Ответ при авторизации",
"type": "object",
"additionalProperties": false,
"required": [
"access_token",
"expires_in"
],
"properties": {
"access_token": {
"description": "Токен",
"type": "string",
"example": "bqehYcfk7Tb2zKRkxQ-IaK9nHyntdYnlpJ7kwTNX3B6mIKPws"
},
"expires_in": {
"description": "Время токена",
"type": "integer",
"example": 120
},
"scope": {
"type": "string",
"example": "vendor_management"
},
"token_type": {
"description": "Тип токена",
"type": "string",
"example": "bearer"
}
}
}
}
}
},
"401": {
"description": "Ошибка авторизации"
}
}
}
},
"/feedback-answer": {
"post": {
"tags": [
"Vendor Management Integration API"
],
"summary": "Ответить на отзыв клиента по заказу c возможностью отправить текст и/или промокод",
"description": "{% note info %}\n\nМетод доступен только по подписке.\n\n{% endnote %}\n",
"operationId": "feedback.answer",
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"feedback_id",
"text"
],
"properties": {
"feedback_id": {
"type": "string",
"description": "id отзыва, на который надо ответить",
"example": 1234567
},
"text": {
"type": "string",
"description": "Текст ответа партнёра на отзыв"
},
"order_nr": {
"type": "string",
"description": "Номер заказа на стороне Яндекс.Еды в формате DDDDDD-DDDDDDDD"
},
"promo": {
"type": "integer",
"enum": [
10,
15,
20,
30,
40
],
"description": "Промокод со скидкой в процентах"
}
}
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Успешный запрос, ответ на отзыв отправлен клиенту. Без тела ответа."
},
"204": {
"description": "Успешный запрос, но отзыв неакутален. В этом случае клиент ответ не получит, а также не удастся выдать клиенту промокод."
},
"400": {
"description": "Неверный формат id отзыва. Без тела ответа."
},
"401": {
"description": "Не пройдена авторизация - неправильный токен, либо не был передан в запросе.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Причина, по которой не прошла авторизация",
"example": "invalid-token"
},
"message": {
"type": "string",
"description": "Текстовое описании причины, по которой не прошла авторизация",
"example": "Bad token"
}
}
}
}
}
},
"403": {
"description": "У ресторана отсутствует подписка. Без тела ответа."
}
}
}
},
"/block": {
"post": {
"summary": "Блокировка ресторанов",
"operationId": "Blocks",
"tags": [
"Vendor Management Integration API"
],
"parameters": [
{
"name": "Partner-Name",
"in": "header",
"description": "Имя партнера",
"schema": {
"type": "string"
}
},
{
"name": "Authorization",
"in": "header",
"description": "Токен сформированный на стороне ЯЕды",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"vendorInfo": {
"type": "array",
"items": {
"type": "object",
"properties": {
"vendorId": {
"type": "string",
"description": "Id ресторана в системе партнера",
"example": "819711"
},
"deliveryType": {
"type": "string",
"description": "Тип доставки",
"enum": [
"ddc",
"marketplace"
],
"example": "ddc"
}
}
}
},
"from": {
"type": "string",
"description": "Дата и время начала блокировки",
"example": "2016-05-12T23:54:32+0100"
},
"to": {
"type": "string",
"description": "Дата и время окончания блокировки (если не указано, то блокируется навсегда)",
"example": "2016-05-12T23:54:32+0100",
"nullable": true
},
"message": {
"type": "string",
"description": "Причина блокировки",
"maxLength": 4096,
"nullable": true
},
"tag": {
"type": "string",
"description": "Тег блокировки",
"enum": [
"technical_problem",
"too_busy"
]
}
},
"required": [
"vendorInfo",
"from",
"tag"
]
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false
}
}
}
},
"400": {
"description": "Ошибка запроса",
"content": {
"application/json": {
"schema": {
"description": "Описание ошибки",
"type": "object",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Сообщение об ошибке",
"type": "string"
},
"code": {
"description": "Код ошибки",
"type": "integer"
}
}
}
}
}
},
"404": {
"description": "Плейс не найден",
"content": {
"application/json": {
"schema": {
"description": "Описание ошибки",
"type": "object",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Сообщение об ошибке",
"type": "string"
},
"code": {
"description": "Код ошибки",
"type": "integer"
}
}
}
}
}
},
"500": {
"description": "Ошибка сервиса",
"content": {
"application/json": {
"schema": {
"description": "Описание ошибки",
"type": "object",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Сообщение об ошибке",
"type": "string"
},
"code": {
"description": "Код ошибки",
"type": "integer"
}
}
}
}
}
}
}
}
},
"/v2/status": {
"post": {
"summary": "Получение статуса блокировок",
"operationId": "v2StatusBlocks",
"tags": [
"Vendor Management Integration API"
],
"parameters": [
{
"name": "Partner-Name",
"in": "header",
"description": "Имя партнера",
"schema": {
"type": "string"
}
},
{
"name": "Authorization",
"in": "header",
"description": "Токен сформированный на стороне ЯЕды",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"vendorInfo": {
"type": "array",
"items": {
"type": "object",
"properties": {
"vendorId": {
"type": "string",
"description": "Id ресторана в системе партнера",
"example": "819711"
},
"deliveryType": {
"type": "string",
"description": "Тип доставки",
"enum": [
"ddc",
"marketplace"
],
"example": "ddc"
}
}
}
},
"statuses": {
"type": "array",
"items": {
"type": "string",
"enum": [
"enabled"
]
}
},
"limit": {
"type": "integer",
"description": "Лимит выдачи",
"default": 100,
"example": 100
},
"offset": {
"type": "integer",
"description": "Смещение выдачи",
"example": 0,
"default": 0
}
},
"required": [
"vendorInfo"
]
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"description": "Массив вендоров",
"items": {
"type": "object",
"additionalProperties": false,
"description": "Объект вендора",
"required": [
"vendorId",
"blockId",
"deliveryType",
"from"
],
"properties": {
"vendorId": {
"type": "string",
"description": "Идентификатор вендора",
"example": "17205"
},
"blockId": {
"type": "string",
"description": "Идентификатор блокировки в сервисе"
},
"externalBlockId": {
"type": "string",
"description": "Идентификатор блокировки у партнера"
},
"deliveryType": {
"type": "string",
"enum": [
"ddc",
"marketplace"
],
"description": "Идентификатор блокировки"
},
"availableToCancel": {
"type": "boolean",
"description": "Возможность разблокировки"
},
"status": {
"type": "string",
"enum": [
"enabled",
"disabled"
],
"description": "Статус блокировки"
},
"from": {
"type": "string",
"description": "Дата и время начала блокировки",
"example": "2016-05-12T23:54:32+0100"
},
"to": {
"type": "string",
"description": "Дата и время окончания блокировки",
"example": "2016-05-12T23:54:32+0100"
},
"source": {
"type": "string",
"description": "Источник блокировки (имя партнера или delivery club)",
"example": "delivery club"
},
"message": {
"type": "string",
"description": "Комментарий к блокировке (полученный от партнера) или описание блокировки от сервиса"
}
}
}
}
}
}
}
}
},
"400": {
"description": "Ошибка запроса",
"content": {
"application/json": {
"schema": {
"description": "Описание ошибки",
"type": "object",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Сообщение об ошибке",
"type": "string"
},
"code": {
"description": "Код ошибки",
"type": "integer"
}
}
}
}
}
},
"404": {
"description": "Плейс не найден",
"content": {
"application/json": {
"schema": {
"description": "Описание ошибки",
"type": "object",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Сообщение об ошибке",
"type": "string"
},
"code": {
"description": "Код ошибки",
"type": "integer"
}
}
}
}
}
},
"500": {
"description": "Ошибка сервиса",
"content": {
"application/json": {
"schema": {
"description": "Описание ошибки",
"type": "object",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Сообщение об ошибке",
"type": "string"
},
"code": {
"description": "Код ошибки",
"type": "integer"
}
}
}
}
}
}
}
}
},
"/unblock": {
"post": {
"summary": "Разблокировка ресторанов",
"operationId": "Unblocks",
"tags": [
"Vendor Management Integration API"
],
"parameters": [
{
"name": "Partner-Name",
"in": "header",
"description": "Имя партнера",
"schema": {
"type": "string"
}
},
{
"name": "Authorization",
"in": "header",
"description": "Токен сформированный на стороне ЯЕды",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"vendorInfo": {
"type": "array",
"items": {
"type": "object",
"properties": {
"vendorId": {
"type": "string",
"description": "Id ресторана в системе партнера",
"example": "819711"
},
"deliveryType": {
"type": "string",
"description": "Тип доставки",
"enum": [
"ddc",
"marketplace"
],
"example": "ddc"
}
}
}
},
"blockIds": {
"type": "array",
"description": "Список id блокировок",
"items": {
"type": "string"
}
}
},
"required": [
"vendorInfo",
"blockIds"
]
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false
}
}
}
},
"400": {
"description": "Ошибка запроса",
"content": {
"application/json": {
"schema": {
"description": "Описание ошибки",
"type": "object",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Сообщение об ошибке",
"type": "string"
},
"code": {
"description": "Код ошибки",
"type": "integer"
}
}
}
}
}
},
"404": {
"description": "Плейс не найден",
"content": {
"application/json": {
"schema": {
"description": "Описание ошибки",
"type": "object",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Сообщение об ошибке",
"type": "string"
},
"code": {
"description": "Код ошибки",
"type": "integer"
}
}
}
}
}
},
"500": {
"description": "Ошибка сервиса",
"content": {
"application/json": {
"schema": {
"description": "Описание ошибки",
"type": "object",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Сообщение об ошибке",
"type": "string"
},
"code": {
"description": "Код ошибки",
"type": "integer"
}
}
}
}
}
}
}
}
},
"/menu/import/initiation": {
"post": {
"summary": "Инициация парсинга меню",
"description": "Принудительный запуск процесса обновления меню/стоп-листов\n",
"operationId": "MenuImport",
"tags": [
"Vendor Management Integration API"
],
"parameters": [
{
"name": "Partner-Name",
"in": "header",
"description": "Имя партнера",
"schema": {
"type": "string"
}
},
{
"name": "Authorization",
"in": "header",
"description": "Токен сформированный на стороне ЯЕды",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"restaurantId": {
"type": "string",
"maxLength": 512,
"description": "Идентификатор ресторана в системе партнера"
},
"operationType": {
"type": "string",
"enum": [
"menu",
"menu_stop_list"
],
"default": "menu",
"description": "menu - парсинг меню, menu_stop_list - парсинг стоп-листа\n"
}
},
"required": [
"restaurantId"
]
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false
}
}
}
},
"400": {
"description": "Ошибка запроса",
"content": {
"application/json": {
"schema": {
"description": "Описание ошибки",
"type": "object",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Сообщение об ошибке",
"type": "string"
},
"code": {
"description": "Код ошибки",
"type": "integer"
}
}
}
}
}
},
"404": {
"description": "Плейс не найден",
"content": {
"application/json": {
"schema": {
"description": "Описание ошибки",
"type": "object",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Сообщение об ошибке",
"type": "string"
},
"code": {
"description": "Код ошибки",
"type": "integer"
}
}
}
}
}
},
"500": {
"description": "Ошибка сервиса",
"content": {
"application/json": {
"schema": {
"description": "Описание ошибки",
"type": "object",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Сообщение об ошибке",
"type": "string"
},
"code": {
"description": "Код ошибки",
"type": "integer"
}
}
}
}
}
}
}
}
},
"/platform/orders/{orderId}/codes/validate": {
"post": {
"summary": "Валидация кода курьера",
"description": "Валидация кода для получения заказа курьером",
"operationId": "CourierCodeValidate",
"tags": [
"Vendor Management Integration API"
],
"parameters": [
{
"name": "orderId",
"in": "path",
"required": true,
"description": "Идентификатор заказа во внешней системе",
"schema": {
"type": "string"
}
},
{
"name": "Partner-Name",
"in": "header",
"description": "Имя партнера",
"schema": {
"type": "string"
}
},
{
"name": "Authorization",
"in": "header",
"description": "Токен сформированный на стороне ЯЕды",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "Код, который необходимо провалидировать"
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"is_valid"
],
"properties": {
"is_valid": {
"type": "boolean",
"description": "Результат валидации."
}
}
}
}
}
},
"400": {
"description": "Ошибка запроса",
"content": {
"application/json": {
"schema": {
"description": "Описание ошибки",
"type": "object",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Сообщение об ошибке",
"type": "string"
},
"code": {
"description": "Код ошибки",
"type": "integer"
}
}
}
}
}
},
"403": {
"description": "Access denied"
},
"404": {
"description": "Плейс не найден",
"content": {
"application/json": {
"schema": {
"description": "Описание ошибки",
"type": "object",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Сообщение об ошибке",
"type": "string"
},
"code": {
"description": "Код ошибки",
"type": "integer"
}
}
}
}
}
},
"500": {
"description": "Ошибка сервиса",
"content": {
"application/json": {
"schema": {
"description": "Описание ошибки",
"type": "object",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Сообщение об ошибке",
"type": "string"
},
"code": {
"description": "Код ошибки",
"type": "integer"
}
}
}
}
}
}
}
}
},
"/security/oauth/token": {
"post": {
"tags": [
"Аутентификация"
],
"summary": "Получить токен аутентификации",
"description": "Получает токен авторизации. Формат – OAuth 2.0. Токен передается в заголовке каждого запроса\nкак `Authorization : Bearer token`.\n\n{% note alert %}\n\nТело запроса должно быть передано в одну строку.\n\n{% cut \"Пример запроса\" %}\n\n```\ncurl -X 'POST' \\\n'{host}/security/oauth/token' \\\n-H 'accept: application/json' \\\n-H 'Content-Type: application/x-www-form-urlencoded' \\\n-d 'client_id=client_id&client_secret=client_secret&grant_type=client_credentials&scope=read%20write'\n```\n\n{% endcut %}\n\n{% endnote %}\n",
"operationId": "partner.auth.post",
"security": [],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"client_id": {
"description": "Идентификатор клиента",
"type": "string",
"example": "client_id"
},
"client_secret": {
"type": "string",
"description": "Секрет",
"example": "client_secret"
},
"grant_type": {
"type": "string",
"description": "Тип доступа",
"default": "client_credentials"
},
"scope": {
"type": "string",
"description": "Права доступа",
"default": "read write"
}
},
"required": [
"client_id",
"client_secret",
"grant_type",
"scope"
],
"example": {
"client_id": "123123123",
"client_secret": "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
"grant_type": "client_credentials",
"scope": "read write"
}
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Успешная аутентификация",
"content": {
"application/json": {
"schema": {
"description": "Модель результата успешной аутентификации. Единственное обязательное поле - access_token. Остальные возможные по спецификации поля - опциональны и не используются на стороне Yandex Eda",
"type": "object",
"properties": {
"access_token": {
"type": "string"
}
},
"required": [
"access_token"
],
"example": {
"access_token": "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
}
}
}
}
},
"400": {
"description": "Ошибка в параметрах, в ответе список ошибок валидации",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
},
"500": {
"description": "Внутренние ошибки сервера",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
}
}
}
},
"/menu/{restaurantId}/composition": {
"get": {
"security": [
{
"OAuth2": [
"read"
]
}
],
"tags": [
"Меню"
],
"summary": "Получить актуальное меню ресторана",
"description": "Позиции, содержащие схематические или логические несоответствия (слишком длинная строка, цена равная 0.00) могут быть проигнорированы. Актуальная версия модели ответа - application/vnd.eats.menu.composition.v2+json",
"operationId": "partner.menu.get",
"parameters": [
{
"name": "restaurantId",
"in": "path",
"description": "Идентификатор ресторана в системе партнера",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK, возвращается актуальное на данный момент меню для указанного ресторана",
"content": {
"application/vnd.eats.menu.composition.v2+json": {
"schema": {
"type": "object",
"description": "Актуальная версия модели меню",
"properties": {
"schedules": {
"description": "Описание возможных типов расписаний категорий меню",
"properties": {
"scheduleName": {
"description": "Объявление необходимого типа расписания. Тип определяется названием ключа. Например, breakfasts. Далее этот ключ используется в массиве расписаний у категорий меню.",
"items": {
"properties": {
"from": {
"type": "string",
"description": "Время начала работы объявленного типа расписания, может принимать значения от 00:00 до 24:00",
"example": "08:00"
},
"till": {
"type": "string",
"description": "Время окончания работы объявленного типа расписания, может принимать значения от 00:00 до 24:00",
"example": "09:45"
},
"weekdays": {
"description": "Дни недели работы объявленного типа расписания",
"type": "array",
"items": {
"type": "string",
"example": "monday",
"enum": [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday",
"saturday",
"sunday"
]
}
}
},
"required": [
"from",
"till",
"weekdays"
]
},
"type": "array"
}
}
},
"categories": {
"description": "Категории меню",
"items": {
"properties": {
"id": {
"maxLength": 64,
"type": "string",
"description": "Внутренний идентификатор категории в системе партнера. Может быть любым значением, приводимым к строке. Рекомендация - UUID4",
"example": "5af86d5a-d92d-4e07-9271-aea0f7ef95a6"
},
"parentId": {
"maxLength": 64,
"type": "string",
"description": "Уникальный идентификатор родительской категории для древовидной структуры. nullable: true. Не может быть пустой строкой. Ссылается на существующие категории. При загрузке адаптируется к плоской структуре категорий Яндекс.Еды (товары из подкатегорий попадают в родительские категории первого уровня)",
"example": "5af86d5a-d92d-4e07-9271-aea0f7ef95a6"
},
"schedules": {
"type": "array",
"items": {
"type": "string",
"description": "Тип расписания категории. Если указать пустой список или сослаться на пустую категорию, находящуюся в отдельном блоке schedules, то считаем категорию всегда доступной.",
"example": "breakfasts"
}
},
"name": {
"type": "string",
"description": "Наименование категории (например \"Завтраки\")",
"example": "Завтраки"
},
"sortOrder": {
"type": "integer",
"description": "Порядок сортировки от меньшего к большему. Если не указан, считаем за 100",
"example": 0
},
"images": {
"description": "Изображение категории ресторана",
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Ссылка на изображение для скачивания",
"format": "uri"
},
"updatedAt": {
"type": "string",
"description": "Дата обновления изображения, в формате RFC3339 с дробной частью секунд (Y-m-d\\TH:i:s.uP)",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
}
},
"required": [
"url",
"updatedAt"
]
}
}
},
"required": [
"id",
"name"
]
},
"type": "array"
},
"items": {
"description": "Список блюд, доступных для заказа",
"items": {
"properties": {
"id": {
"maxLength": 64,
"type": "string",
"description": "Внутренний идентификатор блюда в ресторане в системе партнера. Может быть любым значением, приводимым к строке. Рекомендация - UUID4",
"example": "e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9"
},
"categoryId": {
"maxLength": 64,
"type": "string",
"description": "Идентификатор категории в системе партнера",
"example": "fa494dc1-2578-4adb-a8fa-e270de8c3d28"
},
"name": {
"type": "string",
"description": "Наименование блюда в ресторане (например \"Пирожки с вишней\")",
"example": "Вареники с творогом и вишней"
},
"description": {
"type": "string",
"description": "Полное описание блюда",
"example": "Мука, вода, яичный порошок, вишня замороженная, творог 5%"
},
"price": {
"type": "number",
"format": "double",
"description": "Цена продукта. Блюда с нулевой ценой пропускаются и не попадают в меню",
"example": 1000
},
"vat": {
"type": "number",
"format": "int32",
"description": "НДС, включенный в стоимость, в процентах, если не указан, считается за 0",
"example": 20
},
"isCatchweight": {
"type": "boolean",
"description": "Флаг того, что позиция весовая",
"default": false,
"example": false
},
"measure": {
"type": "integer",
"description": "Характеристика измерений блюда - например вес или объем",
"example": 666
},
"weightQuantum": {
"type": "number",
"format": "float",
"description": "Наименьшее количество продукта (квант) доступное для заказа. Поле является обязательным, если значение isCatchweight равно true, иначе значение поля не используется",
"example": 0.1
},
"measureUnit": {
"type": "string",
"description": "Единица измерения. Допустимые значения - граммы и миллилитры",
"example": "г",
"enum": [
"г",
"мл",
"g",
"ml"
]
},
"excise": {
"type": "string",
"enum": [
"sugary_drink",
"other"
],
"description": "Признак акцизного товара. Также можно вместо ключа excise передавать метку [AT] (заглавными латинскими буквами в квадратных скобках) в name товара.",
"example": "sugary_drink"
},
"nutrients": {
"description": "Параметры КБЖУ",
"type": "object",
"properties": {
"calories": {
"type": "number",
"description": "Калории на 100гр",
"example": 12.5
},
"proteins": {
"type": "number",
"description": "Белки на 100гр",
"example": 15.3
},
"fats": {
"type": "number",
"description": "Жиры на 100гр",
"example": 12.5
},
"carbohydrates": {
"type": "number",
"description": "Углеводы на 100гр",
"example": 15.3
}
},
"required": [
"calories",
"proteins",
"fats",
"carbohydrates"
]
},
"sortOrder": {
"type": "integer",
"description": "Порядок сортировки от меньшего к большему. Если не указан, считаем за 100",
"example": 0
},
"modifierGroups": {
"type": "array",
"description": "Группы модификаторов для блюда. Обязательность модификаторов определяется параметром `minSelectedModifiers` в группе модификаторов.\n",
"items": {
"properties": {
"id": {
"type": "string",
"description": "Идентификатор группы модификаторов на стороне партнера. Может быть любым значением, приводимым к строке. Рекомендация - UUID4",
"example": "9987c815-3069-46ad-9626-74799fb22210"
},
"name": {
"type": "string",
"description": "Наименование группы модификаторов",
"example": "Выбор приборов"
},
"modifiers": {
"type": "array",
"description": "Опции, включаемые в группу",
"items": {
"properties": {
"id": {
"type": "string",
"description": "Идентификатор модификатора на стороне партнера. Может быть любым значением, приводимым к строке. Рекомендация – UUID4. Этот идентификатор передаётся в заказе вместе с выбранным количеством",
"example": "916cfc99-acb4-4a96-9a42-b29159e88189"
},
"name": {
"type": "string",
"description": "Название модификатора",
"example": "Европейские приборы"
},
"price": {
"type": "number",
"format": "double",
"description": "Цена модификатора",
"example": 150
},
"originalPrice": {
"type": "number",
"format": "double",
"description": "Отдельное поле для передачи исходых цен опций/модификаторов. Пользователю не показывается. Используется для расчета суммы при частичных возвратах.\n",
"example": 150
},
"vat": {
"type": "integer",
"format": "int32",
"description": "НДС, включенный в стоимость, в процентах. Если не указан, считается за 0",
"example": 20
},
"excise": {
"type": "string",
"enum": [
"sugary_drink",
"other"
],
"description": "Признак акцизного товара. Вместо ключа excise можно передавать метку [AT] (заглавными латинскими буквами в квадратных скобках) в поле `name` модификатора.",
"example": "sugary_drink"
},
"minAmount": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"format": "int32",
"description": "Минимальное количество указанного модификатора для блюда в заказе. Должно быть меньше maxAmount.",
"example": 0
},
"maxAmount": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"format": "int32",
"description": "Максимальное количество указанного модификатора для блюда в заказе. Это число не должно превышать значение параметра `maxSelectedModifiers` в модели `ModifierGroup` для заказа целиком. Например, вы поддерживаете 5 модификаторов в группе целиком, но максимальное значение модификатора для отдельного блюда указано 10 – такой модификатор не пройдет валидацию. Не будут загружены: некорректный модификатор, группа, к которой он принадлежит, а также пункты меню, в которых используются некорректные данные",
"example": 10
}
},
"required": [
"id",
"maxAmount",
"minAmount",
"name",
"price"
]
}
},
"minSelectedModifiers": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"format": "int32",
"description": "Минимальное количество модификаторов, которые необходимо выбрать для данной группы. Не должно быть больше общего числа необходимых \"modifiers\" (с учетом их minAmount) и не должно быть больше maxSelectedModifiers",
"example": 0
},
"maxSelectedModifiers": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"format": "int32",
"description": "Максимальное количество модификаторов, которые возможно выбрать для данной группы. Не должно быть меньше общего числа возможных \"modifiers\" (с учетом их maxAmount) и не должно быть меньше minSelectedModifiers",
"example": 10
},
"sortOrder": {
"type": "integer",
"description": "Порядок сортировки от меньшего к большему. Если не указан, считаем за 100.",
"example": 0
}
},
"required": [
"id",
"name",
"minSelectedModifiers",
"maxSelectedModifiers"
]
}
},
"images": {
"description": "Изображение блюда",
"type": "array",
"items": {
"properties": {
"hash": {
"type": "string",
"description": "SHA1-хэш от содержимого файла изображения. Рассчитывается партнером, служит признаком уникальности. В случае если он меняется, Яндекс Еда перезагружает картинку"
},
"url": {
"type": "string",
"description": "Ссылка на изображение для скачивания",
"format": "uri"
}
},
"required": [
"hash",
"url"
]
}
},
"additional_descriptions": {
"type": "object",
"additionalProperties": false,
"description": "Дополнительные поля для описания блюда",
"properties": {
"consisting_ingredients": {
"description": "Перечень ингредиентов, из которых состоит блюдо. Это исходные компоненты блюда, а не его составные части. Желательно указать все ингредиенты, которые могут вызвать аллергию или сильно влияют на вкус. Так пользователи сразу увидят важные подробности о блюде.\nНапример: мука, яйца, вода, мясо.",
"type": "array",
"maxItems": 100,
"items": {
"type": "string",
"example": "мука",
"maxLength": 100
}
},
"badges": {
"type": "array",
"items": {
"description": "Тэги блюда разделены на категории и значения. В каждой категории можно выбрать всего один вариант. При обработке из каждой категории будет браться первое валидное значение. Дублирующие, неизвестные категории или несоответствие значения категории будут пропущены.\nДоступные категории и их значения:\n* `food_specifics` - Особенности питания\n - `halal` - халяль\n - `meat_free` - без мяса\n* `food_spiciness` - острота\n - `spicy` - острое\n* `cooking_method` - способ готовки\n - `fried` - жареное\n - `baked` - запечённое\n - `grilled` - на гриле\n - `not_cooked` - нужно готовить\n* `food_portion` - размер\n - `portion_for_several_people` - на компанию\n - `big_portion` - мегапорция\n - `combo` - комбо",
"type": "object",
"required": [
"category",
"value"
],
"properties": {
"category": {
"type": "string",
"enum": [
"food_specifics",
"food_spiciness",
"cooking_method",
"food_portion"
],
"example": "cooking_method"
},
"value": {
"type": "string",
"enum": [
"halal",
"meat_free",
"spicy",
"fried",
"baked",
"grilled",
"not_cooked",
"portion_for_several_people",
"big_portion",
"combo"
],
"example": "fried"
}
}
}
}
}
},
"adult_info": {
"type": "object",
"additionalProperties": false,
"description": "Информация о adult-свойствах товара",
"required": [
"age_group"
],
"properties": {
"age_group": {
"type": "integer",
"description": "Возрастное ограничение на товар",
"enum": [
18,
21
]
},
"alcohol_percentage": {
"type": "string",
"pattern": "^[0-9]+(\\.[0-9]{1,2})?$",
"example": "12.34",
"description": "Процент содержания алкоголя в блюде. Число указывается только через точку."
}
}
},
"onlyForCombo": {
"type": "boolean",
"description": "Блюдо только для комбо"
}
},
"required": [
"categoryId",
"id",
"measureUnit",
"name",
"price",
"measure"
]
},
"type": "array"
},
"combos": {
"description": "Список комбо, доступных для заказа",
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"categoryId",
"name",
"components",
"price"
],
"properties": {
"id": {
"type": "string",
"description": "Идентификатор комбо",
"example": "fa494dc1-2578-4adb-a8fa-e270de8c3d28"
},
"categoryId": {
"type": "string",
"description": "Идентификатор категории в системе партнера",
"example": "fa494dc1-2578-4adb-a8fa-e270de8c3d28"
},
"name": {
"type": "string",
"description": "Название комбо",
"example": "Комбо с Воппер По-Итальянски"
},
"description": {
"type": "string",
"description": "Описание комбо"
},
"image": {
"properties": {
"hash": {
"type": "string",
"description": "SHA1-хэш от содержимого файла изображения. Рассчитывается партнером, служит признаком уникальности. В случае если он меняется, Яндекс Еда перезагружает картинку"
},
"url": {
"type": "string",
"description": "Ссылка на изображение для скачивания",
"format": "uri"
}
},
"required": [
"hash",
"url"
]
},
"components": {
"type": "array",
"items": {
"type": "object",
"description": "Компонент комбо",
"required": [
"id",
"name",
"items"
],
"properties": {
"id": {
"type": "string",
"description": "Идентификатор компонента"
},
"name": {
"type": "string",
"description": "Название компонента",
"example": "Горячее"
},
"items": {
"type": "array",
"description": "Список позиций, которые можно выбрать как компонент комбо",
"items": {
"type": "object",
"description": "Позиция в меню, которую можно выбрать как компонент комбо",
"required": [
"itemId"
],
"properties": {
"itemId": {
"type": "string",
"description": "Внутренний идентификатор блюда в ресторане в системе партнера. Может быть любым значением, приводимым к строке. Рекомендация - UUID4",
"example": "e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9"
},
"isDefault": {
"type": "boolean",
"description": "Является ли данный продукт выбором по умолчанию\nЕсли не указано ни одного продукта в списке с такой опцией,\nто дефолтным будет первый продукт в списке\n"
}
}
}
}
}
}
},
"price": {
"oneOf": [
{
"type": "object",
"description": "Фиксированная цена на комбо.\nЦена на блюда в заказе будет распределена пропорционально их цене в меню.\nНапример, если цена комбо 2500 и оно состоит из блюд, цена которых в меню 1000 и 2000,\nто в заказе цены блюд будут 833.33 и 1666.67 соответственно\n",
"required": [
"type",
"price"
],
"properties": {
"type": {
"type": "string",
"enum": [
"fixed"
]
},
"price": {
"type": "string",
"pattern": "^-?[0-9]+(\\.[0-9]{1,2})?$"
}
}
},
{
"type": "object",
"description": "На комбо предоставляется процентная скидка, применяемая к сумме позиций в комбо",
"required": [
"type",
"discount"
],
"properties": {
"type": {
"type": "string",
"enum": [
"single_discount"
]
},
"discount": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Размер скидки в процентах"
}
}
},
{
"type": "object",
"description": "На каждую позицию в комбо предоставляется отдельная процентная скидка",
"required": [
"type",
"discounts"
],
"properties": {
"type": {
"type": "string",
"enum": [
"item_discounts"
]
},
"discounts": {
"type": "array",
"items": {
"type": "object",
"description": "Скидка для блюда в комбо",
"required": [
"itemId",
"discount"
],
"properties": {
"itemId": {
"type": "string",
"description": "Внутренний идентификатор блюда в ресторане в системе партнера. Может быть любым значением, приводимым к строке. Рекомендация - UUID4",
"example": "e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9"
},
"discount": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Размер скидки в процентах"
}
}
}
}
}
}
],
"discriminator": {
"propertyName": "type",
"mapping": {
"fixed": "#/components/schemas/ComboFixedPrice",
"single_discount": "#/components/schemas/ComboSingleDiscountPrice",
"item_discounts": "#/components/schemas/ComboItemDiscountsPrice"
}
}
}
}
}
},
"lastChange": {
"type": "string",
"description": "Дата последнего изменения меню ресторана (на стороне партнера). Важно: дата в формате RFC3339 с дробной частью секунд (Y-m-d\\TH:i:s.uP)! Если эта дата не менялась, Яндекс Еда может в автоматическом режиме принять решение о том, что обновлять меню не требуется. Если дата обновления в этом поле отличается от даты во время последнего обновления меню, то оно будет загружено заново",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
}
},
"required": [
"categories",
"lastChange",
"items"
]
}
}
}
},
"400": {
"description": "Bad request. Ошибка в параметрах. **_В теле ответа ожидается массив с объектом из списка ошибок_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
},
"401": {
"description": "Не пройдена авторизация - истек токен, либо не был передан в запросе. Будет сделан ретрай",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Причина, по которой не прошла авторизация",
"example": "Access token has been expired. You should request a new one"
}
},
"required": [
"reason"
]
}
}
}
},
"404": {
"description": "Не найден ресторан. **_В теле ответа ожидается массив с объектом из списка ошибок_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
},
"500": {
"description": "Внутренние ошибки сервера. **_В теле ответа ожидается массив с объектом из списка ошибок_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
}
}
}
},
"/menu/{restaurantId}/availability": {
"get": {
"tags": [
"Меню"
],
"summary": "Получить позиции меню, недоступные для заказа на текущий момент",
"description": "Позиции, содержащие схематические или логические несоответствия (слишком длинная строка, остаток равен -10.00) могут быть проигнорированы. Актуальная версия модели ответа - application/vnd.eats.menu.availability.v2+json",
"operationId": "partner.availability.get",
"parameters": [
{
"name": "restaurantId",
"in": "path",
"description": "Идентификатор ресторана в системе партнёра",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Возвращает список позиций меню, недоступных на текущий момент в данном ресторане",
"content": {
"application/vnd.eats.menu.availability.v2+json": {
"schema": {
"type": "object",
"description": "Актуальная версия модели доступности меню",
"properties": {
"items": {
"type": "array",
"description": "Список пунктов меню, по которым требуется изменить доступность",
"items": {
"properties": {
"itemId": {
"type": "string",
"description": "Внутренний идентификатор блюда в ресторане в системе партнера. Может быть любым значением, приводимым к строке. Рекомендация – UUID4",
"example": "eff0cec0-058c-4d53-b524-1c04ac24fb51"
},
"stock": {
"type": "integer",
"format": "int32",
"description": "Остаток в ресторане. При 0 блюдо пропадает из выдачи. Не обязательное поле. Если stock для itemId не передан, то остаток блюда считается за 0.",
"default": 0,
"example": 5
}
},
"required": [
"itemId"
]
}
},
"modifiers": {
"type": "array",
"description": "Список модификаторов блюд, по которым требуется изменить доступность",
"items": {
"properties": {
"modifierId": {
"type": "string",
"description": "Внутренний идентификатор модификатора в ресторане в системе партнера. Может быть любым значением, приводимым к строке. Рекомендация – UUID4",
"example": "eff0cec0-058c-4d53-b524-1c04ac24fb51"
},
"stock": {
"type": "integer",
"format": "int32",
"description": "Остаток в ресторане. При 0 модификатор пропадает из выдачи. Не обязательное поле. Если stock для modifierId не передан, то остаток блюда считается за 0.",
"default": 0,
"example": 5
}
},
"required": [
"modifierId"
]
}
},
"combos": {
"type": "array",
"description": "Список комбо, по которым требуется изменить доступность",
"items": {
"properties": {
"comboId": {
"type": "string",
"description": "Внутренний идентификатор комбо в ресторане в системе партнера. Может быть любым значением, приводимым к строке. Рекомендация - UUID4"
},
"stock": {
"type": "number",
"format": "float",
"default": 0,
"description": "Остаток в ресторане. При 0 комбо пропадает из выдачи. Не обязательное поле. Если не указан, считается за 0",
"example": 5.5
}
},
"required": [
"comboId"
]
}
}
},
"required": [
"items",
"modifiers"
]
}
}
}
},
"401": {
"description": "Не пройдена авторизация - истек токен, либо не был передан в запросе. Будет сделан ретрай",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Причина, по которой не прошла авторизация",
"example": "Access token has been expired. You should request a new one"
}
},
"required": [
"reason"
]
}
}
}
},
"404": {
"description": "Не найден ресторан. **_В теле ответа ожидается массив с объектом из списка ошибок_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
},
"500": {
"description": "Внутренние ошибки сервера. **_В теле ответа ожидается массив с объектом из списка ошибок_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
}
},
"security": [
{
"OAuth2": [
"read",
"write"
]
}
]
}
},
"/menu/{restaurantId}/promos": {
"get": {
"tags": [
"Меню"
],
"summary": "Получить акционные блюда в связке с меню",
"description": "Метод используется для передачи подменного ID подарочного блюда для акции «блюдо в подарок».\n",
"operationId": "partner.promos.get",
"parameters": [
{
"name": "restaurantId",
"in": "path",
"description": "Идентификатор ресторана в системе партнера",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Возвращает список позиций акционных блюд меню, связанных с основным меню",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"promoItems": {
"type": "array",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID блюда из основного меню",
"example": "string"
},
"promoId": {
"type": "string",
"description": "ID акционного блюда",
"example": "string"
}
},
"required": [
"id",
"promoId"
]
}
}
},
"required": [
"promoItems"
]
}
}
}
},
"401": {
"description": "Не пройдена авторизация - истек токен, либо не был передан в запросе. Будет сделан ретрай",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Причина, по которой не прошла авторизация",
"example": "Access token has been expired. You should request a new one"
}
},
"required": [
"reason"
]
}
}
}
},
"404": {
"description": "Не найден ресторан. **_В теле ответа ожидается массив с объектом из списка ошибок_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
},
"500": {
"description": "Внутренние ошибки сервера. **_В теле ответа ожидается массив с объектом из списка ошибок_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
}
},
"security": [
{
"OAuth2": [
"read"
]
}
]
}
},
"/restaurants": {
"get": {
"tags": [
"Рестораны"
],
"summary": "Получить список заведений партнера",
"description": "Получает список заведений партнера.",
"operationId": "partner.restaurants.get",
"responses": {
"200": {
"description": "Возвращает список ресторанов партнера",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"places": {
"type": "array",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID заведения в системе партнера",
"example": "123"
},
"title": {
"type": "string",
"description": "Название заведения",
"example": "Test place"
},
"address": {
"type": "string",
"description": "Адрес заведения",
"example": "City, str. Street, 1"
}
},
"required": [
"id",
"title",
"address"
]
}
}
},
"required": [
"places"
]
}
}
}
},
"401": {
"description": "Не пройдена авторизация - истек токен, либо не был передан в запросе. Будет сделан ретрай",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Причина, по которой не прошла авторизация",
"example": "Access token has been expired. You should request a new one"
}
},
"required": [
"reason"
]
}
}
}
},
"500": {
"description": "Внутренние ошибки сервера. **_В теле ответа ожидается массив с объектом из списка ошибок_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
}
},
"security": [
{
"OAuth2": [
"read"
]
}
]
}
},
"/restaurants/availability": {
"get": {
"tags": [
"Рестораны"
],
"summary": "Получить информацию об активности ресторанов сети",
"description": "Включение и отключение ресторанов в сервисе Яндекс Еда.\n\nДля проставления доступности или недоступности ресторана в сервисе\nЯндекс Еда следует передать соответствующее places.enabled значение.\nЕсли ресторан отсутствует в ответе партнера - доступность не меняется.\nВключить можно только рестораны, которые ранее не были отключены сервисом\nЯндекс Еда по другим причинам.",
"operationId": "partner.restaurants.availability.get",
"responses": {
"200": {
"description": "Список ресторанов с признаком активности",
"content": {
"application/json": {
"schema": {
"properties": {
"places": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"maxLength": 255,
"description": "ID заведения в системе партнера",
"example": "e89b-12d3-a456"
},
"enabled": {
"type": "boolean",
"description": "Активность ресторана",
"nullable": false,
"example": true
}
},
"required": [
"id",
"enabled"
]
}
}
}
}
}
}
},
"401": {
"description": "Не пройдена авторизация - истек токен, либо не был передан в запросе",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Причина, по которой не прошла авторизация",
"example": "Access token has been expired. You should request a new one"
}
},
"required": [
"reason"
]
}
}
}
},
"500": {
"description": "Внутренние ошибки сервера. **_В теле ответа ожидается массив с объектом из списка ошибок_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
}
},
"security": [
{
"OAuth2": [
"read"
]
}
]
}
},
"/order": {
"post": {
"tags": [
"Заказы"
],
"summary": "Создать заказ в системе ресторана",
"description": "* `YandexOrder` – схема заказа при доставке Яндекс Еды.\n* `MarketplaceOrder` – схема заказа при доставке партнера.\n* `PickupOrder` – схема заказа при самовывозе.\n\nАктуальная версия модели запроса – application/vnd.eats.order.v2+json.\n",
"operationId": "partner.order.create",
"requestBody": {
"content": {
"application/vnd.eats.order.v2+json": {
"schema": {
"oneOf": [
{
"type": "object",
"description": "Актуальная версия модели заказа по схеме доставки \"yandex\".",
"properties": {
"platform": {
"type": "string",
"description": "Идентификатор платформы:\n* YE – Yandex Eda.\n* DC – Delivery club.\n",
"enum": [
"YE",
"DC"
]
},
"discriminator": {
"type": "string",
"description": "Дискриминатор схемы обьекта. Для YandexOrder равен \"yandex\".",
"example": "yandex"
},
"eatsId": {
"type": "string",
"description": "Сквозной идентификатор заказа на стороне Яндекс.Еды в формате DDDDDD-DDDDDDDD.",
"example": "190330-12345678"
},
"restaurantId": {
"type": "string",
"description": "Внутренний идентификатор заведения в системе партнера, в которое передаётся заказ. Формат свободный, рекомендуется UUID4.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"deliveryInfo": {
"description": "Информация о доставке.",
"properties": {
"clientName": {
"type": "string",
"description": "Имя клиента в сервисе Яндекс Еда",
"example": "Иванов Иван Иванович"
},
"phoneNumber": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Может содержать добавочный номер: \"+<код страны><номер> доб. <добавочный номер>\".",
"example": "+79031111111 доб. 4432"
},
"additionalPhoneNumbers": {
"description": "Список дополнительных номеров для связи с клиентом.",
"type": "array",
"items": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Может содержать добавочный номер: \"+<код страны><номер> доб. <добавочный номер>\".",
"example": "+79031111111 доб. 4432"
}
},
"courierArrivementDate": {
"type": "string",
"description": "Дата, когда придет курьер в ресторан, в формате RFC3339 с дробной частью секунд (Y-m-d\\TH:i:s.uP).",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
},
"realPhoneNumber": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Указывается в случае если клиент дает согласие на обработку своих персональных данных",
"example": "79031111111"
},
"pickupCode": {
"type": "string",
"description": "Код для идентификации курьера",
"example": 123
}
},
"required": [
"courierArrivementDate"
]
},
"paymentInfo": {
"properties": {
"itemsCost": {
"type": "number",
"format": "double",
"example": 100,
"description": "Полная стоимость блюд в заказе, обычна равна сумме стоимости блюд, которые передает партнер в меню. Если в заказе есть скидка на корзину, то она учитывается и вычитается в этом поле."
},
"paymentType": {
"type": "string",
"description": "Информация о типе оплаты. CARD – оплаченный заказа, CASH – неоплаченный заказ.",
"enum": [
"CARD",
"CASH"
]
}
},
"required": [
"itemsCost",
"paymentType"
]
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID позиции меню в системе партнера",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Наименование позиции меню",
"example": "Пицца Пепперони"
},
"quantity": {
"type": "number",
"format": "float",
"description": "Количество позиции в заказе",
"example": 3.5
},
"price": {
"type": "number",
"format": "double",
"description": "Стоимость одной позиции вместе со стоимостью модификаций. В следующей версии будет исправлено на чистую цену позиции без модификаций",
"example": 100
},
"modifications": {
"type": "array",
"description": "Список выбранных модификаций. Может быть пустым, передаётся явно, для каждой отдельной позиции в заказе. При заказе двух позиций одного и того же блюда с разным набором модификаций - передаются разные позиции, с разными списками \"modifications\"",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID модификатора в системе партнера",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"group_id": {
"type": "string",
"description": "ID группы в системе партнера, к которой принадлежит модификатор. Используется для однозначной идентификации модификатора при его дублировании.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"type": "string",
"description": "Наименование модификатора",
"example": "Европейские приборы"
},
"quantity": {
"type": "integer",
"description": "Количество в заказе",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Цена модификатора для пункта меню (например - дополнительный соус)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
}
},
"promos": {
"type": "array",
"description": "Список акций, действующих на текущее блюдо. Если у блюда объект \"promos\" не пустой, значит на него действует акция в системе партнера. Если пустой – это означает, что на блюдо не действуют никакие акции",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Тип акции. Может быть подарок \"GIFT\", процентная скидка \"PERCENTAGE\", софинансируемая скидка \"COFINANCE\", фиксированная скидка \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE",
"FIXED"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Сумма скидки в валюте, оплачиваемая партнёром"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая партнером"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая Яндекс.Едой"
}
},
"required": [
"type",
"discount"
]
}
},
"comboInfo": {
"type": "object",
"description": "Информация о комбо, к которому относится данная позиция. Заполнено только для позиций, которые были выбраны в составе комбо.",
"required": [
"id",
"componentId"
],
"properties": {
"id": {
"type": "string",
"description": "ID комбо из меню, к которому относится данная позиция.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"componentId": {
"type": "string",
"description": "ID компонента комбо, к которому относится данная позиция.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
}
}
}
},
"required": [
"id",
"modifications",
"price",
"quantity",
"promos"
]
}
},
"persons": {
"type": "integer",
"description": "Количество персон, на которых оформлен заказ. Может влиять на количество комплектов приборов",
"example": 2
},
"comment": {
"type": "string",
"description": "Дополнительная информация о заказе",
"example": "Дополнительная информация о заказе: ..."
},
"promos": {
"type": "array",
"description": "Список акций, действующих на весь заказ. Если у заказа объект \"promos\" не пустой, значит на него действует акция в системе партнера. Если пустой – это означает, что на заказ не действуют никакие акции",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Тип акции. Может быть подарок \"GIFT\", процентная скидка \"PERCENTAGE\", софинансируемая скидка \"COFINANCE\", фиксированная скидка \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE",
"FIXED"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Сумма скидки в валюте, оплачиваемая партнёром"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая партнером"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая Яндекс.Едой"
}
},
"required": [
"type",
"discount"
],
"type": "object"
}
}
},
"required": [
"discriminator",
"comment",
"nativeOrderDelivery",
"deliveryInfo",
"paymentInfo",
"eatsId",
"restaurantId",
"items",
"nativeOrderPayment",
"promos"
]
},
{
"type": "object",
"description": "Актуальная версия модели заказа по схеме доставки \"marketplace\"",
"properties": {
"platform": {
"type": "string",
"description": "Идентификатор платформы. YE - Yandex Eda, DC - Delivery club",
"enum": [
"YE",
"DC"
]
},
"discriminator": {
"type": "string",
"description": "Дискриминатор схемы обьекта. Для MarketplaceOrder равен \"marketplace\"",
"example": "marketplace"
},
"eatsId": {
"type": "string",
"description": "Сквозной идентификатор заказа на стороне Яндекс.Еды в формате DDDDDD-DDDDDDDD",
"example": "190330-12345678"
},
"restaurantId": {
"type": "string",
"description": "Внутренний идентификатор заведения в системе партнера, в которое передаётся заказ. Формат свободный, рекомендуется UUID4",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"deliveryInfo": {
"description": "Информация о доставке",
"properties": {
"clientName": {
"type": "string",
"description": "Имя клиента в сервисе Яндекс Еда",
"example": "Иванов Иван Иванович"
},
"phoneNumber": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Может содержать добавочный номер: \"+<код страны><номер> доб. <добавочный номер>\".",
"example": "+79031111111 доб. 4432"
},
"additionalPhoneNumbers": {
"description": "Список дополнительных номеров для связи с клиентом.",
"type": "array",
"items": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Может содержать добавочный номер: \"+<код страны><номер> доб. <добавочный номер>\".",
"example": "+79031111111 доб. 4432"
}
},
"deliveryDate": {
"type": "string",
"description": "Дата доставки (к которой клиент ожидает доставку заказа), в формате RFC3339 с дробной частью секунд (Y-m-d\\TH:i:s.uP)",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
},
"deliveryAddress": {
"description": "Информация об адресе доставки",
"properties": {
"full": {
"type": "string",
"description": "Полный адрес",
"example": "Москва, улица Тверская, дом 1 строение 4, подъезд 2. 4-й этаж, код домофона: 123 К 4567"
},
"latitude": {
"type": "string",
"description": "Широта точки доставки",
"example": "55.756994"
},
"longitude": {
"type": "string",
"description": "Долгота точки доставки",
"example": "37.614006"
}
},
"required": [
"full",
"latitude",
"longitude"
]
}
},
"required": [
"clientName",
"deliveryAddress",
"deliveryDate",
"phoneNumber",
"type"
]
},
"paymentInfo": {
"properties": {
"paymentType": {
"type": "string",
"description": "Информация о типе оплаты. CARD – уже оплаченный заказа, CASH – неоплаченный заказ.",
"enum": [
"CARD",
"CASH"
]
},
"itemsCost": {
"type": "number",
"format": "double",
"example": 100,
"description": "Полная стоимость блюд в заказе, обычна равна сумме стоимости блюд, которые передает партнер в меню. Если в заказе есть скидка на корзину, то она учитывается и вычитается в этом поле."
},
"deliveryFee": {
"type": "number",
"format": "double",
"example": 100,
"description": "Стоимость доставки"
},
"total": {
"type": "number",
"format": "double",
"example": 200,
"description": "Общая стоимость заказа. То есть itemsCost + deliveryFee"
},
"change": {
"type": "number",
"format": "double",
"example": 500,
"description": "Сумма, с которой потребуется сдача."
}
},
"required": [
"change",
"deliveryFee",
"itemsCost",
"paymentType"
]
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID позиции меню в системе партнера",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Наименование позиции меню",
"example": "Пицца Пепперони"
},
"quantity": {
"type": "number",
"format": "float",
"description": "Количество позиции в заказе",
"example": 3.5
},
"price": {
"type": "number",
"format": "double",
"description": "Стоимость одной позиции вместе со стоимостью модификаций. В следующей версии будет исправлено на чистую цену позиции без модификаций",
"example": 100
},
"modifications": {
"type": "array",
"description": "Список выбранных модификаций. Может быть пустым, передаётся явно, для каждой отдельной позиции в заказе. При заказе двух позиций одного и того же блюда с разным набором модификаций - передаются разные позиции, с разными списками \"modifications\"",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID модификатора в системе партнера",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"group_id": {
"type": "string",
"description": "ID группы в системе партнера, к которой принадлежит модификатор. Используется для однозначной идентификации модификатора при его дублировании.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"type": "string",
"description": "Наименование модификатора",
"example": "Европейские приборы"
},
"quantity": {
"type": "integer",
"description": "Количество в заказе",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Цена модификатора для пункта меню (например - дополнительный соус)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
}
},
"promos": {
"type": "array",
"description": "Список акций, действующих на текущее блюдо. Если у блюда объект \"promos\" не пустой, значит на него действует акция в системе партнера. Если пустой – это означает, что на блюдо не действуют никакие акции",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Тип акции. Может быть подарок \"GIFT\", процентная скидка \"PERCENTAGE\", софинансируемая скидка \"COFINANCE\", фиксированная скидка \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE",
"FIXED"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Сумма скидки в валюте, оплачиваемая партнёром"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая партнером"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая Яндекс.Едой"
}
},
"required": [
"type",
"discount"
]
}
},
"comboInfo": {
"type": "object",
"description": "Информация о комбо, к которому относится данная позиция. Заполнено только для позиций, которые были выбраны в составе комбо.",
"required": [
"id",
"componentId"
],
"properties": {
"id": {
"type": "string",
"description": "ID комбо из меню, к которому относится данная позиция.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"componentId": {
"type": "string",
"description": "ID компонента комбо, к которому относится данная позиция.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
}
}
}
},
"required": [
"id",
"modifications",
"price",
"quantity",
"promos"
]
}
},
"persons": {
"type": "integer",
"description": "Количество персон, на которых оформлен заказ. Может влиять на количество комплектов приборов",
"example": 2
},
"comment": {
"type": "string",
"description": "Дополнительная информация о заказе",
"example": "Дополнительная информация о заказе: ..."
},
"promos": {
"type": "array",
"description": "Список акций, действующих на весь заказ. Если у заказа объект \"promos\" не пустой, значит на него действует акция в системе партнера. Если пустой – это означает, что на заказ не действуют никакие акции",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Тип акции. Может быть подарок \"GIFT\", процентная скидка \"PERCENTAGE\", софинансируемая скидка \"COFINANCE\", фиксированная скидка \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE",
"FIXED"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Сумма скидки в валюте, оплачиваемая партнёром"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая партнером"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая Яндекс.Едой"
}
},
"required": [
"type",
"discount"
]
}
}
},
"required": [
"discriminator",
"comment",
"marketplaceOrderDelivery",
"eatsId",
"restaurantId",
"items",
"deliveryInfo",
"paymentInfo",
"marketplaceOrderPayment",
"promos"
]
},
{
"type": "object",
"description": "Актуальная версия модели заказа по схеме доставки \"pickup\"",
"properties": {
"platform": {
"type": "string",
"description": "Идентификатор платформы. YE - Yandex Eda, DC - Delivery club",
"enum": [
"YE",
"DC"
]
},
"discriminator": {
"type": "string",
"description": "Дискриминатор схемы обьекта. Для PickupOrder равен \"pickup\"",
"example": "pickup"
},
"eatsId": {
"type": "string",
"description": "Сквозной идентификатор заказа на стороне Яндекс Еды в формате DDDDDD-DDDDDD",
"example": "190330-123456"
},
"restaurantId": {
"type": "string",
"description": "Внутренний идентификатор заведения в системе партнера, в которое передаётся заказ. Формат свободный, рекомендуется UUID4",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"deliveryInfo": {
"description": "Информация о доставке",
"properties": {
"clientName": {
"type": "string",
"description": "Имя клиента в сервисе Яндекс Еда",
"example": "Иванов Иван Иванович"
},
"phoneNumber": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Может содержать добавочный номер: \"+<код страны><номер> доб. <добавочный номер>\".",
"example": "+79031111111 доб. 4432"
},
"additionalPhoneNumbers": {
"description": "Список дополнительных номеров для связи с клиентом.",
"type": "array",
"items": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Может содержать добавочный номер: \"+<код страны><номер> доб. <добавочный номер>\".",
"example": "+79031111111 доб. 4432"
}
},
"clientArrivementDate": {
"type": "string",
"description": "Дата, когда придет клиент в ресторан, в формате RFC3339 с дробной частью секунд (Y-m-d\\TH:i:s.uP)",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
}
},
"required": [
"clientName",
"phoneNumber",
"clientArrivementDate"
]
},
"paymentInfo": {
"properties": {
"paymentType": {
"type": "string",
"description": "Информация о типе оплаты",
"enum": [
"CARD",
"CASH"
]
},
"itemsCost": {
"type": "number",
"format": "double",
"example": 100,
"description": "Полная стоимость блюд в заказе, обычна равна сумме стоимости блюд, которые передает партнер в меню. Если в заказе есть скидка на корзину, то она учитывается и вычитается в этом поле."
},
"total": {
"type": "number",
"format": "double",
"example": 200,
"description": "Общая стоимость заказа"
},
"change": {
"type": "number",
"format": "double",
"example": 500,
"description": "Сумма, с которой потребуется сдача."
}
},
"required": [
"change",
"itemsCost",
"paymentType"
]
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID позиции меню в системе партнера",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Наименование позиции меню",
"example": "Пицца Пепперони"
},
"quantity": {
"type": "number",
"format": "float",
"description": "Количество позиции в заказе",
"example": 3.5
},
"price": {
"type": "number",
"format": "double",
"description": "Стоимость одной позиции вместе со стоимостью модификаций. В следующей версии будет исправлено на чистую цену позиции без модификаций",
"example": 100
},
"modifications": {
"type": "array",
"description": "Список выбранных модификаций. Может быть пустым, передаётся явно, для каждой отдельной позиции в заказе. При заказе двух позиций одного и того же блюда с разным набором модификаций - передаются разные позиции, с разными списками \"modifications\"",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID модификатора в системе партнера",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"group_id": {
"type": "string",
"description": "ID группы в системе партнера, к которой принадлежит модификатор. Используется для однозначной идентификации модификатора при его дублировании.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"type": "string",
"description": "Наименование модификатора",
"example": "Европейские приборы"
},
"quantity": {
"type": "integer",
"description": "Количество в заказе",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Цена модификатора для пункта меню (например - дополнительный соус)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
}
},
"promos": {
"type": "array",
"description": "Список акций, действующих на текущее блюдо. Если у блюда объект \"promos\" не пустой, значит на него действует акция в системе партнера. Если пустой – это означает, что на блюдо не действуют никакие акции",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Тип акции. Может быть подарок \"GIFT\", процентная скидка \"PERCENTAGE\", софинансируемая скидка \"COFINANCE\", фиксированная скидка \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE",
"FIXED"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Сумма скидки в валюте, оплачиваемая партнёром"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая партнером"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая Яндекс.Едой"
}
},
"required": [
"type",
"discount"
]
}
},
"comboInfo": {
"type": "object",
"description": "Информация о комбо, к которому относится данная позиция. Заполнено только для позиций, которые были выбраны в составе комбо.",
"required": [
"id",
"componentId"
],
"properties": {
"id": {
"type": "string",
"description": "ID комбо из меню, к которому относится данная позиция.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"componentId": {
"type": "string",
"description": "ID компонента комбо, к которому относится данная позиция.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
}
}
}
},
"required": [
"id",
"modifications",
"price",
"quantity",
"promos"
]
}
},
"persons": {
"type": "integer",
"description": "Количество персон, на которых оформлен заказ. Может влиять на количество комплектов приборов",
"example": 2
},
"comment": {
"type": "string",
"description": "Дополнительная информация о заказе",
"example": "Дополнительная информация о заказе: ..."
},
"promos": {
"type": "array",
"description": "Список акций, действующих на весь заказ. Если у заказа объект \"promos\" не пустой, значит на него действует акция в системе партнера. Если пустой – это означает, что на заказ не действуют никакие акции",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Тип акции. Может быть подарок \"GIFT\", процентная скидка \"PERCENTAGE\", софинансируемая скидка \"COFINANCE\", фиксированная скидка \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE",
"FIXED"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Сумма скидки в валюте, оплачиваемая партнёром"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая партнером"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая Яндекс.Едой"
}
},
"required": [
"type",
"discount"
],
"type": "object"
}
}
},
"required": [
"discriminator",
"comment",
"deliveryInfo",
"eatsId",
"restaurantId",
"items",
"paymentInfo",
"promos"
]
}
],
"discriminator": {
"propertyName": "discriminator",
"mapping": {
"marketplace": "#/components/schemas/MarketplaceOrderV2",
"yandex": "#/components/schemas/YandexOrderV2",
"pickup": "#/components/schemas/PickupOrderV1"
}
}
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Заказ успешно обработан внутренней системой ресторана",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"orderId"
],
"properties": {
"result": {
"type": "string",
"example": "OK"
},
"orderId": {
"type": "string",
"description": "Идентификатор созданного заказа в системе партнера. Формат свободный. Рекомендуется UUID4.",
"example": "03d3b69b-331c-4f84-b2c4-888b30320e63"
}
}
}
}
}
},
"400": {
"description": "Bad request. Ошибка в параметрах. **_В теле ответа ожидается массив с объектом из списка ошибок_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
},
"401": {
"description": "Не пройдена авторизация – истек токен либо не был передан в запросе. Будет сделан ретрай.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Причина, по которой не прошла авторизация",
"example": "Access token has been expired. You should request a new one"
}
},
"required": [
"reason"
]
}
}
}
},
"406": {
"description": "Какие-то блюда в заказе находятся в стоплисте у партнёра. Переданные партнером блюда будут поставлены в стоп-лист. Если при следующем опросе стоп-листов этих блюд в нем не будет - то они вновь станут доступны. После этого клиенту предложат изменить заказ с учетом отсутствующих блюд. Если он согласится, то заказ вновь отправиться в ресторан со скорректированным составом.",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"example": "unavailable_goods"
},
"message": {
"type": "string",
"example": "На данный момент товар недоступен для заказа: Омлет с крем-чизом и авокадо"
},
"goods": {
"type": "object",
"description": "Словарь, где ключи – строковые идентификаторы блюд, значения – имена бюлюд",
"example": "{\"10000000003998\": \"Омлет с крем-чизом и авокадо\"}"
}
}
}
}
}
},
"500": {
"description": "Внутренние ошибки сервера.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
}
},
"security": [
{
"OAuth2": [
"read",
"write"
]
}
]
}
},
"/order/{orderId}": {
"get": {
"tags": [
"Заказы"
],
"summary": "Получить информацию о заказе в системе ресторана",
"description": "Получает информацию о заказе. Актуальная версия модели ответа - application/vnd.eats.order.v2+json",
"operationId": "partner.order.get",
"parameters": [
{
"name": "orderId",
"in": "path",
"description": "Идентификатор заказа в системе партнера",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Информация о заказе успешно выдана",
"content": {
"application/vnd.eats.order.v2+json": {
"schema": {
"oneOf": [
{
"type": "object",
"description": "Актуальная версия модели заказа по схеме доставки \"marketplace\"",
"properties": {
"platform": {
"type": "string",
"description": "Идентификатор платформы. YE - Yandex Eda, DC - Delivery club",
"enum": [
"YE",
"DC"
]
},
"discriminator": {
"type": "string",
"description": "Дискриминатор схемы обьекта. Для MarketplaceOrder равен \"marketplace\"",
"example": "marketplace"
},
"eatsId": {
"type": "string",
"description": "Сквозной идентификатор заказа на стороне Яндекс.Еды в формате DDDDDD-DDDDDDDD",
"example": "190330-12345678"
},
"restaurantId": {
"type": "string",
"description": "Внутренний идентификатор заведения в системе партнера, в которое передаётся заказ. Формат свободный, рекомендуется UUID4",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"deliveryInfo": {
"description": "Информация о доставке",
"properties": {
"clientName": {
"type": "string",
"description": "Имя клиента в сервисе Яндекс Еда",
"example": "Иванов Иван Иванович"
},
"phoneNumber": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Может содержать добавочный номер: \"+<код страны><номер> доб. <добавочный номер>\".",
"example": "+79031111111 доб. 4432"
},
"additionalPhoneNumbers": {
"description": "Список дополнительных номеров для связи с клиентом.",
"type": "array",
"items": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Может содержать добавочный номер: \"+<код страны><номер> доб. <добавочный номер>\".",
"example": "+79031111111 доб. 4432"
}
},
"deliveryDate": {
"type": "string",
"description": "Дата доставки (к которой клиент ожидает доставку заказа), в формате RFC3339 с дробной частью секунд (Y-m-d\\TH:i:s.uP)",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
},
"deliveryAddress": {
"description": "Информация об адресе доставки",
"properties": {
"full": {
"type": "string",
"description": "Полный адрес",
"example": "Москва, улица Тверская, дом 1 строение 4, подъезд 2. 4-й этаж, код домофона: 123 К 4567"
},
"latitude": {
"type": "string",
"description": "Широта точки доставки",
"example": "55.756994"
},
"longitude": {
"type": "string",
"description": "Долгота точки доставки",
"example": "37.614006"
}
},
"required": [
"full",
"latitude",
"longitude"
]
}
},
"required": [
"clientName",
"deliveryAddress",
"deliveryDate",
"phoneNumber",
"type"
]
},
"paymentInfo": {
"properties": {
"paymentType": {
"type": "string",
"description": "Информация о типе оплаты. CARD – уже оплаченный заказа, CASH – неоплаченный заказ.",
"enum": [
"CARD",
"CASH"
]
},
"itemsCost": {
"type": "number",
"format": "double",
"example": 100,
"description": "Полная стоимость блюд в заказе, обычна равна сумме стоимости блюд, которые передает партнер в меню. Если в заказе есть скидка на корзину, то она учитывается и вычитается в этом поле."
},
"deliveryFee": {
"type": "number",
"format": "double",
"example": 100,
"description": "Стоимость доставки"
},
"total": {
"type": "number",
"format": "double",
"example": 200,
"description": "Общая стоимость заказа. То есть itemsCost + deliveryFee"
},
"change": {
"type": "number",
"format": "double",
"example": 500,
"description": "Сумма, с которой потребуется сдача."
}
},
"required": [
"change",
"deliveryFee",
"itemsCost",
"paymentType"
]
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID позиции меню в системе партнера",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Наименование позиции меню",
"example": "Пицца Пепперони"
},
"quantity": {
"type": "number",
"format": "float",
"description": "Количество позиции в заказе",
"example": 3.5
},
"price": {
"type": "number",
"format": "double",
"description": "Стоимость одной позиции вместе со стоимостью модификаций. В следующей версии будет исправлено на чистую цену позиции без модификаций",
"example": 100
},
"modifications": {
"type": "array",
"description": "Список выбранных модификаций. Может быть пустым, передаётся явно, для каждой отдельной позиции в заказе. При заказе двух позиций одного и того же блюда с разным набором модификаций - передаются разные позиции, с разными списками \"modifications\"",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID модификатора в системе партнера",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"group_id": {
"type": "string",
"description": "ID группы в системе партнера, к которой принадлежит модификатор. Используется для однозначной идентификации модификатора при его дублировании.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"type": "string",
"description": "Наименование модификатора",
"example": "Европейские приборы"
},
"quantity": {
"type": "integer",
"description": "Количество в заказе",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Цена модификатора для пункта меню (например - дополнительный соус)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
}
},
"promos": {
"type": "array",
"description": "Список акций, действующих на текущее блюдо. Если у блюда объект \"promos\" не пустой, значит на него действует акция в системе партнера. Если пустой – это означает, что на блюдо не действуют никакие акции",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Тип акции. Может быть подарок \"GIFT\", процентная скидка \"PERCENTAGE\", софинансируемая скидка \"COFINANCE\", фиксированная скидка \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE",
"FIXED"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Сумма скидки в валюте, оплачиваемая партнёром"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая партнером"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая Яндекс.Едой"
}
},
"required": [
"type",
"discount"
]
}
},
"comboInfo": {
"type": "object",
"description": "Информация о комбо, к которому относится данная позиция. Заполнено только для позиций, которые были выбраны в составе комбо.",
"required": [
"id",
"componentId"
],
"properties": {
"id": {
"type": "string",
"description": "ID комбо из меню, к которому относится данная позиция.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"componentId": {
"type": "string",
"description": "ID компонента комбо, к которому относится данная позиция.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
}
}
}
},
"required": [
"id",
"modifications",
"price",
"quantity",
"promos"
]
}
},
"persons": {
"type": "integer",
"description": "Количество персон, на которых оформлен заказ. Может влиять на количество комплектов приборов",
"example": 2
},
"comment": {
"type": "string",
"description": "Дополнительная информация о заказе",
"example": "Дополнительная информация о заказе: ..."
},
"promos": {
"type": "array",
"description": "Список акций, действующих на весь заказ. Если у заказа объект \"promos\" не пустой, значит на него действует акция в системе партнера. Если пустой – это означает, что на заказ не действуют никакие акции",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Тип акции. Может быть подарок \"GIFT\", процентная скидка \"PERCENTAGE\", софинансируемая скидка \"COFINANCE\", фиксированная скидка \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE",
"FIXED"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Сумма скидки в валюте, оплачиваемая партнёром"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая партнером"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая Яндекс.Едой"
}
},
"required": [
"type",
"discount"
]
}
}
},
"required": [
"discriminator",
"comment",
"marketplaceOrderDelivery",
"eatsId",
"restaurantId",
"items",
"deliveryInfo",
"paymentInfo",
"marketplaceOrderPayment",
"promos"
]
},
{
"type": "object",
"description": "Актуальная версия модели заказа по схеме доставки \"yandex\".",
"properties": {
"platform": {
"type": "string",
"description": "Идентификатор платформы:\n* YE – Yandex Eda.\n* DC – Delivery club.\n",
"enum": [
"YE",
"DC"
]
},
"discriminator": {
"type": "string",
"description": "Дискриминатор схемы обьекта. Для YandexOrder равен \"yandex\".",
"example": "yandex"
},
"eatsId": {
"type": "string",
"description": "Сквозной идентификатор заказа на стороне Яндекс.Еды в формате DDDDDD-DDDDDDDD.",
"example": "190330-12345678"
},
"restaurantId": {
"type": "string",
"description": "Внутренний идентификатор заведения в системе партнера, в которое передаётся заказ. Формат свободный, рекомендуется UUID4.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"deliveryInfo": {
"description": "Информация о доставке.",
"properties": {
"clientName": {
"type": "string",
"description": "Имя клиента в сервисе Яндекс Еда",
"example": "Иванов Иван Иванович"
},
"phoneNumber": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Может содержать добавочный номер: \"+<код страны><номер> доб. <добавочный номер>\".",
"example": "+79031111111 доб. 4432"
},
"additionalPhoneNumbers": {
"description": "Список дополнительных номеров для связи с клиентом.",
"type": "array",
"items": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Может содержать добавочный номер: \"+<код страны><номер> доб. <добавочный номер>\".",
"example": "+79031111111 доб. 4432"
}
},
"courierArrivementDate": {
"type": "string",
"description": "Дата, когда придет курьер в ресторан, в формате RFC3339 с дробной частью секунд (Y-m-d\\TH:i:s.uP).",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
},
"realPhoneNumber": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Указывается в случае если клиент дает согласие на обработку своих персональных данных",
"example": "79031111111"
},
"pickupCode": {
"type": "string",
"description": "Код для идентификации курьера",
"example": 123
}
},
"required": [
"courierArrivementDate"
]
},
"paymentInfo": {
"properties": {
"itemsCost": {
"type": "number",
"format": "double",
"example": 100,
"description": "Полная стоимость блюд в заказе, обычна равна сумме стоимости блюд, которые передает партнер в меню. Если в заказе есть скидка на корзину, то она учитывается и вычитается в этом поле."
},
"paymentType": {
"type": "string",
"description": "Информация о типе оплаты. CARD – оплаченный заказа, CASH – неоплаченный заказ.",
"enum": [
"CARD",
"CASH"
]
}
},
"required": [
"itemsCost",
"paymentType"
]
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID позиции меню в системе партнера",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Наименование позиции меню",
"example": "Пицца Пепперони"
},
"quantity": {
"type": "number",
"format": "float",
"description": "Количество позиции в заказе",
"example": 3.5
},
"price": {
"type": "number",
"format": "double",
"description": "Стоимость одной позиции вместе со стоимостью модификаций. В следующей версии будет исправлено на чистую цену позиции без модификаций",
"example": 100
},
"modifications": {
"type": "array",
"description": "Список выбранных модификаций. Может быть пустым, передаётся явно, для каждой отдельной позиции в заказе. При заказе двух позиций одного и того же блюда с разным набором модификаций - передаются разные позиции, с разными списками \"modifications\"",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID модификатора в системе партнера",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"group_id": {
"type": "string",
"description": "ID группы в системе партнера, к которой принадлежит модификатор. Используется для однозначной идентификации модификатора при его дублировании.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"type": "string",
"description": "Наименование модификатора",
"example": "Европейские приборы"
},
"quantity": {
"type": "integer",
"description": "Количество в заказе",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Цена модификатора для пункта меню (например - дополнительный соус)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
}
},
"promos": {
"type": "array",
"description": "Список акций, действующих на текущее блюдо. Если у блюда объект \"promos\" не пустой, значит на него действует акция в системе партнера. Если пустой – это означает, что на блюдо не действуют никакие акции",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Тип акции. Может быть подарок \"GIFT\", процентная скидка \"PERCENTAGE\", софинансируемая скидка \"COFINANCE\", фиксированная скидка \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE",
"FIXED"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Сумма скидки в валюте, оплачиваемая партнёром"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая партнером"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая Яндекс.Едой"
}
},
"required": [
"type",
"discount"
]
}
},
"comboInfo": {
"type": "object",
"description": "Информация о комбо, к которому относится данная позиция. Заполнено только для позиций, которые были выбраны в составе комбо.",
"required": [
"id",
"componentId"
],
"properties": {
"id": {
"type": "string",
"description": "ID комбо из меню, к которому относится данная позиция.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"componentId": {
"type": "string",
"description": "ID компонента комбо, к которому относится данная позиция.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
}
}
}
},
"required": [
"id",
"modifications",
"price",
"quantity",
"promos"
]
}
},
"persons": {
"type": "integer",
"description": "Количество персон, на которых оформлен заказ. Может влиять на количество комплектов приборов",
"example": 2
},
"comment": {
"type": "string",
"description": "Дополнительная информация о заказе",
"example": "Дополнительная информация о заказе: ..."
},
"promos": {
"type": "array",
"description": "Список акций, действующих на весь заказ. Если у заказа объект \"promos\" не пустой, значит на него действует акция в системе партнера. Если пустой – это означает, что на заказ не действуют никакие акции",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Тип акции. Может быть подарок \"GIFT\", процентная скидка \"PERCENTAGE\", софинансируемая скидка \"COFINANCE\", фиксированная скидка \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE",
"FIXED"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Сумма скидки в валюте, оплачиваемая партнёром"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая партнером"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая Яндекс.Едой"
}
},
"required": [
"type",
"discount"
],
"type": "object"
}
}
},
"required": [
"discriminator",
"comment",
"nativeOrderDelivery",
"deliveryInfo",
"paymentInfo",
"eatsId",
"restaurantId",
"items",
"nativeOrderPayment",
"promos"
]
},
{
"type": "object",
"description": "Актуальная версия модели заказа по схеме доставки \"pickup\"",
"properties": {
"platform": {
"type": "string",
"description": "Идентификатор платформы. YE - Yandex Eda, DC - Delivery club",
"enum": [
"YE",
"DC"
]
},
"discriminator": {
"type": "string",
"description": "Дискриминатор схемы обьекта. Для PickupOrder равен \"pickup\"",
"example": "pickup"
},
"eatsId": {
"type": "string",
"description": "Сквозной идентификатор заказа на стороне Яндекс Еды в формате DDDDDD-DDDDDD",
"example": "190330-123456"
},
"restaurantId": {
"type": "string",
"description": "Внутренний идентификатор заведения в системе партнера, в которое передаётся заказ. Формат свободный, рекомендуется UUID4",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"deliveryInfo": {
"description": "Информация о доставке",
"properties": {
"clientName": {
"type": "string",
"description": "Имя клиента в сервисе Яндекс Еда",
"example": "Иванов Иван Иванович"
},
"phoneNumber": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Может содержать добавочный номер: \"+<код страны><номер> доб. <добавочный номер>\".",
"example": "+79031111111 доб. 4432"
},
"additionalPhoneNumbers": {
"description": "Список дополнительных номеров для связи с клиентом.",
"type": "array",
"items": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Может содержать добавочный номер: \"+<код страны><номер> доб. <добавочный номер>\".",
"example": "+79031111111 доб. 4432"
}
},
"clientArrivementDate": {
"type": "string",
"description": "Дата, когда придет клиент в ресторан, в формате RFC3339 с дробной частью секунд (Y-m-d\\TH:i:s.uP)",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
}
},
"required": [
"clientName",
"phoneNumber",
"clientArrivementDate"
]
},
"paymentInfo": {
"properties": {
"paymentType": {
"type": "string",
"description": "Информация о типе оплаты",
"enum": [
"CARD",
"CASH"
]
},
"itemsCost": {
"type": "number",
"format": "double",
"example": 100,
"description": "Полная стоимость блюд в заказе, обычна равна сумме стоимости блюд, которые передает партнер в меню. Если в заказе есть скидка на корзину, то она учитывается и вычитается в этом поле."
},
"total": {
"type": "number",
"format": "double",
"example": 200,
"description": "Общая стоимость заказа"
},
"change": {
"type": "number",
"format": "double",
"example": 500,
"description": "Сумма, с которой потребуется сдача."
}
},
"required": [
"change",
"itemsCost",
"paymentType"
]
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID позиции меню в системе партнера",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Наименование позиции меню",
"example": "Пицца Пепперони"
},
"quantity": {
"type": "number",
"format": "float",
"description": "Количество позиции в заказе",
"example": 3.5
},
"price": {
"type": "number",
"format": "double",
"description": "Стоимость одной позиции вместе со стоимостью модификаций. В следующей версии будет исправлено на чистую цену позиции без модификаций",
"example": 100
},
"modifications": {
"type": "array",
"description": "Список выбранных модификаций. Может быть пустым, передаётся явно, для каждой отдельной позиции в заказе. При заказе двух позиций одного и того же блюда с разным набором модификаций - передаются разные позиции, с разными списками \"modifications\"",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID модификатора в системе партнера",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"group_id": {
"type": "string",
"description": "ID группы в системе партнера, к которой принадлежит модификатор. Используется для однозначной идентификации модификатора при его дублировании.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"type": "string",
"description": "Наименование модификатора",
"example": "Европейские приборы"
},
"quantity": {
"type": "integer",
"description": "Количество в заказе",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Цена модификатора для пункта меню (например - дополнительный соус)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
}
},
"promos": {
"type": "array",
"description": "Список акций, действующих на текущее блюдо. Если у блюда объект \"promos\" не пустой, значит на него действует акция в системе партнера. Если пустой – это означает, что на блюдо не действуют никакие акции",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Тип акции. Может быть подарок \"GIFT\", процентная скидка \"PERCENTAGE\", софинансируемая скидка \"COFINANCE\", фиксированная скидка \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE",
"FIXED"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Сумма скидки в валюте, оплачиваемая партнёром"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая партнером"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая Яндекс.Едой"
}
},
"required": [
"type",
"discount"
]
}
},
"comboInfo": {
"type": "object",
"description": "Информация о комбо, к которому относится данная позиция. Заполнено только для позиций, которые были выбраны в составе комбо.",
"required": [
"id",
"componentId"
],
"properties": {
"id": {
"type": "string",
"description": "ID комбо из меню, к которому относится данная позиция.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"componentId": {
"type": "string",
"description": "ID компонента комбо, к которому относится данная позиция.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
}
}
}
},
"required": [
"id",
"modifications",
"price",
"quantity",
"promos"
]
}
},
"persons": {
"type": "integer",
"description": "Количество персон, на которых оформлен заказ. Может влиять на количество комплектов приборов",
"example": 2
},
"comment": {
"type": "string",
"description": "Дополнительная информация о заказе",
"example": "Дополнительная информация о заказе: ..."
},
"promos": {
"type": "array",
"description": "Список акций, действующих на весь заказ. Если у заказа объект \"promos\" не пустой, значит на него действует акция в системе партнера. Если пустой – это означает, что на заказ не действуют никакие акции",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Тип акции. Может быть подарок \"GIFT\", процентная скидка \"PERCENTAGE\", софинансируемая скидка \"COFINANCE\", фиксированная скидка \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE",
"FIXED"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Сумма скидки в валюте, оплачиваемая партнёром"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая партнером"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая Яндекс.Едой"
}
},
"required": [
"type",
"discount"
],
"type": "object"
}
}
},
"required": [
"discriminator",
"comment",
"deliveryInfo",
"eatsId",
"restaurantId",
"items",
"paymentInfo",
"promos"
]
}
],
"discriminator": {
"propertyName": "discriminator",
"mapping": {
"marketplace": "#/components/schemas/MarketplaceOrderV2",
"yandex": "#/components/schemas/YandexOrderV2",
"pickup": "#/components/schemas/PickupOrderV1"
}
}
}
}
}
},
"400": {
"description": "Bad request. Ошибка в параметрах. **_В теле ответа ожидается массив с объектом из списка ошибок_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
},
"401": {
"description": "Не пройдена авторизация - истек токен, либо не был передан в запросе. Будет сделан ретрай",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Причина, по которой не прошла авторизация",
"example": "Access token has been expired. You should request a new one"
}
},
"required": [
"reason"
]
}
}
}
},
"404": {
"description": "Заказ не найден в системе. **_В теле ответа ожидается массив с объектом из списка ошибок_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
},
"500": {
"description": "Внутренние ошибки сервера. **_В теле ответа ожидается массив с объектом из списка ошибок_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
}
},
"security": [
{
"OAuth2": [
"read",
"write"
]
}
]
},
"delete": {
"summary": "Отменить заказ в системе ресторана",
"description": "Отменяет заказ в системе ресторана",
"operationId": "partner.order.cancel",
"tags": [
"Заказы"
],
"parameters": [
{
"name": "orderId",
"in": "path",
"required": true,
"description": "Идентификатор заказа в системе партнера",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"eatsId": {
"type": "string",
"description": "Сквозной идентификатор заказа на стороне Яндекс Еды в формате DDDDDD-DDDDDDDD",
"example": "190330-12345678"
},
"comment": {
"type": "string",
"description": "Описание причин отмены (может быть пустым)",
"example": "Отказ клиента"
}
},
"required": [
"eatsId"
]
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Заказ успешно отменен в ресторане"
},
"400": {
"description": "Bad request. Ошибка в параметрах. **_В теле ответа ожидается массив с объектом из списка ошибок_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
},
"401": {
"description": "Не пройдена авторизация - истек токен, либо не был передан в запросе. Будет сделан ретрай",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Причина, по которой не прошла авторизация",
"example": "Access token has been expired. You should request a new one"
}
},
"required": [
"reason"
]
}
}
}
},
"404": {
"description": "Заказ не найден в системе. **_В теле ответа ожидается массив с объектом из списка ошибок_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
},
"500": {
"description": "Внутренние ошибки сервера. **_В теле ответа ожидается массив с объектом из списка ошибок_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
}
},
"security": [
{
"OAuth2": [
"read",
"write"
]
}
]
},
"put": {
"tags": [
"Заказы"
],
"summary": "Обновить заказ в системе ресторана",
"description": "Обновление состава заказа в системе партнера по инициативе Яндекс Еды. Для использования данного метода требуется согласование с сотрудниками Яндекса. Передается объект заказа целиком. Актуальная версия модели запроса - application/vnd.eats.order.v2+json",
"operationId": "partner.order.update",
"parameters": [
{
"name": "orderId",
"in": "path",
"required": true,
"description": "Идентификатор заказа в системе партнера",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/vnd.eats.order.v2+json": {
"schema": {
"oneOf": [
{
"type": "object",
"description": "Актуальная версия модели заказа по схеме доставки \"marketplace\"",
"properties": {
"platform": {
"type": "string",
"description": "Идентификатор платформы. YE - Yandex Eda, DC - Delivery club",
"enum": [
"YE",
"DC"
]
},
"discriminator": {
"type": "string",
"description": "Дискриминатор схемы обьекта. Для MarketplaceOrder равен \"marketplace\"",
"example": "marketplace"
},
"eatsId": {
"type": "string",
"description": "Сквозной идентификатор заказа на стороне Яндекс.Еды в формате DDDDDD-DDDDDDDD",
"example": "190330-12345678"
},
"restaurantId": {
"type": "string",
"description": "Внутренний идентификатор заведения в системе партнера, в которое передаётся заказ. Формат свободный, рекомендуется UUID4",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"deliveryInfo": {
"description": "Информация о доставке",
"properties": {
"clientName": {
"type": "string",
"description": "Имя клиента в сервисе Яндекс Еда",
"example": "Иванов Иван Иванович"
},
"phoneNumber": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Может содержать добавочный номер: \"+<код страны><номер> доб. <добавочный номер>\".",
"example": "+79031111111 доб. 4432"
},
"additionalPhoneNumbers": {
"description": "Список дополнительных номеров для связи с клиентом.",
"type": "array",
"items": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Может содержать добавочный номер: \"+<код страны><номер> доб. <добавочный номер>\".",
"example": "+79031111111 доб. 4432"
}
},
"deliveryDate": {
"type": "string",
"description": "Дата доставки (к которой клиент ожидает доставку заказа), в формате RFC3339 с дробной частью секунд (Y-m-d\\TH:i:s.uP)",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
},
"deliveryAddress": {
"description": "Информация об адресе доставки",
"properties": {
"full": {
"type": "string",
"description": "Полный адрес",
"example": "Москва, улица Тверская, дом 1 строение 4, подъезд 2. 4-й этаж, код домофона: 123 К 4567"
},
"latitude": {
"type": "string",
"description": "Широта точки доставки",
"example": "55.756994"
},
"longitude": {
"type": "string",
"description": "Долгота точки доставки",
"example": "37.614006"
}
},
"required": [
"full",
"latitude",
"longitude"
]
}
},
"required": [
"clientName",
"deliveryAddress",
"deliveryDate",
"phoneNumber",
"type"
]
},
"paymentInfo": {
"properties": {
"paymentType": {
"type": "string",
"description": "Информация о типе оплаты. CARD – уже оплаченный заказа, CASH – неоплаченный заказ.",
"enum": [
"CARD",
"CASH"
]
},
"itemsCost": {
"type": "number",
"format": "double",
"example": 100,
"description": "Полная стоимость блюд в заказе, обычна равна сумме стоимости блюд, которые передает партнер в меню. Если в заказе есть скидка на корзину, то она учитывается и вычитается в этом поле."
},
"deliveryFee": {
"type": "number",
"format": "double",
"example": 100,
"description": "Стоимость доставки"
},
"total": {
"type": "number",
"format": "double",
"example": 200,
"description": "Общая стоимость заказа. То есть itemsCost + deliveryFee"
},
"change": {
"type": "number",
"format": "double",
"example": 500,
"description": "Сумма, с которой потребуется сдача."
}
},
"required": [
"change",
"deliveryFee",
"itemsCost",
"paymentType"
]
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID позиции меню в системе партнера",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Наименование позиции меню",
"example": "Пицца Пепперони"
},
"quantity": {
"type": "number",
"format": "float",
"description": "Количество позиции в заказе",
"example": 3.5
},
"price": {
"type": "number",
"format": "double",
"description": "Стоимость одной позиции вместе со стоимостью модификаций. В следующей версии будет исправлено на чистую цену позиции без модификаций",
"example": 100
},
"modifications": {
"type": "array",
"description": "Список выбранных модификаций. Может быть пустым, передаётся явно, для каждой отдельной позиции в заказе. При заказе двух позиций одного и того же блюда с разным набором модификаций - передаются разные позиции, с разными списками \"modifications\"",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID модификатора в системе партнера",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"group_id": {
"type": "string",
"description": "ID группы в системе партнера, к которой принадлежит модификатор. Используется для однозначной идентификации модификатора при его дублировании.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"type": "string",
"description": "Наименование модификатора",
"example": "Европейские приборы"
},
"quantity": {
"type": "integer",
"description": "Количество в заказе",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Цена модификатора для пункта меню (например - дополнительный соус)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
}
},
"promos": {
"type": "array",
"description": "Список акций, действующих на текущее блюдо. Если у блюда объект \"promos\" не пустой, значит на него действует акция в системе партнера. Если пустой – это означает, что на блюдо не действуют никакие акции",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Тип акции. Может быть подарок \"GIFT\", процентная скидка \"PERCENTAGE\", софинансируемая скидка \"COFINANCE\", фиксированная скидка \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE",
"FIXED"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Сумма скидки в валюте, оплачиваемая партнёром"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая партнером"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая Яндекс.Едой"
}
},
"required": [
"type",
"discount"
]
}
},
"comboInfo": {
"type": "object",
"description": "Информация о комбо, к которому относится данная позиция. Заполнено только для позиций, которые были выбраны в составе комбо.",
"required": [
"id",
"componentId"
],
"properties": {
"id": {
"type": "string",
"description": "ID комбо из меню, к которому относится данная позиция.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"componentId": {
"type": "string",
"description": "ID компонента комбо, к которому относится данная позиция.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
}
}
}
},
"required": [
"id",
"modifications",
"price",
"quantity",
"promos"
]
}
},
"persons": {
"type": "integer",
"description": "Количество персон, на которых оформлен заказ. Может влиять на количество комплектов приборов",
"example": 2
},
"comment": {
"type": "string",
"description": "Дополнительная информация о заказе",
"example": "Дополнительная информация о заказе: ..."
},
"promos": {
"type": "array",
"description": "Список акций, действующих на весь заказ. Если у заказа объект \"promos\" не пустой, значит на него действует акция в системе партнера. Если пустой – это означает, что на заказ не действуют никакие акции",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Тип акции. Может быть подарок \"GIFT\", процентная скидка \"PERCENTAGE\", софинансируемая скидка \"COFINANCE\", фиксированная скидка \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE",
"FIXED"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Сумма скидки в валюте, оплачиваемая партнёром"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая партнером"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая Яндекс.Едой"
}
},
"required": [
"type",
"discount"
]
}
}
},
"required": [
"discriminator",
"comment",
"marketplaceOrderDelivery",
"eatsId",
"restaurantId",
"items",
"deliveryInfo",
"paymentInfo",
"marketplaceOrderPayment",
"promos"
]
},
{
"type": "object",
"description": "Актуальная версия модели заказа по схеме доставки \"yandex\".",
"properties": {
"platform": {
"type": "string",
"description": "Идентификатор платформы:\n* YE – Yandex Eda.\n* DC – Delivery club.\n",
"enum": [
"YE",
"DC"
]
},
"discriminator": {
"type": "string",
"description": "Дискриминатор схемы обьекта. Для YandexOrder равен \"yandex\".",
"example": "yandex"
},
"eatsId": {
"type": "string",
"description": "Сквозной идентификатор заказа на стороне Яндекс.Еды в формате DDDDDD-DDDDDDDD.",
"example": "190330-12345678"
},
"restaurantId": {
"type": "string",
"description": "Внутренний идентификатор заведения в системе партнера, в которое передаётся заказ. Формат свободный, рекомендуется UUID4.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"deliveryInfo": {
"description": "Информация о доставке.",
"properties": {
"clientName": {
"type": "string",
"description": "Имя клиента в сервисе Яндекс Еда",
"example": "Иванов Иван Иванович"
},
"phoneNumber": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Может содержать добавочный номер: \"+<код страны><номер> доб. <добавочный номер>\".",
"example": "+79031111111 доб. 4432"
},
"additionalPhoneNumbers": {
"description": "Список дополнительных номеров для связи с клиентом.",
"type": "array",
"items": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Может содержать добавочный номер: \"+<код страны><номер> доб. <добавочный номер>\".",
"example": "+79031111111 доб. 4432"
}
},
"courierArrivementDate": {
"type": "string",
"description": "Дата, когда придет курьер в ресторан, в формате RFC3339 с дробной частью секунд (Y-m-d\\TH:i:s.uP).",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
},
"realPhoneNumber": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Указывается в случае если клиент дает согласие на обработку своих персональных данных",
"example": "79031111111"
},
"pickupCode": {
"type": "string",
"description": "Код для идентификации курьера",
"example": 123
}
},
"required": [
"courierArrivementDate"
]
},
"paymentInfo": {
"properties": {
"itemsCost": {
"type": "number",
"format": "double",
"example": 100,
"description": "Полная стоимость блюд в заказе, обычна равна сумме стоимости блюд, которые передает партнер в меню. Если в заказе есть скидка на корзину, то она учитывается и вычитается в этом поле."
},
"paymentType": {
"type": "string",
"description": "Информация о типе оплаты. CARD – оплаченный заказа, CASH – неоплаченный заказ.",
"enum": [
"CARD",
"CASH"
]
}
},
"required": [
"itemsCost",
"paymentType"
]
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID позиции меню в системе партнера",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Наименование позиции меню",
"example": "Пицца Пепперони"
},
"quantity": {
"type": "number",
"format": "float",
"description": "Количество позиции в заказе",
"example": 3.5
},
"price": {
"type": "number",
"format": "double",
"description": "Стоимость одной позиции вместе со стоимостью модификаций. В следующей версии будет исправлено на чистую цену позиции без модификаций",
"example": 100
},
"modifications": {
"type": "array",
"description": "Список выбранных модификаций. Может быть пустым, передаётся явно, для каждой отдельной позиции в заказе. При заказе двух позиций одного и того же блюда с разным набором модификаций - передаются разные позиции, с разными списками \"modifications\"",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID модификатора в системе партнера",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"group_id": {
"type": "string",
"description": "ID группы в системе партнера, к которой принадлежит модификатор. Используется для однозначной идентификации модификатора при его дублировании.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"type": "string",
"description": "Наименование модификатора",
"example": "Европейские приборы"
},
"quantity": {
"type": "integer",
"description": "Количество в заказе",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Цена модификатора для пункта меню (например - дополнительный соус)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
}
},
"promos": {
"type": "array",
"description": "Список акций, действующих на текущее блюдо. Если у блюда объект \"promos\" не пустой, значит на него действует акция в системе партнера. Если пустой – это означает, что на блюдо не действуют никакие акции",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Тип акции. Может быть подарок \"GIFT\", процентная скидка \"PERCENTAGE\", софинансируемая скидка \"COFINANCE\", фиксированная скидка \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE",
"FIXED"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Сумма скидки в валюте, оплачиваемая партнёром"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая партнером"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая Яндекс.Едой"
}
},
"required": [
"type",
"discount"
]
}
},
"comboInfo": {
"type": "object",
"description": "Информация о комбо, к которому относится данная позиция. Заполнено только для позиций, которые были выбраны в составе комбо.",
"required": [
"id",
"componentId"
],
"properties": {
"id": {
"type": "string",
"description": "ID комбо из меню, к которому относится данная позиция.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"componentId": {
"type": "string",
"description": "ID компонента комбо, к которому относится данная позиция.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
}
}
}
},
"required": [
"id",
"modifications",
"price",
"quantity",
"promos"
]
}
},
"persons": {
"type": "integer",
"description": "Количество персон, на которых оформлен заказ. Может влиять на количество комплектов приборов",
"example": 2
},
"comment": {
"type": "string",
"description": "Дополнительная информация о заказе",
"example": "Дополнительная информация о заказе: ..."
},
"promos": {
"type": "array",
"description": "Список акций, действующих на весь заказ. Если у заказа объект \"promos\" не пустой, значит на него действует акция в системе партнера. Если пустой – это означает, что на заказ не действуют никакие акции",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Тип акции. Может быть подарок \"GIFT\", процентная скидка \"PERCENTAGE\", софинансируемая скидка \"COFINANCE\", фиксированная скидка \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE",
"FIXED"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Сумма скидки в валюте, оплачиваемая партнёром"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая партнером"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая Яндекс.Едой"
}
},
"required": [
"type",
"discount"
],
"type": "object"
}
}
},
"required": [
"discriminator",
"comment",
"nativeOrderDelivery",
"deliveryInfo",
"paymentInfo",
"eatsId",
"restaurantId",
"items",
"nativeOrderPayment",
"promos"
]
},
{
"type": "object",
"description": "Актуальная версия модели заказа по схеме доставки \"pickup\"",
"properties": {
"platform": {
"type": "string",
"description": "Идентификатор платформы. YE - Yandex Eda, DC - Delivery club",
"enum": [
"YE",
"DC"
]
},
"discriminator": {
"type": "string",
"description": "Дискриминатор схемы обьекта. Для PickupOrder равен \"pickup\"",
"example": "pickup"
},
"eatsId": {
"type": "string",
"description": "Сквозной идентификатор заказа на стороне Яндекс Еды в формате DDDDDD-DDDDDD",
"example": "190330-123456"
},
"restaurantId": {
"type": "string",
"description": "Внутренний идентификатор заведения в системе партнера, в которое передаётся заказ. Формат свободный, рекомендуется UUID4",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"deliveryInfo": {
"description": "Информация о доставке",
"properties": {
"clientName": {
"type": "string",
"description": "Имя клиента в сервисе Яндекс Еда",
"example": "Иванов Иван Иванович"
},
"phoneNumber": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Может содержать добавочный номер: \"+<код страны><номер> доб. <добавочный номер>\".",
"example": "+79031111111 доб. 4432"
},
"additionalPhoneNumbers": {
"description": "Список дополнительных номеров для связи с клиентом.",
"type": "array",
"items": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Может содержать добавочный номер: \"+<код страны><номер> доб. <добавочный номер>\".",
"example": "+79031111111 доб. 4432"
}
},
"clientArrivementDate": {
"type": "string",
"description": "Дата, когда придет клиент в ресторан, в формате RFC3339 с дробной частью секунд (Y-m-d\\TH:i:s.uP)",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
}
},
"required": [
"clientName",
"phoneNumber",
"clientArrivementDate"
]
},
"paymentInfo": {
"properties": {
"paymentType": {
"type": "string",
"description": "Информация о типе оплаты",
"enum": [
"CARD",
"CASH"
]
},
"itemsCost": {
"type": "number",
"format": "double",
"example": 100,
"description": "Полная стоимость блюд в заказе, обычна равна сумме стоимости блюд, которые передает партнер в меню. Если в заказе есть скидка на корзину, то она учитывается и вычитается в этом поле."
},
"total": {
"type": "number",
"format": "double",
"example": 200,
"description": "Общая стоимость заказа"
},
"change": {
"type": "number",
"format": "double",
"example": 500,
"description": "Сумма, с которой потребуется сдача."
}
},
"required": [
"change",
"itemsCost",
"paymentType"
]
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID позиции меню в системе партнера",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Наименование позиции меню",
"example": "Пицца Пепперони"
},
"quantity": {
"type": "number",
"format": "float",
"description": "Количество позиции в заказе",
"example": 3.5
},
"price": {
"type": "number",
"format": "double",
"description": "Стоимость одной позиции вместе со стоимостью модификаций. В следующей версии будет исправлено на чистую цену позиции без модификаций",
"example": 100
},
"modifications": {
"type": "array",
"description": "Список выбранных модификаций. Может быть пустым, передаётся явно, для каждой отдельной позиции в заказе. При заказе двух позиций одного и того же блюда с разным набором модификаций - передаются разные позиции, с разными списками \"modifications\"",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID модификатора в системе партнера",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"group_id": {
"type": "string",
"description": "ID группы в системе партнера, к которой принадлежит модификатор. Используется для однозначной идентификации модификатора при его дублировании.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"type": "string",
"description": "Наименование модификатора",
"example": "Европейские приборы"
},
"quantity": {
"type": "integer",
"description": "Количество в заказе",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Цена модификатора для пункта меню (например - дополнительный соус)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
}
},
"promos": {
"type": "array",
"description": "Список акций, действующих на текущее блюдо. Если у блюда объект \"promos\" не пустой, значит на него действует акция в системе партнера. Если пустой – это означает, что на блюдо не действуют никакие акции",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Тип акции. Может быть подарок \"GIFT\", процентная скидка \"PERCENTAGE\", софинансируемая скидка \"COFINANCE\", фиксированная скидка \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE",
"FIXED"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Сумма скидки в валюте, оплачиваемая партнёром"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая партнером"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая Яндекс.Едой"
}
},
"required": [
"type",
"discount"
]
}
},
"comboInfo": {
"type": "object",
"description": "Информация о комбо, к которому относится данная позиция. Заполнено только для позиций, которые были выбраны в составе комбо.",
"required": [
"id",
"componentId"
],
"properties": {
"id": {
"type": "string",
"description": "ID комбо из меню, к которому относится данная позиция.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"componentId": {
"type": "string",
"description": "ID компонента комбо, к которому относится данная позиция.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
}
}
}
},
"required": [
"id",
"modifications",
"price",
"quantity",
"promos"
]
}
},
"persons": {
"type": "integer",
"description": "Количество персон, на которых оформлен заказ. Может влиять на количество комплектов приборов",
"example": 2
},
"comment": {
"type": "string",
"description": "Дополнительная информация о заказе",
"example": "Дополнительная информация о заказе: ..."
},
"promos": {
"type": "array",
"description": "Список акций, действующих на весь заказ. Если у заказа объект \"promos\" не пустой, значит на него действует акция в системе партнера. Если пустой – это означает, что на заказ не действуют никакие акции",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Тип акции. Может быть подарок \"GIFT\", процентная скидка \"PERCENTAGE\", софинансируемая скидка \"COFINANCE\", фиксированная скидка \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE",
"FIXED"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Сумма скидки в валюте, оплачиваемая партнёром"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая партнером"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая Яндекс.Едой"
}
},
"required": [
"type",
"discount"
],
"type": "object"
}
}
},
"required": [
"discriminator",
"comment",
"deliveryInfo",
"eatsId",
"restaurantId",
"items",
"paymentInfo",
"promos"
]
}
],
"discriminator": {
"propertyName": "discriminator",
"mapping": {
"marketplace": "#/components/schemas/MarketplaceOrderV2",
"yandex": "#/components/schemas/YandexOrderV2",
"pickup": "#/components/schemas/PickupOrderV1"
}
}
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Обновление заказа успешно обработано внутренней системой ресторана",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"result": {
"type": "string",
"example": "OK"
}
}
}
}
}
},
"400": {
"description": "Bad request. Ошибка в параметрах. **_В теле ответа ожидается массив с объектом из списка ошибок_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
},
"401": {
"description": "Не пройдена авторизация - истек токен, либо не был передан в запросе. Будет сделан ретрай.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Причина, по которой не прошла авторизация",
"example": "Access token has been expired. You should request a new one"
}
},
"required": [
"reason"
]
}
}
}
},
"404": {
"description": "Заказ не найден в системе. **_В теле ответа ожидается массив с объектом из списка ошибок_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
},
"422": {
"description": "Заказ не может быть обновлен",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
},
"500": {
"description": "Внутренние ошибки сервера. **_В теле ответа ожидается массив с объектом из списка ошибок_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
}
},
"security": [
{
"OAuth2": [
"read",
"write"
]
}
]
}
},
"/order/{orderId}/status": {
"get": {
"tags": [
"Заказы"
],
"summary": "Получить статус заказа в системе ресторана",
"description": "Получает статус заказа.",
"operationId": "partner.order.status",
"parameters": [
{
"name": "orderId",
"in": "path",
"description": "Идентификатор заказа в системе партнера",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Статус заказа успешно выдан",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Статус заказа. Должен быть допустимым – например, приготовленный заказ\nнельзя снова сделать новым. Переход по статусам возможен только в\nуказанном направлении: от NEW до DELIVERED. Исключения: в статус\nCANCELLED заказ может перейти на любом этапе.\n\nОписание статусов:\n\n- NEW – новый, только отправлен в ресторан.\n- ACCEPTED_BY_RESTAURANT – заказ подтвержден рестораном.\n- COOKING – началось приготовление заказа.\n- READY – заказ приготовлен.\n- TAKEN_BY_COURIER – курьер забрал заказ из ресторана.\n- DELIVERED – заказ завершен.\n- CANCELLED – заказ отменён.\n\nNEW -> ACCEPTED_BY_RESTAURANT -> COOKING -> READY ->\nTAKEN_BY_COURIER -> DELIVERED. Из любого статуса -> CANCELLED\n",
"enum": [
"NEW",
"ACCEPTED_BY_RESTAURANT",
"COOKING",
"READY",
"TAKEN_BY_COURIER",
"DELIVERED",
"CANCELLED"
]
},
"comment": {
"maxLength": 500,
"type": "string",
"description": "Комментарий к смене статуса",
"example": "Новый заказ"
},
"updatedAt": {
"type": "string",
"description": "Дата, когда сменился статус заказа, в формате RFC3339 с дробной частью секунд (Y-m-d\\TH:i:s.uP)",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
}
},
"required": [
"status"
]
}
}
}
},
"400": {
"description": "Bad request. Ошибка в параметрах. **_В теле ответа ожидается массив с объектом из списка ошибок_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
},
"401": {
"description": "Не пройдена авторизация - истек токен, либо не был передан в запросе. Будет сделан ретрай",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Причина, по которой не прошла авторизация",
"example": "Access token has been expired. You should request a new one"
}
},
"required": [
"reason"
]
}
}
}
},
"404": {
"description": "Заказ не найден в системе. **_В теле ответа ожидается массив с объектом из списка ошибок_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
},
"500": {
"description": "Внутренние ошибки сервера. **_В теле ответа ожидается массив с объектом из списка ошибок_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
}
},
"security": [
{
"OAuth2": [
"read",
"write"
]
}
]
},
"put": {
"tags": [
"Заказы"
],
"summary": "Обновление статуса заказа со стороны Яндекс.Еды",
"description": "Обновление статуса заказа в системе партнера по инициативе Яндекс Еды. В общем случае отмену заказа Яндекс Еда передает через метод DELETE /order/{orderId}",
"operationId": "partner.order.status.put",
"parameters": [
{
"name": "orderId",
"in": "path",
"description": "Идентификатор заказа в системе партнера",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Статус заказа.\nОписание статусов: TAKEN_BY_COURIER - курьер забрал заказ из ресторана. DELIVERED - заказ завершен. CANCELLED - заказ отменён.",
"enum": [
"CANCELLED",
"TAKEN_BY_COURIER",
"DELIVERED"
]
},
"attributes": {
"type": "array",
"description": "Дополнительные аттрибуты при изменении статуса заказа, например признак оплаты при отмене",
"items": {
"type": "string",
"example": "paid"
}
},
"comment": {
"maxLength": 500,
"type": "string",
"description": "Комментарий к смене статуса",
"example": "test"
},
"reason": {
"type": "string",
"description": "Причина отмены заказа. Передается только со статусом CANCELLED",
"example": "place.unable_to_call"
},
"updatedAt": {
"type": "string",
"description": "Дата, когда сменился статус заказа, в формате RFC3339 с дробной частью секунд (Y-m-d\\TH:i:s.uP)",
"example": "1937-01-01T12:00:27.870000+00:20"
}
},
"required": [
"status"
]
}
}
}
},
"responses": {
"204": {
"description": "Статус заказа успешно обновлен"
},
"400": {
"description": "Bad request. Ошибка в параметрах. **_В теле ответа ожидается массив с объектом из списка ошибок_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
},
"401": {
"description": "Не пройдена авторизация - истек токен, либо не был передан в запросе. Будет сделан ретрай",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Причина, по которой не прошла авторизация",
"example": "Access token has been expired. You should request a new one"
}
},
"required": [
"reason"
]
}
}
}
},
"404": {
"description": "Заказ не найден в системе. **_В теле ответа ожидается массив с объектом из списка ошибок_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
},
"500": {
"description": "Внутренние ошибки сервера. **_В теле ответа ожидается массив с объектом из списка ошибок_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
}
},
"security": [
{
"OAuth2": [
"read",
"write"
]
}
]
}
},
"/order/{orderId}/courier": {
"put": {
"tags": [
"Заказы"
],
"summary": "Обновить информацию про курьера",
"description": "Передается объект, содержащий актуальную информацию о курьере.",
"operationId": "partner.order.courier.post",
"parameters": [
{
"name": "orderId",
"in": "path",
"description": "Идентификатор заказа в системе партнера",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"courier",
"order",
"location"
],
"properties": {
"courier": {
"required": [
"name",
"type"
],
"properties": {
"name": {
"type": "string",
"description": "Имя курьера",
"example": "Василий"
},
"type": {
"description": "Тип курьера:\n* pedestrian - пешеход.\n* bicycle - велосипед.\n* vehicle - транспортное средство.\n* motorcycle - мотоцикл.\n* electric_bicycle - электрический велосипед.\n* rover - ровер (робот-доставщик).",
"enum": [
"pedestrian",
"bicycle",
"vehicle",
"motorcycle",
"electric_bicycle",
"rover"
],
"type": "string",
"default": "pedestrian"
},
"phone": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Может содержать добавочный номер: \"+<код страны><номер> доб. <добавочный номер>\".",
"example": "+79031111111 доб. 4432"
},
"status": {
"description": "Статус курьера\n* accepted - принял заказ.\n* arrived_to_source - прибыл на место.",
"enum": [
"accepted",
"arrived_to_source"
],
"type": "string",
"default": "accepted"
}
}
},
"order": {
"required": [
"orderNr"
],
"properties": {
"orderNr": {
"type": "string",
"description": "Сквозной идентификатор заказа на стороне Яндекс.Еды в формате DDDDDD-DDDDDDDD",
"example": "190330-12345678"
}
}
},
"location": {
"type": "object",
"required": [
"latitude",
"longitude"
],
"properties": {
"latitude": {
"type": "string",
"example": "55.68195863024231"
},
"longitude": {
"type": "string",
"example": "37.58948777728022"
}
}
},
"maxPlaceArrivalTime": {
"type": "string",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20",
"description": "Рассчетное время прибытия курьера в ресторан\n в формате RFC3339 с дробной частью секунд (Y-m-d\\TH:i:s.uP)"
}
}
}
}
}
},
"responses": {
"204": {
"description": "Информация о курьере успешно обновлена"
},
"400": {
"description": "Некорректный запрос",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
},
"401": {
"description": "Не пройдена авторизация - истек срок действия токена, либо не был\nпередан в запросе",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Причина, по которой не прошла авторизация",
"example": "Access token has been expired. You should request a new one"
}
},
"required": [
"reason"
]
}
}
}
},
"404": {
"description": "Заведение не найдено"
}
},
"security": [
{
"OAuth2": [
"read"
]
}
]
}
},
"/places/{restaurantId}/zones": {
"get": {
"tags": [
"Зоны доставки"
],
"summary": "Получить зоны доставки ресторана",
"description": "Метод создания зон доставки в системах Яндекс Еды. Работает по расписанию (по умолчанию один раз в сутки в 9:00, возможно изменение/расширение интервала запроса по согласованию с Яндекс.Едой).\n\n{% note info %}\n\nМетод доступен только по подписке.\n\n{% endnote %}\n",
"parameters": [
{
"name": "restaurantId",
"in": "path",
"description": "Идентификатор торговой точки в системе партнера",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Успешно получен результат",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"description": "Зона доставки",
"required": [
"coordinates",
"meta",
"name"
],
"properties": {
"coordinates": {
"type": "array",
"description": "Набор координат полигона, должен содержать упорядоченный набор точек координат",
"minLength": 4,
"maxLength": 500,
"items": {
"type": "object",
"description": "Точка координат зоны",
"required": [
"lt",
"lg"
],
"properties": {
"lt": {
"type": "number",
"example": 56.473673
},
"lg": {
"type": "number",
"example": 35.918658
}
}
}
},
"meta": {
"type": "object",
"description": "Дополнительные данные зоны доставки",
"required": [
"zoneId",
"enabled",
"intervals",
"averageDeliveryTime",
"thresholds"
],
"properties": {
"zoneId": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "Идентификатор зоны доставки в системе партнера"
},
"enabled": {
"type": "boolean",
"description": "Флаг активности зоны доставки. При получении в ответе значения false зона станет неактивной."
},
"intervals": {
"type": "object",
"description": "Расписание работы зоны доставки",
"required": [
"mon",
"tue",
"wed",
"thu",
"fri",
"sat",
"sun"
],
"properties": {
"mon": {
"type": "array",
"description": "Часы работы на понедельник, оставьте пустой массив для нерабочих дней",
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"tue": {
"type": "array",
"description": "Часы работы на вторник, оставьте пустой массив для нерабочих дней",
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"wed": {
"type": "array",
"description": "Часы работы на среду, оставьте пустой массив для нерабочих дней",
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"thu": {
"type": "array",
"description": "Часы работы на четверг, оставьте пустой массив для нерабочих дней",
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"fri": {
"type": "array",
"description": "Часы работы на пятницу, оставьте пустой массив для нерабочих дней",
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"sat": {
"type": "array",
"description": "Часы работы на субботу, оставьте пустой массив для нерабочих дней",
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"sun": {
"type": "array",
"description": "Часы работы на воскресенье, оставьте пустой массив для нерабочих дней",
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
}
}
},
"averageDeliveryTime": {
"type": "number",
"description": "Среднее время ожидания доставки"
},
"thresholds": {
"description": "Условия доставки",
"minLength": 1,
"maxLength": 10,
"type": "array",
"items": {
"type": "object",
"description": "Условия доставки",
"required": [
"orderCost",
"deliveryCost"
],
"properties": {
"orderCost": {
"type": "object",
"description": "Минимальная сумма заказа для доставки",
"allOf": [
{
"type": "object",
"description": "Представление суммы денег",
"required": [
"currency",
"value"
],
"properties": {
"currency": {
"type": "string",
"description": "Трехбуквенное обозначение валюты ISO 4217",
"minLength": 3,
"maxLength": 3,
"example": "RUB"
},
"value": {
"type": "number",
"description": "Значение в указанной валюте",
"minimum": 0,
"example": 0
}
}
}
]
},
"deliveryCost": {
"type": "object",
"description": "Стоимость доставки. Укажите 0 для бесплатной доставки",
"allOf": [
{
"type": "object",
"description": "Представление суммы денег",
"required": [
"currency",
"value"
],
"properties": {
"currency": {
"type": "string",
"description": "Трехбуквенное обозначение валюты ISO 4217",
"minLength": 3,
"maxLength": 3,
"example": "RUB"
},
"value": {
"type": "number",
"description": "Значение в указанной валюте",
"minimum": 0,
"example": 0
}
}
}
]
}
}
}
},
"courierType": {
"type": "string",
"description": "Тип курьера",
"enum": [
"pedestrian",
"bicycle",
"vehicle",
"motorcycle"
]
}
}
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "Название зоны доставки"
}
}
}
}
}
}
},
"400": {
"description": "Ошибка в параметрах, в ответе список ошибок валидации",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
},
"401": {
"description": "Ошибка авторизации, последует перезапрос токена",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Причина, по которой не прошла авторизация",
"example": "Access token has been expired. You should request a new one"
}
},
"required": [
"reason"
]
}
}
}
},
"500": {
"description": "Внутренние ошибки сервера",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
}
}
}
},
"/places/{restaurantId}/zone/meta": {
"get": {
"tags": [
"Зоны доставки"
],
"summary": "Получить данные доставки для обновления информации в зонах доставки",
"description": "Метод обновления уже созданных зон доставки. Работает с определенной периодичностью (по умолчанию раз в 5 минут). Вы можете обновлять параметры уже имеющихся в системах Яндекс Еды зон доставки. Например можно обновлять интервалы работы зоны, среднее время доставки в зонах, условия доставки. Нельзя изменять координаты зон. Для изменения координат придется создать новую зону.\n\n{% note info %}\n\nМетод доступен только по подписке.\n\n{% endnote %}\n",
"parameters": [
{
"name": "restaurantId",
"in": "path",
"description": "Идентификатор торговой точки в системе партнера",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Успешно получен результат",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"description": "Дополнительные данные зоны доставки",
"required": [
"zoneId",
"enabled",
"intervals",
"averageDeliveryTime",
"thresholds"
],
"properties": {
"zoneId": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "Идентификатор зоны доставки в системе партнера"
},
"enabled": {
"type": "boolean",
"description": "Флаг активности зоны доставки. При получении в ответе значения false зона станет неактивной."
},
"intervals": {
"type": "object",
"description": "Расписание работы зоны доставки",
"required": [
"mon",
"tue",
"wed",
"thu",
"fri",
"sat",
"sun"
],
"properties": {
"mon": {
"type": "array",
"description": "Часы работы на понедельник, оставьте пустой массив для нерабочих дней",
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"tue": {
"type": "array",
"description": "Часы работы на вторник, оставьте пустой массив для нерабочих дней",
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"wed": {
"type": "array",
"description": "Часы работы на среду, оставьте пустой массив для нерабочих дней",
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"thu": {
"type": "array",
"description": "Часы работы на четверг, оставьте пустой массив для нерабочих дней",
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"fri": {
"type": "array",
"description": "Часы работы на пятницу, оставьте пустой массив для нерабочих дней",
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"sat": {
"type": "array",
"description": "Часы работы на субботу, оставьте пустой массив для нерабочих дней",
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"sun": {
"type": "array",
"description": "Часы работы на воскресенье, оставьте пустой массив для нерабочих дней",
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
}
}
},
"averageDeliveryTime": {
"type": "number",
"description": "Среднее время ожидания доставки"
},
"thresholds": {
"description": "Условия доставки",
"minLength": 1,
"maxLength": 10,
"type": "array",
"items": {
"type": "object",
"description": "Условия доставки",
"required": [
"orderCost",
"deliveryCost"
],
"properties": {
"orderCost": {
"type": "object",
"description": "Минимальная сумма заказа для доставки",
"allOf": [
{
"type": "object",
"description": "Представление суммы денег",
"required": [
"currency",
"value"
],
"properties": {
"currency": {
"type": "string",
"description": "Трехбуквенное обозначение валюты ISO 4217",
"minLength": 3,
"maxLength": 3,
"example": "RUB"
},
"value": {
"type": "number",
"description": "Значение в указанной валюте",
"minimum": 0,
"example": 0
}
}
}
]
},
"deliveryCost": {
"type": "object",
"description": "Стоимость доставки. Укажите 0 для бесплатной доставки",
"allOf": [
{
"type": "object",
"description": "Представление суммы денег",
"required": [
"currency",
"value"
],
"properties": {
"currency": {
"type": "string",
"description": "Трехбуквенное обозначение валюты ISO 4217",
"minLength": 3,
"maxLength": 3,
"example": "RUB"
},
"value": {
"type": "number",
"description": "Значение в указанной валюте",
"minimum": 0,
"example": 0
}
}
}
]
}
}
}
},
"courierType": {
"type": "string",
"description": "Тип курьера",
"enum": [
"pedestrian",
"bicycle",
"vehicle",
"motorcycle"
]
}
}
}
}
}
}
},
"400": {
"description": "Ошибка в параметрах, в ответе список ошибок валидации",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
},
"401": {
"description": "Ошибка авторизации, последует перезапрос токена",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Причина, по которой не прошла авторизация",
"example": "Access token has been expired. You should request a new one"
}
},
"required": [
"reason"
]
}
}
}
},
"500": {
"description": "Внутренние ошибки сервера",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
}
}
}
},
"/places/{restaurantId}/schedule": {
"get": {
"tags": [
"График работы"
],
"summary": "Получить график работы ресторана",
"description": "Работает по расписанию (возможно изменение/расширение интервала запроса по согласованию с Яндекс.Едой).\n\n{% note info %}\n\nМетод доступен только по подписке.\n\n{% endnote %}\n",
"parameters": [
{
"name": "restaurantId",
"in": "path",
"description": "Идентификатор торговой точки в системе партнера",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Успешно получен результат",
"content": {
"application/json": {
"schema": {
"type": "object",
"description": "Расписание работы торговой точки партнера по дням недели",
"required": [
"mon",
"tue",
"wed",
"thu",
"fri",
"sat",
"sun"
],
"properties": {
"mon": {
"type": "array",
"description": "Часы работы на понедельник, оставьте пустой массив для нерабочих дней",
"minLength": 0,
"maxLength": 10,
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"tue": {
"type": "array",
"description": "Часы работы на вторник, оставьте пустой массив для нерабочих дней",
"minLength": 0,
"maxLength": 10,
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"wed": {
"type": "array",
"description": "Часы работы на среду, оставьте пустой массив для нерабочих дней",
"minLength": 0,
"maxLength": 10,
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"thu": {
"type": "array",
"description": "Часы работы на четверг, оставьте пустой массив для нерабочих дней",
"minLength": 0,
"maxLength": 10,
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"fri": {
"type": "array",
"description": "Часы работы на пятницу, оставьте пустой массив для нерабочих дней",
"minLength": 0,
"maxLength": 10,
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"sat": {
"type": "array",
"description": "Часы работы на субботу, оставьте пустой массив для нерабочих дней",
"minLength": 0,
"maxLength": 10,
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"sun": {
"type": "array",
"description": "Часы работы на воскресенье, оставьте пустой массив для нерабочих дней",
"minLength": 0,
"maxLength": 10,
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
}
}
}
}
}
},
"400": {
"description": "Ошибка в параметрах, в ответе список ошибок валидации",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
},
"401": {
"description": "Ошибка авторизации, последует перезапрос токена",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Причина, по которой не прошла авторизация",
"example": "Access token has been expired. You should request a new one"
}
},
"required": [
"reason"
]
}
}
}
},
"500": {
"description": "Внутренние ошибки сервера",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
}
}
}
}
}
}
},
"/v1/orders-history": {
"post": {
"tags": [
"Vendor Management Integration API"
],
"summary": "Получение истории заказов",
"description": "Позволяет получать информацию по заказам. Заказы можно фильтровать по нескольким фильтрам:\n - Статус заказа\n - Дате создания заказа\n - Сервису, в котором сделан заказ\n\nОграничения метода:\n - Максимальное количество заказов в ответе - 1000\n - История хранится для заказов за последние 180 дней\n\n{% note info %}\n\nМетод доступен только по подписке.\n\n{% endnote %}\n",
"operationId": "partner.orders.history.post",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"origin_ids",
"from",
"to",
"pagination"
],
"properties": {
"origin_ids": {
"type": "array",
"description": "Список объектов. Объект состоит из идентификатора ресторана на стороне партнера и типа доставки в этом ресторане.",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"origin_id"
],
"properties": {
"origin_id": {
"type": "string",
"description": "Идентификатор ресторана на стороне партнера"
},
"delivery_type": {
"type": "string",
"enum": [
"native",
"marketplace"
],
"description": "Тип доставки"
}
}
}
},
"service": {
"type": "array",
"description": "Список сервисов, для которых нужно вернуть заказы",
"items": {
"type": "string",
"enum": [
"YE",
"MD"
]
}
},
"from": {
"type": "string",
"format": "date-time",
"description": "Дата, с которой нужно отдать заказы. В формате RFC3339 с дробной частью секунд (Y-m-d\\TH:i:s.uP)",
"example": "2024-01-01T12:00:05.125+03:00"
},
"to": {
"type": "string",
"format": "date-time",
"description": "Дата, до которой нужно отдать заказы. В формате RFC3339 с дробной частью секунд (Y-m-d\\TH:i:s.uP)",
"example": "2024-01-01T12:00:05.125+03:00"
},
"status": {
"type": "array",
"items": {
"type": "string",
"description": "Статус заказа в системе Яндекс.Еды",
"nullable": true,
"enum": [
"NEW",
"CANCELLED",
"DELIVERED"
]
},
"description": "Возвращать заказы, соответствующие переданному списку статусов"
},
"pagination": {
"type": "object",
"additionalProperties": false,
"required": [
"offset"
],
"properties": {
"limit": {
"type": "integer",
"minimum": 0,
"maximum": 1000,
"description": "Максимальное число заказов"
},
"offset": {
"type": "integer",
"minimum": 0,
"description": "Смещение/пагинация. Подробней про пагинациюю можно почитать на https://slack.engineering/evolving-api-pagination-at-slack/"
}
}
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"orders"
],
"properties": {
"orders": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"eats_id": {
"description": "Номер заказа в системе Яндекс.Еда",
"type": "string",
"minLength": 13,
"example": "230328-354380"
},
"order_id": {
"type": "string",
"description": "Номер заказа на стороне партнера"
},
"created_at": {
"type": "string",
"description": "Дата создания заказа",
"format": "date-time"
},
"status": {
"type": "string",
"description": "Статус заказа в системе Яндекс.Еды",
"nullable": true,
"enum": [
"NEW",
"CANCELLED",
"DELIVERED"
]
},
"service": {
"type": "string",
"enum": [
"YE",
"MD"
],
"description": "Сервис, через который был сделан заказ"
},
"delivery_type": {
"description": "Тип доставки",
"type": "string",
"enum": [
"native",
"marketplace"
],
"example": "marketplace"
},
"origin_id": {
"description": "Идентификатор ресторана в системе партнера, из которого был сделан заказ",
"type": "string",
"example": "restaurant1"
},
"items_cost": {
"type": "number",
"description": "Стоимость заказа для партнера за вычетом стоимости доставки (с учетом партнерских скидок)"
},
"cancel_reason": {
"type": "object",
"additionalProperties": false,
"required": [
"code"
],
"properties": {
"code": {
"description": "Код причины отмены заказа в Яндекс Еда",
"type": "string",
"example": "place.missing_dish"
},
"message": {
"description": "Текст причины отмены заказа",
"type": "string",
"example": "Заказ был отменён на стороне пользователя"
}
}
}
}
},
"description": "Список заказов"
}
}
}
}
}
},
"400": {
"description": "Неуспешная валидация",
"content": {
"application/json": {
"schema": {
"description": "Описание ошибки",
"type": "object",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Сообщение об ошибке",
"type": "string"
},
"code": {
"description": "Код ошибки",
"type": "string"
}
}
}
}
}
},
"500": {
"description": "Ошибка сервиса",
"content": {
"application/json": {
"schema": {
"description": "Описание ошибки",
"type": "object",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Сообщение об ошибке",
"type": "string"
},
"code": {
"description": "Код ошибки",
"type": "string"
}
}
}
}
}
}
}
}
},
"/v1/get-orders-details": {
"post": {
"summary": "Детальная информация о заказах",
"description": "Позволяет получать подробную информацию по заказам.\n\nОграничения метода:\n - В запросе можно передать не более 100 заказов\n - История хранится для заказов за последние 180 дней\n\n{% note info %}\n\nМетод доступен только по подписке.\n\n{% endnote %}\n",
"operationId": "partner.integration.v1.get.orders.details.post",
"tags": [
"Vendor Management Integration API"
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"eats_ids"
],
"properties": {
"eats_ids": {
"type": "array",
"description": "Список номеров заказов для поиска",
"minItems": 1,
"maxItems": 100,
"items": {
"type": "string",
"minLength": 13,
"description": "Номер заказа в системе Яндекс.Еда",
"example": "230328-354380"
}
}
}
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"orders",
"not_found_eats_ids"
],
"properties": {
"orders": {
"type": "array",
"description": "Список заказов с детальной информацией",
"items": {
"type": "object",
"description": "Заказ с детальной информацией",
"additionalProperties": false,
"required": [
"eats_id",
"order_id",
"status",
"items"
],
"properties": {
"eats_id": {
"type": "string",
"minLength": 13,
"description": "Номер заказа в системе Яндекс.Еда",
"example": "230328-354380"
},
"order_id": {
"type": "string",
"nullable": true,
"description": "Идентификатор заказа в системе партнера"
},
"status": {
"type": "string",
"description": "Статус заказа в системе Яндекс.Еды",
"nullable": true,
"enum": [
"NEW",
"CANCELLED",
"DELIVERED"
]
},
"items": {
"description": "Состав заказа",
"type": "array",
"items": {
"description": "Товар с опциями",
"type": "object",
"properties": {
"id": {
"description": "Идентификатор товара на стороне ресторана/магазина",
"type": "string"
},
"name": {
"description": "Название товара, например «Картошка»",
"type": "string"
},
"quantity": {
"description": "Количество товаров в рамках этой позиции",
"type": "number",
"example": 3.5
},
"price": {
"description": "Стоимость одной данной позиции вместе со стоимостью опций",
"type": "number",
"example": 123.78
},
"original_price": {
"description": "Стоимость одной данной позиции без учета стоимости опций",
"type": "number",
"example": 100.23
},
"weight": {
"description": "Конечный вес товара",
"type": "number"
},
"measure_unit": {
"description": "Единицы измерения веса, например GRM",
"type": "string"
},
"modifications": {
"description": "Опции товара",
"type": "array",
"items": {
"description": "Опция товара",
"type": "object",
"properties": {
"id": {
"description": "Идентификатор опции на стороне ресторана/магазина",
"type": "string"
},
"group_id": {
"description": "ID группы в системе партнера, к которой принадлежит опция",
"type": "string",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"description": "Название опции",
"type": "string"
},
"quantity": {
"description": "Количество опций в рамках этой позиции",
"type": "integer"
},
"price": {
"description": "Цена опции товара",
"type": "number",
"example": 10.5
}
},
"required": [
"id",
"price",
"quantity"
]
}
}
}
}
},
"items_cost": {
"description": "Стоимость заказа для партнера за вычетом стоимости доставки (с учетом партнерских скидок)",
"type": "number"
},
"cancel_reason": {
"type": "object",
"additionalProperties": false,
"required": [
"code"
],
"properties": {
"code": {
"description": "Код причины отмены заказа в Яндекс Еда",
"type": "string",
"example": "place.missing_dish"
},
"message": {
"description": "Текст причины отмены заказа",
"type": "string",
"example": "Заказ был отменён на стороне пользователя"
}
}
}
}
}
},
"not_found_eats_ids": {
"type": "array",
"description": "Список номеров заказов, по которым информация не найдена или недоступна",
"items": {
"type": "string",
"minLength": 13,
"description": "Номер заказа в системе Яндекс.Еда",
"example": "230328-354380"
}
}
}
}
}
}
},
"400": {
"description": "Ошибка запроса",
"content": {
"application/json": {
"schema": {
"description": "Описание ошибки",
"type": "object",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Сообщение об ошибке",
"type": "string"
},
"code": {
"description": "Код ошибки",
"type": "string"
}
}
}
}
}
},
"500": {
"description": "Ошибка сервиса",
"content": {
"application/json": {
"schema": {
"description": "Описание ошибки",
"type": "object",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Сообщение об ошибке",
"type": "string"
},
"code": {
"description": "Код ошибки",
"type": "string"
}
}
}
}
}
}
}
}
},
"/v1/busy-mode-status": {
"post": {
"summary": "Получение списка ресторанов с активным статусом высокого спроса",
"description": "Высокий спрос можно установить через приложение Яндекс Еда Вендор, если\nресторан нагружен в данный момент и время приготовления заказов увеличилось.\n\nВ будущем будет возможно устанавливать и снимать высокий спрос через API\n\n{% note info %}\n\nМетод доступен только по подписке.\n\n{% endnote %}\n",
"operationId": "partner.external.busy.mode.status.post",
"tags": [
"Vendor Management Integration API"
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"filters": {
"type": "object",
"additionalProperties": false,
"description": "Фильтры запроса на поиск ресторанов",
"properties": {
"origin_ids": {
"type": "array",
"description": "Список идентификаторов ресторанов в системе партнера",
"items": {
"type": "string",
"example": "restaurant1"
},
"minItems": 1,
"maxItems": 100
},
"delivery_type": {
"type": "string",
"enum": [
"native",
"marketplace"
],
"description": "Тип доставки",
"example": "marketplace"
},
"service": {
"type": "string",
"enum": [
"YE",
"MD"
]
}
}
},
"pagination": {
"type": "object",
"additionalProperties": false,
"description": "Пагинация для получения статуса высокого спроса в ресторанах. Подробнее про пагинацию и курсоры можно почитать на https://slack.engineering/evolving-api-pagination-at-slack/",
"properties": {
"cursor": {
"type": "string",
"description": "Курсор для получения ресторанов с активным статусом высокого спроса"
},
"limit": {
"type": "integer",
"description": "Лимит количества возвращаемых ресторанов",
"minimum": 1,
"maximum": 500,
"default": 500
}
}
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"description": "Успешный ответ на запрос получения статуса высокой нагрузки ресторанов",
"type": "object",
"additionalProperties": false,
"required": [
"busy_places"
],
"properties": {
"busy_places": {
"type": "array",
"description": "Список ресторанов с информацией о высоком спросе",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"origin_id",
"delivery_type",
"services",
"extra_minutes",
"valid_till"
],
"properties": {
"origin_id": {
"type": "string",
"example": "restaurant1"
},
"delivery_type": {
"type": "string",
"enum": [
"native",
"marketplace"
],
"description": "Тип доставки",
"example": "marketplace"
},
"services": {
"type": "array",
"description": "Список сервисов, в которых представлен ресторан",
"items": {
"type": "string",
"enum": [
"YE",
"MD"
]
}
},
"extra_minutes": {
"type": "integer",
"description": "Добавочное время к готовке в минутах"
},
"valid_till": {
"type": "string",
"format": "date-time",
"description": "Дата и время в формате RFC3339 с указанием часового пояса, до которого действует надбавка к готовке",
"example": "2024-01-01T12:00:05.125+03:00"
}
}
}
},
"cursor": {
"type": "string",
"description": "Курсор для получения ресторанов с активным статусом высокого спроса"
}
}
}
}
}
},
"400": {
"description": "Ошибка запроса",
"content": {
"application/json": {
"schema": {
"description": "Описание ошибки",
"type": "object",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Сообщение об ошибке",
"type": "string"
},
"code": {
"description": "Код ошибки",
"type": "string"
}
}
}
}
}
},
"500": {
"description": "Ошибка сервиса",
"content": {
"application/json": {
"schema": {
"description": "Описание ошибки",
"type": "object",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Сообщение об ошибке",
"type": "string"
},
"code": {
"description": "Код ошибки",
"type": "string"
}
}
}
}
}
}
}
}
}
},
"components": {
"securitySchemes": {
"OAuth2": {
"type": "oauth2",
"flows": {
"clientCredentials": {
"tokenUrl": "/security/oauth/token",
"scopes": {
"read": "Доступ на чтение",
"write": "Доступ на запись"
}
}
},
"description": "Партнер у себя должен реализовать OAuth2 авторизацию. Минимальные требования: должен быть доступен метод для получения токена с client_id, client_secret, grand_type и scopes. Urls приведен ниже. Ссылка на полную спецификацию OAuth2 - https://tools.ietf.org/html/rfc6749"
}
},
"parameters": {
"Partner-Name": {
"name": "Partner-Name",
"in": "header",
"description": "Имя партнера",
"schema": {
"type": "string"
}
},
"Authorization": {
"name": "Authorization",
"in": "header",
"description": "Токен сформированный на стороне ЯЕды",
"schema": {
"type": "string"
}
},
"orderId": {
"name": "orderId",
"in": "path",
"required": true,
"description": "Идентификатор заказа во внешней системе",
"schema": {
"type": "string"
}
}
},
"schemas": {
"AuthenticationRequest": {
"type": "object",
"properties": {
"client_id": {
"description": "Идентификатор клиента",
"type": "string",
"example": "client_id"
},
"client_secret": {
"type": "string",
"description": "Секрет",
"example": "client_secret"
},
"grant_type": {
"type": "string",
"description": "Тип доступа",
"default": "client_credentials"
},
"scope": {
"type": "string",
"description": "Права доступа",
"default": "read write"
}
},
"required": [
"client_id",
"client_secret",
"grant_type",
"scope"
],
"example": {
"client_id": "123123123",
"client_secret": "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
"grant_type": "client_credentials",
"scope": "read write"
}
},
"AuthenticationResponse": {
"description": "Модель результата успешной аутентификации. Единственное обязательное поле - access_token. Остальные возможные по спецификации поля - опциональны и не используются на стороне Yandex Eda",
"type": "object",
"properties": {
"access_token": {
"type": "string"
}
},
"required": [
"access_token"
],
"example": {
"access_token": "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
}
},
"MenuCompositionV2": {
"type": "object",
"description": "Актуальная версия модели меню",
"properties": {
"schedules": {
"description": "Описание возможных типов расписаний категорий меню",
"properties": {
"scheduleName": {
"description": "Объявление необходимого типа расписания. Тип определяется названием ключа. Например, breakfasts. Далее этот ключ используется в массиве расписаний у категорий меню.",
"items": {
"properties": {
"from": {
"type": "string",
"description": "Время начала работы объявленного типа расписания, может принимать значения от 00:00 до 24:00",
"example": "08:00"
},
"till": {
"type": "string",
"description": "Время окончания работы объявленного типа расписания, может принимать значения от 00:00 до 24:00",
"example": "09:45"
},
"weekdays": {
"description": "Дни недели работы объявленного типа расписания",
"type": "array",
"items": {
"type": "string",
"example": "monday",
"enum": [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday",
"saturday",
"sunday"
]
}
}
},
"required": [
"from",
"till",
"weekdays"
]
},
"type": "array"
}
}
},
"categories": {
"description": "Категории меню",
"items": {
"properties": {
"id": {
"maxLength": 64,
"type": "string",
"description": "Внутренний идентификатор категории в системе партнера. Может быть любым значением, приводимым к строке. Рекомендация - UUID4",
"example": "5af86d5a-d92d-4e07-9271-aea0f7ef95a6"
},
"parentId": {
"maxLength": 64,
"type": "string",
"description": "Уникальный идентификатор родительской категории для древовидной структуры. nullable: true. Не может быть пустой строкой. Ссылается на существующие категории. При загрузке адаптируется к плоской структуре категорий Яндекс.Еды (товары из подкатегорий попадают в родительские категории первого уровня)",
"example": "5af86d5a-d92d-4e07-9271-aea0f7ef95a6"
},
"schedules": {
"type": "array",
"items": {
"type": "string",
"description": "Тип расписания категории. Если указать пустой список или сослаться на пустую категорию, находящуюся в отдельном блоке schedules, то считаем категорию всегда доступной.",
"example": "breakfasts"
}
},
"name": {
"type": "string",
"description": "Наименование категории (например \"Завтраки\")",
"example": "Завтраки"
},
"sortOrder": {
"type": "integer",
"description": "Порядок сортировки от меньшего к большему. Если не указан, считаем за 100",
"example": 0
},
"images": {
"description": "Изображение категории ресторана",
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Ссылка на изображение для скачивания",
"format": "uri"
},
"updatedAt": {
"type": "string",
"description": "Дата обновления изображения, в формате RFC3339 с дробной частью секунд (Y-m-d\\TH:i:s.uP)",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
}
},
"required": [
"url",
"updatedAt"
]
}
}
},
"required": [
"id",
"name"
]
},
"type": "array"
},
"items": {
"description": "Список блюд, доступных для заказа",
"items": {
"properties": {
"id": {
"maxLength": 64,
"type": "string",
"description": "Внутренний идентификатор блюда в ресторане в системе партнера. Может быть любым значением, приводимым к строке. Рекомендация - UUID4",
"example": "e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9"
},
"categoryId": {
"maxLength": 64,
"type": "string",
"description": "Идентификатор категории в системе партнера",
"example": "fa494dc1-2578-4adb-a8fa-e270de8c3d28"
},
"name": {
"type": "string",
"description": "Наименование блюда в ресторане (например \"Пирожки с вишней\")",
"example": "Вареники с творогом и вишней"
},
"description": {
"type": "string",
"description": "Полное описание блюда",
"example": "Мука, вода, яичный порошок, вишня замороженная, творог 5%"
},
"price": {
"type": "number",
"format": "double",
"description": "Цена продукта. Блюда с нулевой ценой пропускаются и не попадают в меню",
"example": 1000
},
"vat": {
"type": "number",
"format": "int32",
"description": "НДС, включенный в стоимость, в процентах, если не указан, считается за 0",
"example": 20
},
"isCatchweight": {
"type": "boolean",
"description": "Флаг того, что позиция весовая",
"default": false,
"example": false
},
"measure": {
"type": "integer",
"description": "Характеристика измерений блюда - например вес или объем",
"example": 666
},
"weightQuantum": {
"type": "number",
"format": "float",
"description": "Наименьшее количество продукта (квант) доступное для заказа. Поле является обязательным, если значение isCatchweight равно true, иначе значение поля не используется",
"example": 0.1
},
"measureUnit": {
"type": "string",
"description": "Единица измерения. Допустимые значения - граммы и миллилитры",
"example": "г",
"enum": [
"г",
"мл",
"g",
"ml"
]
},
"excise": {
"type": "string",
"enum": [
"sugary_drink",
"other"
],
"description": "Признак акцизного товара. Также можно вместо ключа excise передавать метку [AT] (заглавными латинскими буквами в квадратных скобках) в name товара.",
"example": "sugary_drink"
},
"nutrients": {
"description": "Параметры КБЖУ",
"type": "object",
"properties": {
"calories": {
"type": "number",
"description": "Калории на 100гр",
"example": 12.5
},
"proteins": {
"type": "number",
"description": "Белки на 100гр",
"example": 15.3
},
"fats": {
"type": "number",
"description": "Жиры на 100гр",
"example": 12.5
},
"carbohydrates": {
"type": "number",
"description": "Углеводы на 100гр",
"example": 15.3
}
},
"required": [
"calories",
"proteins",
"fats",
"carbohydrates"
]
},
"sortOrder": {
"type": "integer",
"description": "Порядок сортировки от меньшего к большему. Если не указан, считаем за 100",
"example": 0
},
"modifierGroups": {
"type": "array",
"description": "Группы модификаторов для блюда. Обязательность модификаторов определяется параметром `minSelectedModifiers` в группе модификаторов.\n",
"items": {
"properties": {
"id": {
"type": "string",
"description": "Идентификатор группы модификаторов на стороне партнера. Может быть любым значением, приводимым к строке. Рекомендация - UUID4",
"example": "9987c815-3069-46ad-9626-74799fb22210"
},
"name": {
"type": "string",
"description": "Наименование группы модификаторов",
"example": "Выбор приборов"
},
"modifiers": {
"type": "array",
"description": "Опции, включаемые в группу",
"items": {
"properties": {
"id": {
"type": "string",
"description": "Идентификатор модификатора на стороне партнера. Может быть любым значением, приводимым к строке. Рекомендация – UUID4. Этот идентификатор передаётся в заказе вместе с выбранным количеством",
"example": "916cfc99-acb4-4a96-9a42-b29159e88189"
},
"name": {
"type": "string",
"description": "Название модификатора",
"example": "Европейские приборы"
},
"price": {
"type": "number",
"format": "double",
"description": "Цена модификатора",
"example": 150
},
"originalPrice": {
"type": "number",
"format": "double",
"description": "Отдельное поле для передачи исходых цен опций/модификаторов. Пользователю не показывается. Используется для расчета суммы при частичных возвратах.\n",
"example": 150
},
"vat": {
"type": "integer",
"format": "int32",
"description": "НДС, включенный в стоимость, в процентах. Если не указан, считается за 0",
"example": 20
},
"excise": {
"type": "string",
"enum": [
"sugary_drink",
"other"
],
"description": "Признак акцизного товара. Вместо ключа excise можно передавать метку [AT] (заглавными латинскими буквами в квадратных скобках) в поле `name` модификатора.",
"example": "sugary_drink"
},
"minAmount": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"format": "int32",
"description": "Минимальное количество указанного модификатора для блюда в заказе. Должно быть меньше maxAmount.",
"example": 0
},
"maxAmount": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"format": "int32",
"description": "Максимальное количество указанного модификатора для блюда в заказе. Это число не должно превышать значение параметра `maxSelectedModifiers` в модели `ModifierGroup` для заказа целиком. Например, вы поддерживаете 5 модификаторов в группе целиком, но максимальное значение модификатора для отдельного блюда указано 10 – такой модификатор не пройдет валидацию. Не будут загружены: некорректный модификатор, группа, к которой он принадлежит, а также пункты меню, в которых используются некорректные данные",
"example": 10
}
},
"required": [
"id",
"maxAmount",
"minAmount",
"name",
"price"
]
}
},
"minSelectedModifiers": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"format": "int32",
"description": "Минимальное количество модификаторов, которые необходимо выбрать для данной группы. Не должно быть больше общего числа необходимых \"modifiers\" (с учетом их minAmount) и не должно быть больше maxSelectedModifiers",
"example": 0
},
"maxSelectedModifiers": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"format": "int32",
"description": "Максимальное количество модификаторов, которые возможно выбрать для данной группы. Не должно быть меньше общего числа возможных \"modifiers\" (с учетом их maxAmount) и не должно быть меньше minSelectedModifiers",
"example": 10
},
"sortOrder": {
"type": "integer",
"description": "Порядок сортировки от меньшего к большему. Если не указан, считаем за 100.",
"example": 0
}
},
"required": [
"id",
"name",
"minSelectedModifiers",
"maxSelectedModifiers"
]
}
},
"images": {
"description": "Изображение блюда",
"type": "array",
"items": {
"properties": {
"hash": {
"type": "string",
"description": "SHA1-хэш от содержимого файла изображения. Рассчитывается партнером, служит признаком уникальности. В случае если он меняется, Яндекс Еда перезагружает картинку"
},
"url": {
"type": "string",
"description": "Ссылка на изображение для скачивания",
"format": "uri"
}
},
"required": [
"hash",
"url"
]
}
},
"additional_descriptions": {
"type": "object",
"additionalProperties": false,
"description": "Дополнительные поля для описания блюда",
"properties": {
"consisting_ingredients": {
"description": "Перечень ингредиентов, из которых состоит блюдо. Это исходные компоненты блюда, а не его составные части. Желательно указать все ингредиенты, которые могут вызвать аллергию или сильно влияют на вкус. Так пользователи сразу увидят важные подробности о блюде.\nНапример: мука, яйца, вода, мясо.",
"type": "array",
"maxItems": 100,
"items": {
"type": "string",
"example": "мука",
"maxLength": 100
}
},
"badges": {
"type": "array",
"items": {
"description": "Тэги блюда разделены на категории и значения. В каждой категории можно выбрать всего один вариант. При обработке из каждой категории будет браться первое валидное значение. Дублирующие, неизвестные категории или несоответствие значения категории будут пропущены.\nДоступные категории и их значения:\n* `food_specifics` - Особенности питания\n - `halal` - халяль\n - `meat_free` - без мяса\n* `food_spiciness` - острота\n - `spicy` - острое\n* `cooking_method` - способ готовки\n - `fried` - жареное\n - `baked` - запечённое\n - `grilled` - на гриле\n - `not_cooked` - нужно готовить\n* `food_portion` - размер\n - `portion_for_several_people` - на компанию\n - `big_portion` - мегапорция\n - `combo` - комбо",
"type": "object",
"required": [
"category",
"value"
],
"properties": {
"category": {
"type": "string",
"enum": [
"food_specifics",
"food_spiciness",
"cooking_method",
"food_portion"
],
"example": "cooking_method"
},
"value": {
"type": "string",
"enum": [
"halal",
"meat_free",
"spicy",
"fried",
"baked",
"grilled",
"not_cooked",
"portion_for_several_people",
"big_portion",
"combo"
],
"example": "fried"
}
}
}
}
}
},
"adult_info": {
"type": "object",
"additionalProperties": false,
"description": "Информация о adult-свойствах товара",
"required": [
"age_group"
],
"properties": {
"age_group": {
"type": "integer",
"description": "Возрастное ограничение на товар",
"enum": [
18,
21
]
},
"alcohol_percentage": {
"type": "string",
"pattern": "^[0-9]+(\\.[0-9]{1,2})?$",
"example": "12.34",
"description": "Процент содержания алкоголя в блюде. Число указывается только через точку."
}
}
},
"onlyForCombo": {
"type": "boolean",
"description": "Блюдо только для комбо"
}
},
"required": [
"categoryId",
"id",
"measureUnit",
"name",
"price",
"measure"
]
},
"type": "array"
},
"combos": {
"description": "Список комбо, доступных для заказа",
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"categoryId",
"name",
"components",
"price"
],
"properties": {
"id": {
"type": "string",
"description": "Идентификатор комбо",
"example": "fa494dc1-2578-4adb-a8fa-e270de8c3d28"
},
"categoryId": {
"type": "string",
"description": "Идентификатор категории в системе партнера",
"example": "fa494dc1-2578-4adb-a8fa-e270de8c3d28"
},
"name": {
"type": "string",
"description": "Название комбо",
"example": "Комбо с Воппер По-Итальянски"
},
"description": {
"type": "string",
"description": "Описание комбо"
},
"image": {
"properties": {
"hash": {
"type": "string",
"description": "SHA1-хэш от содержимого файла изображения. Рассчитывается партнером, служит признаком уникальности. В случае если он меняется, Яндекс Еда перезагружает картинку"
},
"url": {
"type": "string",
"description": "Ссылка на изображение для скачивания",
"format": "uri"
}
},
"required": [
"hash",
"url"
]
},
"components": {
"type": "array",
"items": {
"type": "object",
"description": "Компонент комбо",
"required": [
"id",
"name",
"items"
],
"properties": {
"id": {
"type": "string",
"description": "Идентификатор компонента"
},
"name": {
"type": "string",
"description": "Название компонента",
"example": "Горячее"
},
"items": {
"type": "array",
"description": "Список позиций, которые можно выбрать как компонент комбо",
"items": {
"type": "object",
"description": "Позиция в меню, которую можно выбрать как компонент комбо",
"required": [
"itemId"
],
"properties": {
"itemId": {
"type": "string",
"description": "Внутренний идентификатор блюда в ресторане в системе партнера. Может быть любым значением, приводимым к строке. Рекомендация - UUID4",
"example": "e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9"
},
"isDefault": {
"type": "boolean",
"description": "Является ли данный продукт выбором по умолчанию\nЕсли не указано ни одного продукта в списке с такой опцией,\nто дефолтным будет первый продукт в списке\n"
}
}
}
}
}
}
},
"price": {
"oneOf": [
{
"type": "object",
"description": "Фиксированная цена на комбо.\nЦена на блюда в заказе будет распределена пропорционально их цене в меню.\nНапример, если цена комбо 2500 и оно состоит из блюд, цена которых в меню 1000 и 2000,\nто в заказе цены блюд будут 833.33 и 1666.67 соответственно\n",
"required": [
"type",
"price"
],
"properties": {
"type": {
"type": "string",
"enum": [
"fixed"
]
},
"price": {
"type": "string",
"pattern": "^-?[0-9]+(\\.[0-9]{1,2})?$"
}
}
},
{
"type": "object",
"description": "На комбо предоставляется процентная скидка, применяемая к сумме позиций в комбо",
"required": [
"type",
"discount"
],
"properties": {
"type": {
"type": "string",
"enum": [
"single_discount"
]
},
"discount": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Размер скидки в процентах"
}
}
},
{
"type": "object",
"description": "На каждую позицию в комбо предоставляется отдельная процентная скидка",
"required": [
"type",
"discounts"
],
"properties": {
"type": {
"type": "string",
"enum": [
"item_discounts"
]
},
"discounts": {
"type": "array",
"items": {
"type": "object",
"description": "Скидка для блюда в комбо",
"required": [
"itemId",
"discount"
],
"properties": {
"itemId": {
"type": "string",
"description": "Внутренний идентификатор блюда в ресторане в системе партнера. Может быть любым значением, приводимым к строке. Рекомендация - UUID4",
"example": "e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9"
},
"discount": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Размер скидки в процентах"
}
}
}
}
}
}
],
"discriminator": {
"propertyName": "type",
"mapping": {
"fixed": "#/components/schemas/ComboFixedPrice",
"single_discount": "#/components/schemas/ComboSingleDiscountPrice",
"item_discounts": "#/components/schemas/ComboItemDiscountsPrice"
}
}
}
}
}
},
"lastChange": {
"type": "string",
"description": "Дата последнего изменения меню ресторана (на стороне партнера). Важно: дата в формате RFC3339 с дробной частью секунд (Y-m-d\\TH:i:s.uP)! Если эта дата не менялась, Яндекс Еда может в автоматическом режиме принять решение о том, что обновлять меню не требуется. Если дата обновления в этом поле отличается от даты во время последнего обновления меню, то оно будет загружено заново",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
}
},
"required": [
"categories",
"lastChange",
"items"
]
},
"Schedule": {
"properties": {
"scheduleName": {
"description": "Объявление необходимого типа расписания. Тип определяется названием ключа. Например, breakfasts. Далее этот ключ используется в массиве расписаний у категорий меню.",
"items": {
"properties": {
"from": {
"type": "string",
"description": "Время начала работы объявленного типа расписания, может принимать значения от 00:00 до 24:00",
"example": "08:00"
},
"till": {
"type": "string",
"description": "Время окончания работы объявленного типа расписания, может принимать значения от 00:00 до 24:00",
"example": "09:45"
},
"weekdays": {
"description": "Дни недели работы объявленного типа расписания",
"type": "array",
"items": {
"type": "string",
"example": "monday",
"enum": [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday",
"saturday",
"sunday"
]
}
}
},
"required": [
"from",
"till",
"weekdays"
]
},
"type": "array"
}
}
},
"ScheduleName": {
"properties": {
"from": {
"type": "string",
"description": "Время начала работы объявленного типа расписания, может принимать значения от 00:00 до 24:00",
"example": "08:00"
},
"till": {
"type": "string",
"description": "Время окончания работы объявленного типа расписания, может принимать значения от 00:00 до 24:00",
"example": "09:45"
},
"weekdays": {
"description": "Дни недели работы объявленного типа расписания",
"type": "array",
"items": {
"type": "string",
"example": "monday",
"enum": [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday",
"saturday",
"sunday"
]
}
}
},
"required": [
"from",
"till",
"weekdays"
]
},
"Category": {
"properties": {
"id": {
"maxLength": 64,
"type": "string",
"description": "Внутренний идентификатор категории в системе партнера. Может быть любым значением, приводимым к строке. Рекомендация - UUID4",
"example": "5af86d5a-d92d-4e07-9271-aea0f7ef95a6"
},
"parentId": {
"maxLength": 64,
"type": "string",
"description": "Уникальный идентификатор родительской категории для древовидной структуры. nullable: true. Не может быть пустой строкой. Ссылается на существующие категории. При загрузке адаптируется к плоской структуре категорий Яндекс.Еды (товары из подкатегорий попадают в родительские категории первого уровня)",
"example": "5af86d5a-d92d-4e07-9271-aea0f7ef95a6"
},
"schedules": {
"type": "array",
"items": {
"type": "string",
"description": "Тип расписания категории. Если указать пустой список или сослаться на пустую категорию, находящуюся в отдельном блоке schedules, то считаем категорию всегда доступной.",
"example": "breakfasts"
}
},
"name": {
"type": "string",
"description": "Наименование категории (например \"Завтраки\")",
"example": "Завтраки"
},
"sortOrder": {
"type": "integer",
"description": "Порядок сортировки от меньшего к большему. Если не указан, считаем за 100",
"example": 0
},
"images": {
"description": "Изображение категории ресторана",
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Ссылка на изображение для скачивания",
"format": "uri"
},
"updatedAt": {
"type": "string",
"description": "Дата обновления изображения, в формате RFC3339 с дробной частью секунд (Y-m-d\\TH:i:s.uP)",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
}
},
"required": [
"url",
"updatedAt"
]
}
}
},
"required": [
"id",
"name"
]
},
"CategoryImages": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Ссылка на изображение для скачивания",
"format": "uri"
},
"updatedAt": {
"type": "string",
"description": "Дата обновления изображения, в формате RFC3339 с дробной частью секунд (Y-m-d\\TH:i:s.uP)",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
}
},
"required": [
"url",
"updatedAt"
]
},
"MenuCompositionItem": {
"properties": {
"id": {
"maxLength": 64,
"type": "string",
"description": "Внутренний идентификатор блюда в ресторане в системе партнера. Может быть любым значением, приводимым к строке. Рекомендация - UUID4",
"example": "e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9"
},
"categoryId": {
"maxLength": 64,
"type": "string",
"description": "Идентификатор категории в системе партнера",
"example": "fa494dc1-2578-4adb-a8fa-e270de8c3d28"
},
"name": {
"type": "string",
"description": "Наименование блюда в ресторане (например \"Пирожки с вишней\")",
"example": "Вареники с творогом и вишней"
},
"description": {
"type": "string",
"description": "Полное описание блюда",
"example": "Мука, вода, яичный порошок, вишня замороженная, творог 5%"
},
"price": {
"type": "number",
"format": "double",
"description": "Цена продукта. Блюда с нулевой ценой пропускаются и не попадают в меню",
"example": 1000
},
"vat": {
"type": "number",
"format": "int32",
"description": "НДС, включенный в стоимость, в процентах, если не указан, считается за 0",
"example": 20
},
"isCatchweight": {
"type": "boolean",
"description": "Флаг того, что позиция весовая",
"default": false,
"example": false
},
"measure": {
"type": "integer",
"description": "Характеристика измерений блюда - например вес или объем",
"example": 666
},
"weightQuantum": {
"type": "number",
"format": "float",
"description": "Наименьшее количество продукта (квант) доступное для заказа. Поле является обязательным, если значение isCatchweight равно true, иначе значение поля не используется",
"example": 0.1
},
"measureUnit": {
"type": "string",
"description": "Единица измерения. Допустимые значения - граммы и миллилитры",
"example": "г",
"enum": [
"г",
"мл",
"g",
"ml"
]
},
"excise": {
"type": "string",
"enum": [
"sugary_drink",
"other"
],
"description": "Признак акцизного товара. Также можно вместо ключа excise передавать метку [AT] (заглавными латинскими буквами в квадратных скобках) в name товара.",
"example": "sugary_drink"
},
"nutrients": {
"description": "Параметры КБЖУ",
"type": "object",
"properties": {
"calories": {
"type": "number",
"description": "Калории на 100гр",
"example": 12.5
},
"proteins": {
"type": "number",
"description": "Белки на 100гр",
"example": 15.3
},
"fats": {
"type": "number",
"description": "Жиры на 100гр",
"example": 12.5
},
"carbohydrates": {
"type": "number",
"description": "Углеводы на 100гр",
"example": 15.3
}
},
"required": [
"calories",
"proteins",
"fats",
"carbohydrates"
]
},
"sortOrder": {
"type": "integer",
"description": "Порядок сортировки от меньшего к большему. Если не указан, считаем за 100",
"example": 0
},
"modifierGroups": {
"type": "array",
"description": "Группы модификаторов для блюда. Обязательность модификаторов определяется параметром `minSelectedModifiers` в группе модификаторов.\n",
"items": {
"properties": {
"id": {
"type": "string",
"description": "Идентификатор группы модификаторов на стороне партнера. Может быть любым значением, приводимым к строке. Рекомендация - UUID4",
"example": "9987c815-3069-46ad-9626-74799fb22210"
},
"name": {
"type": "string",
"description": "Наименование группы модификаторов",
"example": "Выбор приборов"
},
"modifiers": {
"type": "array",
"description": "Опции, включаемые в группу",
"items": {
"properties": {
"id": {
"type": "string",
"description": "Идентификатор модификатора на стороне партнера. Может быть любым значением, приводимым к строке. Рекомендация – UUID4. Этот идентификатор передаётся в заказе вместе с выбранным количеством",
"example": "916cfc99-acb4-4a96-9a42-b29159e88189"
},
"name": {
"type": "string",
"description": "Название модификатора",
"example": "Европейские приборы"
},
"price": {
"type": "number",
"format": "double",
"description": "Цена модификатора",
"example": 150
},
"originalPrice": {
"type": "number",
"format": "double",
"description": "Отдельное поле для передачи исходых цен опций/модификаторов. Пользователю не показывается. Используется для расчета суммы при частичных возвратах.\n",
"example": 150
},
"vat": {
"type": "integer",
"format": "int32",
"description": "НДС, включенный в стоимость, в процентах. Если не указан, считается за 0",
"example": 20
},
"excise": {
"type": "string",
"enum": [
"sugary_drink",
"other"
],
"description": "Признак акцизного товара. Вместо ключа excise можно передавать метку [AT] (заглавными латинскими буквами в квадратных скобках) в поле `name` модификатора.",
"example": "sugary_drink"
},
"minAmount": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"format": "int32",
"description": "Минимальное количество указанного модификатора для блюда в заказе. Должно быть меньше maxAmount.",
"example": 0
},
"maxAmount": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"format": "int32",
"description": "Максимальное количество указанного модификатора для блюда в заказе. Это число не должно превышать значение параметра `maxSelectedModifiers` в модели `ModifierGroup` для заказа целиком. Например, вы поддерживаете 5 модификаторов в группе целиком, но максимальное значение модификатора для отдельного блюда указано 10 – такой модификатор не пройдет валидацию. Не будут загружены: некорректный модификатор, группа, к которой он принадлежит, а также пункты меню, в которых используются некорректные данные",
"example": 10
}
},
"required": [
"id",
"maxAmount",
"minAmount",
"name",
"price"
]
}
},
"minSelectedModifiers": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"format": "int32",
"description": "Минимальное количество модификаторов, которые необходимо выбрать для данной группы. Не должно быть больше общего числа необходимых \"modifiers\" (с учетом их minAmount) и не должно быть больше maxSelectedModifiers",
"example": 0
},
"maxSelectedModifiers": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"format": "int32",
"description": "Максимальное количество модификаторов, которые возможно выбрать для данной группы. Не должно быть меньше общего числа возможных \"modifiers\" (с учетом их maxAmount) и не должно быть меньше minSelectedModifiers",
"example": 10
},
"sortOrder": {
"type": "integer",
"description": "Порядок сортировки от меньшего к большему. Если не указан, считаем за 100.",
"example": 0
}
},
"required": [
"id",
"name",
"minSelectedModifiers",
"maxSelectedModifiers"
]
}
},
"images": {
"description": "Изображение блюда",
"type": "array",
"items": {
"properties": {
"hash": {
"type": "string",
"description": "SHA1-хэш от содержимого файла изображения. Рассчитывается партнером, служит признаком уникальности. В случае если он меняется, Яндекс Еда перезагружает картинку"
},
"url": {
"type": "string",
"description": "Ссылка на изображение для скачивания",
"format": "uri"
}
},
"required": [
"hash",
"url"
]
}
},
"additional_descriptions": {
"type": "object",
"additionalProperties": false,
"description": "Дополнительные поля для описания блюда",
"properties": {
"consisting_ingredients": {
"description": "Перечень ингредиентов, из которых состоит блюдо. Это исходные компоненты блюда, а не его составные части. Желательно указать все ингредиенты, которые могут вызвать аллергию или сильно влияют на вкус. Так пользователи сразу увидят важные подробности о блюде.\nНапример: мука, яйца, вода, мясо.",
"type": "array",
"maxItems": 100,
"items": {
"type": "string",
"example": "мука",
"maxLength": 100
}
},
"badges": {
"type": "array",
"items": {
"description": "Тэги блюда разделены на категории и значения. В каждой категории можно выбрать всего один вариант. При обработке из каждой категории будет браться первое валидное значение. Дублирующие, неизвестные категории или несоответствие значения категории будут пропущены.\nДоступные категории и их значения:\n* `food_specifics` - Особенности питания\n - `halal` - халяль\n - `meat_free` - без мяса\n* `food_spiciness` - острота\n - `spicy` - острое\n* `cooking_method` - способ готовки\n - `fried` - жареное\n - `baked` - запечённое\n - `grilled` - на гриле\n - `not_cooked` - нужно готовить\n* `food_portion` - размер\n - `portion_for_several_people` - на компанию\n - `big_portion` - мегапорция\n - `combo` - комбо",
"type": "object",
"required": [
"category",
"value"
],
"properties": {
"category": {
"type": "string",
"enum": [
"food_specifics",
"food_spiciness",
"cooking_method",
"food_portion"
],
"example": "cooking_method"
},
"value": {
"type": "string",
"enum": [
"halal",
"meat_free",
"spicy",
"fried",
"baked",
"grilled",
"not_cooked",
"portion_for_several_people",
"big_portion",
"combo"
],
"example": "fried"
}
}
}
}
}
},
"adult_info": {
"type": "object",
"additionalProperties": false,
"description": "Информация о adult-свойствах товара",
"required": [
"age_group"
],
"properties": {
"age_group": {
"type": "integer",
"description": "Возрастное ограничение на товар",
"enum": [
18,
21
]
},
"alcohol_percentage": {
"type": "string",
"pattern": "^[0-9]+(\\.[0-9]{1,2})?$",
"example": "12.34",
"description": "Процент содержания алкоголя в блюде. Число указывается только через точку."
}
}
},
"onlyForCombo": {
"type": "boolean",
"description": "Блюдо только для комбо"
}
},
"required": [
"categoryId",
"id",
"measureUnit",
"name",
"price",
"measure"
]
},
"MenuCompositionCombo": {
"type": "object",
"required": [
"id",
"categoryId",
"name",
"components",
"price"
],
"properties": {
"id": {
"type": "string",
"description": "Идентификатор комбо",
"example": "fa494dc1-2578-4adb-a8fa-e270de8c3d28"
},
"categoryId": {
"type": "string",
"description": "Идентификатор категории в системе партнера",
"example": "fa494dc1-2578-4adb-a8fa-e270de8c3d28"
},
"name": {
"type": "string",
"description": "Название комбо",
"example": "Комбо с Воппер По-Итальянски"
},
"description": {
"type": "string",
"description": "Описание комбо"
},
"image": {
"properties": {
"hash": {
"type": "string",
"description": "SHA1-хэш от содержимого файла изображения. Рассчитывается партнером, служит признаком уникальности. В случае если он меняется, Яндекс Еда перезагружает картинку"
},
"url": {
"type": "string",
"description": "Ссылка на изображение для скачивания",
"format": "uri"
}
},
"required": [
"hash",
"url"
]
},
"components": {
"type": "array",
"items": {
"type": "object",
"description": "Компонент комбо",
"required": [
"id",
"name",
"items"
],
"properties": {
"id": {
"type": "string",
"description": "Идентификатор компонента"
},
"name": {
"type": "string",
"description": "Название компонента",
"example": "Горячее"
},
"items": {
"type": "array",
"description": "Список позиций, которые можно выбрать как компонент комбо",
"items": {
"type": "object",
"description": "Позиция в меню, которую можно выбрать как компонент комбо",
"required": [
"itemId"
],
"properties": {
"itemId": {
"type": "string",
"description": "Внутренний идентификатор блюда в ресторане в системе партнера. Может быть любым значением, приводимым к строке. Рекомендация - UUID4",
"example": "e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9"
},
"isDefault": {
"type": "boolean",
"description": "Является ли данный продукт выбором по умолчанию\nЕсли не указано ни одного продукта в списке с такой опцией,\nто дефолтным будет первый продукт в списке\n"
}
}
}
}
}
}
},
"price": {
"oneOf": [
{
"type": "object",
"description": "Фиксированная цена на комбо.\nЦена на блюда в заказе будет распределена пропорционально их цене в меню.\nНапример, если цена комбо 2500 и оно состоит из блюд, цена которых в меню 1000 и 2000,\nто в заказе цены блюд будут 833.33 и 1666.67 соответственно\n",
"required": [
"type",
"price"
],
"properties": {
"type": {
"type": "string",
"enum": [
"fixed"
]
},
"price": {
"type": "string",
"pattern": "^-?[0-9]+(\\.[0-9]{1,2})?$"
}
}
},
{
"type": "object",
"description": "На комбо предоставляется процентная скидка, применяемая к сумме позиций в комбо",
"required": [
"type",
"discount"
],
"properties": {
"type": {
"type": "string",
"enum": [
"single_discount"
]
},
"discount": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Размер скидки в процентах"
}
}
},
{
"type": "object",
"description": "На каждую позицию в комбо предоставляется отдельная процентная скидка",
"required": [
"type",
"discounts"
],
"properties": {
"type": {
"type": "string",
"enum": [
"item_discounts"
]
},
"discounts": {
"type": "array",
"items": {
"type": "object",
"description": "Скидка для блюда в комбо",
"required": [
"itemId",
"discount"
],
"properties": {
"itemId": {
"type": "string",
"description": "Внутренний идентификатор блюда в ресторане в системе партнера. Может быть любым значением, приводимым к строке. Рекомендация - UUID4",
"example": "e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9"
},
"discount": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Размер скидки в процентах"
}
}
}
}
}
}
],
"discriminator": {
"propertyName": "type",
"mapping": {
"fixed": "#/components/schemas/ComboFixedPrice",
"single_discount": "#/components/schemas/ComboSingleDiscountPrice",
"item_discounts": "#/components/schemas/ComboItemDiscountsPrice"
}
}
}
}
},
"ComboComponent": {
"type": "object",
"description": "Компонент комбо",
"required": [
"id",
"name",
"items"
],
"properties": {
"id": {
"type": "string",
"description": "Идентификатор компонента"
},
"name": {
"type": "string",
"description": "Название компонента",
"example": "Горячее"
},
"items": {
"type": "array",
"description": "Список позиций, которые можно выбрать как компонент комбо",
"items": {
"type": "object",
"description": "Позиция в меню, которую можно выбрать как компонент комбо",
"required": [
"itemId"
],
"properties": {
"itemId": {
"type": "string",
"description": "Внутренний идентификатор блюда в ресторане в системе партнера. Может быть любым значением, приводимым к строке. Рекомендация - UUID4",
"example": "e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9"
},
"isDefault": {
"type": "boolean",
"description": "Является ли данный продукт выбором по умолчанию\nЕсли не указано ни одного продукта в списке с такой опцией,\nто дефолтным будет первый продукт в списке\n"
}
}
}
}
}
},
"ComboComponentItem": {
"type": "object",
"description": "Позиция в меню, которую можно выбрать как компонент комбо",
"required": [
"itemId"
],
"properties": {
"itemId": {
"type": "string",
"description": "Внутренний идентификатор блюда в ресторане в системе партнера. Может быть любым значением, приводимым к строке. Рекомендация - UUID4",
"example": "e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9"
},
"isDefault": {
"type": "boolean",
"description": "Является ли данный продукт выбором по умолчанию\nЕсли не указано ни одного продукта в списке с такой опцией,\nто дефолтным будет первый продукт в списке\n"
}
}
},
"ComboPrice": {
"oneOf": [
{
"type": "object",
"description": "Фиксированная цена на комбо.\nЦена на блюда в заказе будет распределена пропорционально их цене в меню.\nНапример, если цена комбо 2500 и оно состоит из блюд, цена которых в меню 1000 и 2000,\nто в заказе цены блюд будут 833.33 и 1666.67 соответственно\n",
"required": [
"type",
"price"
],
"properties": {
"type": {
"type": "string",
"enum": [
"fixed"
]
},
"price": {
"type": "string",
"pattern": "^-?[0-9]+(\\.[0-9]{1,2})?$"
}
}
},
{
"type": "object",
"description": "На комбо предоставляется процентная скидка, применяемая к сумме позиций в комбо",
"required": [
"type",
"discount"
],
"properties": {
"type": {
"type": "string",
"enum": [
"single_discount"
]
},
"discount": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Размер скидки в процентах"
}
}
},
{
"type": "object",
"description": "На каждую позицию в комбо предоставляется отдельная процентная скидка",
"required": [
"type",
"discounts"
],
"properties": {
"type": {
"type": "string",
"enum": [
"item_discounts"
]
},
"discounts": {
"type": "array",
"items": {
"type": "object",
"description": "Скидка для блюда в комбо",
"required": [
"itemId",
"discount"
],
"properties": {
"itemId": {
"type": "string",
"description": "Внутренний идентификатор блюда в ресторане в системе партнера. Может быть любым значением, приводимым к строке. Рекомендация - UUID4",
"example": "e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9"
},
"discount": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Размер скидки в процентах"
}
}
}
}
}
}
],
"discriminator": {
"propertyName": "type",
"mapping": {
"fixed": "#/components/schemas/ComboFixedPrice",
"single_discount": "#/components/schemas/ComboSingleDiscountPrice",
"item_discounts": "#/components/schemas/ComboItemDiscountsPrice"
}
}
},
"ComboFixedPrice": {
"type": "object",
"description": "Фиксированная цена на комбо.\nЦена на блюда в заказе будет распределена пропорционально их цене в меню.\nНапример, если цена комбо 2500 и оно состоит из блюд, цена которых в меню 1000 и 2000,\nто в заказе цены блюд будут 833.33 и 1666.67 соответственно\n",
"required": [
"type",
"price"
],
"properties": {
"type": {
"type": "string",
"enum": [
"fixed"
]
},
"price": {
"type": "string",
"pattern": "^-?[0-9]+(\\.[0-9]{1,2})?$"
}
}
},
"ComboSingleDiscountPrice": {
"type": "object",
"description": "На комбо предоставляется процентная скидка, применяемая к сумме позиций в комбо",
"required": [
"type",
"discount"
],
"properties": {
"type": {
"type": "string",
"enum": [
"single_discount"
]
},
"discount": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Размер скидки в процентах"
}
}
},
"ComboItemDiscountsPrice": {
"type": "object",
"description": "На каждую позицию в комбо предоставляется отдельная процентная скидка",
"required": [
"type",
"discounts"
],
"properties": {
"type": {
"type": "string",
"enum": [
"item_discounts"
]
},
"discounts": {
"type": "array",
"items": {
"type": "object",
"description": "Скидка для блюда в комбо",
"required": [
"itemId",
"discount"
],
"properties": {
"itemId": {
"type": "string",
"description": "Внутренний идентификатор блюда в ресторане в системе партнера. Может быть любым значением, приводимым к строке. Рекомендация - UUID4",
"example": "e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9"
},
"discount": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Размер скидки в процентах"
}
}
}
}
}
},
"ComboItemDiscount": {
"type": "object",
"description": "Скидка для блюда в комбо",
"required": [
"itemId",
"discount"
],
"properties": {
"itemId": {
"type": "string",
"description": "Внутренний идентификатор блюда в ресторане в системе партнера. Может быть любым значением, приводимым к строке. Рекомендация - UUID4",
"example": "e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9"
},
"discount": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Размер скидки в процентах"
}
}
},
"ItemId": {
"type": "string",
"description": "Внутренний идентификатор блюда в ресторане в системе партнера. Может быть любым значением, приводимым к строке. Рекомендация - UUID4",
"example": "e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9"
},
"DiscountPercent": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Размер скидки в процентах"
},
"Price": {
"type": "string",
"pattern": "^-?[0-9]+(\\.[0-9]{1,2})?$"
},
"AdultInfo": {
"type": "object",
"additionalProperties": false,
"description": "Информация о adult-свойствах товара",
"required": [
"age_group"
],
"properties": {
"age_group": {
"type": "integer",
"description": "Возрастное ограничение на товар",
"enum": [
18,
21
]
},
"alcohol_percentage": {
"type": "string",
"pattern": "^[0-9]+(\\.[0-9]{1,2})?$",
"example": "12.34",
"description": "Процент содержания алкоголя в блюде. Число указывается только через точку."
}
}
},
"AgeGroup": {
"type": "integer",
"description": "Возрастное ограничение на товар",
"enum": [
18,
21
]
},
"AlcoholPercentage": {
"type": "string",
"pattern": "^[0-9]+(\\.[0-9]{1,2})?$",
"example": "12.34",
"description": "Процент содержания алкоголя в блюде. Число указывается только через точку."
},
"MenuCompositionItemAdditionalDescriptions": {
"type": "object",
"additionalProperties": false,
"description": "Дополнительные поля для описания блюда",
"properties": {
"consisting_ingredients": {
"description": "Перечень ингредиентов, из которых состоит блюдо. Это исходные компоненты блюда, а не его составные части. Желательно указать все ингредиенты, которые могут вызвать аллергию или сильно влияют на вкус. Так пользователи сразу увидят важные подробности о блюде.\nНапример: мука, яйца, вода, мясо.",
"type": "array",
"maxItems": 100,
"items": {
"type": "string",
"example": "мука",
"maxLength": 100
}
},
"badges": {
"type": "array",
"items": {
"description": "Тэги блюда разделены на категории и значения. В каждой категории можно выбрать всего один вариант. При обработке из каждой категории будет браться первое валидное значение. Дублирующие, неизвестные категории или несоответствие значения категории будут пропущены.\nДоступные категории и их значения:\n* `food_specifics` - Особенности питания\n - `halal` - халяль\n - `meat_free` - без мяса\n* `food_spiciness` - острота\n - `spicy` - острое\n* `cooking_method` - способ готовки\n - `fried` - жареное\n - `baked` - запечённое\n - `grilled` - на гриле\n - `not_cooked` - нужно готовить\n* `food_portion` - размер\n - `portion_for_several_people` - на компанию\n - `big_portion` - мегапорция\n - `combo` - комбо",
"type": "object",
"required": [
"category",
"value"
],
"properties": {
"category": {
"type": "string",
"enum": [
"food_specifics",
"food_spiciness",
"cooking_method",
"food_portion"
],
"example": "cooking_method"
},
"value": {
"type": "string",
"enum": [
"halal",
"meat_free",
"spicy",
"fried",
"baked",
"grilled",
"not_cooked",
"portion_for_several_people",
"big_portion",
"combo"
],
"example": "fried"
}
}
}
}
}
},
"MenuCompositionItemAdditionalDescriptionsBadge": {
"description": "Тэги блюда разделены на категории и значения. В каждой категории можно выбрать всего один вариант. При обработке из каждой категории будет браться первое валидное значение. Дублирующие, неизвестные категории или несоответствие значения категории будут пропущены.\nДоступные категории и их значения:\n* `food_specifics` - Особенности питания\n - `halal` - халяль\n - `meat_free` - без мяса\n* `food_spiciness` - острота\n - `spicy` - острое\n* `cooking_method` - способ готовки\n - `fried` - жареное\n - `baked` - запечённое\n - `grilled` - на гриле\n - `not_cooked` - нужно готовить\n* `food_portion` - размер\n - `portion_for_several_people` - на компанию\n - `big_portion` - мегапорция\n - `combo` - комбо",
"type": "object",
"required": [
"category",
"value"
],
"properties": {
"category": {
"type": "string",
"enum": [
"food_specifics",
"food_spiciness",
"cooking_method",
"food_portion"
],
"example": "cooking_method"
},
"value": {
"type": "string",
"enum": [
"halal",
"meat_free",
"spicy",
"fried",
"baked",
"grilled",
"not_cooked",
"portion_for_several_people",
"big_portion",
"combo"
],
"example": "fried"
}
}
},
"Nutrients": {
"description": "Энергетическая ценность продукта на 100гр",
"type": "object",
"properties": {
"calories": {
"type": "number",
"description": "Калории на 100гр",
"example": 12.5
},
"proteins": {
"type": "number",
"description": "Белки на 100гр",
"example": 15.3
},
"fats": {
"type": "number",
"description": "Жиры на 100гр",
"example": 12.5
},
"carbohydrates": {
"type": "number",
"description": "Углеводы на 100гр",
"example": 15.3
}
},
"required": [
"calories",
"proteins",
"fats",
"carbohydrates"
]
},
"ModifierGroups": {
"properties": {
"id": {
"type": "string",
"description": "Идентификатор группы модификаторов на стороне партнера. Может быть любым значением, приводимым к строке. Рекомендация - UUID4",
"example": "9987c815-3069-46ad-9626-74799fb22210"
},
"name": {
"type": "string",
"description": "Наименование группы модификаторов",
"example": "Выбор приборов"
},
"modifiers": {
"type": "array",
"description": "Опции, включаемые в группу",
"items": {
"properties": {
"id": {
"type": "string",
"description": "Идентификатор модификатора на стороне партнера. Может быть любым значением, приводимым к строке. Рекомендация – UUID4. Этот идентификатор передаётся в заказе вместе с выбранным количеством",
"example": "916cfc99-acb4-4a96-9a42-b29159e88189"
},
"name": {
"type": "string",
"description": "Название модификатора",
"example": "Европейские приборы"
},
"price": {
"type": "number",
"format": "double",
"description": "Цена модификатора",
"example": 150
},
"originalPrice": {
"type": "number",
"format": "double",
"description": "Отдельное поле для передачи исходых цен опций/модификаторов. Пользователю не показывается. Используется для расчета суммы при частичных возвратах.\n",
"example": 150
},
"vat": {
"type": "integer",
"format": "int32",
"description": "НДС, включенный в стоимость, в процентах. Если не указан, считается за 0",
"example": 20
},
"excise": {
"type": "string",
"enum": [
"sugary_drink",
"other"
],
"description": "Признак акцизного товара. Вместо ключа excise можно передавать метку [AT] (заглавными латинскими буквами в квадратных скобках) в поле `name` модификатора.",
"example": "sugary_drink"
},
"minAmount": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"format": "int32",
"description": "Минимальное количество указанного модификатора для блюда в заказе. Должно быть меньше maxAmount.",
"example": 0
},
"maxAmount": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"format": "int32",
"description": "Максимальное количество указанного модификатора для блюда в заказе. Это число не должно превышать значение параметра `maxSelectedModifiers` в модели `ModifierGroup` для заказа целиком. Например, вы поддерживаете 5 модификаторов в группе целиком, но максимальное значение модификатора для отдельного блюда указано 10 – такой модификатор не пройдет валидацию. Не будут загружены: некорректный модификатор, группа, к которой он принадлежит, а также пункты меню, в которых используются некорректные данные",
"example": 10
}
},
"required": [
"id",
"maxAmount",
"minAmount",
"name",
"price"
]
}
},
"minSelectedModifiers": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"format": "int32",
"description": "Минимальное количество модификаторов, которые необходимо выбрать для данной группы. Не должно быть больше общего числа необходимых \"modifiers\" (с учетом их minAmount) и не должно быть больше maxSelectedModifiers",
"example": 0
},
"maxSelectedModifiers": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"format": "int32",
"description": "Максимальное количество модификаторов, которые возможно выбрать для данной группы. Не должно быть меньше общего числа возможных \"modifiers\" (с учетом их maxAmount) и не должно быть меньше minSelectedModifiers",
"example": 10
},
"sortOrder": {
"type": "integer",
"description": "Порядок сортировки от меньшего к большему. Если не указан, считаем за 100.",
"example": 0
}
},
"required": [
"id",
"name",
"minSelectedModifiers",
"maxSelectedModifiers"
]
},
"ItemsImages": {
"properties": {
"hash": {
"type": "string",
"description": "SHA1-хэш от содержимого файла изображения. Рассчитывается партнером, служит признаком уникальности. В случае если он меняется, Яндекс Еда перезагружает картинку"
},
"url": {
"type": "string",
"description": "Ссылка на изображение для скачивания",
"format": "uri"
}
},
"required": [
"hash",
"url"
]
},
"Modifiers": {
"properties": {
"id": {
"type": "string",
"description": "Идентификатор модификатора на стороне партнера. Может быть любым значением, приводимым к строке. Рекомендация – UUID4. Этот идентификатор передаётся в заказе вместе с выбранным количеством",
"example": "916cfc99-acb4-4a96-9a42-b29159e88189"
},
"name": {
"type": "string",
"description": "Название модификатора",
"example": "Европейские приборы"
},
"price": {
"type": "number",
"format": "double",
"description": "Цена модификатора",
"example": 150
},
"originalPrice": {
"type": "number",
"format": "double",
"description": "Отдельное поле для передачи исходых цен опций/модификаторов. Пользователю не показывается. Используется для расчета суммы при частичных возвратах.\n",
"example": 150
},
"vat": {
"type": "integer",
"format": "int32",
"description": "НДС, включенный в стоимость, в процентах. Если не указан, считается за 0",
"example": 20
},
"excise": {
"type": "string",
"enum": [
"sugary_drink",
"other"
],
"description": "Признак акцизного товара. Вместо ключа excise можно передавать метку [AT] (заглавными латинскими буквами в квадратных скобках) в поле `name` модификатора.",
"example": "sugary_drink"
},
"minAmount": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"format": "int32",
"description": "Минимальное количество указанного модификатора для блюда в заказе. Должно быть меньше maxAmount.",
"example": 0
},
"maxAmount": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"format": "int32",
"description": "Максимальное количество указанного модификатора для блюда в заказе. Это число не должно превышать значение параметра `maxSelectedModifiers` в модели `ModifierGroup` для заказа целиком. Например, вы поддерживаете 5 модификаторов в группе целиком, но максимальное значение модификатора для отдельного блюда указано 10 – такой модификатор не пройдет валидацию. Не будут загружены: некорректный модификатор, группа, к которой он принадлежит, а также пункты меню, в которых используются некорректные данные",
"example": 10
}
},
"required": [
"id",
"maxAmount",
"minAmount",
"name",
"price"
]
},
"MenuAvailabilityV2": {
"type": "object",
"description": "Актуальная версия модели доступности меню",
"properties": {
"items": {
"type": "array",
"description": "Список пунктов меню, по которым требуется изменить доступность",
"items": {
"properties": {
"itemId": {
"type": "string",
"description": "Внутренний идентификатор блюда в ресторане в системе партнера. Может быть любым значением, приводимым к строке. Рекомендация – UUID4",
"example": "eff0cec0-058c-4d53-b524-1c04ac24fb51"
},
"stock": {
"type": "integer",
"format": "int32",
"description": "Остаток в ресторане. При 0 блюдо пропадает из выдачи. Не обязательное поле. Если stock для itemId не передан, то остаток блюда считается за 0.",
"default": 0,
"example": 5
}
},
"required": [
"itemId"
]
}
},
"modifiers": {
"type": "array",
"description": "Список модификаторов блюд, по которым требуется изменить доступность",
"items": {
"properties": {
"modifierId": {
"type": "string",
"description": "Внутренний идентификатор модификатора в ресторане в системе партнера. Может быть любым значением, приводимым к строке. Рекомендация – UUID4",
"example": "eff0cec0-058c-4d53-b524-1c04ac24fb51"
},
"stock": {
"type": "integer",
"format": "int32",
"description": "Остаток в ресторане. При 0 модификатор пропадает из выдачи. Не обязательное поле. Если stock для modifierId не передан, то остаток блюда считается за 0.",
"default": 0,
"example": 5
}
},
"required": [
"modifierId"
]
}
},
"combos": {
"type": "array",
"description": "Список комбо, по которым требуется изменить доступность",
"items": {
"properties": {
"comboId": {
"type": "string",
"description": "Внутренний идентификатор комбо в ресторане в системе партнера. Может быть любым значением, приводимым к строке. Рекомендация - UUID4"
},
"stock": {
"type": "number",
"format": "float",
"default": 0,
"description": "Остаток в ресторане. При 0 комбо пропадает из выдачи. Не обязательное поле. Если не указан, считается за 0",
"example": 5.5
}
},
"required": [
"comboId"
]
}
}
},
"required": [
"items",
"modifiers"
]
},
"MenuAvailabilityItems": {
"properties": {
"itemId": {
"type": "string",
"description": "Внутренний идентификатор блюда в ресторане в системе партнера. Может быть любым значением, приводимым к строке. Рекомендация – UUID4",
"example": "eff0cec0-058c-4d53-b524-1c04ac24fb51"
},
"stock": {
"type": "integer",
"format": "int32",
"description": "Остаток в ресторане. При 0 блюдо пропадает из выдачи. Не обязательное поле. Если stock для itemId не передан, то остаток блюда считается за 0.",
"default": 0,
"example": 5
}
},
"required": [
"itemId"
]
},
"MenuAvailabilityModifiers": {
"properties": {
"modifierId": {
"type": "string",
"description": "Внутренний идентификатор модификатора в ресторане в системе партнера. Может быть любым значением, приводимым к строке. Рекомендация – UUID4",
"example": "eff0cec0-058c-4d53-b524-1c04ac24fb51"
},
"stock": {
"type": "integer",
"format": "int32",
"description": "Остаток в ресторане. При 0 модификатор пропадает из выдачи. Не обязательное поле. Если stock для modifierId не передан, то остаток блюда считается за 0.",
"default": 0,
"example": 5
}
},
"required": [
"modifierId"
]
},
"MenuAvailabilityCombos": {
"properties": {
"comboId": {
"type": "string",
"description": "Внутренний идентификатор комбо в ресторане в системе партнера. Может быть любым значением, приводимым к строке. Рекомендация - UUID4"
},
"stock": {
"type": "number",
"format": "float",
"default": 0,
"description": "Остаток в ресторане. При 0 комбо пропадает из выдачи. Не обязательное поле. Если не указан, считается за 0",
"example": 5.5
}
},
"required": [
"comboId"
]
},
"MenuPromo": {
"type": "object",
"properties": {
"promoItems": {
"type": "array",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID блюда из основного меню",
"example": "string"
},
"promoId": {
"type": "string",
"description": "ID акционного блюда",
"example": "string"
}
},
"required": [
"id",
"promoId"
]
}
}
},
"required": [
"promoItems"
]
},
"PromoItems": {
"properties": {
"id": {
"type": "string",
"description": "ID блюда из основного меню",
"example": "string"
},
"promoId": {
"type": "string",
"description": "ID акционного блюда",
"example": "string"
}
},
"required": [
"id",
"promoId"
]
},
"RestaurantList": {
"type": "object",
"properties": {
"places": {
"type": "array",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID заведения в системе партнера",
"example": "123"
},
"title": {
"type": "string",
"description": "Название заведения",
"example": "Test place"
},
"address": {
"type": "string",
"description": "Адрес заведения",
"example": "City, str. Street, 1"
}
},
"required": [
"id",
"title",
"address"
]
}
}
},
"required": [
"places"
]
},
"Places": {
"properties": {
"id": {
"type": "string",
"description": "ID заведения в системе партнера",
"example": "123"
},
"title": {
"type": "string",
"description": "Название заведения",
"example": "Test place"
},
"address": {
"type": "string",
"description": "Адрес заведения",
"example": "City, str. Street, 1"
}
},
"required": [
"id",
"title",
"address"
]
},
"RestaurantAvailabilityList": {
"properties": {
"places": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"maxLength": 255,
"description": "ID заведения в системе партнера",
"example": "e89b-12d3-a456"
},
"enabled": {
"type": "boolean",
"description": "Активность ресторана",
"nullable": false,
"example": true
}
},
"required": [
"id",
"enabled"
]
}
}
}
},
"RestaurantAvailability": {
"type": "object",
"properties": {
"id": {
"type": "string",
"maxLength": 255,
"description": "ID заведения в системе партнера",
"example": "e89b-12d3-a456"
},
"enabled": {
"type": "boolean",
"description": "Активность ресторана",
"nullable": false,
"example": true
}
},
"required": [
"id",
"enabled"
]
},
"YandexOrderV2": {
"type": "object",
"description": "Актуальная версия модели заказа по схеме доставки \"yandex\".",
"properties": {
"platform": {
"type": "string",
"description": "Идентификатор платформы:\n* YE – Yandex Eda.\n* DC – Delivery club.\n",
"enum": [
"YE",
"DC"
]
},
"discriminator": {
"type": "string",
"description": "Дискриминатор схемы обьекта. Для YandexOrder равен \"yandex\".",
"example": "yandex"
},
"eatsId": {
"type": "string",
"description": "Сквозной идентификатор заказа на стороне Яндекс.Еды в формате DDDDDD-DDDDDDDD.",
"example": "190330-12345678"
},
"restaurantId": {
"type": "string",
"description": "Внутренний идентификатор заведения в системе партнера, в которое передаётся заказ. Формат свободный, рекомендуется UUID4.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"deliveryInfo": {
"description": "Информация о доставке.",
"properties": {
"clientName": {
"type": "string",
"description": "Имя клиента в сервисе Яндекс Еда",
"example": "Иванов Иван Иванович"
},
"phoneNumber": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Может содержать добавочный номер: \"+<код страны><номер> доб. <добавочный номер>\".",
"example": "+79031111111 доб. 4432"
},
"additionalPhoneNumbers": {
"description": "Список дополнительных номеров для связи с клиентом.",
"type": "array",
"items": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Может содержать добавочный номер: \"+<код страны><номер> доб. <добавочный номер>\".",
"example": "+79031111111 доб. 4432"
}
},
"courierArrivementDate": {
"type": "string",
"description": "Дата, когда придет курьер в ресторан, в формате RFC3339 с дробной частью секунд (Y-m-d\\TH:i:s.uP).",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
},
"realPhoneNumber": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Указывается в случае если клиент дает согласие на обработку своих персональных данных",
"example": "79031111111"
},
"pickupCode": {
"type": "string",
"description": "Код для идентификации курьера",
"example": 123
}
},
"required": [
"courierArrivementDate"
]
},
"paymentInfo": {
"properties": {
"itemsCost": {
"type": "number",
"format": "double",
"example": 100,
"description": "Полная стоимость блюд в заказе, обычна равна сумме стоимости блюд, которые передает партнер в меню. Если в заказе есть скидка на корзину, то она учитывается и вычитается в этом поле."
},
"paymentType": {
"type": "string",
"description": "Информация о типе оплаты. CARD – оплаченный заказа, CASH – неоплаченный заказ.",
"enum": [
"CARD",
"CASH"
]
}
},
"required": [
"itemsCost",
"paymentType"
]
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID позиции меню в системе партнера",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Наименование позиции меню",
"example": "Пицца Пепперони"
},
"quantity": {
"type": "number",
"format": "float",
"description": "Количество позиции в заказе",
"example": 3.5
},
"price": {
"type": "number",
"format": "double",
"description": "Стоимость одной позиции вместе со стоимостью модификаций. В следующей версии будет исправлено на чистую цену позиции без модификаций",
"example": 100
},
"modifications": {
"type": "array",
"description": "Список выбранных модификаций. Может быть пустым, передаётся явно, для каждой отдельной позиции в заказе. При заказе двух позиций одного и того же блюда с разным набором модификаций - передаются разные позиции, с разными списками \"modifications\"",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID модификатора в системе партнера",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"group_id": {
"type": "string",
"description": "ID группы в системе партнера, к которой принадлежит модификатор. Используется для однозначной идентификации модификатора при его дублировании.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"type": "string",
"description": "Наименование модификатора",
"example": "Европейские приборы"
},
"quantity": {
"type": "integer",
"description": "Количество в заказе",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Цена модификатора для пункта меню (например - дополнительный соус)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
}
},
"promos": {
"type": "array",
"description": "Список акций, действующих на текущее блюдо. Если у блюда объект \"promos\" не пустой, значит на него действует акция в системе партнера. Если пустой – это означает, что на блюдо не действуют никакие акции",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Тип акции. Может быть подарок \"GIFT\", процентная скидка \"PERCENTAGE\", софинансируемая скидка \"COFINANCE\", фиксированная скидка \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE",
"FIXED"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Сумма скидки в валюте, оплачиваемая партнёром"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая партнером"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая Яндекс.Едой"
}
},
"required": [
"type",
"discount"
]
}
},
"comboInfo": {
"type": "object",
"description": "Информация о комбо, к которому относится данная позиция. Заполнено только для позиций, которые были выбраны в составе комбо.",
"required": [
"id",
"componentId"
],
"properties": {
"id": {
"type": "string",
"description": "ID комбо из меню, к которому относится данная позиция.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"componentId": {
"type": "string",
"description": "ID компонента комбо, к которому относится данная позиция.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
}
}
}
},
"required": [
"id",
"modifications",
"price",
"quantity",
"promos"
]
}
},
"persons": {
"type": "integer",
"description": "Количество персон, на которых оформлен заказ. Может влиять на количество комплектов приборов",
"example": 2
},
"comment": {
"type": "string",
"description": "Дополнительная информация о заказе",
"example": "Дополнительная информация о заказе: ..."
},
"promos": {
"type": "array",
"description": "Список акций, действующих на весь заказ. Если у заказа объект \"promos\" не пустой, значит на него действует акция в системе партнера. Если пустой – это означает, что на заказ не действуют никакие акции",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Тип акции. Может быть подарок \"GIFT\", процентная скидка \"PERCENTAGE\", софинансируемая скидка \"COFINANCE\", фиксированная скидка \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE",
"FIXED"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Сумма скидки в валюте, оплачиваемая партнёром"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая партнером"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая Яндекс.Едой"
}
},
"required": [
"type",
"discount"
],
"type": "object"
}
}
},
"required": [
"discriminator",
"comment",
"nativeOrderDelivery",
"deliveryInfo",
"paymentInfo",
"eatsId",
"restaurantId",
"items",
"nativeOrderPayment",
"promos"
]
},
"YandexOrderDeliveryInfo": {
"properties": {
"clientName": {
"type": "string",
"description": "Имя клиента в сервисе Яндекс Еда",
"example": "Иванов Иван Иванович"
},
"phoneNumber": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Может содержать добавочный номер: \"+<код страны><номер> доб. <добавочный номер>\".",
"example": "+79031111111 доб. 4432"
},
"additionalPhoneNumbers": {
"description": "Список дополнительных номеров для связи с клиентом.",
"type": "array",
"items": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Может содержать добавочный номер: \"+<код страны><номер> доб. <добавочный номер>\".",
"example": "+79031111111 доб. 4432"
}
},
"courierArrivementDate": {
"type": "string",
"description": "Дата, когда придет курьер в ресторан, в формате RFC3339 с дробной частью секунд (Y-m-d\\TH:i:s.uP).",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
},
"realPhoneNumber": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Указывается в случае если клиент дает согласие на обработку своих персональных данных",
"example": "79031111111"
},
"pickupCode": {
"type": "string",
"description": "Код для идентификации курьера",
"example": 123
}
},
"required": [
"courierArrivementDate"
]
},
"YandexOrderPaymentInfo": {
"properties": {
"itemsCost": {
"type": "number",
"format": "double",
"example": 100,
"description": "Полная стоимость блюд в заказе, обычна равна сумме стоимости блюд, которые передает партнер в меню. Если в заказе есть скидка на корзину, то она учитывается и вычитается в этом поле."
},
"paymentType": {
"type": "string",
"description": "Информация о типе оплаты. CARD – оплаченный заказа, CASH – неоплаченный заказ.",
"enum": [
"CARD",
"CASH"
]
}
},
"required": [
"itemsCost",
"paymentType"
]
},
"OrdersItem": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID позиции меню в системе партнера",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Наименование позиции меню",
"example": "Пицца Пепперони"
},
"quantity": {
"type": "number",
"format": "float",
"description": "Количество позиции в заказе",
"example": 3.5
},
"price": {
"type": "number",
"format": "double",
"description": "Стоимость одной позиции вместе со стоимостью модификаций. В следующей версии будет исправлено на чистую цену позиции без модификаций",
"example": 100
},
"modifications": {
"type": "array",
"description": "Список выбранных модификаций. Может быть пустым, передаётся явно, для каждой отдельной позиции в заказе. При заказе двух позиций одного и того же блюда с разным набором модификаций - передаются разные позиции, с разными списками \"modifications\"",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID модификатора в системе партнера",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"group_id": {
"type": "string",
"description": "ID группы в системе партнера, к которой принадлежит модификатор. Используется для однозначной идентификации модификатора при его дублировании.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"type": "string",
"description": "Наименование модификатора",
"example": "Европейские приборы"
},
"quantity": {
"type": "integer",
"description": "Количество в заказе",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Цена модификатора для пункта меню (например - дополнительный соус)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
}
},
"promos": {
"type": "array",
"description": "Список акций, действующих на текущее блюдо. Если у блюда объект \"promos\" не пустой, значит на него действует акция в системе партнера. Если пустой – это означает, что на блюдо не действуют никакие акции",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Тип акции. Может быть подарок \"GIFT\", процентная скидка \"PERCENTAGE\", софинансируемая скидка \"COFINANCE\", фиксированная скидка \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE",
"FIXED"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Сумма скидки в валюте, оплачиваемая партнёром"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая партнером"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая Яндекс.Едой"
}
},
"required": [
"type",
"discount"
]
}
},
"comboInfo": {
"type": "object",
"description": "Информация о комбо, к которому относится данная позиция. Заполнено только для позиций, которые были выбраны в составе комбо.",
"required": [
"id",
"componentId"
],
"properties": {
"id": {
"type": "string",
"description": "ID комбо из меню, к которому относится данная позиция.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"componentId": {
"type": "string",
"description": "ID компонента комбо, к которому относится данная позиция.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
}
}
}
},
"required": [
"id",
"modifications",
"price",
"quantity",
"promos"
]
},
"OrdersPromoItem": {
"properties": {
"type": {
"type": "string",
"description": "Тип акции. Может быть подарок \"GIFT\", процентная скидка \"PERCENTAGE\", софинансируемая скидка \"COFINANCE\", фиксированная скидка \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE",
"FIXED"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Сумма скидки в валюте, оплачиваемая партнёром"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая партнером"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая Яндекс.Едой"
}
},
"required": [
"type",
"discount"
]
},
"OrdersModificationItem": {
"properties": {
"id": {
"type": "string",
"description": "ID модификатора в системе партнера",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"group_id": {
"type": "string",
"description": "ID группы в системе партнера, к которой принадлежит модификатор. Используется для однозначной идентификации модификатора при его дублировании.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"type": "string",
"description": "Наименование модификатора",
"example": "Европейские приборы"
},
"quantity": {
"type": "integer",
"description": "Количество в заказе",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Цена модификатора для пункта меню (например - дополнительный соус)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
},
"OrderItemComboInfo": {
"type": "object",
"description": "Информация о комбо, к которому относится данная позиция. Заполнено только для позиций, которые были выбраны в составе комбо.",
"required": [
"id",
"componentId"
],
"properties": {
"id": {
"type": "string",
"description": "ID комбо из меню, к которому относится данная позиция.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"componentId": {
"type": "string",
"description": "ID компонента комбо, к которому относится данная позиция.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
}
}
},
"MarketplaceOrderV2": {
"type": "object",
"description": "Актуальная версия модели заказа по схеме доставки \"marketplace\"",
"properties": {
"platform": {
"type": "string",
"description": "Идентификатор платформы. YE - Yandex Eda, DC - Delivery club",
"enum": [
"YE",
"DC"
]
},
"discriminator": {
"type": "string",
"description": "Дискриминатор схемы обьекта. Для MarketplaceOrder равен \"marketplace\"",
"example": "marketplace"
},
"eatsId": {
"type": "string",
"description": "Сквозной идентификатор заказа на стороне Яндекс.Еды в формате DDDDDD-DDDDDDDD",
"example": "190330-12345678"
},
"restaurantId": {
"type": "string",
"description": "Внутренний идентификатор заведения в системе партнера, в которое передаётся заказ. Формат свободный, рекомендуется UUID4",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"deliveryInfo": {
"description": "Информация о доставке",
"properties": {
"clientName": {
"type": "string",
"description": "Имя клиента в сервисе Яндекс Еда",
"example": "Иванов Иван Иванович"
},
"phoneNumber": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Может содержать добавочный номер: \"+<код страны><номер> доб. <добавочный номер>\".",
"example": "+79031111111 доб. 4432"
},
"additionalPhoneNumbers": {
"description": "Список дополнительных номеров для связи с клиентом.",
"type": "array",
"items": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Может содержать добавочный номер: \"+<код страны><номер> доб. <добавочный номер>\".",
"example": "+79031111111 доб. 4432"
}
},
"deliveryDate": {
"type": "string",
"description": "Дата доставки (к которой клиент ожидает доставку заказа), в формате RFC3339 с дробной частью секунд (Y-m-d\\TH:i:s.uP)",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
},
"deliveryAddress": {
"description": "Информация об адресе доставки",
"properties": {
"full": {
"type": "string",
"description": "Полный адрес",
"example": "Москва, улица Тверская, дом 1 строение 4, подъезд 2. 4-й этаж, код домофона: 123 К 4567"
},
"latitude": {
"type": "string",
"description": "Широта точки доставки",
"example": "55.756994"
},
"longitude": {
"type": "string",
"description": "Долгота точки доставки",
"example": "37.614006"
}
},
"required": [
"full",
"latitude",
"longitude"
]
}
},
"required": [
"clientName",
"deliveryAddress",
"deliveryDate",
"phoneNumber",
"type"
]
},
"paymentInfo": {
"properties": {
"paymentType": {
"type": "string",
"description": "Информация о типе оплаты. CARD – уже оплаченный заказа, CASH – неоплаченный заказ.",
"enum": [
"CARD",
"CASH"
]
},
"itemsCost": {
"type": "number",
"format": "double",
"example": 100,
"description": "Полная стоимость блюд в заказе, обычна равна сумме стоимости блюд, которые передает партнер в меню. Если в заказе есть скидка на корзину, то она учитывается и вычитается в этом поле."
},
"deliveryFee": {
"type": "number",
"format": "double",
"example": 100,
"description": "Стоимость доставки"
},
"total": {
"type": "number",
"format": "double",
"example": 200,
"description": "Общая стоимость заказа. То есть itemsCost + deliveryFee"
},
"change": {
"type": "number",
"format": "double",
"example": 500,
"description": "Сумма, с которой потребуется сдача."
}
},
"required": [
"change",
"deliveryFee",
"itemsCost",
"paymentType"
]
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID позиции меню в системе партнера",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Наименование позиции меню",
"example": "Пицца Пепперони"
},
"quantity": {
"type": "number",
"format": "float",
"description": "Количество позиции в заказе",
"example": 3.5
},
"price": {
"type": "number",
"format": "double",
"description": "Стоимость одной позиции вместе со стоимостью модификаций. В следующей версии будет исправлено на чистую цену позиции без модификаций",
"example": 100
},
"modifications": {
"type": "array",
"description": "Список выбранных модификаций. Может быть пустым, передаётся явно, для каждой отдельной позиции в заказе. При заказе двух позиций одного и того же блюда с разным набором модификаций - передаются разные позиции, с разными списками \"modifications\"",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID модификатора в системе партнера",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"group_id": {
"type": "string",
"description": "ID группы в системе партнера, к которой принадлежит модификатор. Используется для однозначной идентификации модификатора при его дублировании.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"type": "string",
"description": "Наименование модификатора",
"example": "Европейские приборы"
},
"quantity": {
"type": "integer",
"description": "Количество в заказе",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Цена модификатора для пункта меню (например - дополнительный соус)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
}
},
"promos": {
"type": "array",
"description": "Список акций, действующих на текущее блюдо. Если у блюда объект \"promos\" не пустой, значит на него действует акция в системе партнера. Если пустой – это означает, что на блюдо не действуют никакие акции",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Тип акции. Может быть подарок \"GIFT\", процентная скидка \"PERCENTAGE\", софинансируемая скидка \"COFINANCE\", фиксированная скидка \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE",
"FIXED"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Сумма скидки в валюте, оплачиваемая партнёром"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая партнером"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая Яндекс.Едой"
}
},
"required": [
"type",
"discount"
]
}
},
"comboInfo": {
"type": "object",
"description": "Информация о комбо, к которому относится данная позиция. Заполнено только для позиций, которые были выбраны в составе комбо.",
"required": [
"id",
"componentId"
],
"properties": {
"id": {
"type": "string",
"description": "ID комбо из меню, к которому относится данная позиция.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"componentId": {
"type": "string",
"description": "ID компонента комбо, к которому относится данная позиция.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
}
}
}
},
"required": [
"id",
"modifications",
"price",
"quantity",
"promos"
]
}
},
"persons": {
"type": "integer",
"description": "Количество персон, на которых оформлен заказ. Может влиять на количество комплектов приборов",
"example": 2
},
"comment": {
"type": "string",
"description": "Дополнительная информация о заказе",
"example": "Дополнительная информация о заказе: ..."
},
"promos": {
"type": "array",
"description": "Список акций, действующих на весь заказ. Если у заказа объект \"promos\" не пустой, значит на него действует акция в системе партнера. Если пустой – это означает, что на заказ не действуют никакие акции",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Тип акции. Может быть подарок \"GIFT\", процентная скидка \"PERCENTAGE\", софинансируемая скидка \"COFINANCE\", фиксированная скидка \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE",
"FIXED"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Сумма скидки в валюте, оплачиваемая партнёром"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая партнером"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая Яндекс.Едой"
}
},
"required": [
"type",
"discount"
]
}
}
},
"required": [
"discriminator",
"comment",
"marketplaceOrderDelivery",
"eatsId",
"restaurantId",
"items",
"deliveryInfo",
"paymentInfo",
"marketplaceOrderPayment",
"promos"
]
},
"MarketplaceOrderDeliveryInfo": {
"properties": {
"clientName": {
"type": "string",
"description": "Имя клиента в сервисе Яндекс Еда",
"example": "Иванов Иван Иванович"
},
"phoneNumber": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Может содержать добавочный номер: \"+<код страны><номер> доб. <добавочный номер>\".",
"example": "+79031111111 доб. 4432"
},
"additionalPhoneNumbers": {
"description": "Список дополнительных номеров для связи с клиентом.",
"type": "array",
"items": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Может содержать добавочный номер: \"+<код страны><номер> доб. <добавочный номер>\".",
"example": "+79031111111 доб. 4432"
}
},
"deliveryDate": {
"type": "string",
"description": "Дата доставки (к которой клиент ожидает доставку заказа), в формате RFC3339 с дробной частью секунд (Y-m-d\\TH:i:s.uP)",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
},
"deliveryAddress": {
"description": "Информация об адресе доставки",
"properties": {
"full": {
"type": "string",
"description": "Полный адрес",
"example": "Москва, улица Тверская, дом 1 строение 4, подъезд 2. 4-й этаж, код домофона: 123 К 4567"
},
"latitude": {
"type": "string",
"description": "Широта точки доставки",
"example": "55.756994"
},
"longitude": {
"type": "string",
"description": "Долгота точки доставки",
"example": "37.614006"
}
},
"required": [
"full",
"latitude",
"longitude"
]
}
},
"required": [
"clientName",
"deliveryAddress",
"deliveryDate",
"phoneNumber",
"type"
]
},
"DeliveryAddress": {
"properties": {
"full": {
"type": "string",
"description": "Полный адрес",
"example": "Москва, улица Тверская, дом 1 строение 4, подъезд 2. 4-й этаж, код домофона: 123 К 4567"
},
"latitude": {
"type": "string",
"description": "Широта точки доставки",
"example": "55.756994"
},
"longitude": {
"type": "string",
"description": "Долгота точки доставки",
"example": "37.614006"
}
},
"required": [
"full",
"latitude",
"longitude"
]
},
"MarketplaceOrderPaymentInfo": {
"properties": {
"paymentType": {
"type": "string",
"description": "Информация о типе оплаты. CARD – уже оплаченный заказа, CASH – неоплаченный заказ.",
"enum": [
"CARD",
"CASH"
]
},
"itemsCost": {
"type": "number",
"format": "double",
"example": 100,
"description": "Полная стоимость блюд в заказе, обычна равна сумме стоимости блюд, которые передает партнер в меню. Если в заказе есть скидка на корзину, то она учитывается и вычитается в этом поле."
},
"deliveryFee": {
"type": "number",
"format": "double",
"example": 100,
"description": "Стоимость доставки"
},
"total": {
"type": "number",
"format": "double",
"example": 200,
"description": "Общая стоимость заказа. То есть itemsCost + deliveryFee"
},
"change": {
"type": "number",
"format": "double",
"example": 500,
"description": "Сумма, с которой потребуется сдача."
}
},
"required": [
"change",
"deliveryFee",
"itemsCost",
"paymentType"
]
},
"PickupOrderV1": {
"type": "object",
"description": "Актуальная версия модели заказа по схеме доставки \"pickup\"",
"properties": {
"platform": {
"type": "string",
"description": "Идентификатор платформы. YE - Yandex Eda, DC - Delivery club",
"enum": [
"YE",
"DC"
]
},
"discriminator": {
"type": "string",
"description": "Дискриминатор схемы обьекта. Для PickupOrder равен \"pickup\"",
"example": "pickup"
},
"eatsId": {
"type": "string",
"description": "Сквозной идентификатор заказа на стороне Яндекс Еды в формате DDDDDD-DDDDDD",
"example": "190330-123456"
},
"restaurantId": {
"type": "string",
"description": "Внутренний идентификатор заведения в системе партнера, в которое передаётся заказ. Формат свободный, рекомендуется UUID4",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"deliveryInfo": {
"description": "Информация о доставке",
"properties": {
"clientName": {
"type": "string",
"description": "Имя клиента в сервисе Яндекс Еда",
"example": "Иванов Иван Иванович"
},
"phoneNumber": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Может содержать добавочный номер: \"+<код страны><номер> доб. <добавочный номер>\".",
"example": "+79031111111 доб. 4432"
},
"additionalPhoneNumbers": {
"description": "Список дополнительных номеров для связи с клиентом.",
"type": "array",
"items": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Может содержать добавочный номер: \"+<код страны><номер> доб. <добавочный номер>\".",
"example": "+79031111111 доб. 4432"
}
},
"clientArrivementDate": {
"type": "string",
"description": "Дата, когда придет клиент в ресторан, в формате RFC3339 с дробной частью секунд (Y-m-d\\TH:i:s.uP)",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
}
},
"required": [
"clientName",
"phoneNumber",
"clientArrivementDate"
]
},
"paymentInfo": {
"properties": {
"paymentType": {
"type": "string",
"description": "Информация о типе оплаты",
"enum": [
"CARD",
"CASH"
]
},
"itemsCost": {
"type": "number",
"format": "double",
"example": 100,
"description": "Полная стоимость блюд в заказе, обычна равна сумме стоимости блюд, которые передает партнер в меню. Если в заказе есть скидка на корзину, то она учитывается и вычитается в этом поле."
},
"total": {
"type": "number",
"format": "double",
"example": 200,
"description": "Общая стоимость заказа"
},
"change": {
"type": "number",
"format": "double",
"example": 500,
"description": "Сумма, с которой потребуется сдача."
}
},
"required": [
"change",
"itemsCost",
"paymentType"
]
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID позиции меню в системе партнера",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Наименование позиции меню",
"example": "Пицца Пепперони"
},
"quantity": {
"type": "number",
"format": "float",
"description": "Количество позиции в заказе",
"example": 3.5
},
"price": {
"type": "number",
"format": "double",
"description": "Стоимость одной позиции вместе со стоимостью модификаций. В следующей версии будет исправлено на чистую цену позиции без модификаций",
"example": 100
},
"modifications": {
"type": "array",
"description": "Список выбранных модификаций. Может быть пустым, передаётся явно, для каждой отдельной позиции в заказе. При заказе двух позиций одного и того же блюда с разным набором модификаций - передаются разные позиции, с разными списками \"modifications\"",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID модификатора в системе партнера",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"group_id": {
"type": "string",
"description": "ID группы в системе партнера, к которой принадлежит модификатор. Используется для однозначной идентификации модификатора при его дублировании.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"type": "string",
"description": "Наименование модификатора",
"example": "Европейские приборы"
},
"quantity": {
"type": "integer",
"description": "Количество в заказе",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Цена модификатора для пункта меню (например - дополнительный соус)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
}
},
"promos": {
"type": "array",
"description": "Список акций, действующих на текущее блюдо. Если у блюда объект \"promos\" не пустой, значит на него действует акция в системе партнера. Если пустой – это означает, что на блюдо не действуют никакие акции",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Тип акции. Может быть подарок \"GIFT\", процентная скидка \"PERCENTAGE\", софинансируемая скидка \"COFINANCE\", фиксированная скидка \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE",
"FIXED"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Сумма скидки в валюте, оплачиваемая партнёром"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая партнером"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая Яндекс.Едой"
}
},
"required": [
"type",
"discount"
]
}
},
"comboInfo": {
"type": "object",
"description": "Информация о комбо, к которому относится данная позиция. Заполнено только для позиций, которые были выбраны в составе комбо.",
"required": [
"id",
"componentId"
],
"properties": {
"id": {
"type": "string",
"description": "ID комбо из меню, к которому относится данная позиция.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"componentId": {
"type": "string",
"description": "ID компонента комбо, к которому относится данная позиция.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
}
}
}
},
"required": [
"id",
"modifications",
"price",
"quantity",
"promos"
]
}
},
"persons": {
"type": "integer",
"description": "Количество персон, на которых оформлен заказ. Может влиять на количество комплектов приборов",
"example": 2
},
"comment": {
"type": "string",
"description": "Дополнительная информация о заказе",
"example": "Дополнительная информация о заказе: ..."
},
"promos": {
"type": "array",
"description": "Список акций, действующих на весь заказ. Если у заказа объект \"promos\" не пустой, значит на него действует акция в системе партнера. Если пустой – это означает, что на заказ не действуют никакие акции",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Тип акции. Может быть подарок \"GIFT\", процентная скидка \"PERCENTAGE\", софинансируемая скидка \"COFINANCE\", фиксированная скидка \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE",
"FIXED"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Сумма скидки в валюте, оплачиваемая партнёром"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая партнером"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Часть суммы скидки в валюте, оплачиваемая Яндекс.Едой"
}
},
"required": [
"type",
"discount"
],
"type": "object"
}
}
},
"required": [
"discriminator",
"comment",
"deliveryInfo",
"eatsId",
"restaurantId",
"items",
"paymentInfo",
"promos"
]
},
"PickupOrderDeliveryInfo": {
"properties": {
"clientName": {
"type": "string",
"description": "Имя клиента в сервисе Яндекс Еда",
"example": "Иванов Иван Иванович"
},
"phoneNumber": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Может содержать добавочный номер: \"+<код страны><номер> доб. <добавочный номер>\".",
"example": "+79031111111 доб. 4432"
},
"additionalPhoneNumbers": {
"description": "Список дополнительных номеров для связи с клиентом.",
"type": "array",
"items": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Может содержать добавочный номер: \"+<код страны><номер> доб. <добавочный номер>\".",
"example": "+79031111111 доб. 4432"
}
},
"clientArrivementDate": {
"type": "string",
"description": "Дата, когда придет клиент в ресторан, в формате RFC3339 с дробной частью секунд (Y-m-d\\TH:i:s.uP)",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
}
},
"required": [
"clientName",
"phoneNumber",
"clientArrivementDate"
]
},
"PickupOrderPaymentInfo": {
"properties": {
"paymentType": {
"type": "string",
"description": "Информация о типе оплаты",
"enum": [
"CARD",
"CASH"
]
},
"itemsCost": {
"type": "number",
"format": "double",
"example": 100,
"description": "Полная стоимость блюд в заказе, обычна равна сумме стоимости блюд, которые передает партнер в меню. Если в заказе есть скидка на корзину, то она учитывается и вычитается в этом поле."
},
"total": {
"type": "number",
"format": "double",
"example": 200,
"description": "Общая стоимость заказа"
},
"change": {
"type": "number",
"format": "double",
"example": 500,
"description": "Сумма, с которой потребуется сдача."
}
},
"required": [
"change",
"itemsCost",
"paymentType"
]
},
"ErrorItem": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
},
"ErrorList": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "Согласованный с Яндекс.Еда числовой код ошибки",
"example": 100
},
"description": {
"type": "string",
"description": "Сообщение об ошибке",
"example": "Description of error"
}
}
}
},
"OrderStatus": {
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Статус заказа. Должен быть допустимым – например, приготовленный заказ\nнельзя снова сделать новым. Переход по статусам возможен только в\nуказанном направлении: от NEW до DELIVERED. Исключения: в статус\nCANCELLED заказ может перейти на любом этапе.\n\nОписание статусов:\n\n- NEW – новый, только отправлен в ресторан.\n- ACCEPTED_BY_RESTAURANT – заказ подтвержден рестораном.\n- COOKING – началось приготовление заказа.\n- READY – заказ приготовлен.\n- TAKEN_BY_COURIER – курьер забрал заказ из ресторана.\n- DELIVERED – заказ завершен.\n- CANCELLED – заказ отменён.\n\nNEW -> ACCEPTED_BY_RESTAURANT -> COOKING -> READY ->\nTAKEN_BY_COURIER -> DELIVERED. Из любого статуса -> CANCELLED\n",
"enum": [
"NEW",
"ACCEPTED_BY_RESTAURANT",
"COOKING",
"READY",
"TAKEN_BY_COURIER",
"DELIVERED",
"CANCELLED"
]
},
"comment": {
"maxLength": 500,
"type": "string",
"description": "Комментарий к смене статуса",
"example": "Новый заказ"
},
"updatedAt": {
"type": "string",
"description": "Дата, когда сменился статус заказа, в формате RFC3339 с дробной частью секунд (Y-m-d\\TH:i:s.uP)",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
}
},
"required": [
"status"
]
},
"OrderStatusPut": {
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Статус заказа.\nОписание статусов: TAKEN_BY_COURIER - курьер забрал заказ из ресторана. DELIVERED - заказ завершен. CANCELLED - заказ отменён.",
"enum": [
"CANCELLED",
"TAKEN_BY_COURIER",
"DELIVERED"
]
},
"attributes": {
"type": "array",
"description": "Дополнительные аттрибуты при изменении статуса заказа, например признак оплаты при отмене",
"items": {
"type": "string",
"example": "paid"
}
},
"comment": {
"maxLength": 500,
"type": "string",
"description": "Комментарий к смене статуса",
"example": "test"
},
"reason": {
"type": "string",
"description": "Причина отмены заказа. Передается только со статусом CANCELLED",
"example": "place.unable_to_call"
},
"updatedAt": {
"type": "string",
"description": "Дата, когда сменился статус заказа, в формате RFC3339 с дробной частью секунд (Y-m-d\\TH:i:s.uP)",
"example": "1937-01-01T12:00:27.870000+00:20"
}
},
"required": [
"status"
]
},
"OrderCancellation": {
"type": "object",
"properties": {
"eatsId": {
"type": "string",
"description": "Сквозной идентификатор заказа на стороне Яндекс Еды в формате DDDDDD-DDDDDDDD",
"example": "190330-12345678"
},
"comment": {
"type": "string",
"description": "Описание причин отмены (может быть пустым)",
"example": "Отказ клиента"
}
},
"required": [
"eatsId"
]
},
"AuthorizationRequiredResponse": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Причина, по которой не прошла авторизация",
"example": "Access token has been expired. You should request a new one"
}
},
"required": [
"reason"
]
},
"PushAuthorizationRequiredResponse": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Причина, по которой не прошла авторизация",
"example": "invalid-token"
},
"message": {
"type": "string",
"description": "Текстовое описании причины, по которой не прошла авторизация",
"example": "Bad token"
}
}
},
"UnavailableGoodsResponse": {
"type": "object",
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"example": "unavailable_goods"
},
"message": {
"type": "string",
"example": "На данный момент товар недоступен для заказа: Омлет с крем-чизом и авокадо"
},
"goods": {
"type": "object",
"description": "Словарь, где ключи – строковые идентификаторы блюд, значения – имена бюлюд",
"example": "{\"10000000003998\": \"Омлет с крем-чизом и авокадо\"}"
}
}
},
"OrderFeedback": {
"type": "object",
"properties": {
"feedback": {
"type": "object",
"description": "Информация об отзыве клиента",
"properties": {
"id": {
"type": "string",
"description": "Идентификатор отзыва на стороне Яндекс.Еды"
},
"createdAt": {
"type": "string",
"description": "Дата создания отзыва в формате RFC3339 с дробной частью секунд (Y-m-d\\TH:i:s.uP)",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
},
"eatsId": {
"type": "string",
"description": "Сквозной идентификатор заказа на стороне Яндекс.Еды в формате DDDDDD-DDDDDDDD",
"example": "190330-12345678"
},
"orderId": {
"type": "string",
"description": "Идентификатор заказа в системе партнера"
},
"predefinedComment": {
"type": "string",
"description": "Предопредленные комметарии на стороне Яндекс.Еды, выбранные клиентом"
},
"comment": {
"type": "string",
"description": "Текстовый отзыв клиента по заказу"
},
"restaurantId": {
"type": "string",
"description": "Идентификатор ресторана в системе партнера"
},
"rating": {
"type": "integer",
"description": "Оценка клиента по заказу от 1 до 5",
"example": 5
},
"takenAt": {
"type": "string",
"description": "Дата, когда курьер забрал заказ из ресторана, в формате ISO 8601 без дробной части секунд (Y-m-d\\TH:i:s+hh:ss)",
"format": "date-time",
"example": "1937-01-01T12:00:27+00:20"
},
"deliveredAt": {
"type": "string",
"description": "Дата, когда заказ был доставлен в формате ISO 8601 без дробной части секунд (Y-m-d\\TH:i:s+hh:ss)",
"format": "date-time",
"example": "1937-01-01T12:00:27+00:20"
}
},
"required": [
"uuid",
"createdAt",
"eatsId",
"orderId",
"restaurantId",
"rating",
"deliveredAt",
"orderInfo"
]
},
"orderInfo": {
"type": "object",
"description": "Информация о заказе",
"properties": {
"createdAt": {
"type": "string",
"description": "Дата создания отзыва в формате RFC3339 с дробной частью секунд (Y-m-d\\TH:i:s.uP)",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
},
"platform": {
"type": "string",
"description": "Идентификатор платформы. YE - Yandex Eda, DC - Delivery club",
"enum": [
"YE",
"DC"
]
},
"discriminator": {
"type": "string",
"description": "Тип доставки заказа:\n\nyandex - доставка курьерами Яндекс Еда\nmarketplace - доставка курьерами ресторана\npickup - самовывоз клиентом из ресторана\n",
"enum": [
"marketplace",
"yandex",
"pickup"
],
"example": "marketplace"
},
"deliveryInfo": {
"description": "Информация о доставке",
"properties": {
"clientName": {
"type": "string",
"description": "Имя клиента в сервисе Яндекс Еда",
"example": "Иванов Иван Иванович"
}
},
"required": [
"clientName"
]
},
"paymentInfo": {
"properties": {
"total": {
"type": "number",
"format": "double",
"example": 200.99,
"description": "Общая стоимость заказа"
}
},
"required": [
"total"
]
},
"items": {
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID позиции меню в системе партнера",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Наименование позиции меню",
"example": "Пицца Пепперони"
},
"quantity": {
"type": "number",
"format": "float",
"description": "Количество позиции в заказе",
"example": 3.5
},
"price": {
"type": "number",
"format": "double",
"description": "Стоимость одной позиции вместе со стоимостью модификаций. В следующей версии будет исправлено на чистую цену позиции без модификаций",
"example": 100
},
"modifications": {
"description": "Список выбранных модификаций. Может быть пустым, передаётся\nявно для каждой отдельной позиции в заказе. При заказе двух позиций\nодного и того же блюда с разным набором модификаций передаются разные\nпозиции с разными списками `modifications`.\n",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID модификатора в системе партнера",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Наименование модификатора",
"example": "Европейские приборы"
},
"quantity": {
"type": "integer",
"description": "Количество в заказе",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Цена модификатора для пункта меню (например - дополнительный соус)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
},
"type": "array"
}
},
"required": [
"id",
"modifications",
"price",
"quantity"
]
},
"type": "array"
},
"comment": {
"type": "string",
"description": "Дополнительная информация о заказе",
"example": "Дополнительная информация о заказе: ..."
}
},
"required": [
"createdAt",
"discriminator",
"comment",
"marketplaceOrderDelivery",
"eatsId",
"items",
"deliveryInfo",
"paymentInfo",
"marketplaceOrderPayment"
]
}
},
"required": [
"feedback"
]
},
"Feedback": {
"type": "object",
"description": "Информация об отзыве клиента",
"properties": {
"id": {
"type": "string",
"description": "Идентификатор отзыва на стороне Яндекс.Еды"
},
"createdAt": {
"type": "string",
"description": "Дата создания отзыва в формате RFC3339 с дробной частью секунд (Y-m-d\\TH:i:s.uP)",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
},
"eatsId": {
"type": "string",
"description": "Сквозной идентификатор заказа на стороне Яндекс.Еды в формате DDDDDD-DDDDDDDD",
"example": "190330-12345678"
},
"orderId": {
"type": "string",
"description": "Идентификатор заказа в системе партнера"
},
"predefinedComment": {
"type": "string",
"description": "Предопредленные комметарии на стороне Яндекс.Еды, выбранные клиентом"
},
"comment": {
"type": "string",
"description": "Текстовый отзыв клиента по заказу"
},
"restaurantId": {
"type": "string",
"description": "Идентификатор ресторана в системе партнера"
},
"rating": {
"type": "integer",
"description": "Оценка клиента по заказу от 1 до 5",
"example": 5
},
"takenAt": {
"type": "string",
"description": "Дата, когда курьер забрал заказ из ресторана, в формате ISO 8601 без дробной части секунд (Y-m-d\\TH:i:s+hh:ss)",
"format": "date-time",
"example": "1937-01-01T12:00:27+00:20"
},
"deliveredAt": {
"type": "string",
"description": "Дата, когда заказ был доставлен в формате ISO 8601 без дробной части секунд (Y-m-d\\TH:i:s+hh:ss)",
"format": "date-time",
"example": "1937-01-01T12:00:27+00:20"
}
},
"required": [
"uuid",
"createdAt",
"eatsId",
"orderId",
"restaurantId",
"rating",
"deliveredAt",
"orderInfo"
]
},
"OrderInfo": {
"type": "object",
"description": "Информация о заказе",
"properties": {
"createdAt": {
"type": "string",
"description": "Дата создания отзыва в формате RFC3339 с дробной частью секунд (Y-m-d\\TH:i:s.uP)",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
},
"platform": {
"type": "string",
"description": "Идентификатор платформы. YE - Yandex Eda, DC - Delivery club",
"enum": [
"YE",
"DC"
]
},
"discriminator": {
"type": "string",
"description": "Тип доставки заказа:\n\nyandex - доставка курьерами Яндекс Еда\nmarketplace - доставка курьерами ресторана\npickup - самовывоз клиентом из ресторана\n",
"enum": [
"marketplace",
"yandex",
"pickup"
],
"example": "marketplace"
},
"deliveryInfo": {
"description": "Информация о доставке",
"properties": {
"clientName": {
"type": "string",
"description": "Имя клиента в сервисе Яндекс Еда",
"example": "Иванов Иван Иванович"
}
},
"required": [
"clientName"
]
},
"paymentInfo": {
"properties": {
"total": {
"type": "number",
"format": "double",
"example": 200.99,
"description": "Общая стоимость заказа"
}
},
"required": [
"total"
]
},
"items": {
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID позиции меню в системе партнера",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Наименование позиции меню",
"example": "Пицца Пепперони"
},
"quantity": {
"type": "number",
"format": "float",
"description": "Количество позиции в заказе",
"example": 3.5
},
"price": {
"type": "number",
"format": "double",
"description": "Стоимость одной позиции вместе со стоимостью модификаций. В следующей версии будет исправлено на чистую цену позиции без модификаций",
"example": 100
},
"modifications": {
"description": "Список выбранных модификаций. Может быть пустым, передаётся\nявно для каждой отдельной позиции в заказе. При заказе двух позиций\nодного и того же блюда с разным набором модификаций передаются разные\nпозиции с разными списками `modifications`.\n",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID модификатора в системе партнера",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Наименование модификатора",
"example": "Европейские приборы"
},
"quantity": {
"type": "integer",
"description": "Количество в заказе",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Цена модификатора для пункта меню (например - дополнительный соус)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
},
"type": "array"
}
},
"required": [
"id",
"modifications",
"price",
"quantity"
]
},
"type": "array"
},
"comment": {
"type": "string",
"description": "Дополнительная информация о заказе",
"example": "Дополнительная информация о заказе: ..."
}
},
"required": [
"createdAt",
"discriminator",
"comment",
"marketplaceOrderDelivery",
"eatsId",
"items",
"deliveryInfo",
"paymentInfo",
"marketplaceOrderPayment"
]
},
"DeliveryInfo": {
"properties": {
"clientName": {
"type": "string",
"description": "Имя клиента в сервисе Яндекс Еда",
"example": "Иванов Иван Иванович"
}
},
"required": [
"clientName"
]
},
"PaymentInfo": {
"properties": {
"total": {
"type": "number",
"format": "double",
"example": 200.99,
"description": "Общая стоимость заказа"
}
},
"required": [
"total"
]
},
"OrderInfoItem": {
"properties": {
"id": {
"type": "string",
"description": "ID позиции меню в системе партнера",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Наименование позиции меню",
"example": "Пицца Пепперони"
},
"quantity": {
"type": "number",
"format": "float",
"description": "Количество позиции в заказе",
"example": 3.5
},
"price": {
"type": "number",
"format": "double",
"description": "Стоимость одной позиции вместе со стоимостью модификаций. В следующей версии будет исправлено на чистую цену позиции без модификаций",
"example": 100
},
"modifications": {
"description": "Список выбранных модификаций. Может быть пустым, передаётся\nявно для каждой отдельной позиции в заказе. При заказе двух позиций\nодного и того же блюда с разным набором модификаций передаются разные\nпозиции с разными списками `modifications`.\n",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID модификатора в системе партнера",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Наименование модификатора",
"example": "Европейские приборы"
},
"quantity": {
"type": "integer",
"description": "Количество в заказе",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Цена модификатора для пункта меню (например - дополнительный соус)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
},
"type": "array"
}
},
"required": [
"id",
"modifications",
"price",
"quantity"
]
},
"ModificationsItem": {
"properties": {
"id": {
"type": "string",
"description": "ID модификатора в системе партнера",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Наименование модификатора",
"example": "Европейские приборы"
},
"quantity": {
"type": "integer",
"description": "Количество в заказе",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Цена модификатора для пункта меню (например - дополнительный соус)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
},
"Zone": {
"type": "object",
"description": "Зона доставки",
"required": [
"coordinates",
"meta",
"name"
],
"properties": {
"coordinates": {
"type": "array",
"description": "Набор координат полигона, должен содержать упорядоченный набор точек координат",
"minLength": 4,
"maxLength": 500,
"items": {
"type": "object",
"description": "Точка координат зоны",
"required": [
"lt",
"lg"
],
"properties": {
"lt": {
"type": "number",
"example": 56.473673
},
"lg": {
"type": "number",
"example": 35.918658
}
}
}
},
"meta": {
"type": "object",
"description": "Дополнительные данные зоны доставки",
"required": [
"zoneId",
"enabled",
"intervals",
"averageDeliveryTime",
"thresholds"
],
"properties": {
"zoneId": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "Идентификатор зоны доставки в системе партнера"
},
"enabled": {
"type": "boolean",
"description": "Флаг активности зоны доставки. При получении в ответе значения false зона станет неактивной."
},
"intervals": {
"type": "object",
"description": "Расписание работы зоны доставки",
"required": [
"mon",
"tue",
"wed",
"thu",
"fri",
"sat",
"sun"
],
"properties": {
"mon": {
"type": "array",
"description": "Часы работы на понедельник, оставьте пустой массив для нерабочих дней",
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"tue": {
"type": "array",
"description": "Часы работы на вторник, оставьте пустой массив для нерабочих дней",
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"wed": {
"type": "array",
"description": "Часы работы на среду, оставьте пустой массив для нерабочих дней",
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"thu": {
"type": "array",
"description": "Часы работы на четверг, оставьте пустой массив для нерабочих дней",
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"fri": {
"type": "array",
"description": "Часы работы на пятницу, оставьте пустой массив для нерабочих дней",
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"sat": {
"type": "array",
"description": "Часы работы на субботу, оставьте пустой массив для нерабочих дней",
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"sun": {
"type": "array",
"description": "Часы работы на воскресенье, оставьте пустой массив для нерабочих дней",
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
}
}
},
"averageDeliveryTime": {
"type": "number",
"description": "Среднее время ожидания доставки"
},
"thresholds": {
"description": "Условия доставки",
"minLength": 1,
"maxLength": 10,
"type": "array",
"items": {
"type": "object",
"description": "Условия доставки",
"required": [
"orderCost",
"deliveryCost"
],
"properties": {
"orderCost": {
"type": "object",
"description": "Минимальная сумма заказа для доставки",
"allOf": [
{
"type": "object",
"description": "Представление суммы денег",
"required": [
"currency",
"value"
],
"properties": {
"currency": {
"type": "string",
"description": "Трехбуквенное обозначение валюты ISO 4217",
"minLength": 3,
"maxLength": 3,
"example": "RUB"
},
"value": {
"type": "number",
"description": "Значение в указанной валюте",
"minimum": 0,
"example": 0
}
}
}
]
},
"deliveryCost": {
"type": "object",
"description": "Стоимость доставки. Укажите 0 для бесплатной доставки",
"allOf": [
{
"type": "object",
"description": "Представление суммы денег",
"required": [
"currency",
"value"
],
"properties": {
"currency": {
"type": "string",
"description": "Трехбуквенное обозначение валюты ISO 4217",
"minLength": 3,
"maxLength": 3,
"example": "RUB"
},
"value": {
"type": "number",
"description": "Значение в указанной валюте",
"minimum": 0,
"example": 0
}
}
}
]
}
}
}
},
"courierType": {
"type": "string",
"description": "Тип курьера",
"enum": [
"pedestrian",
"bicycle",
"vehicle",
"motorcycle"
]
}
}
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "Название зоны доставки"
}
}
},
"ZoneMeta": {
"type": "object",
"description": "Дополнительные данные зоны доставки",
"required": [
"zoneId",
"enabled",
"intervals",
"averageDeliveryTime",
"thresholds"
],
"properties": {
"zoneId": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "Идентификатор зоны доставки в системе партнера"
},
"enabled": {
"type": "boolean",
"description": "Флаг активности зоны доставки. При получении в ответе значения false зона станет неактивной."
},
"intervals": {
"type": "object",
"description": "Расписание работы зоны доставки",
"required": [
"mon",
"tue",
"wed",
"thu",
"fri",
"sat",
"sun"
],
"properties": {
"mon": {
"type": "array",
"description": "Часы работы на понедельник, оставьте пустой массив для нерабочих дней",
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"tue": {
"type": "array",
"description": "Часы работы на вторник, оставьте пустой массив для нерабочих дней",
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"wed": {
"type": "array",
"description": "Часы работы на среду, оставьте пустой массив для нерабочих дней",
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"thu": {
"type": "array",
"description": "Часы работы на четверг, оставьте пустой массив для нерабочих дней",
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"fri": {
"type": "array",
"description": "Часы работы на пятницу, оставьте пустой массив для нерабочих дней",
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"sat": {
"type": "array",
"description": "Часы работы на субботу, оставьте пустой массив для нерабочих дней",
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"sun": {
"type": "array",
"description": "Часы работы на воскресенье, оставьте пустой массив для нерабочих дней",
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
}
}
},
"averageDeliveryTime": {
"type": "number",
"description": "Среднее время ожидания доставки"
},
"thresholds": {
"description": "Условия доставки",
"minLength": 1,
"maxLength": 10,
"type": "array",
"items": {
"type": "object",
"description": "Условия доставки",
"required": [
"orderCost",
"deliveryCost"
],
"properties": {
"orderCost": {
"type": "object",
"description": "Минимальная сумма заказа для доставки",
"allOf": [
{
"type": "object",
"description": "Представление суммы денег",
"required": [
"currency",
"value"
],
"properties": {
"currency": {
"type": "string",
"description": "Трехбуквенное обозначение валюты ISO 4217",
"minLength": 3,
"maxLength": 3,
"example": "RUB"
},
"value": {
"type": "number",
"description": "Значение в указанной валюте",
"minimum": 0,
"example": 0
}
}
}
]
},
"deliveryCost": {
"type": "object",
"description": "Стоимость доставки. Укажите 0 для бесплатной доставки",
"allOf": [
{
"type": "object",
"description": "Представление суммы денег",
"required": [
"currency",
"value"
],
"properties": {
"currency": {
"type": "string",
"description": "Трехбуквенное обозначение валюты ISO 4217",
"minLength": 3,
"maxLength": 3,
"example": "RUB"
},
"value": {
"type": "number",
"description": "Значение в указанной валюте",
"minimum": 0,
"example": 0
}
}
}
]
}
}
}
},
"courierType": {
"type": "string",
"description": "Тип курьера",
"enum": [
"pedestrian",
"bicycle",
"vehicle",
"motorcycle"
]
}
}
},
"Intervals": {
"type": "object",
"description": "Расписание работы зоны доставки",
"required": [
"mon",
"tue",
"wed",
"thu",
"fri",
"sat",
"sun"
],
"properties": {
"mon": {
"type": "array",
"description": "Часы работы на понедельник, оставьте пустой массив для нерабочих дней",
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"tue": {
"type": "array",
"description": "Часы работы на вторник, оставьте пустой массив для нерабочих дней",
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"wed": {
"type": "array",
"description": "Часы работы на среду, оставьте пустой массив для нерабочих дней",
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"thu": {
"type": "array",
"description": "Часы работы на четверг, оставьте пустой массив для нерабочих дней",
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"fri": {
"type": "array",
"description": "Часы работы на пятницу, оставьте пустой массив для нерабочих дней",
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"sat": {
"type": "array",
"description": "Часы работы на субботу, оставьте пустой массив для нерабочих дней",
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"sun": {
"type": "array",
"description": "Часы работы на воскресенье, оставьте пустой массив для нерабочих дней",
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
}
}
},
"Interval": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
},
"Threshold": {
"type": "object",
"description": "Условия доставки",
"required": [
"orderCost",
"deliveryCost"
],
"properties": {
"orderCost": {
"type": "object",
"description": "Минимальная сумма заказа для доставки",
"allOf": [
{
"type": "object",
"description": "Представление суммы денег",
"required": [
"currency",
"value"
],
"properties": {
"currency": {
"type": "string",
"description": "Трехбуквенное обозначение валюты ISO 4217",
"minLength": 3,
"maxLength": 3,
"example": "RUB"
},
"value": {
"type": "number",
"description": "Значение в указанной валюте",
"minimum": 0,
"example": 0
}
}
}
]
},
"deliveryCost": {
"type": "object",
"description": "Стоимость доставки. Укажите 0 для бесплатной доставки",
"allOf": [
{
"type": "object",
"description": "Представление суммы денег",
"required": [
"currency",
"value"
],
"properties": {
"currency": {
"type": "string",
"description": "Трехбуквенное обозначение валюты ISO 4217",
"minLength": 3,
"maxLength": 3,
"example": "RUB"
},
"value": {
"type": "number",
"description": "Значение в указанной валюте",
"minimum": 0,
"example": 0
}
}
}
]
}
}
},
"Point": {
"type": "object",
"description": "Точка координат зоны",
"required": [
"lt",
"lg"
],
"properties": {
"lt": {
"type": "number",
"example": 56.473673
},
"lg": {
"type": "number",
"example": 35.918658
}
}
},
"Money": {
"type": "object",
"description": "Представление суммы денег",
"required": [
"currency",
"value"
],
"properties": {
"currency": {
"type": "string",
"description": "Трехбуквенное обозначение валюты ISO 4217",
"minLength": 3,
"maxLength": 3,
"example": "RUB"
},
"value": {
"type": "number",
"description": "Значение в указанной валюте",
"minimum": 0,
"example": 0
}
}
},
"PlaceSchedule": {
"type": "object",
"description": "Расписание работы торговой точки партнера по дням недели",
"required": [
"mon",
"tue",
"wed",
"thu",
"fri",
"sat",
"sun"
],
"properties": {
"mon": {
"type": "array",
"description": "Часы работы на понедельник, оставьте пустой массив для нерабочих дней",
"minLength": 0,
"maxLength": 10,
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"tue": {
"type": "array",
"description": "Часы работы на вторник, оставьте пустой массив для нерабочих дней",
"minLength": 0,
"maxLength": 10,
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"wed": {
"type": "array",
"description": "Часы работы на среду, оставьте пустой массив для нерабочих дней",
"minLength": 0,
"maxLength": 10,
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"thu": {
"type": "array",
"description": "Часы работы на четверг, оставьте пустой массив для нерабочих дней",
"minLength": 0,
"maxLength": 10,
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"fri": {
"type": "array",
"description": "Часы работы на пятницу, оставьте пустой массив для нерабочих дней",
"minLength": 0,
"maxLength": 10,
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"sat": {
"type": "array",
"description": "Часы работы на субботу, оставьте пустой массив для нерабочих дней",
"minLength": 0,
"maxLength": 10,
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
},
"sun": {
"type": "array",
"description": "Часы работы на воскресенье, оставьте пустой массив для нерабочих дней",
"minLength": 0,
"maxLength": 10,
"items": {
"type": "object",
"description": "Интервал часов работы. Укажите 00:00-24:00 для круглосуточных зон. Часы работы указываются согласно локальной таймзоне ресторана.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время начала периода в формате HH:MM",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Время окончания периода в формате HH:MM",
"example": "24:00"
}
}
}
}
}
},
"CourierInfo": {
"type": "object",
"required": [
"courier",
"order",
"location"
],
"properties": {
"courier": {
"required": [
"name",
"type"
],
"properties": {
"name": {
"type": "string",
"description": "Имя курьера",
"example": "Василий"
},
"type": {
"description": "Тип курьера:\n* pedestrian - пешеход.\n* bicycle - велосипед.\n* vehicle - транспортное средство.\n* motorcycle - мотоцикл.\n* electric_bicycle - электрический велосипед.\n* rover - ровер (робот-доставщик).",
"enum": [
"pedestrian",
"bicycle",
"vehicle",
"motorcycle",
"electric_bicycle",
"rover"
],
"type": "string",
"default": "pedestrian"
},
"phone": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Может содержать добавочный номер: \"+<код страны><номер> доб. <добавочный номер>\".",
"example": "+79031111111 доб. 4432"
},
"status": {
"description": "Статус курьера\n* accepted - принял заказ.\n* arrived_to_source - прибыл на место.",
"enum": [
"accepted",
"arrived_to_source"
],
"type": "string",
"default": "accepted"
}
}
},
"order": {
"required": [
"orderNr"
],
"properties": {
"orderNr": {
"type": "string",
"description": "Сквозной идентификатор заказа на стороне Яндекс.Еды в формате DDDDDD-DDDDDDDD",
"example": "190330-12345678"
}
}
},
"location": {
"type": "object",
"required": [
"latitude",
"longitude"
],
"properties": {
"latitude": {
"type": "string",
"example": "55.68195863024231"
},
"longitude": {
"type": "string",
"example": "37.58948777728022"
}
}
},
"maxPlaceArrivalTime": {
"type": "string",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20",
"description": "Рассчетное время прибытия курьера в ресторан\n в формате RFC3339 с дробной частью секунд (Y-m-d\\TH:i:s.uP)"
}
}
},
"CourierInfoLocation": {
"type": "object",
"required": [
"latitude",
"longitude"
],
"properties": {
"latitude": {
"type": "string",
"example": "55.68195863024231"
},
"longitude": {
"type": "string",
"example": "37.58948777728022"
}
}
},
"CourierInfoOrder": {
"required": [
"orderNr"
],
"properties": {
"orderNr": {
"type": "string",
"description": "Сквозной идентификатор заказа на стороне Яндекс.Еды в формате DDDDDD-DDDDDDDD",
"example": "190330-12345678"
}
}
},
"CourierInfoCourier": {
"required": [
"name",
"type"
],
"properties": {
"name": {
"type": "string",
"description": "Имя курьера",
"example": "Василий"
},
"type": {
"description": "Тип курьера:\n* pedestrian - пешеход.\n* bicycle - велосипед.\n* vehicle - транспортное средство.\n* motorcycle - мотоцикл.\n* electric_bicycle - электрический велосипед.\n* rover - ровер (робот-доставщик).",
"enum": [
"pedestrian",
"bicycle",
"vehicle",
"motorcycle",
"electric_bicycle",
"rover"
],
"type": "string",
"default": "pedestrian"
},
"phone": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Может содержать добавочный номер: \"+<код страны><номер> доб. <добавочный номер>\".",
"example": "+79031111111 доб. 4432"
},
"status": {
"description": "Статус курьера\n* accepted - принял заказ.\n* arrived_to_source - прибыл на место.",
"enum": [
"accepted",
"arrived_to_source"
],
"type": "string",
"default": "accepted"
}
}
},
"PartnerFeedbackRequest": {
"type": "object",
"required": [
"feedback_id",
"text"
],
"properties": {
"feedback_id": {
"type": "string",
"description": "id отзыва, на который надо ответить",
"example": 1234567
},
"text": {
"type": "string",
"description": "Текст ответа партнёра на отзыв"
},
"order_nr": {
"type": "string",
"description": "Номер заказа на стороне Яндекс.Еды в формате DDDDDD-DDDDDDDD"
},
"promo": {
"type": "integer",
"enum": [
10,
15,
20,
30,
40
],
"description": "Промокод со скидкой в процентах"
}
}
},
"AuthBody": {
"description": "Описания параметров авторизации",
"type": "object",
"additionalProperties": false,
"required": [
"client_id",
"client_secret"
],
"properties": {
"client_id": {
"description": "Идентификатор клиента",
"type": "string"
},
"client_secret": {
"description": "Секретный ключ",
"type": "string"
}
}
},
"AuthResponse": {
"description": "Ответ при авторизации",
"type": "object",
"additionalProperties": false,
"required": [
"access_token",
"expires_in"
],
"properties": {
"access_token": {
"description": "Токен",
"type": "string",
"example": "bqehYcfk7Tb2zKRkxQ-IaK9nHyntdYnlpJ7kwTNX3B6mIKPws"
},
"expires_in": {
"description": "Время токена",
"type": "integer",
"example": 120
},
"scope": {
"type": "string",
"example": "vendor_management"
},
"token_type": {
"description": "Тип токена",
"type": "string",
"example": "bearer"
}
}
},
"Blocks": {
"type": "object",
"properties": {
"vendorInfo": {
"type": "array",
"items": {
"type": "object",
"properties": {
"vendorId": {
"type": "string",
"description": "Id ресторана в системе партнера",
"example": "819711"
},
"deliveryType": {
"type": "string",
"description": "Тип доставки",
"enum": [
"ddc",
"marketplace"
],
"example": "ddc"
}
}
}
},
"from": {
"type": "string",
"description": "Дата и время начала блокировки",
"example": "2016-05-12T23:54:32+0100"
},
"to": {
"type": "string",
"description": "Дата и время окончания блокировки (если не указано, то блокируется навсегда)",
"example": "2016-05-12T23:54:32+0100",
"nullable": true
},
"message": {
"type": "string",
"description": "Причина блокировки",
"maxLength": 4096,
"nullable": true
},
"tag": {
"type": "string",
"description": "Тег блокировки",
"enum": [
"technical_problem",
"too_busy"
]
}
},
"required": [
"vendorInfo",
"from",
"tag"
]
},
"Unblocks": {
"type": "object",
"properties": {
"vendorInfo": {
"type": "array",
"items": {
"type": "object",
"properties": {
"vendorId": {
"type": "string",
"description": "Id ресторана в системе партнера",
"example": "819711"
},
"deliveryType": {
"type": "string",
"description": "Тип доставки",
"enum": [
"ddc",
"marketplace"
],
"example": "ddc"
}
}
}
},
"blockIds": {
"type": "array",
"description": "Список id блокировок",
"items": {
"type": "string"
}
}
},
"required": [
"vendorInfo",
"blockIds"
]
},
"BlockStatus": {
"type": "object",
"properties": {
"vendorInfo": {
"type": "array",
"items": {
"type": "object",
"properties": {
"vendorId": {
"type": "string",
"description": "Id ресторана в системе партнера",
"example": "819711"
},
"deliveryType": {
"type": "string",
"description": "Тип доставки",
"enum": [
"ddc",
"marketplace"
],
"example": "ddc"
}
}
}
},
"statuses": {
"type": "array",
"items": {
"type": "string",
"enum": [
"enabled"
]
}
},
"limit": {
"type": "integer",
"description": "Лимит выдачи",
"default": 100,
"example": 100
},
"offset": {
"type": "integer",
"description": "Смещение выдачи",
"example": 0,
"default": 0
}
},
"required": [
"vendorInfo"
]
},
"EffectStatuses": {
"type": "array",
"items": {
"type": "string",
"enum": [
"enabled"
]
}
},
"V2BlockStatusResponse": {
"type": "object",
"additionalProperties": false,
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"description": "Массив вендоров",
"items": {
"type": "object",
"additionalProperties": false,
"description": "Объект вендора",
"required": [
"vendorId",
"blockId",
"deliveryType",
"from"
],
"properties": {
"vendorId": {
"type": "string",
"description": "Идентификатор вендора",
"example": "17205"
},
"blockId": {
"type": "string",
"description": "Идентификатор блокировки в сервисе"
},
"externalBlockId": {
"type": "string",
"description": "Идентификатор блокировки у партнера"
},
"deliveryType": {
"type": "string",
"enum": [
"ddc",
"marketplace"
],
"description": "Идентификатор блокировки"
},
"availableToCancel": {
"type": "boolean",
"description": "Возможность разблокировки"
},
"status": {
"type": "string",
"enum": [
"enabled",
"disabled"
],
"description": "Статус блокировки"
},
"from": {
"type": "string",
"description": "Дата и время начала блокировки",
"example": "2016-05-12T23:54:32+0100"
},
"to": {
"type": "string",
"description": "Дата и время окончания блокировки",
"example": "2016-05-12T23:54:32+0100"
},
"source": {
"type": "string",
"description": "Источник блокировки (имя партнера или delivery club)",
"example": "delivery club"
},
"message": {
"type": "string",
"description": "Комментарий к блокировке (полученный от партнера) или описание блокировки от сервиса"
}
}
}
}
}
},
"VendorObject": {
"type": "object",
"additionalProperties": false,
"description": "Объект вендора",
"required": [
"vendorId",
"blockId",
"deliveryType",
"from"
],
"properties": {
"vendorId": {
"type": "string",
"description": "Идентификатор вендора",
"example": "17205"
},
"blockId": {
"type": "string",
"description": "Идентификатор блокировки в сервисе"
},
"externalBlockId": {
"type": "string",
"description": "Идентификатор блокировки у партнера"
},
"deliveryType": {
"type": "string",
"enum": [
"ddc",
"marketplace"
],
"description": "Идентификатор блокировки"
},
"availableToCancel": {
"type": "boolean",
"description": "Возможность разблокировки"
},
"status": {
"type": "string",
"enum": [
"enabled",
"disabled"
],
"description": "Статус блокировки"
},
"from": {
"type": "string",
"description": "Дата и время начала блокировки",
"example": "2016-05-12T23:54:32+0100"
},
"to": {
"type": "string",
"description": "Дата и время окончания блокировки",
"example": "2016-05-12T23:54:32+0100"
},
"source": {
"type": "string",
"description": "Источник блокировки (имя партнера или delivery club)",
"example": "delivery club"
},
"message": {
"type": "string",
"description": "Комментарий к блокировке (полученный от партнера) или описание блокировки от сервиса"
}
}
},
"VendorInfo": {
"type": "array",
"items": {
"type": "object",
"properties": {
"vendorId": {
"type": "string",
"description": "Id ресторана в системе партнера",
"example": "819711"
},
"deliveryType": {
"type": "string",
"description": "Тип доставки",
"enum": [
"ddc",
"marketplace"
],
"example": "ddc"
}
}
}
},
"Vendor": {
"type": "object",
"properties": {
"vendorId": {
"type": "string",
"description": "Id ресторана в системе партнера",
"example": "819711"
},
"deliveryType": {
"type": "string",
"description": "Тип доставки",
"enum": [
"ddc",
"marketplace"
],
"example": "ddc"
}
}
},
"MenuImportInitiation": {
"type": "object",
"additionalProperties": false,
"properties": {
"restaurantId": {
"type": "string",
"maxLength": 512,
"description": "Идентификатор ресторана в системе партнера"
},
"operationType": {
"type": "string",
"enum": [
"menu",
"menu_stop_list"
],
"default": "menu",
"description": "menu - парсинг меню, menu_stop_list - парсинг стоп-листа\n"
}
},
"required": [
"restaurantId"
]
},
"OperationType": {
"type": "string",
"enum": [
"menu",
"menu_stop_list"
],
"default": "menu",
"description": "menu - парсинг меню, menu_stop_list - парсинг стоп-листа\n"
},
"ValidateCodeRequest": {
"type": "object",
"additionalProperties": false,
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "Код, который необходимо провалидировать"
}
}
},
"ValidateCodeResponse": {
"type": "object",
"additionalProperties": false,
"required": [
"is_valid"
],
"properties": {
"is_valid": {
"type": "boolean",
"description": "Результат валидации."
}
}
},
"Error": {
"description": "Описание ошибки",
"type": "object",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Сообщение об ошибке",
"type": "string"
},
"code": {
"description": "Код ошибки",
"type": "integer"
}
}
},
"V1GetOrdersDetailsRequest": {
"type": "object",
"additionalProperties": false,
"required": [
"eats_ids"
],
"properties": {
"eats_ids": {
"type": "array",
"description": "Список номеров заказов для поиска",
"minItems": 1,
"maxItems": 100,
"items": {
"type": "string",
"minLength": 13,
"description": "Номер заказа в системе Яндекс.Еда",
"example": "230328-354380"
}
}
}
},
"V1GetOrdersDetailsResponse": {
"type": "object",
"additionalProperties": false,
"required": [
"orders",
"not_found_eats_ids"
],
"properties": {
"orders": {
"type": "array",
"description": "Список заказов с детальной информацией",
"items": {
"type": "object",
"description": "Заказ с детальной информацией",
"additionalProperties": false,
"required": [
"eats_id",
"order_id",
"status",
"items"
],
"properties": {
"eats_id": {
"type": "string",
"minLength": 13,
"description": "Номер заказа в системе Яндекс.Еда",
"example": "230328-354380"
},
"order_id": {
"type": "string",
"nullable": true,
"description": "Идентификатор заказа в системе партнера"
},
"status": {
"type": "string",
"description": "Статус заказа в системе Яндекс.Еды",
"nullable": true,
"enum": [
"NEW",
"CANCELLED",
"DELIVERED"
]
},
"items": {
"description": "Состав заказа",
"type": "array",
"items": {
"description": "Товар с опциями",
"type": "object",
"properties": {
"id": {
"description": "Идентификатор товара на стороне ресторана/магазина",
"type": "string"
},
"name": {
"description": "Название товара, например «Картошка»",
"type": "string"
},
"quantity": {
"description": "Количество товаров в рамках этой позиции",
"type": "number",
"example": 3.5
},
"price": {
"description": "Стоимость одной данной позиции вместе со стоимостью опций",
"type": "number",
"example": 123.78
},
"original_price": {
"description": "Стоимость одной данной позиции без учета стоимости опций",
"type": "number",
"example": 100.23
},
"weight": {
"description": "Конечный вес товара",
"type": "number"
},
"measure_unit": {
"description": "Единицы измерения веса, например GRM",
"type": "string"
},
"modifications": {
"description": "Опции товара",
"type": "array",
"items": {
"description": "Опция товара",
"type": "object",
"properties": {
"id": {
"description": "Идентификатор опции на стороне ресторана/магазина",
"type": "string"
},
"group_id": {
"description": "ID группы в системе партнера, к которой принадлежит опция",
"type": "string",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"description": "Название опции",
"type": "string"
},
"quantity": {
"description": "Количество опций в рамках этой позиции",
"type": "integer"
},
"price": {
"description": "Цена опции товара",
"type": "number",
"example": 10.5
}
},
"required": [
"id",
"price",
"quantity"
]
}
}
}
}
},
"items_cost": {
"description": "Стоимость заказа для партнера за вычетом стоимости доставки (с учетом партнерских скидок)",
"type": "number"
},
"cancel_reason": {
"type": "object",
"additionalProperties": false,
"required": [
"code"
],
"properties": {
"code": {
"description": "Код причины отмены заказа в Яндекс Еда",
"type": "string",
"example": "place.missing_dish"
},
"message": {
"description": "Текст причины отмены заказа",
"type": "string",
"example": "Заказ был отменён на стороне пользователя"
}
}
}
}
}
},
"not_found_eats_ids": {
"type": "array",
"description": "Список номеров заказов, по которым информация не найдена или недоступна",
"items": {
"type": "string",
"minLength": 13,
"description": "Номер заказа в системе Яндекс.Еда",
"example": "230328-354380"
}
}
}
},
"OrderDetails": {
"type": "object",
"description": "Заказ с детальной информацией",
"additionalProperties": false,
"required": [
"eats_id",
"order_id",
"status",
"items"
],
"properties": {
"eats_id": {
"type": "string",
"minLength": 13,
"description": "Номер заказа в системе Яндекс.Еда",
"example": "230328-354380"
},
"order_id": {
"type": "string",
"nullable": true,
"description": "Идентификатор заказа в системе партнера"
},
"status": {
"type": "string",
"description": "Статус заказа в системе Яндекс.Еды",
"nullable": true,
"enum": [
"NEW",
"CANCELLED",
"DELIVERED"
]
},
"items": {
"description": "Состав заказа",
"type": "array",
"items": {
"description": "Товар с опциями",
"type": "object",
"properties": {
"id": {
"description": "Идентификатор товара на стороне ресторана/магазина",
"type": "string"
},
"name": {
"description": "Название товара, например «Картошка»",
"type": "string"
},
"quantity": {
"description": "Количество товаров в рамках этой позиции",
"type": "number",
"example": 3.5
},
"price": {
"description": "Стоимость одной данной позиции вместе со стоимостью опций",
"type": "number",
"example": 123.78
},
"original_price": {
"description": "Стоимость одной данной позиции без учета стоимости опций",
"type": "number",
"example": 100.23
},
"weight": {
"description": "Конечный вес товара",
"type": "number"
},
"measure_unit": {
"description": "Единицы измерения веса, например GRM",
"type": "string"
},
"modifications": {
"description": "Опции товара",
"type": "array",
"items": {
"description": "Опция товара",
"type": "object",
"properties": {
"id": {
"description": "Идентификатор опции на стороне ресторана/магазина",
"type": "string"
},
"group_id": {
"description": "ID группы в системе партнера, к которой принадлежит опция",
"type": "string",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"description": "Название опции",
"type": "string"
},
"quantity": {
"description": "Количество опций в рамках этой позиции",
"type": "integer"
},
"price": {
"description": "Цена опции товара",
"type": "number",
"example": 10.5
}
},
"required": [
"id",
"price",
"quantity"
]
}
}
}
}
},
"items_cost": {
"description": "Стоимость заказа для партнера за вычетом стоимости доставки (с учетом партнерских скидок)",
"type": "number"
},
"cancel_reason": {
"type": "object",
"additionalProperties": false,
"required": [
"code"
],
"properties": {
"code": {
"description": "Код причины отмены заказа в Яндекс Еда",
"type": "string",
"example": "place.missing_dish"
},
"message": {
"description": "Текст причины отмены заказа",
"type": "string",
"example": "Заказ был отменён на стороне пользователя"
}
}
}
}
},
"OrderItem": {
"description": "Товар с опциями",
"type": "object",
"properties": {
"id": {
"description": "Идентификатор товара на стороне ресторана/магазина",
"type": "string"
},
"name": {
"description": "Название товара, например «Картошка»",
"type": "string"
},
"quantity": {
"description": "Количество товаров в рамках этой позиции",
"type": "number",
"example": 3.5
},
"price": {
"description": "Стоимость одной данной позиции вместе со стоимостью опций",
"type": "number",
"example": 123.78
},
"original_price": {
"description": "Стоимость одной данной позиции без учета стоимости опций",
"type": "number",
"example": 100.23
},
"weight": {
"description": "Конечный вес товара",
"type": "number"
},
"measure_unit": {
"description": "Единицы измерения веса, например GRM",
"type": "string"
},
"modifications": {
"description": "Опции товара",
"type": "array",
"items": {
"description": "Опция товара",
"type": "object",
"properties": {
"id": {
"description": "Идентификатор опции на стороне ресторана/магазина",
"type": "string"
},
"group_id": {
"description": "ID группы в системе партнера, к которой принадлежит опция",
"type": "string",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"description": "Название опции",
"type": "string"
},
"quantity": {
"description": "Количество опций в рамках этой позиции",
"type": "integer"
},
"price": {
"description": "Цена опции товара",
"type": "number",
"example": 10.5
}
},
"required": [
"id",
"price",
"quantity"
]
}
}
}
},
"OrderItemOption": {
"description": "Опция товара",
"type": "object",
"properties": {
"id": {
"description": "Идентификатор опции на стороне ресторана/магазина",
"type": "string"
},
"group_id": {
"description": "ID группы в системе партнера, к которой принадлежит опция",
"type": "string",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"description": "Название опции",
"type": "string"
},
"quantity": {
"description": "Количество опций в рамках этой позиции",
"type": "integer"
},
"price": {
"description": "Цена опции товара",
"type": "number",
"example": 10.5
}
},
"required": [
"id",
"price",
"quantity"
]
},
"EatsId": {
"type": "string",
"minLength": 13,
"description": "Номер заказа в системе Яндекс.Еда",
"example": "230328-354380"
},
"OrderHistoryStatus": {
"type": "string",
"description": "Статус заказа в системе Яндекс.Еды",
"nullable": true,
"enum": [
"NEW",
"CANCELLED",
"DELIVERED"
]
},
"OrdersHistoryRequestBody": {
"type": "object",
"additionalProperties": false,
"required": [
"origin_ids",
"from",
"to",
"pagination"
],
"properties": {
"origin_ids": {
"type": "array",
"description": "Список объектов. Объект состоит из идентификатора ресторана на стороне партнера и типа доставки в этом ресторане.",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"origin_id"
],
"properties": {
"origin_id": {
"type": "string",
"description": "Идентификатор ресторана на стороне партнера"
},
"delivery_type": {
"type": "string",
"enum": [
"native",
"marketplace"
],
"description": "Тип доставки"
}
}
}
},
"service": {
"type": "array",
"description": "Список сервисов, для которых нужно вернуть заказы",
"items": {
"type": "string",
"enum": [
"YE",
"MD"
]
}
},
"from": {
"type": "string",
"format": "date-time",
"description": "Дата, с которой нужно отдать заказы. В формате RFC3339 с дробной частью секунд (Y-m-d\\TH:i:s.uP)",
"example": "2024-01-01T12:00:05.125+03:00"
},
"to": {
"type": "string",
"format": "date-time",
"description": "Дата, до которой нужно отдать заказы. В формате RFC3339 с дробной частью секунд (Y-m-d\\TH:i:s.uP)",
"example": "2024-01-01T12:00:05.125+03:00"
},
"status": {
"type": "array",
"items": {
"type": "string",
"description": "Статус заказа в системе Яндекс.Еды",
"nullable": true,
"enum": [
"NEW",
"CANCELLED",
"DELIVERED"
]
},
"description": "Возвращать заказы, соответствующие переданному списку статусов"
},
"pagination": {
"type": "object",
"additionalProperties": false,
"required": [
"offset"
],
"properties": {
"limit": {
"type": "integer",
"minimum": 0,
"maximum": 1000,
"description": "Максимальное число заказов"
},
"offset": {
"type": "integer",
"minimum": 0,
"description": "Смещение/пагинация. Подробней про пагинациюю можно почитать на https://slack.engineering/evolving-api-pagination-at-slack/"
}
}
}
}
},
"OrdersHistoryResponse": {
"type": "object",
"additionalProperties": false,
"required": [
"orders"
],
"properties": {
"orders": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"eats_id": {
"description": "Номер заказа в системе Яндекс.Еда",
"type": "string",
"minLength": 13,
"example": "230328-354380"
},
"order_id": {
"type": "string",
"description": "Номер заказа на стороне партнера"
},
"created_at": {
"type": "string",
"description": "Дата создания заказа",
"format": "date-time"
},
"status": {
"type": "string",
"description": "Статус заказа в системе Яндекс.Еды",
"nullable": true,
"enum": [
"NEW",
"CANCELLED",
"DELIVERED"
]
},
"service": {
"type": "string",
"enum": [
"YE",
"MD"
],
"description": "Сервис, через который был сделан заказ"
},
"delivery_type": {
"description": "Тип доставки",
"type": "string",
"enum": [
"native",
"marketplace"
],
"example": "marketplace"
},
"origin_id": {
"description": "Идентификатор ресторана в системе партнера, из которого был сделан заказ",
"type": "string",
"example": "restaurant1"
},
"items_cost": {
"type": "number",
"description": "Стоимость заказа для партнера за вычетом стоимости доставки (с учетом партнерских скидок)"
},
"cancel_reason": {
"type": "object",
"additionalProperties": false,
"required": [
"code"
],
"properties": {
"code": {
"description": "Код причины отмены заказа в Яндекс Еда",
"type": "string",
"example": "place.missing_dish"
},
"message": {
"description": "Текст причины отмены заказа",
"type": "string",
"example": "Заказ был отменён на стороне пользователя"
}
}
}
}
},
"description": "Список заказов"
}
}
},
"Order": {
"type": "object",
"additionalProperties": false,
"properties": {
"eats_id": {
"description": "Номер заказа в системе Яндекс.Еда",
"type": "string",
"minLength": 13,
"example": "230328-354380"
},
"order_id": {
"type": "string",
"description": "Номер заказа на стороне партнера"
},
"created_at": {
"type": "string",
"description": "Дата создания заказа",
"format": "date-time"
},
"status": {
"type": "string",
"description": "Статус заказа в системе Яндекс.Еды",
"nullable": true,
"enum": [
"NEW",
"CANCELLED",
"DELIVERED"
]
},
"service": {
"type": "string",
"enum": [
"YE",
"MD"
],
"description": "Сервис, через который был сделан заказ"
},
"delivery_type": {
"description": "Тип доставки",
"type": "string",
"enum": [
"native",
"marketplace"
],
"example": "marketplace"
},
"origin_id": {
"description": "Идентификатор ресторана в системе партнера, из которого был сделан заказ",
"type": "string",
"example": "restaurant1"
},
"items_cost": {
"type": "number",
"description": "Стоимость заказа для партнера за вычетом стоимости доставки (с учетом партнерских скидок)"
},
"cancel_reason": {
"type": "object",
"additionalProperties": false,
"required": [
"code"
],
"properties": {
"code": {
"description": "Код причины отмены заказа в Яндекс Еда",
"type": "string",
"example": "place.missing_dish"
},
"message": {
"description": "Текст причины отмены заказа",
"type": "string",
"example": "Заказ был отменён на стороне пользователя"
}
}
}
}
},
"Pagination": {
"type": "object",
"additionalProperties": false,
"required": [
"offset"
],
"properties": {
"limit": {
"type": "integer",
"minimum": 0,
"maximum": 1000,
"description": "Максимальное число заказов"
},
"offset": {
"type": "integer",
"minimum": 0,
"description": "Смещение/пагинация. Подробней про пагинациюю можно почитать на https://slack.engineering/evolving-api-pagination-at-slack/"
}
}
},
"Service": {
"type": "string",
"enum": [
"YE",
"MD"
]
},
"ErrorV2": {
"description": "Описание ошибки",
"type": "object",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Сообщение об ошибке",
"type": "string"
},
"code": {
"description": "Код ошибки",
"type": "string"
}
}
},
"BusyModePagination": {
"type": "object",
"additionalProperties": false,
"description": "Пагинация для получения статуса высокого спроса в ресторанах. Подробнее про пагинацию и курсоры можно почитать на https://slack.engineering/evolving-api-pagination-at-slack/",
"properties": {
"cursor": {
"type": "string",
"description": "Курсор для получения ресторанов с активным статусом высокого спроса"
},
"limit": {
"type": "integer",
"description": "Лимит количества возвращаемых ресторанов",
"minimum": 1,
"maximum": 500,
"default": 500
}
}
},
"Cursor": {
"type": "string",
"description": "Курсор для получения ресторанов с активным статусом высокого спроса"
},
"Limit": {
"type": "integer",
"description": "Лимит количества возвращаемых ресторанов",
"minimum": 1,
"maximum": 500,
"default": 500
},
"BusyModeStatusResponse": {
"description": "Успешный ответ на запрос получения статуса высокой нагрузки ресторанов",
"type": "object",
"additionalProperties": false,
"required": [
"busy_places"
],
"properties": {
"busy_places": {
"type": "array",
"description": "Список ресторанов с информацией о высоком спросе",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"origin_id",
"delivery_type",
"services",
"extra_minutes",
"valid_till"
],
"properties": {
"origin_id": {
"type": "string",
"example": "restaurant1"
},
"delivery_type": {
"type": "string",
"enum": [
"native",
"marketplace"
],
"description": "Тип доставки",
"example": "marketplace"
},
"services": {
"type": "array",
"description": "Список сервисов, в которых представлен ресторан",
"items": {
"type": "string",
"enum": [
"YE",
"MD"
]
}
},
"extra_minutes": {
"type": "integer",
"description": "Добавочное время к готовке в минутах"
},
"valid_till": {
"type": "string",
"format": "date-time",
"description": "Дата и время в формате RFC3339 с указанием часового пояса, до которого действует надбавка к готовке",
"example": "2024-01-01T12:00:05.125+03:00"
}
}
}
},
"cursor": {
"type": "string",
"description": "Курсор для получения ресторанов с активным статусом высокого спроса"
}
}
},
"BusyPlace": {
"type": "object",
"additionalProperties": false,
"required": [
"origin_id",
"delivery_type",
"services",
"extra_minutes",
"valid_till"
],
"properties": {
"origin_id": {
"type": "string",
"example": "restaurant1"
},
"delivery_type": {
"type": "string",
"enum": [
"native",
"marketplace"
],
"description": "Тип доставки",
"example": "marketplace"
},
"services": {
"type": "array",
"description": "Список сервисов, в которых представлен ресторан",
"items": {
"type": "string",
"enum": [
"YE",
"MD"
]
}
},
"extra_minutes": {
"type": "integer",
"description": "Добавочное время к готовке в минутах"
},
"valid_till": {
"type": "string",
"format": "date-time",
"description": "Дата и время в формате RFC3339 с указанием часового пояса, до которого действует надбавка к готовке",
"example": "2024-01-01T12:00:05.125+03:00"
}
}
},
"DeliveryType": {
"type": "string",
"enum": [
"native",
"marketplace"
],
"description": "Тип доставки",
"example": "marketplace"
},
"BusyModeStatusRequest": {
"type": "object",
"additionalProperties": false,
"properties": {
"filters": {
"type": "object",
"additionalProperties": false,
"description": "Фильтры запроса на поиск ресторанов",
"properties": {
"origin_ids": {
"type": "array",
"description": "Список идентификаторов ресторанов в системе партнера",
"items": {
"type": "string",
"example": "restaurant1"
},
"minItems": 1,
"maxItems": 100
},
"delivery_type": {
"type": "string",
"enum": [
"native",
"marketplace"
],
"description": "Тип доставки",
"example": "marketplace"
},
"service": {
"type": "string",
"enum": [
"YE",
"MD"
]
}
}
},
"pagination": {
"type": "object",
"additionalProperties": false,
"description": "Пагинация для получения статуса высокого спроса в ресторанах. Подробнее про пагинацию и курсоры можно почитать на https://slack.engineering/evolving-api-pagination-at-slack/",
"properties": {
"cursor": {
"type": "string",
"description": "Курсор для получения ресторанов с активным статусом высокого спроса"
},
"limit": {
"type": "integer",
"description": "Лимит количества возвращаемых ресторанов",
"minimum": 1,
"maximum": 500,
"default": 500
}
}
}
}
},
"BusyModeStatusFilters": {
"type": "object",
"additionalProperties": false,
"description": "Фильтры запроса на поиск ресторанов",
"properties": {
"origin_ids": {
"type": "array",
"description": "Список идентификаторов ресторанов в системе партнера",
"items": {
"type": "string",
"example": "restaurant1"
},
"minItems": 1,
"maxItems": 100
},
"delivery_type": {
"type": "string",
"enum": [
"native",
"marketplace"
],
"description": "Тип доставки",
"example": "marketplace"
},
"service": {
"type": "string",
"enum": [
"YE",
"MD"
]
}
}
},
"OriginId": {
"type": "string",
"example": "restaurant1"
},
"OriginIds": {
"type": "object",
"additionalProperties": false,
"required": [
"origin_id"
],
"properties": {
"origin_id": {
"type": "string",
"description": "Идентификатор ресторана на стороне партнера"
},
"delivery_type": {
"type": "string",
"enum": [
"native",
"marketplace"
],
"description": "Тип доставки"
}
}
},
"PhoneNumber": {
"type": "string",
"description": "Номер телефона для связи с клиентом в международном формате. Состоит из частей \"+<код страны><номер>\". Может содержать добавочный номер: \"+<код страны><номер> доб. <добавочный номер>\".",
"example": "+79031111111 доб. 4432"
},
"CancelReason": {
"type": "object",
"additionalProperties": false,
"required": [
"code"
],
"properties": {
"code": {
"description": "Код причины отмены заказа в Яндекс Еда",
"type": "string",
"example": "place.missing_dish"
},
"message": {
"description": "Текст причины отмены заказа",
"type": "string",
"example": "Заказ был отменён на стороне пользователя"
}
}
}
}
}
}
Была ли статья полезна?
Предыдущая
Следующая