API for Yandex Service Integration
version: 1.0-oas3
Description of the API for working with the Yandex service using the
Yandex and Marketplace models. All methods described below must be
implemented on the partner side during integration. In some methods, the
Yandex service acts as a client, and you need to implement the server
part. Communication is based on the pull model: the Yandex service as a
client requests information about the resource or can create or update
resources if necessary.
In the Vendor Management Integration API block, a
push model is described, i.e., the Yandex service acts as a server.
Authentication
Sections
- Authentication
- Menu
- Orders
- Restaurants
- Feedback
- Delivery zones
- Schedule
- Vendor Management Integration API
- Working schedule
Specification
Open API
{
"openapi": "3.0.1",
"info": {
"title": "API for Yandex Service Integration",
"description": "Description of the API for working with the Yandex service using the\nYandex and Marketplace models. All methods described below must be\nimplemented on the partner side during integration. In some methods, the\nYandex service acts as a client, and you need to implement the server\npart. Communication is based on the pull model: the Yandex service as a\nclient requests information about the resource or can create or update\nresources if necessary.\nIn the Vendor Management Integration API block, a\npush model is described, i.e., the Yandex service acts as a server.\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": "Authentication",
"description": "Authentication in the system"
},
{
"name": "Menu",
"description": "Menu"
},
{
"name": "Orders",
"description": "Receiving and updating orders from Yandex"
},
{
"name": "Restaurants",
"description": "List of partner establishments"
},
{
"name": "Feedback",
"description": "Customer order feedback"
},
{
"name": "Delivery zones",
"description": "Receiving delivery zones"
},
{
"name": "Schedule",
"description": "Receiving restaurant schedule"
},
{
"name": "Vendor Management Integration API",
"description": "PUSH methods for restaurant use"
}
],
"security": [
{
"OAuth2": [
"read",
"write"
]
}
],
"paths": {
"/v1/feedback": {
"post": {
"tags": [
"Feedback"
],
"summary": "Send the customer's feedback on the order.",
"description": "Send the customer's feedback on the order.\n\n{% note info %}\n\nThe method is available only by subscription.\n\n{% endnote %}\n\nThe method for providing a response to a feedback is inside the block Vendor Management Integration API.\n",
"operationId": "partner.feedback.post",
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"feedback": {
"type": "object",
"description": "Information about the customer's feedback",
"properties": {
"id": {
"type": "string",
"description": "feedback's ID on the Yandex side"
},
"createdAt": {
"type": "string",
"description": "The date the feedback was created in the RFC 3339 format from fractional part of seconds (Y-m-d\\TH:i:s.uP)",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
},
"eatsId": {
"type": "string",
"description": "End-to-end order identifier on the Yandex side in the format DDDDDD-DDDDDDDD",
"example": "190330-12345678"
},
"orderId": {
"type": "string",
"description": "Order identifier in the partner's system"
},
"predefinedComment": {
"type": "string",
"description": "Predefined comments on the Yandex side, selected by the client"
},
"comment": {
"type": "string",
"description": "Text feedback from the customer on the order"
},
"restaurantId": {
"type": "string",
"description": "The ID of the restaurant in the partner's system"
},
"rating": {
"type": "integer",
"description": "The customer's rating for the order is from 1 to 5",
"example": 5
},
"takenAt": {
"type": "string",
"description": "The date when the courier picked up the order from the restaurant, in ISO format 8601 without fractional part of seconds (Y-m-d\\TH:i:s+hh:ss)",
"format": "date-time",
"example": "1937-01-01T12:00:27+00:20"
},
"deliveredAt": {
"type": "string",
"description": "The date when the order was delivered in ISO 8601 format without fractional part of seconds (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": "Order information",
"properties": {
"createdAt": {
"type": "string",
"description": "The date the review was created in the RFC 3339 format from fractional part of seconds (Y-m-d\\TH:i:s.uP)",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
},
"platform": {
"type": "string",
"description": "Platform ID.",
"enum": [
"YE"
]
},
"discriminator": {
"type": "string",
"description": "Type of order delivery:\n\nyandex - delivery by Yandex couriers\nmarketplace - delivery by restaurant couriers\npickup - pickup by the customer from the restaurant\n",
"enum": [
"marketplace",
"yandex",
"pickup"
],
"example": "marketplace"
},
"deliveryInfo": {
"description": "Delivery info",
"properties": {
"clientName": {
"type": "string",
"description": "Client's name in Yandex service",
"example": "John Cena"
}
},
"required": [
"clientName"
]
},
"paymentInfo": {
"properties": {
"total": {
"type": "number",
"format": "double",
"example": 200.99,
"description": "Total order cost"
}
},
"required": [
"total"
]
},
"items": {
"items": {
"properties": {
"id": {
"type": "string",
"description": "menu item ID in the partner's system",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "menu item name",
"example": "Pizza Pepperoni"
},
"quantity": {
"type": "number",
"format": "float",
"description": "The number of items in the order",
"example": 3.5
},
"price": {
"type": "number",
"format": "double",
"description": "Price of one item including modification costs. In the next version, it will be corrected to the net price of the item without modifications",
"example": 100
},
"modifications": {
"description": "List of selected modifications. May be empty, passed\nexplicitly for each individual item in the order. When ordering two\nitems of the same dish with different sets of modifications, different\nitems with different `modifications` lists are passed.\n",
"items": {
"properties": {
"id": {
"type": "string",
"description": "Modifier ID in the partner's system",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Modifier ID in the partner's system",
"example": "Utensils"
},
"quantity": {
"type": "integer",
"description": "Quantity in the order",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Modifier price for the menu item (e.g., additional sauce)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
},
"type": "array"
}
},
"required": [
"id",
"modifications",
"price",
"quantity"
]
},
"type": "array"
},
"comment": {
"type": "string",
"description": "Additional order information",
"example": "Additional order information: ..."
}
},
"required": [
"createdAt",
"discriminator",
"comment",
"marketplaceOrderDelivery",
"eatsId",
"items",
"deliveryInfo",
"paymentInfo",
"marketplaceOrderPayment"
]
}
},
"required": [
"feedback"
]
}
}
},
"required": true
},
"responses": {
"200": {
"description": "The feedback was successfully processed by the restaurant's internal system.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"result": {
"type": "string",
"example": "OK"
}
}
}
}
}
},
"400": {
"description": "Bad request. **_An array with an object from the error list is expected in the response body_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
},
"401": {
"description": "Authorization failed - the token expired or was not passed in the request. A retry will be made.\n",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Reason for authorization failure",
"example": "Access token has been expired. You should request a new one"
}
},
"required": [
"reason"
]
}
}
}
},
"500": {
"description": "Internal server errors",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
}
},
"security": [
{
"OAuth2": [
"read",
"write"
]
}
]
}
},
"/oauth2/token": {
"post": {
"summary": "Authorization token",
"operationId": "BlocksAuth",
"tags": [
"Vendor Management Integration API"
],
"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"description": "Descriptions of authorization parameters",
"type": "object",
"additionalProperties": false,
"required": [
"client_id",
"client_secret"
],
"properties": {
"client_id": {
"description": "Client ID",
"type": "string"
},
"client_secret": {
"description": "secret key",
"type": "string"
}
}
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"description": "auth response",
"type": "object",
"additionalProperties": false,
"required": [
"access_token",
"expires_in"
],
"properties": {
"access_token": {
"description": "The auth token",
"type": "string",
"example": "bqehYcfk7Tb2zKRkxQ-IaK9nHyntdYnlpJ7kwTNX3B6mIKPws"
},
"expires_in": {
"description": "Token lifetime",
"type": "integer",
"example": 120
},
"scope": {
"type": "string",
"example": "vendor_management"
},
"token_type": {
"description": "Token type",
"type": "string",
"example": "bearer"
}
}
}
}
}
},
"401": {
"description": "Authorization error"
}
}
}
},
"/feedback-answer": {
"post": {
"tags": [
"Vendor Management Integration API"
],
"summary": "Respond to a customer feedback for an order with the option to send a text and/or promo code.",
"description": "{% note info %}\n\nThis method is only available by subscription.\n\n{% endnote %}\n",
"operationId": "feedback.answer",
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"feedback_id",
"text"
],
"properties": {
"feedback_id": {
"type": "string",
"description": "the ID of the feedback to be answered",
"example": 1234567
},
"text": {
"type": "string",
"description": "The text of the partner's response to the feedback"
},
"order_nr": {
"type": "string",
"description": "End-to-end order identifier on the Yandex side in the format DDDDDD-DDDDDDDD"
},
"promo": {
"type": "integer",
"enum": [
10,
15,
20,
30,
40
],
"description": "Promo code with a percentage discount"
}
}
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful request, response to feedback sent to the customer. No response body.."
},
"204": {
"description": "Successful request, but the review is not actual. In this case, the client will not receive a response, and it will also not be possible to issue a promo code to the client."
},
"400": {
"description": "Invalid feedback ID format. No response body."
},
"401": {
"description": "Authorization failed - the token expired or was not passed in the request. A retry will be made.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Reason for authorization failure",
"example": "invalid-token"
},
"message": {
"type": "string",
"description": "Text description of the reason for authorization failure",
"example": "Bad token"
}
}
}
}
}
},
"403": {
"description": "The restaurant does not have a subscription. No response body."
}
}
}
},
"/block": {
"post": {
"summary": "Restaurant blocking",
"operationId": "Blocks",
"tags": [
"Vendor Management Integration API"
],
"parameters": [
{
"name": "Partner-Name",
"in": "header",
"description": "Partner name",
"schema": {
"type": "string"
}
},
{
"name": "Authorization",
"in": "header",
"description": "A token generated on the side of the Yandex",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"vendorInfo": {
"type": "array",
"items": {
"type": "object",
"properties": {
"vendorId": {
"type": "string",
"description": "Restaurant ID in the partner's system",
"example": "819711"
},
"deliveryType": {
"type": "string",
"description": "Delivery type",
"enum": [
"ddc",
"marketplace"
],
"example": "ddc"
}
}
}
},
"from": {
"type": "string",
"description": "Date and time of the start of the block",
"example": "2016-05-12T23:54:32+0100"
},
"to": {
"type": "string",
"description": "The date and time of the end of the lock (if not specified, then it is blocked forever)",
"example": "2016-05-12T23:54:32+0100",
"nullable": true
},
"message": {
"type": "string",
"description": "The reason of blocking",
"maxLength": 4096,
"nullable": true
},
"tag": {
"type": "string",
"description": "blocking tag",
"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": "Request error",
"content": {
"application/json": {
"schema": {
"description": "Error description",
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Erroe message",
"type": "string"
},
"code": {
"description": "Error code",
"type": "integer"
}
}
}
}
}
},
"404": {
"description": "The place was not found",
"content": {
"application/json": {
"schema": {
"description": "Error description",
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Erroe message",
"type": "string"
},
"code": {
"description": "Error code",
"type": "integer"
}
}
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"description": "Error description",
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Erroe message",
"type": "string"
},
"code": {
"description": "Error code",
"type": "integer"
}
}
}
}
}
}
}
}
},
"/v2/status": {
"post": {
"summary": "Get the block status",
"operationId": "v2StatusBlocks",
"tags": [
"Vendor Management Integration API"
],
"parameters": [
{
"name": "Partner-Name",
"in": "header",
"description": "Partner name",
"schema": {
"type": "string"
}
},
{
"name": "Authorization",
"in": "header",
"description": "A token generated on the side of the Yandex",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": true,
"properties": {
"vendorInfo": {
"type": "array",
"items": {
"type": "object",
"properties": {
"vendorId": {
"type": "string",
"description": "Restaurant ID in the partner's system",
"example": "819711"
},
"deliveryType": {
"type": "string",
"description": "Delivery type",
"enum": [
"ddc",
"marketplace"
],
"example": "ddc"
}
}
}
},
"statuses": {
"type": "array",
"items": {
"type": "string",
"enum": [
"enabled"
]
}
},
"limit": {
"type": "integer",
"description": "Issue limit",
"default": 100,
"example": 100
},
"offset": {
"type": "integer",
"description": "Output offset",
"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": "Vendor Array",
"items": {
"type": "object",
"additionalProperties": false,
"description": "Vendor's object",
"required": [
"vendorId",
"blockId",
"deliveryType",
"from"
],
"properties": {
"vendorId": {
"type": "string",
"description": "Vendor ID",
"example": "17205"
},
"blockId": {
"type": "string",
"description": "ID of the block in the service"
},
"externalBlockId": {
"type": "string",
"description": "ID of the block in the partner's system"
},
"deliveryType": {
"type": "string",
"enum": [
"ddc",
"marketplace"
],
"description": "Block ID"
},
"availableToCancel": {
"type": "boolean",
"description": "The ability to unlock"
},
"status": {
"type": "string",
"enum": [
"enabled",
"disabled"
],
"description": "Block status"
},
"from": {
"type": "string",
"description": "Date and time of the start of the block",
"example": "2016-05-12T23:54:32+0100"
},
"to": {
"type": "string",
"description": "Date and time of the end of the block",
"example": "2016-05-12T23:54:32+0100"
},
"source": {
"type": "string",
"description": "The source of the blockage",
"example": "Yandex"
},
"message": {
"type": "string",
"description": "A comment on the blocking (received from a partner) or a description of the blocking from the service"
}
}
}
}
}
}
}
}
},
"400": {
"description": "Request error",
"content": {
"application/json": {
"schema": {
"description": "Error description",
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Erroe message",
"type": "string"
},
"code": {
"description": "Error code",
"type": "integer"
}
}
}
}
}
},
"404": {
"description": "The place was not found",
"content": {
"application/json": {
"schema": {
"description": "Error description",
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Erroe message",
"type": "string"
},
"code": {
"description": "Error code",
"type": "integer"
}
}
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"description": "Error description",
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Erroe message",
"type": "string"
},
"code": {
"description": "Error code",
"type": "integer"
}
}
}
}
}
}
}
}
},
"/unblock": {
"post": {
"summary": "Unblocking restaurants",
"operationId": "Unblocks",
"tags": [
"Vendor Management Integration API"
],
"parameters": [
{
"name": "Partner-Name",
"in": "header",
"description": "Partner name",
"schema": {
"type": "string"
}
},
{
"name": "Authorization",
"in": "header",
"description": "A token generated on the side of the Yandex",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": true,
"properties": {
"vendorInfo": {
"type": "array",
"items": {
"type": "object",
"properties": {
"vendorId": {
"type": "string",
"description": "Restaurant ID in the partner's system",
"example": "819711"
},
"deliveryType": {
"type": "string",
"description": "Delivery type",
"enum": [
"ddc",
"marketplace"
],
"example": "ddc"
}
}
}
},
"blockIds": {
"type": "array",
"description": "List of block IDs",
"items": {
"type": "string"
}
}
},
"required": [
"vendorInfo",
"blockIds"
]
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false
}
}
}
},
"400": {
"description": "Request error",
"content": {
"application/json": {
"schema": {
"description": "Error description",
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Erroe message",
"type": "string"
},
"code": {
"description": "Error code",
"type": "integer"
}
}
}
}
}
},
"404": {
"description": "The place was not found",
"content": {
"application/json": {
"schema": {
"description": "Error description",
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Erroe message",
"type": "string"
},
"code": {
"description": "Error code",
"type": "integer"
}
}
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"description": "Error description",
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Erroe message",
"type": "string"
},
"code": {
"description": "Error code",
"type": "integer"
}
}
}
}
}
}
}
}
},
"/menu/import/initiation": {
"post": {
"summary": "Menu parsing initiation",
"description": "Forced start of the Menu/Stop-list update process\n",
"operationId": "MenuImport",
"tags": [
"Vendor Management Integration API"
],
"parameters": [
{
"name": "Partner-Name",
"in": "header",
"description": "Partner name",
"schema": {
"type": "string"
}
},
{
"name": "Authorization",
"in": "header",
"description": "A token generated on the side of the Yandex",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"restaurantId": {
"type": "string",
"maxLength": 512,
"description": "The ID of the restaurant in the partner's system"
},
"operationType": {
"type": "string",
"enum": [
"menu",
"menu_stop_list"
],
"default": "menu",
"description": "menu - Menu parsing, menu_stop_list - stop list parsing\n"
}
},
"required": [
"restaurantId"
]
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false
}
}
}
},
"400": {
"description": "Request error",
"content": {
"application/json": {
"schema": {
"description": "Error description",
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Erroe message",
"type": "string"
},
"code": {
"description": "Error code",
"type": "integer"
}
}
}
}
}
},
"404": {
"description": "The place was not found",
"content": {
"application/json": {
"schema": {
"description": "Error description",
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Erroe message",
"type": "string"
},
"code": {
"description": "Error code",
"type": "integer"
}
}
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"description": "Error description",
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Erroe message",
"type": "string"
},
"code": {
"description": "Error code",
"type": "integer"
}
}
}
}
}
}
}
}
},
"/platform/orders/{orderId}/codes/validate": {
"post": {
"summary": "Validation of the courier code",
"description": "Validation of the code for receiving an order by courier",
"operationId": "CourierCodeValidate",
"tags": [
"Vendor Management Integration API"
],
"parameters": [
{
"name": "orderId",
"in": "path",
"required": true,
"description": "The order ID in the external system",
"schema": {
"type": "string"
}
},
{
"name": "Partner-Name",
"in": "header",
"description": "Partner name",
"schema": {
"type": "string"
}
},
{
"name": "Authorization",
"in": "header",
"description": "A token generated on the side of the Yandex",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "The code that needs to be validated"
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"is_valid"
],
"properties": {
"is_valid": {
"type": "boolean",
"description": "Validation result."
}
}
}
}
}
},
"400": {
"description": "Request error",
"content": {
"application/json": {
"schema": {
"description": "Error description",
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Erroe message",
"type": "string"
},
"code": {
"description": "Error code",
"type": "integer"
}
}
}
}
}
},
"403": {
"description": "Access denied"
},
"404": {
"description": "The place was not found",
"content": {
"application/json": {
"schema": {
"description": "Error description",
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Erroe message",
"type": "string"
},
"code": {
"description": "Error code",
"type": "integer"
}
}
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"description": "Error description",
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Erroe message",
"type": "string"
},
"code": {
"description": "Error code",
"type": "integer"
}
}
}
}
}
}
}
}
},
"/security/oauth/token": {
"post": {
"tags": [
"Authentication"
],
"summary": "Get an authentication token",
"description": "Gets an authorization token. The format is OAuth 2.0. The token is included in the header of each request as Authorization: Bearer token.\n\n{% note alert %}\n\nThe request body must be sent as a single line.\n\n{% cut \"Request Example\" %}\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": "client ID",
"type": "string",
"example": "client_id"
},
"client_secret": {
"type": "string",
"description": "secret",
"example": "client_secret"
},
"grant_type": {
"type": "string",
"description": "Type of access",
"default": "client_credentials"
},
"scope": {
"type": "string",
"description": "Access rights",
"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": "Successful authentication",
"content": {
"application/json": {
"schema": {
"description": "The model of successful authentication result. The only mandatory field is access_token. The other fields possible according to the specification are optional and are not used on the Yandex side.",
"type": "object",
"properties": {
"access_token": {
"type": "string"
}
},
"required": [
"access_token"
],
"example": {
"access_token": "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
}
}
}
}
},
"400": {
"description": "Error in the parameters, the response contains a list of validation errors",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
},
"500": {
"description": "Internal server errors",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
}
}
}
},
"/menu/{restaurantId}/composition": {
"get": {
"security": [
{
"OAuth2": [
"read"
]
}
],
"tags": [
"Menu"
],
"summary": "Get the current restaurant menu",
"description": "Items with schematic or logical inconsistencies (too long string, price equal to 0.00) may be ignored. The current version of the response model is application/vnd.eats.menu.composition.v2+json",
"operationId": "partner.menu.get",
"parameters": [
{
"name": "restaurantId",
"in": "path",
"description": "The ID of the restaurant in the partner's system",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Success. The current menu for the specified restaurant is returned",
"content": {
"application/vnd.eats.menu.composition.v2+json": {
"schema": {
"type": "object",
"description": "The current version of the model",
"properties": {
"schedules": {
"description": "Description of possible types of menu category schedules",
"properties": {
"scheduleName": {
"description": "Schedule type identification. The schedule type is identified by a unique key name, such as \"breakfasts\". This key is used in the schedule array for menu categories to specify the type of schedule.",
"items": {
"properties": {
"from": {
"type": "string",
"description": "The start time is represented in a 24-hour format, ranging from 00:00 to 24:00.",
"example": "08:00"
},
"till": {
"type": "string",
"description": "The end time is represented in a 24-hour format, ranging from 00:00 to 24:00.",
"example": "09:45"
},
"weekdays": {
"description": "specifying the days of the week when a declared schedule type is active.",
"type": "array",
"items": {
"type": "string",
"example": "monday",
"enum": [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday",
"saturday",
"sunday"
]
}
}
},
"required": [
"from",
"till",
"weekdays"
]
},
"type": "array"
}
}
},
"categories": {
"description": "Menu categories",
"items": {
"properties": {
"id": {
"maxLength": 64,
"type": "string",
"description": "The category ID is a unique identifier that distinguishes one category from another within the partner system. The ID can be any value that can be converted to a string. It is recommended to use a UUID4 UUID4",
"example": "5af86d5a-d92d-4e07-9271-aea0f7ef95a6"
},
"parentId": {
"maxLength": 64,
"type": "string",
"description": "The parent category ID is a unique identifier that references an existing category in the system. The parent category ID is nullable, meaning it can be absent or null, but it cannot be an empty string. It refers to existing categories in the system, ensuring that the hierarchical structure is maintained. When loading, the hierarchical structure is adapted to the flat category structure used by Yandex, where items from subcategories are moved to their parent categories at the first level.",
"example": "5af86d5a-d92d-4e07-9271-aea0f7ef95a6"
},
"schedules": {
"type": "array",
"items": {
"type": "string",
"description": "Category schedule type. This refers to the type of schedule associated with a category. If an empty list is provided or a reference is made to an empty category in a separate schedules block, the category is considered always available. This means that if no schedule is specified or if the referenced category is empty, the category is assumed to be always accessible or available.",
"example": "breakfasts"
}
},
"name": {
"type": "string",
"description": "Category name",
"example": "Breakfast"
},
"sortOrder": {
"type": "integer",
"description": "The sort order is from smallest to largest (i.e., ascending order). If the sort order is not specified, it is assumed to be 100.",
"example": 0
},
"images": {
"description": "Image of the restaurant category",
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Link to the image for download",
"format": "uri"
},
"updatedAt": {
"type": "string",
"description": "The date of the image update, in RFC 3339 format with a fractional part of seconds (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": "List of items available to order",
"items": {
"properties": {
"id": {
"maxLength": 64,
"type": "string",
"description": "Unique identifier for a dish within a restaurant's system. The internal dish ID can be any value that can be converted to a string. It is recommended to use a UUID4.",
"example": "e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9"
},
"categoryId": {
"maxLength": 64,
"type": "string",
"description": "The ID of the category in the partner's system",
"example": "fa494dc1-2578-4adb-a8fa-e270de8c3d28"
},
"name": {
"type": "string",
"description": "The name of the dish in the restaurant",
"example": "Pies Cherry pie"
},
"description": {
"type": "string",
"description": "Full description of the dish",
"example": "Flour, water, egg powder, frozen cherries"
},
"price": {
"type": "number",
"format": "double",
"description": "cost of a dish or product in the restaurant's system. The product price must be a non-zero value; dishes with a price of zero are skipped and not included in the menu.",
"example": 1000
},
"vat": {
"type": "number",
"format": "int32",
"description": "Percentage of Value-Added Tax (VAT) included in the product price. If the VAT rate is not specified, it is assumed to be 0%.",
"example": 20
},
"isCatchweight": {
"type": "boolean",
"description": "boolean flag indicating whether a product is weighted or not in a restaurant system.",
"default": false,
"example": false
},
"measure": {
"type": "integer",
"description": "Characteristics of the measurements of the item - weight or volume",
"example": 666
},
"weightQuantum": {
"type": "number",
"format": "float",
"description": "The smallest quantity of product (quantum) available for order. This field is required if the value of is Catch weight is equal to true, otherwise the field value is not used",
"example": 0.1
},
"measureUnit": {
"type": "string",
"description": "Unit of measurement. Acceptable values are grams and milliliters",
"example": "g",
"enum": [
"г",
"мл",
"g",
"ml"
]
},
"excise": {
"type": "string",
"enum": [
"sugary_drink",
"other"
],
"description": "A sign of an excisable product. You can also use a key instead excise to pass the label [AT] (in capital Latin letters in square brackets) in the product name.",
"example": "sugary_drink"
},
"nutrients": {
"description": "The parameters of calories, proteins, fats and carbohydrates.",
"type": "object",
"properties": {
"calories": {
"type": "number",
"description": "Calories per 100g",
"example": 12.5
},
"proteins": {
"type": "number",
"description": "Protein per 100g",
"example": 15.3
},
"fats": {
"type": "number",
"description": "Fats per 100g",
"example": 12.5
},
"carbohydrates": {
"type": "number",
"description": "Carbohydrates per 100g",
"example": 15.3
}
},
"required": [
"calories",
"proteins",
"fats",
"carbohydrates"
]
},
"sortOrder": {
"type": "integer",
"description": "The sort order is from smaller to larger. If not specified, it's counted for 100",
"example": 0
},
"modifierGroups": {
"type": "array",
"description": "Groups of modifiers for an item. The obligation of modifiers is determined by the parameter `minSelectedModifiers` in the modifiers group.\n",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID of the modifier group on the partner's side. It can be any value that is cast to a string. Recommendation - UUID4",
"example": "9987c815-3069-46ad-9626-74799fb22210"
},
"name": {
"type": "string",
"description": "The name of the modifier group",
"example": "Utensil selection"
},
"modifiers": {
"type": "array",
"description": "Options included in the group",
"items": {
"properties": {
"id": {
"type": "string",
"description": "Modifier identifier on the partner's side. Can be any value convertible to a string. Recommendation - UUID4. This identifier is passed in the order along with the selected quantity. example: 916cfc99-acb4-4a96-9a42-b29159e88189",
"example": "916cfc99-acb4-4a96-9a42-b29159e88189"
},
"name": {
"type": "string",
"description": "Name of the modifier",
"example": "Utensils"
},
"price": {
"type": "number",
"format": "double",
"description": "modifier price",
"example": 150
},
"originalPrice": {
"type": "number",
"format": "double",
"description": "Specific field for transmitting the price of mandatory free modifiers, which will be used for\nprinting in receipts and partial refund receipts. In this case, the price field value must be 0.\n",
"example": 150
},
"vat": {
"type": "integer",
"format": "int32",
"description": "VAT included in the price, in percentage. If not specified, it is considered as 0.",
"example": 20
},
"excise": {
"type": "string",
"enum": [
"sugary_drink",
"other"
],
"description": "Indicator of excise goods. Instead of using the excise key, you can use the [AT] tag (uppercase Latin letters in square brackets) in the modifier's name field.",
"example": "sugary_drink"
},
"minAmount": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"format": "int32",
"description": "Minimum quantity of the specified modifier for the dish in the order. The minAmount value must be less than maxAmount.",
"example": 0
},
"maxAmount": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"format": "int32",
"description": "Maximum quantity of the specified modifier for the dish in the order. This number must not exceed the value of the maxSelectedModifiers parameter in the ModifierGroup model for the entire order. For example, if you support 5 modifiers in a group in total, but the maximum value of the modifier for an individual dish is 10 – such a modifier will not pass validation. Incorrect modifiers, the group to which they belong, and the menu items using incorrect data will not be loaded.",
"example": 10
}
},
"required": [
"id",
"maxAmount",
"minAmount",
"name",
"price"
]
}
},
"minSelectedModifiers": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"format": "int32",
"description": "Minimum number of modifiers that must be selected for this group. Must not exceed the total number of required modifiers (considering their minAmount) and not exceed maxSelectedModifiers",
"example": 0
},
"maxSelectedModifiers": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"format": "int32",
"description": "Maximum number of modifiers that can be selected for this group. Must not be less than the total number of possible modifiers (considering their maxAmount)",
"example": 10
},
"sortOrder": {
"type": "integer",
"description": "Sorting order from smallest to largest. If not specified, it is considered as 100.",
"example": 0
}
},
"required": [
"id",
"name",
"minSelectedModifiers",
"maxSelectedModifiers"
]
}
},
"images": {
"description": "item image",
"type": "array",
"items": {
"properties": {
"hash": {
"type": "string",
"description": "SHA1 hash of the image file content. Calculated by the partner, serves as a uniqueness indicator. If it changes, Yandex reloads the image."
},
"url": {
"type": "string",
"description": "Link to download the image",
"format": "uri"
}
},
"required": [
"hash",
"url"
]
}
},
"additional_descriptions": {
"type": "object",
"additionalProperties": false,
"description": "Additional fields for the item description",
"properties": {
"consisting_ingredients": {
"description": "The list of ingredients that make up the dish. These are the initial components of the dish, not its constituent parts. It is advisable to specify all the ingredients that can cause allergies or they strongly affect the taste. This way users will immediately see the important ones details about the dish.",
"type": "array",
"maxItems": 100,
"items": {
"type": "string",
"example": "flour",
"maxLength": 100
}
},
"badges": {
"type": "array",
"items": {
"description": "The tags of the dish are divided into categories and values. You can select only one option in each category. When processing, the first valid value will be taken from each category. Duplicate, unknown categories or mismatched category values will be skipped.\nAvailable categories and their values:\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 attributes information for the product",
"required": [
"age_group"
],
"properties": {
"age_group": {
"type": "integer",
"description": "Age restriction on the product",
"enum": [
18,
21
]
},
"alcohol_percentage": {
"type": "string",
"pattern": "^[0-9]+(\\.[0-9]{1,2})?$",
"example": "12.34",
"description": "Item's alcohol by volume. The number is indicated only with a dot."
}
}
}
},
"required": [
"categoryId",
"id",
"measureUnit",
"name",
"price",
"measure"
]
},
"type": "array"
},
"lastChange": {
"type": "string",
"description": "The date of the last change in the restaurant menu (on the partner's side). Important: date in RFC 3339 format with fractional part of seconds (Y-m-d\\TH:i:s.uP)! If the last update date hasn't changed, Yandex can automatically determine that the menu doesn't need to be updated. If the update date in this field differs from the date of the last menu update, the menu will be reloaded.",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
}
},
"required": [
"categories",
"lastChange",
"items"
]
}
}
}
},
"400": {
"description": "Bad request. **_An array with an object from the error list is expected in the response body_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
},
"401": {
"description": "Authorization failed - the token expired or was not passed in the request. A retry will be made",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Reason for authorization failure",
"example": "Access token has been expired. You should request a new one"
}
},
"required": [
"reason"
]
}
}
}
},
"404": {
"description": "No restaurant found. **_An array with an object from the error list is expected in the response body_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
},
"500": {
"description": "Internal server errors. **_An array with an object from the error list is expected in the response body_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
}
}
}
},
"/menu/{restaurantId}/availability": {
"get": {
"tags": [
"Menu"
],
"summary": "Get currently unavailable menu items",
"description": "Items with schematic or logical inconsistencies (too long string, stock equal to -10.00) may be ignored. The current version of the response model is application/vnd.eats.menu.availability.v2+json",
"operationId": "partner.availability.get",
"parameters": [
{
"name": "restaurantId",
"in": "path",
"description": "The ID of the restaurant in the partner's system",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Returns a list of currently unavailable menu items in the restaurant menu",
"content": {
"application/vnd.eats.menu.availability.v2+json": {
"schema": {
"type": "object",
"description": "Current version of the menu availability model",
"properties": {
"items": {
"type": "array",
"description": "List of menu items for which availability needs to be changed",
"items": {
"properties": {
"itemId": {
"type": "string",
"description": "Internal identifier of the dish in the partner's restaurant system. Can be any value convertible to a string. Recommendation - UUID4",
"example": "eff0cec0-058c-4d53-b524-1c04ac24fb51"
},
"stock": {
"type": "integer",
"format": "int32",
"description": "Stock in the restaurant. When 0, the dish disappears from the menu. Optional field. If stock is not passed for itemId, the stock of the dish is considered as 0.",
"default": 0,
"example": 5
}
},
"required": [
"itemId"
]
}
},
"modifiers": {
"type": "array",
"description": "List of dish modifiers for which availability needs to be change",
"items": {
"properties": {
"modifierId": {
"type": "string",
"description": "Internal identifier of the modifier in the partner's restaurant system. Can be any value convertible to a string. Recommendation - UUID4",
"example": "eff0cec0-058c-4d53-b524-1c04ac24fb51"
},
"stock": {
"type": "integer",
"format": "int32",
"description": "Stock in the restaurant. When 0, the modifier disappears from the menu. Optional field. If stock is not passed for modifierId, the stock of the modifier is considered as 0.",
"default": 0,
"example": 5
}
},
"required": [
"modifierId"
]
}
}
},
"required": [
"items",
"modifiers"
]
}
}
}
},
"401": {
"description": "Authorization failed - the token expired or was not passed in the request. A retry will be made",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Reason for authorization failure",
"example": "Access token has been expired. You should request a new one"
}
},
"required": [
"reason"
]
}
}
}
},
"404": {
"description": "No restaurant found. **_An array with an object from the error list is expected in the response body_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
},
"500": {
"description": "Internal server errors. **_An array with an object from the error list is expected in the response body_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
}
},
"security": [
{
"OAuth2": [
"read",
"write"
]
}
]
}
},
"/menu/{restaurantId}/promos": {
"get": {
"tags": [
"Menu"
],
"summary": "Get promotional dishes associated with the menu",
"description": "This method is used to transmit the substitute ID of a gift dish for the \"dish as a gift\" promotion.\n",
"operationId": "partner.promos.get",
"parameters": [
{
"name": "restaurantId",
"in": "path",
"description": "The ID of the restaurant in the partner's system",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Returns a list of promotional dish items related to the main menu",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"promoItems": {
"type": "array",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID of the main menu item",
"example": "string"
},
"promoId": {
"type": "string",
"description": "ID of the promotional item",
"example": "string"
}
},
"required": [
"id",
"promoId"
]
}
}
},
"required": [
"promoItems"
]
}
}
}
},
"401": {
"description": "Authorization failed - the token expired or was not passed in the request. A retry will be made",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Reason for authorization failure",
"example": "Access token has been expired. You should request a new one"
}
},
"required": [
"reason"
]
}
}
}
},
"404": {
"description": "No restaurant found. **_An array with an object from the error list is expected in the response body_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
},
"500": {
"description": "Internal server errors. **_An array with an object from the error list is expected in the response body_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
}
},
"security": [
{
"OAuth2": [
"read"
]
}
]
}
},
"/restaurants": {
"get": {
"tags": [
"Restaurants"
],
"summary": "Get a list of partner establishments",
"description": "Retrieves a list of partner establishments.",
"operationId": "partner.restaurants.get",
"responses": {
"200": {
"description": "Returns a list of partner restaurants",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"places": {
"type": "array",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID of the restaurant in the partner system",
"example": "123"
},
"title": {
"type": "string",
"description": "restaurant name",
"example": "Test place"
},
"address": {
"type": "string",
"description": "restaurant adress",
"example": "City, str. Street, 1"
}
},
"required": [
"id",
"title",
"address"
]
}
}
},
"required": [
"places"
]
}
}
}
},
"401": {
"description": "Authorization failed - the token expired or was not passed in the request. A retry will be made",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Reason for authorization failure",
"example": "Access token has been expired. You should request a new one"
}
},
"required": [
"reason"
]
}
}
}
},
"500": {
"description": "Internal server errors. **_An array with an object from the error list is expected in the response body_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
}
},
"security": [
{
"OAuth2": [
"read"
]
}
]
}
},
"/restaurants/availability": {
"get": {
"tags": [
"Restaurants"
],
"summary": "Get information about the activity of the chain's restaurants",
"description": "Enabling and disabling restaurants in the Yandex service.\n\nTo indicate the availability or unavailability of a restaurant in the Yandex service\nshould pass the corresponding places.enabled value.\nIf the restaurant is not included in the partner's response, the availability does not change.\nYou can only enable Restaurants that were not previously disabled by the Yandex service for other reasons.",
"operationId": "partner.restaurants.availability.get",
"responses": {
"200": {
"description": "A list of restaurants that are currently active",
"content": {
"application/json": {
"schema": {
"properties": {
"places": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"maxLength": 255,
"description": "ID of the restaurant in the partner system",
"example": "e89b-12d3-a456"
},
"enabled": {
"type": "boolean",
"description": "Restaurant activity",
"nullable": false,
"example": true
}
},
"required": [
"id",
"enabled"
]
}
}
}
}
}
}
},
"401": {
"description": "Authorization failed - the token expired or was not passed in the request. A retry will be made",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Reason for authorization failure",
"example": "Access token has been expired. You should request a new one"
}
},
"required": [
"reason"
]
}
}
}
},
"500": {
"description": "Internal server errors. **_An array with an object from the error list is expected in the response body_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
}
},
"security": [
{
"OAuth2": [
"read"
]
}
]
}
},
"/order": {
"post": {
"tags": [
"Orders"
],
"summary": "Create an order in the restaurant system",
"description": "* `YandexOrder` – order schema for Yandex delivery.\n* `MarketplaceOrder` – order schema for partner delivery.\n* `PickupOrder` – order schema for pickup orders by customer.\n\nCurrent version of the request model – application/vnd.eats.order.v2+json.\n",
"operationId": "partner.order.create",
"requestBody": {
"content": {
"application/vnd.eats.order.v2+json": {
"schema": {
"oneOf": [
{
"type": "object",
"description": "Current version of the order model for \"Yandex\" delivery scheme.",
"properties": {
"platform": {
"type": "string",
"description": "Platform ID:\n* YE – Yandex\n",
"enum": [
"YE"
]
},
"discriminator": {
"type": "string",
"description": "Schema discriminator object. For YandexOrder, it is \"yandex\".",
"example": "yandex"
},
"eatsId": {
"type": "string",
"description": "End-to-end order identifier on the Yandex side in the format DDDDDD-DDDDDDDD",
"example": "190330-12345678"
},
"restaurantId": {
"type": "string",
"description": "Internal identifier of the establishment in the partner system to which the order is transmitted. Free format, UUID4 recommended.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"deliveryInfo": {
"description": "Delivery information.",
"properties": {
"clientName": {
"type": "string",
"description": "The customer's name in the Yandex service",
"example": "John Cena"
},
"phoneNumber": {
"type": "string",
"description": "Phone number to contact the customer in international format. Consists of parts \"+<country code><number>\". May include extension: \"+<country code><number> ext. <extension number>\".",
"example": "+79031111111 ext. 4432"
},
"additionalPhoneNumbers": {
"description": "A list of additional numbers for contacting the client.",
"type": "array",
"items": {
"type": "string",
"description": "Phone number to contact the customer in international format. Consists of parts \"+<country code><number>\". May include extension: \"+<country code><number> ext. <extension number>\".",
"example": "+79031111111 ext. 4432"
}
},
"courierArrivementDate": {
"type": "string",
"description": "The date when the courier arrives at the restaurant, in RFC 3339 format with fractional part of seconds (Y-m-d\\TH:i:s.uP).",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
},
"realPhoneNumber": {
"type": "string",
"description": "The phone number for contacting the client in an international format. It consists of the parts \"+<country code><number>\". It is indicated if the client consents to the processing of his personal data",
"example": "+79031111111"
},
"pickupCode": {
"type": "string",
"description": "Courier identification code",
"example": 123
}
},
"required": [
"courierArrivementDate"
]
},
"paymentInfo": {
"properties": {
"itemsCost": {
"type": "number",
"format": "double",
"example": 100,
"description": "The full cost of the dishes in the order."
},
"paymentType": {
"type": "string",
"description": "Information about the payment type. CARD – paid order, CASH – unpaid order.",
"enum": [
"CARD",
"CASH"
]
}
},
"required": [
"itemsCost",
"paymentType"
]
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the menu item in the partner system",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Menu item name",
"example": "Pepperoni Pizza"
},
"quantity": {
"type": "number",
"format": "float",
"description": "Quantity of the item in the order",
"example": 3.5
},
"price": {
"type": "number",
"format": "double",
"description": "Price of one item including modification costs. Will be corrected in\n the next version to show the base price without modifications.",
"example": 100
},
"modifications": {
"type": "array",
"description": "List of selected modifications. Can be empty, explicitly transmitted for each individual item in the order. When ordering two items of the same dish with different modifications, different positions with different \"modifications\" lists are transmitted.",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID of the modifier in the partner system",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"group_id": {
"type": "string",
"description": "Unique identifier for a group within a partner system. The Partner Group ID is linked to a specific modifier, which is a component that can be duplicated.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"type": "string",
"description": "Modifier name",
"example": "utensils"
},
"quantity": {
"type": "integer",
"description": "Quantity in the order",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Price of the modifier for the menu item (e.g., additional sauce)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
}
},
"promos": {
"type": "array",
"description": "List of promotions applied to the current dish. If the dish has a non-empty \"promos\" object, it means that a promotion is active in the partner system. If empty, it means no promotions apply to the dish.",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Promotion type. Can be a gift \"GIFT\", percentage discount \"PERCENTAGE\", co-financed discount \"COFINANCE\" and \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Discount amount in currency paid by the partner"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by the partner"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by Yandex"
}
},
"required": [
"type",
"discount"
]
}
}
},
"required": [
"id",
"modifications",
"price",
"quantity",
"promos"
]
}
},
"persons": {
"type": "integer",
"description": "Number of persons for whom the order is placed. May affect the number of cutlery sets.",
"example": 2
},
"comment": {
"type": "string",
"description": "Additional order information",
"example": "Additional order information: ..."
},
"promos": {
"type": "array",
"description": "List of promotions applied to the entire order. If the order has a non-empty \"promos\" object, it means that a promotion is active in the partner system. If empty, it means no promotions apply to the order.",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Promotion type. Can be a gift \"GIFT\", percentage discount \"PERCENTAGE\", co-financed discount \"COFINANCE\" and \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Discount amount in currency paid by the partner"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by the partner"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by Yandex"
}
},
"required": [
"type",
"discount"
],
"type": "object"
}
}
},
"required": [
"discriminator",
"comment",
"nativeOrderDelivery",
"deliveryInfo",
"paymentInfo",
"eatsId",
"restaurantId",
"items",
"nativeOrderPayment",
"promos"
]
},
{
"type": "object",
"description": "Current version of the order model for \"Marketplace\" delivery scheme",
"properties": {
"platform": {
"type": "string",
"description": "Platform identifier. YE - Yandex",
"enum": [
"YE"
]
},
"discriminator": {
"type": "string",
"description": "Schema discriminator object. For MarketplaceOrder, it is \"marketplace\"",
"example": "marketplace"
},
"eatsId": {
"type": "string",
"description": "End-to-end order identifier on the Yandex side in the format DDDDDD-DDDDDDDD",
"example": "190330-12345678"
},
"restaurantId": {
"type": "string",
"description": "Internal identifier of the establishment in the partner system to which the order is transmitted. Free format, UUID4 recommended",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"deliveryInfo": {
"description": "Delivery information",
"properties": {
"clientName": {
"type": "string",
"description": "Client's name in Yandex service",
"example": "John Cena"
},
"phoneNumber": {
"type": "string",
"description": "Phone number to contact the customer in international format. Consists of parts \"+<country code><number>\". May include extension: \"+<country code><number> ext. <extension number>\".",
"example": "+79031111111 ext. 4432"
},
"additionalPhoneNumbers": {
"description": "A list of additional numbers for contacting the client.",
"type": "array",
"items": {
"type": "string",
"description": "Phone number to contact the customer in international format. Consists of parts \"+<country code><number>\". May include extension: \"+<country code><number> ext. <extension number>\".",
"example": "+79031111111 ext. 4432"
}
},
"deliveryDate": {
"type": "string",
"description": "Delivery date (when the client expects the order), in RFC3339 format with fractional seconds (Y-m-d\\TH:i:s.uP)",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
},
"deliveryAddress": {
"description": "Delivery address information",
"properties": {
"full": {
"type": "string",
"description": "Full address",
"example": "Tashkent, Amir Temur Street, building 4, entrance 2. 4th floor, intercom code: 123 K 4567"
},
"latitude": {
"type": "string",
"description": "Delivery point latitude",
"example": "55.756994"
},
"longitude": {
"type": "string",
"description": "Delivery point longitude",
"example": "37.614006"
}
},
"required": [
"full",
"latitude",
"longitude"
]
}
},
"required": [
"clientName",
"deliveryAddress",
"deliveryDate",
"phoneNumber",
"type"
]
},
"paymentInfo": {
"properties": {
"paymentType": {
"type": "string",
"description": "Payment type information. CARD – already paid order, CASH – unpaid order.",
"enum": [
"CARD",
"CASH"
]
},
"itemsCost": {
"type": "number",
"format": "double",
"example": 100,
"description": "Total cost of the dishes in the order"
},
"deliveryFee": {
"type": "number",
"format": "double",
"example": 100,
"description": "Delivery cost"
},
"total": {
"type": "number",
"format": "double",
"example": 200,
"description": "Total order cost"
},
"change": {
"type": "number",
"format": "double",
"example": 500,
"description": "Amount of change required"
}
},
"required": [
"change",
"deliveryFee",
"itemsCost",
"paymentType"
]
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the menu item in the partner system",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Menu item name",
"example": "Pepperoni Pizza"
},
"quantity": {
"type": "number",
"format": "float",
"description": "Quantity of the item in the order",
"example": 3.5
},
"price": {
"type": "number",
"format": "double",
"description": "Price of one item including modification costs. Will be corrected in\n the next version to show the base price without modifications.",
"example": 100
},
"modifications": {
"type": "array",
"description": "List of selected modifications. Can be empty, explicitly transmitted for each individual item in the order. When ordering two items of the same dish with different modifications, different positions with different \"modifications\" lists are transmitted.",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID of the modifier in the partner system",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"group_id": {
"type": "string",
"description": "Unique identifier for a group within a partner system. The Partner Group ID is linked to a specific modifier, which is a component that can be duplicated.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"type": "string",
"description": "Modifier name",
"example": "utensils"
},
"quantity": {
"type": "integer",
"description": "Quantity in the order",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Price of the modifier for the menu item (e.g., additional sauce)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
}
},
"promos": {
"type": "array",
"description": "List of promotions applied to the current dish. If the dish has a non-empty \"promos\" object, it means that a promotion is active in the partner system. If empty, it means no promotions apply to the dish.",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Promotion type. Can be a gift \"GIFT\", percentage discount \"PERCENTAGE\", co-financed discount \"COFINANCE\" and \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Discount amount in currency paid by the partner"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by the partner"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by Yandex"
}
},
"required": [
"type",
"discount"
]
}
}
},
"required": [
"id",
"modifications",
"price",
"quantity",
"promos"
]
}
},
"persons": {
"type": "integer",
"description": "Number of persons for whom the order is placed. May affect the number of cutlery sets",
"example": 2
},
"comment": {
"type": "string",
"description": "Additional order information",
"example": "Additional order information: ..."
},
"promos": {
"type": "array",
"description": "List of promotions applied to the entire order. If the order has a non-empty \"promos\" object, it means that a promotion is active in the partner system. If empty, it means no promotions apply to the order.",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Promotion type. Can be a gift \"GIFT\", percentage discount \"PERCENTAGE\", co-financed discount \"COFINANCE\" and \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Discount amount in currency paid by the partner"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by the partner"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by Yandex"
}
},
"required": [
"type",
"discount"
]
}
}
},
"required": [
"discriminator",
"comment",
"marketplaceOrderDelivery",
"eatsId",
"restaurantId",
"items",
"deliveryInfo",
"paymentInfo",
"marketplaceOrderPayment",
"promos"
]
},
{
"type": "object",
"description": "Current version of the order model for \"pickup\" delivery scheme",
"properties": {
"platform": {
"type": "string",
"description": "Platform identifier. YE - Yandex",
"enum": [
"YE"
]
},
"discriminator": {
"type": "string",
"description": "Object schema discriminator. For PickupOrder equals \"pickup\"",
"example": "pickup"
},
"eatsId": {
"type": "string",
"description": "End-to-end order identifier on the Yandex side in the format DDDDDD-DDDDDD",
"example": "190330-123456"
},
"restaurantId": {
"type": "string",
"description": "Internal identifier of the establishment in the partner system to which the order is transmitted. Free format, UUID4 recommended",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"deliveryInfo": {
"description": "Delivery info",
"properties": {
"clientName": {
"type": "string",
"description": "Client's name in Yandex service",
"example": "John Cena"
},
"phoneNumber": {
"type": "string",
"description": "Phone number to contact the customer in international format. Consists of parts \"+<country code><number>\". May include extension: \"+<country code><number> ext. <extension number>\".",
"example": "+79031111111 ext. 4432"
},
"additionalPhoneNumbers": {
"description": "A list of additional numbers for contacting the client.",
"type": "array",
"items": {
"type": "string",
"description": "Phone number to contact the customer in international format. Consists of parts \"+<country code><number>\". May include extension: \"+<country code><number> ext. <extension number>\".",
"example": "+79031111111 ext. 4432"
}
},
"clientArrivementDate": {
"type": "string",
"description": "The date when the customer arrives at the restaurant, in RFC 3339 format with fractional part of seconds (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": "Payment type information",
"enum": [
"CARD",
"CASH"
]
},
"itemsCost": {
"type": "number",
"format": "double",
"example": 100,
"description": "Total cost of the dishes in the order"
},
"total": {
"type": "number",
"format": "double",
"example": 200,
"description": "Total order cost"
},
"change": {
"type": "number",
"format": "double",
"example": 500,
"description": "Amount of change required."
}
},
"required": [
"change",
"itemsCost",
"paymentType"
]
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the menu item in the partner system",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Menu item name",
"example": "Pepperoni Pizza"
},
"quantity": {
"type": "number",
"format": "float",
"description": "Quantity of the item in the order",
"example": 3.5
},
"price": {
"type": "number",
"format": "double",
"description": "Price of one item including modification costs. Will be corrected in\n the next version to show the base price without modifications.",
"example": 100
},
"modifications": {
"type": "array",
"description": "List of selected modifications. Can be empty, explicitly transmitted for each individual item in the order. When ordering two items of the same dish with different modifications, different positions with different \"modifications\" lists are transmitted.",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID of the modifier in the partner system",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"group_id": {
"type": "string",
"description": "Unique identifier for a group within a partner system. The Partner Group ID is linked to a specific modifier, which is a component that can be duplicated.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"type": "string",
"description": "Modifier name",
"example": "utensils"
},
"quantity": {
"type": "integer",
"description": "Quantity in the order",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Price of the modifier for the menu item (e.g., additional sauce)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
}
},
"promos": {
"type": "array",
"description": "List of promotions applied to the current dish. If the dish has a non-empty \"promos\" object, it means that a promotion is active in the partner system. If empty, it means no promotions apply to the dish.",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Promotion type. Can be a gift \"GIFT\", percentage discount \"PERCENTAGE\", co-financed discount \"COFINANCE\" and \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Discount amount in currency paid by the partner"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by the partner"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by Yandex"
}
},
"required": [
"type",
"discount"
]
}
}
},
"required": [
"id",
"modifications",
"price",
"quantity",
"promos"
]
}
},
"persons": {
"type": "integer",
"description": "Number of people the order is for. May affect the number of utensil sets",
"example": 2
},
"comment": {
"type": "string",
"description": "Additional order information",
"example": "Additional order information: ..."
},
"promos": {
"type": "array",
"description": "List of promotions active for the entire order. If the order object \"promos\" is not empty, then the order has a promotion in the partner's system. If empty – this means that the order does not have any promotions",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Promotion type. Can be a gift \"GIFT\", percentage discount \"PERCENTAGE\", co-financed discount \"COFINANCE\" and \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Discount amount in currency paid by the partner"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by the partner"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by Yandex"
}
},
"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": "The order has been successfully processed by the restaurant's internal system",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"orderId"
],
"properties": {
"result": {
"type": "string",
"example": "OK"
},
"orderId": {
"type": "string",
"description": "The identifier of the created order in the partner's system. The format is freeform. UUID4 is recommended.",
"example": "03d3b69b-331c-4f84-b2c4-888b30320e63"
}
}
}
}
}
},
"400": {
"description": "Bad request. **_An array with an object from the error list is expected in the response body_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
},
"401": {
"description": "Authorization failed - the token expired or was not passed in the request. A retry will be made",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Reason for authorization failure",
"example": "Access token has been expired. You should request a new one"
}
},
"required": [
"reason"
]
}
}
}
},
"406": {
"description": "Some items in the order are on the partner's stop list",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"example": "unavailable_goods"
},
"message": {
"type": "string",
"example": "At the moment, the product is not available for order: pie with cream cheese and avocado"
},
"goods": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "A dictionary to store item information. The keys in the dictionary are string-based IDs that uniquely identify each item. The values in the dictionary are the corresponding names of the items.",
"example": "{\"10000000003998\": \"pie with cream cheese and avocado\"}"
}
}
}
}
}
},
"500": {
"description": "Internal server errors. **_An array with an object from the error list is expected in the response body_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
}
},
"security": [
{
"OAuth2": [
"read",
"write"
]
}
]
}
},
"/order/{orderId}": {
"get": {
"tags": [
"Orders"
],
"summary": "Get information about an order in the restaurant system",
"description": "Retrieves information about the order. Current version of the response model - application/vnd.eats.order.v2+json",
"operationId": "partner.order.get",
"parameters": [
{
"name": "orderId",
"in": "path",
"description": "Order identifier in the partner's system",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Information about the order successfully retrieved",
"content": {
"application/vnd.eats.order.v2+json": {
"schema": {
"oneOf": [
{
"type": "object",
"description": "Current version of the order model for \"Marketplace\" delivery scheme",
"properties": {
"platform": {
"type": "string",
"description": "Platform identifier. YE - Yandex",
"enum": [
"YE"
]
},
"discriminator": {
"type": "string",
"description": "Schema discriminator object. For MarketplaceOrder, it is \"marketplace\"",
"example": "marketplace"
},
"eatsId": {
"type": "string",
"description": "End-to-end order identifier on the Yandex side in the format DDDDDD-DDDDDDDD",
"example": "190330-12345678"
},
"restaurantId": {
"type": "string",
"description": "Internal identifier of the establishment in the partner system to which the order is transmitted. Free format, UUID4 recommended",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"deliveryInfo": {
"description": "Delivery information",
"properties": {
"clientName": {
"type": "string",
"description": "Client's name in Yandex service",
"example": "John Cena"
},
"phoneNumber": {
"type": "string",
"description": "Phone number to contact the customer in international format. Consists of parts \"+<country code><number>\". May include extension: \"+<country code><number> ext. <extension number>\".",
"example": "+79031111111 ext. 4432"
},
"additionalPhoneNumbers": {
"description": "A list of additional numbers for contacting the client.",
"type": "array",
"items": {
"type": "string",
"description": "Phone number to contact the customer in international format. Consists of parts \"+<country code><number>\". May include extension: \"+<country code><number> ext. <extension number>\".",
"example": "+79031111111 ext. 4432"
}
},
"deliveryDate": {
"type": "string",
"description": "Delivery date (when the client expects the order), in RFC3339 format with fractional seconds (Y-m-d\\TH:i:s.uP)",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
},
"deliveryAddress": {
"description": "Delivery address information",
"properties": {
"full": {
"type": "string",
"description": "Full address",
"example": "Tashkent, Amir Temur Street, building 4, entrance 2. 4th floor, intercom code: 123 K 4567"
},
"latitude": {
"type": "string",
"description": "Delivery point latitude",
"example": "55.756994"
},
"longitude": {
"type": "string",
"description": "Delivery point longitude",
"example": "37.614006"
}
},
"required": [
"full",
"latitude",
"longitude"
]
}
},
"required": [
"clientName",
"deliveryAddress",
"deliveryDate",
"phoneNumber",
"type"
]
},
"paymentInfo": {
"properties": {
"paymentType": {
"type": "string",
"description": "Payment type information. CARD – already paid order, CASH – unpaid order.",
"enum": [
"CARD",
"CASH"
]
},
"itemsCost": {
"type": "number",
"format": "double",
"example": 100,
"description": "Total cost of the dishes in the order"
},
"deliveryFee": {
"type": "number",
"format": "double",
"example": 100,
"description": "Delivery cost"
},
"total": {
"type": "number",
"format": "double",
"example": 200,
"description": "Total order cost"
},
"change": {
"type": "number",
"format": "double",
"example": 500,
"description": "Amount of change required"
}
},
"required": [
"change",
"deliveryFee",
"itemsCost",
"paymentType"
]
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the menu item in the partner system",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Menu item name",
"example": "Pepperoni Pizza"
},
"quantity": {
"type": "number",
"format": "float",
"description": "Quantity of the item in the order",
"example": 3.5
},
"price": {
"type": "number",
"format": "double",
"description": "Price of one item including modification costs. Will be corrected in\n the next version to show the base price without modifications.",
"example": 100
},
"modifications": {
"type": "array",
"description": "List of selected modifications. Can be empty, explicitly transmitted for each individual item in the order. When ordering two items of the same dish with different modifications, different positions with different \"modifications\" lists are transmitted.",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID of the modifier in the partner system",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"group_id": {
"type": "string",
"description": "Unique identifier for a group within a partner system. The Partner Group ID is linked to a specific modifier, which is a component that can be duplicated.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"type": "string",
"description": "Modifier name",
"example": "utensils"
},
"quantity": {
"type": "integer",
"description": "Quantity in the order",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Price of the modifier for the menu item (e.g., additional sauce)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
}
},
"promos": {
"type": "array",
"description": "List of promotions applied to the current dish. If the dish has a non-empty \"promos\" object, it means that a promotion is active in the partner system. If empty, it means no promotions apply to the dish.",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Promotion type. Can be a gift \"GIFT\", percentage discount \"PERCENTAGE\", co-financed discount \"COFINANCE\" and \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Discount amount in currency paid by the partner"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by the partner"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by Yandex"
}
},
"required": [
"type",
"discount"
]
}
}
},
"required": [
"id",
"modifications",
"price",
"quantity",
"promos"
]
}
},
"persons": {
"type": "integer",
"description": "Number of persons for whom the order is placed. May affect the number of cutlery sets",
"example": 2
},
"comment": {
"type": "string",
"description": "Additional order information",
"example": "Additional order information: ..."
},
"promos": {
"type": "array",
"description": "List of promotions applied to the entire order. If the order has a non-empty \"promos\" object, it means that a promotion is active in the partner system. If empty, it means no promotions apply to the order.",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Promotion type. Can be a gift \"GIFT\", percentage discount \"PERCENTAGE\", co-financed discount \"COFINANCE\" and \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Discount amount in currency paid by the partner"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by the partner"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by Yandex"
}
},
"required": [
"type",
"discount"
]
}
}
},
"required": [
"discriminator",
"comment",
"marketplaceOrderDelivery",
"eatsId",
"restaurantId",
"items",
"deliveryInfo",
"paymentInfo",
"marketplaceOrderPayment",
"promos"
]
},
{
"type": "object",
"description": "Current version of the order model for \"Yandex\" delivery scheme.",
"properties": {
"platform": {
"type": "string",
"description": "Platform ID:\n* YE – Yandex\n",
"enum": [
"YE"
]
},
"discriminator": {
"type": "string",
"description": "Schema discriminator object. For YandexOrder, it is \"yandex\".",
"example": "yandex"
},
"eatsId": {
"type": "string",
"description": "End-to-end order identifier on the Yandex side in the format DDDDDD-DDDDDDDD",
"example": "190330-12345678"
},
"restaurantId": {
"type": "string",
"description": "Internal identifier of the establishment in the partner system to which the order is transmitted. Free format, UUID4 recommended.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"deliveryInfo": {
"description": "Delivery information.",
"properties": {
"clientName": {
"type": "string",
"description": "The customer's name in the Yandex service",
"example": "John Cena"
},
"phoneNumber": {
"type": "string",
"description": "Phone number to contact the customer in international format. Consists of parts \"+<country code><number>\". May include extension: \"+<country code><number> ext. <extension number>\".",
"example": "+79031111111 ext. 4432"
},
"additionalPhoneNumbers": {
"description": "A list of additional numbers for contacting the client.",
"type": "array",
"items": {
"type": "string",
"description": "Phone number to contact the customer in international format. Consists of parts \"+<country code><number>\". May include extension: \"+<country code><number> ext. <extension number>\".",
"example": "+79031111111 ext. 4432"
}
},
"courierArrivementDate": {
"type": "string",
"description": "The date when the courier arrives at the restaurant, in RFC 3339 format with fractional part of seconds (Y-m-d\\TH:i:s.uP).",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
},
"realPhoneNumber": {
"type": "string",
"description": "The phone number for contacting the client in an international format. It consists of the parts \"+<country code><number>\". It is indicated if the client consents to the processing of his personal data",
"example": "+79031111111"
},
"pickupCode": {
"type": "string",
"description": "Courier identification code",
"example": 123
}
},
"required": [
"courierArrivementDate"
]
},
"paymentInfo": {
"properties": {
"itemsCost": {
"type": "number",
"format": "double",
"example": 100,
"description": "The full cost of the dishes in the order."
},
"paymentType": {
"type": "string",
"description": "Information about the payment type. CARD – paid order, CASH – unpaid order.",
"enum": [
"CARD",
"CASH"
]
}
},
"required": [
"itemsCost",
"paymentType"
]
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the menu item in the partner system",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Menu item name",
"example": "Pepperoni Pizza"
},
"quantity": {
"type": "number",
"format": "float",
"description": "Quantity of the item in the order",
"example": 3.5
},
"price": {
"type": "number",
"format": "double",
"description": "Price of one item including modification costs. Will be corrected in\n the next version to show the base price without modifications.",
"example": 100
},
"modifications": {
"type": "array",
"description": "List of selected modifications. Can be empty, explicitly transmitted for each individual item in the order. When ordering two items of the same dish with different modifications, different positions with different \"modifications\" lists are transmitted.",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID of the modifier in the partner system",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"group_id": {
"type": "string",
"description": "Unique identifier for a group within a partner system. The Partner Group ID is linked to a specific modifier, which is a component that can be duplicated.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"type": "string",
"description": "Modifier name",
"example": "utensils"
},
"quantity": {
"type": "integer",
"description": "Quantity in the order",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Price of the modifier for the menu item (e.g., additional sauce)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
}
},
"promos": {
"type": "array",
"description": "List of promotions applied to the current dish. If the dish has a non-empty \"promos\" object, it means that a promotion is active in the partner system. If empty, it means no promotions apply to the dish.",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Promotion type. Can be a gift \"GIFT\", percentage discount \"PERCENTAGE\", co-financed discount \"COFINANCE\" and \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Discount amount in currency paid by the partner"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by the partner"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by Yandex"
}
},
"required": [
"type",
"discount"
]
}
}
},
"required": [
"id",
"modifications",
"price",
"quantity",
"promos"
]
}
},
"persons": {
"type": "integer",
"description": "Number of persons for whom the order is placed. May affect the number of cutlery sets.",
"example": 2
},
"comment": {
"type": "string",
"description": "Additional order information",
"example": "Additional order information: ..."
},
"promos": {
"type": "array",
"description": "List of promotions applied to the entire order. If the order has a non-empty \"promos\" object, it means that a promotion is active in the partner system. If empty, it means no promotions apply to the order.",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Promotion type. Can be a gift \"GIFT\", percentage discount \"PERCENTAGE\", co-financed discount \"COFINANCE\" and \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Discount amount in currency paid by the partner"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by the partner"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by Yandex"
}
},
"required": [
"type",
"discount"
],
"type": "object"
}
}
},
"required": [
"discriminator",
"comment",
"nativeOrderDelivery",
"deliveryInfo",
"paymentInfo",
"eatsId",
"restaurantId",
"items",
"nativeOrderPayment",
"promos"
]
},
{
"type": "object",
"description": "Current version of the order model for \"pickup\" delivery scheme",
"properties": {
"platform": {
"type": "string",
"description": "Platform identifier. YE - Yandex",
"enum": [
"YE"
]
},
"discriminator": {
"type": "string",
"description": "Object schema discriminator. For PickupOrder equals \"pickup\"",
"example": "pickup"
},
"eatsId": {
"type": "string",
"description": "End-to-end order identifier on the Yandex side in the format DDDDDD-DDDDDD",
"example": "190330-123456"
},
"restaurantId": {
"type": "string",
"description": "Internal identifier of the establishment in the partner system to which the order is transmitted. Free format, UUID4 recommended",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"deliveryInfo": {
"description": "Delivery info",
"properties": {
"clientName": {
"type": "string",
"description": "Client's name in Yandex service",
"example": "John Cena"
},
"phoneNumber": {
"type": "string",
"description": "Phone number to contact the customer in international format. Consists of parts \"+<country code><number>\". May include extension: \"+<country code><number> ext. <extension number>\".",
"example": "+79031111111 ext. 4432"
},
"additionalPhoneNumbers": {
"description": "A list of additional numbers for contacting the client.",
"type": "array",
"items": {
"type": "string",
"description": "Phone number to contact the customer in international format. Consists of parts \"+<country code><number>\". May include extension: \"+<country code><number> ext. <extension number>\".",
"example": "+79031111111 ext. 4432"
}
},
"clientArrivementDate": {
"type": "string",
"description": "The date when the customer arrives at the restaurant, in RFC 3339 format with fractional part of seconds (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": "Payment type information",
"enum": [
"CARD",
"CASH"
]
},
"itemsCost": {
"type": "number",
"format": "double",
"example": 100,
"description": "Total cost of the dishes in the order"
},
"total": {
"type": "number",
"format": "double",
"example": 200,
"description": "Total order cost"
},
"change": {
"type": "number",
"format": "double",
"example": 500,
"description": "Amount of change required."
}
},
"required": [
"change",
"itemsCost",
"paymentType"
]
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the menu item in the partner system",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Menu item name",
"example": "Pepperoni Pizza"
},
"quantity": {
"type": "number",
"format": "float",
"description": "Quantity of the item in the order",
"example": 3.5
},
"price": {
"type": "number",
"format": "double",
"description": "Price of one item including modification costs. Will be corrected in\n the next version to show the base price without modifications.",
"example": 100
},
"modifications": {
"type": "array",
"description": "List of selected modifications. Can be empty, explicitly transmitted for each individual item in the order. When ordering two items of the same dish with different modifications, different positions with different \"modifications\" lists are transmitted.",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID of the modifier in the partner system",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"group_id": {
"type": "string",
"description": "Unique identifier for a group within a partner system. The Partner Group ID is linked to a specific modifier, which is a component that can be duplicated.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"type": "string",
"description": "Modifier name",
"example": "utensils"
},
"quantity": {
"type": "integer",
"description": "Quantity in the order",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Price of the modifier for the menu item (e.g., additional sauce)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
}
},
"promos": {
"type": "array",
"description": "List of promotions applied to the current dish. If the dish has a non-empty \"promos\" object, it means that a promotion is active in the partner system. If empty, it means no promotions apply to the dish.",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Promotion type. Can be a gift \"GIFT\", percentage discount \"PERCENTAGE\", co-financed discount \"COFINANCE\" and \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Discount amount in currency paid by the partner"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by the partner"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by Yandex"
}
},
"required": [
"type",
"discount"
]
}
}
},
"required": [
"id",
"modifications",
"price",
"quantity",
"promos"
]
}
},
"persons": {
"type": "integer",
"description": "Number of people the order is for. May affect the number of utensil sets",
"example": 2
},
"comment": {
"type": "string",
"description": "Additional order information",
"example": "Additional order information: ..."
},
"promos": {
"type": "array",
"description": "List of promotions active for the entire order. If the order object \"promos\" is not empty, then the order has a promotion in the partner's system. If empty – this means that the order does not have any promotions",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Promotion type. Can be a gift \"GIFT\", percentage discount \"PERCENTAGE\", co-financed discount \"COFINANCE\" and \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Discount amount in currency paid by the partner"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by the partner"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by Yandex"
}
},
"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. **_An array with an object from the error list is expected in the response body_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
},
"401": {
"description": "Authorization failed - the token expired or was not passed in the request. A retry will be made",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Reason for authorization failure",
"example": "Access token has been expired. You should request a new one"
}
},
"required": [
"reason"
]
}
}
}
},
"404": {
"description": "The order was not found in the system. **_An array with an object from the error list is expected in the response body_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
},
"500": {
"description": "Internal server errors. **_An array with an object from the error list is expected in the response body_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
}
},
"security": [
{
"OAuth2": [
"read",
"write"
]
}
]
},
"delete": {
"summary": "Cancel an order in the partner's system",
"description": "Cancels an order in the partner's system",
"operationId": "partner.order.cancel",
"tags": [
"Orders"
],
"parameters": [
{
"name": "orderId",
"in": "path",
"required": true,
"description": "Order identifier in the partner's system",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"eatsId": {
"type": "string",
"description": "End-to-end order identifier on the Yandex side in the format DDDDDD-DDDDDDDD",
"example": "190330-12345678"
},
"comment": {
"type": "string",
"description": "Description of cancellation reasons (can be empty)",
"example": "Client refusal"
}
},
"required": [
"eatsId"
]
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Order successfully canceled in the restaurant"
},
"400": {
"description": "Bad request. **_An array with an object from the error list is expected in the response body_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
},
"401": {
"description": "Authorization failed - the token expired or was not passed in the request. A retry will be made",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Reason for authorization failure",
"example": "Access token has been expired. You should request a new one"
}
},
"required": [
"reason"
]
}
}
}
},
"404": {
"description": "The order was not found in the system. **_An array with an object from the error list is expected in the response body_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
},
"500": {
"description": "Internal server errors. **_An array with an object from the error list is expected in the response body_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
}
},
"security": [
{
"OAuth2": [
"read",
"write"
]
}
]
},
"put": {
"tags": [
"Orders"
],
"summary": "Update an order in the restaurant system",
"description": "Update the composition of an order in the partner's system initiated by Yandex. Use of this method requires coordination with Yandex staff. The entire order object is passed. Current version of the request model - application/vnd.eats.order.v2+json",
"operationId": "partner.order.update",
"parameters": [
{
"name": "orderId",
"in": "path",
"required": true,
"description": "Order identifier in the partner's system",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/vnd.eats.order.v2+json": {
"schema": {
"oneOf": [
{
"type": "object",
"description": "Current version of the order model for \"Marketplace\" delivery scheme",
"properties": {
"platform": {
"type": "string",
"description": "Platform identifier. YE - Yandex",
"enum": [
"YE"
]
},
"discriminator": {
"type": "string",
"description": "Schema discriminator object. For MarketplaceOrder, it is \"marketplace\"",
"example": "marketplace"
},
"eatsId": {
"type": "string",
"description": "End-to-end order identifier on the Yandex side in the format DDDDDD-DDDDDDDD",
"example": "190330-12345678"
},
"restaurantId": {
"type": "string",
"description": "Internal identifier of the establishment in the partner system to which the order is transmitted. Free format, UUID4 recommended",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"deliveryInfo": {
"description": "Delivery information",
"properties": {
"clientName": {
"type": "string",
"description": "Client's name in Yandex service",
"example": "John Cena"
},
"phoneNumber": {
"type": "string",
"description": "Phone number to contact the customer in international format. Consists of parts \"+<country code><number>\". May include extension: \"+<country code><number> ext. <extension number>\".",
"example": "+79031111111 ext. 4432"
},
"additionalPhoneNumbers": {
"description": "A list of additional numbers for contacting the client.",
"type": "array",
"items": {
"type": "string",
"description": "Phone number to contact the customer in international format. Consists of parts \"+<country code><number>\". May include extension: \"+<country code><number> ext. <extension number>\".",
"example": "+79031111111 ext. 4432"
}
},
"deliveryDate": {
"type": "string",
"description": "Delivery date (when the client expects the order), in RFC3339 format with fractional seconds (Y-m-d\\TH:i:s.uP)",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
},
"deliveryAddress": {
"description": "Delivery address information",
"properties": {
"full": {
"type": "string",
"description": "Full address",
"example": "Tashkent, Amir Temur Street, building 4, entrance 2. 4th floor, intercom code: 123 K 4567"
},
"latitude": {
"type": "string",
"description": "Delivery point latitude",
"example": "55.756994"
},
"longitude": {
"type": "string",
"description": "Delivery point longitude",
"example": "37.614006"
}
},
"required": [
"full",
"latitude",
"longitude"
]
}
},
"required": [
"clientName",
"deliveryAddress",
"deliveryDate",
"phoneNumber",
"type"
]
},
"paymentInfo": {
"properties": {
"paymentType": {
"type": "string",
"description": "Payment type information. CARD – already paid order, CASH – unpaid order.",
"enum": [
"CARD",
"CASH"
]
},
"itemsCost": {
"type": "number",
"format": "double",
"example": 100,
"description": "Total cost of the dishes in the order"
},
"deliveryFee": {
"type": "number",
"format": "double",
"example": 100,
"description": "Delivery cost"
},
"total": {
"type": "number",
"format": "double",
"example": 200,
"description": "Total order cost"
},
"change": {
"type": "number",
"format": "double",
"example": 500,
"description": "Amount of change required"
}
},
"required": [
"change",
"deliveryFee",
"itemsCost",
"paymentType"
]
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the menu item in the partner system",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Menu item name",
"example": "Pepperoni Pizza"
},
"quantity": {
"type": "number",
"format": "float",
"description": "Quantity of the item in the order",
"example": 3.5
},
"price": {
"type": "number",
"format": "double",
"description": "Price of one item including modification costs. Will be corrected in\n the next version to show the base price without modifications.",
"example": 100
},
"modifications": {
"type": "array",
"description": "List of selected modifications. Can be empty, explicitly transmitted for each individual item in the order. When ordering two items of the same dish with different modifications, different positions with different \"modifications\" lists are transmitted.",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID of the modifier in the partner system",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"group_id": {
"type": "string",
"description": "Unique identifier for a group within a partner system. The Partner Group ID is linked to a specific modifier, which is a component that can be duplicated.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"type": "string",
"description": "Modifier name",
"example": "utensils"
},
"quantity": {
"type": "integer",
"description": "Quantity in the order",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Price of the modifier for the menu item (e.g., additional sauce)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
}
},
"promos": {
"type": "array",
"description": "List of promotions applied to the current dish. If the dish has a non-empty \"promos\" object, it means that a promotion is active in the partner system. If empty, it means no promotions apply to the dish.",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Promotion type. Can be a gift \"GIFT\", percentage discount \"PERCENTAGE\", co-financed discount \"COFINANCE\" and \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Discount amount in currency paid by the partner"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by the partner"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by Yandex"
}
},
"required": [
"type",
"discount"
]
}
}
},
"required": [
"id",
"modifications",
"price",
"quantity",
"promos"
]
}
},
"persons": {
"type": "integer",
"description": "Number of persons for whom the order is placed. May affect the number of cutlery sets",
"example": 2
},
"comment": {
"type": "string",
"description": "Additional order information",
"example": "Additional order information: ..."
},
"promos": {
"type": "array",
"description": "List of promotions applied to the entire order. If the order has a non-empty \"promos\" object, it means that a promotion is active in the partner system. If empty, it means no promotions apply to the order.",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Promotion type. Can be a gift \"GIFT\", percentage discount \"PERCENTAGE\", co-financed discount \"COFINANCE\" and \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Discount amount in currency paid by the partner"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by the partner"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by Yandex"
}
},
"required": [
"type",
"discount"
]
}
}
},
"required": [
"discriminator",
"comment",
"marketplaceOrderDelivery",
"eatsId",
"restaurantId",
"items",
"deliveryInfo",
"paymentInfo",
"marketplaceOrderPayment",
"promos"
]
},
{
"type": "object",
"description": "Current version of the order model for \"Yandex\" delivery scheme.",
"properties": {
"platform": {
"type": "string",
"description": "Platform ID:\n* YE – Yandex\n",
"enum": [
"YE"
]
},
"discriminator": {
"type": "string",
"description": "Schema discriminator object. For YandexOrder, it is \"yandex\".",
"example": "yandex"
},
"eatsId": {
"type": "string",
"description": "End-to-end order identifier on the Yandex side in the format DDDDDD-DDDDDDDD",
"example": "190330-12345678"
},
"restaurantId": {
"type": "string",
"description": "Internal identifier of the establishment in the partner system to which the order is transmitted. Free format, UUID4 recommended.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"deliveryInfo": {
"description": "Delivery information.",
"properties": {
"clientName": {
"type": "string",
"description": "The customer's name in the Yandex service",
"example": "John Cena"
},
"phoneNumber": {
"type": "string",
"description": "Phone number to contact the customer in international format. Consists of parts \"+<country code><number>\". May include extension: \"+<country code><number> ext. <extension number>\".",
"example": "+79031111111 ext. 4432"
},
"additionalPhoneNumbers": {
"description": "A list of additional numbers for contacting the client.",
"type": "array",
"items": {
"type": "string",
"description": "Phone number to contact the customer in international format. Consists of parts \"+<country code><number>\". May include extension: \"+<country code><number> ext. <extension number>\".",
"example": "+79031111111 ext. 4432"
}
},
"courierArrivementDate": {
"type": "string",
"description": "The date when the courier arrives at the restaurant, in RFC 3339 format with fractional part of seconds (Y-m-d\\TH:i:s.uP).",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
},
"realPhoneNumber": {
"type": "string",
"description": "The phone number for contacting the client in an international format. It consists of the parts \"+<country code><number>\". It is indicated if the client consents to the processing of his personal data",
"example": "+79031111111"
},
"pickupCode": {
"type": "string",
"description": "Courier identification code",
"example": 123
}
},
"required": [
"courierArrivementDate"
]
},
"paymentInfo": {
"properties": {
"itemsCost": {
"type": "number",
"format": "double",
"example": 100,
"description": "The full cost of the dishes in the order."
},
"paymentType": {
"type": "string",
"description": "Information about the payment type. CARD – paid order, CASH – unpaid order.",
"enum": [
"CARD",
"CASH"
]
}
},
"required": [
"itemsCost",
"paymentType"
]
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the menu item in the partner system",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Menu item name",
"example": "Pepperoni Pizza"
},
"quantity": {
"type": "number",
"format": "float",
"description": "Quantity of the item in the order",
"example": 3.5
},
"price": {
"type": "number",
"format": "double",
"description": "Price of one item including modification costs. Will be corrected in\n the next version to show the base price without modifications.",
"example": 100
},
"modifications": {
"type": "array",
"description": "List of selected modifications. Can be empty, explicitly transmitted for each individual item in the order. When ordering two items of the same dish with different modifications, different positions with different \"modifications\" lists are transmitted.",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID of the modifier in the partner system",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"group_id": {
"type": "string",
"description": "Unique identifier for a group within a partner system. The Partner Group ID is linked to a specific modifier, which is a component that can be duplicated.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"type": "string",
"description": "Modifier name",
"example": "utensils"
},
"quantity": {
"type": "integer",
"description": "Quantity in the order",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Price of the modifier for the menu item (e.g., additional sauce)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
}
},
"promos": {
"type": "array",
"description": "List of promotions applied to the current dish. If the dish has a non-empty \"promos\" object, it means that a promotion is active in the partner system. If empty, it means no promotions apply to the dish.",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Promotion type. Can be a gift \"GIFT\", percentage discount \"PERCENTAGE\", co-financed discount \"COFINANCE\" and \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Discount amount in currency paid by the partner"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by the partner"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by Yandex"
}
},
"required": [
"type",
"discount"
]
}
}
},
"required": [
"id",
"modifications",
"price",
"quantity",
"promos"
]
}
},
"persons": {
"type": "integer",
"description": "Number of persons for whom the order is placed. May affect the number of cutlery sets.",
"example": 2
},
"comment": {
"type": "string",
"description": "Additional order information",
"example": "Additional order information: ..."
},
"promos": {
"type": "array",
"description": "List of promotions applied to the entire order. If the order has a non-empty \"promos\" object, it means that a promotion is active in the partner system. If empty, it means no promotions apply to the order.",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Promotion type. Can be a gift \"GIFT\", percentage discount \"PERCENTAGE\", co-financed discount \"COFINANCE\" and \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Discount amount in currency paid by the partner"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by the partner"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by Yandex"
}
},
"required": [
"type",
"discount"
],
"type": "object"
}
}
},
"required": [
"discriminator",
"comment",
"nativeOrderDelivery",
"deliveryInfo",
"paymentInfo",
"eatsId",
"restaurantId",
"items",
"nativeOrderPayment",
"promos"
]
},
{
"type": "object",
"description": "Current version of the order model for \"pickup\" delivery scheme",
"properties": {
"platform": {
"type": "string",
"description": "Platform identifier. YE - Yandex",
"enum": [
"YE"
]
},
"discriminator": {
"type": "string",
"description": "Object schema discriminator. For PickupOrder equals \"pickup\"",
"example": "pickup"
},
"eatsId": {
"type": "string",
"description": "End-to-end order identifier on the Yandex side in the format DDDDDD-DDDDDD",
"example": "190330-123456"
},
"restaurantId": {
"type": "string",
"description": "Internal identifier of the establishment in the partner system to which the order is transmitted. Free format, UUID4 recommended",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"deliveryInfo": {
"description": "Delivery info",
"properties": {
"clientName": {
"type": "string",
"description": "Client's name in Yandex service",
"example": "John Cena"
},
"phoneNumber": {
"type": "string",
"description": "Phone number to contact the customer in international format. Consists of parts \"+<country code><number>\". May include extension: \"+<country code><number> ext. <extension number>\".",
"example": "+79031111111 ext. 4432"
},
"additionalPhoneNumbers": {
"description": "A list of additional numbers for contacting the client.",
"type": "array",
"items": {
"type": "string",
"description": "Phone number to contact the customer in international format. Consists of parts \"+<country code><number>\". May include extension: \"+<country code><number> ext. <extension number>\".",
"example": "+79031111111 ext. 4432"
}
},
"clientArrivementDate": {
"type": "string",
"description": "The date when the customer arrives at the restaurant, in RFC 3339 format with fractional part of seconds (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": "Payment type information",
"enum": [
"CARD",
"CASH"
]
},
"itemsCost": {
"type": "number",
"format": "double",
"example": 100,
"description": "Total cost of the dishes in the order"
},
"total": {
"type": "number",
"format": "double",
"example": 200,
"description": "Total order cost"
},
"change": {
"type": "number",
"format": "double",
"example": 500,
"description": "Amount of change required."
}
},
"required": [
"change",
"itemsCost",
"paymentType"
]
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the menu item in the partner system",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Menu item name",
"example": "Pepperoni Pizza"
},
"quantity": {
"type": "number",
"format": "float",
"description": "Quantity of the item in the order",
"example": 3.5
},
"price": {
"type": "number",
"format": "double",
"description": "Price of one item including modification costs. Will be corrected in\n the next version to show the base price without modifications.",
"example": 100
},
"modifications": {
"type": "array",
"description": "List of selected modifications. Can be empty, explicitly transmitted for each individual item in the order. When ordering two items of the same dish with different modifications, different positions with different \"modifications\" lists are transmitted.",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID of the modifier in the partner system",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"group_id": {
"type": "string",
"description": "Unique identifier for a group within a partner system. The Partner Group ID is linked to a specific modifier, which is a component that can be duplicated.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"type": "string",
"description": "Modifier name",
"example": "utensils"
},
"quantity": {
"type": "integer",
"description": "Quantity in the order",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Price of the modifier for the menu item (e.g., additional sauce)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
}
},
"promos": {
"type": "array",
"description": "List of promotions applied to the current dish. If the dish has a non-empty \"promos\" object, it means that a promotion is active in the partner system. If empty, it means no promotions apply to the dish.",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Promotion type. Can be a gift \"GIFT\", percentage discount \"PERCENTAGE\", co-financed discount \"COFINANCE\" and \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Discount amount in currency paid by the partner"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by the partner"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by Yandex"
}
},
"required": [
"type",
"discount"
]
}
}
},
"required": [
"id",
"modifications",
"price",
"quantity",
"promos"
]
}
},
"persons": {
"type": "integer",
"description": "Number of people the order is for. May affect the number of utensil sets",
"example": 2
},
"comment": {
"type": "string",
"description": "Additional order information",
"example": "Additional order information: ..."
},
"promos": {
"type": "array",
"description": "List of promotions active for the entire order. If the order object \"promos\" is not empty, then the order has a promotion in the partner's system. If empty – this means that the order does not have any promotions",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Promotion type. Can be a gift \"GIFT\", percentage discount \"PERCENTAGE\", co-financed discount \"COFINANCE\" and \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Discount amount in currency paid by the partner"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by the partner"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by Yandex"
}
},
"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": "The order update has been successfully processed by the restaurant's internal system",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"result": {
"type": "string",
"example": "OK"
}
}
}
}
}
},
"400": {
"description": "Bad request. **_An array with an object from the error list is expected in the response body_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
},
"401": {
"description": "Authorization failed - the token expired or was not passed in the request. A retry will be made",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Reason for authorization failure",
"example": "Access token has been expired. You should request a new one"
}
},
"required": [
"reason"
]
}
}
}
},
"404": {
"description": "The order was not found in the system. **_An array with an object from the error list is expected in the response body_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
},
"422": {
"description": "The order cannot be updated",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
},
"500": {
"description": "Internal server errors. **_An array with an object from the error list is expected in the response body_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
}
},
"security": [
{
"OAuth2": [
"read",
"write"
]
}
]
}
},
"/order/{orderId}/status": {
"get": {
"tags": [
"Orders"
],
"summary": "Get the order status in the restaurant system",
"description": "Retrieves the order status",
"operationId": "partner.order.status",
"parameters": [
{
"name": "orderId",
"in": "path",
"description": "Order identifier in the partner's system",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Order status successfully retrieved",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Order status. Must be valid – for example, a prepared order cannot be made\nnew again. Status transition is only possible in the specified direction:\nfrom NEW to DELIVERED. Exceptions: the order can move to the CANCELLED\n\nStatus description:\n\n- NEW – new, just sent to the restaurant.\n- ACCEPTED_BY_RESTAURANT – order confirmed by the restaurant.\n- COOKING – order preparation started.\n- READY – order prepared.\n- TAKEN_BY_COURIER – courier picked up the order from the restaurant.\n- DELIVERED – order completed.\n- CANCELLED – order cancelled.\n\nNEW -> ACCEPTED_BY_RESTAURANT -> COOKING -> READY ->\nTAKEN_BY_COURIER -> DELIVERED. From any status -> CANCELLED\n",
"enum": [
"NEW",
"ACCEPTED_BY_RESTAURANT",
"COOKING",
"READY",
"TAKEN_BY_COURIER",
"DELIVERED",
"CANCELLED"
]
},
"comment": {
"maxLength": 500,
"type": "string",
"description": "Status change comment",
"example": "New order"
},
"updatedAt": {
"type": "string",
"description": "Date when the order status changed, in RFC3339 format with fractional seconds (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. **_An array with an object from the error list is expected in the response body_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
},
"401": {
"description": "Authorization failed - the token expired or was not passed in the request. A retry will be made",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Reason for authorization failure",
"example": "Access token has been expired. You should request a new one"
}
},
"required": [
"reason"
]
}
}
}
},
"404": {
"description": "The order was not found in the system. **_An array with an object from the error list is expected in the response body_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
},
"500": {
"description": "Internal server errors. **_An array with an object from the error list is expected in the response body_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
}
},
"security": [
{
"OAuth2": [
"read",
"write"
]
}
]
},
"put": {
"tags": [
"Orders"
],
"summary": "Order status update from Yandex",
"description": "Updating the order status in the partner's system by Yandex",
"operationId": "partner.order.status.put",
"parameters": [
{
"name": "orderId",
"in": "path",
"description": "Order identifier in the partner's system",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "The order status has been successfully updated",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": true,
"properties": {
"status": {
"type": "string",
"description": "Order ststus.\nStatus description:\n- TAKEN_BY_COURIER - courier picked up the order from the restaurant.\n- DELIVERED – order completed.\n- CANCELLED – order cancelled.",
"enum": [
"CANCELLED",
"TAKEN_BY_COURIER",
"DELIVERED"
]
},
"attributes": {
"type": "array",
"description": "Additional attributes when changing the order status, for example, a sign of payment upon cancellation",
"items": {
"type": "string",
"example": "paid"
}
},
"comment": {
"maxLength": 500,
"type": "string",
"description": "Description of cancellation reasons (can be empty)",
"example": "test"
},
"reason": {
"type": "string",
"description": "The reason for the cancellation of the order. It is transmitted only with the CANCELLED status",
"example": "place.unable_to_call"
},
"updatedAt": {
"type": "string",
"description": "The date when the order status changed, in RFC 3339 format with fractional part of seconds (Y-m-d\\TH:i:s.uP)",
"example": "1937-01-01T12:00:27.870000+00:20"
}
},
"required": [
"status"
]
}
}
}
},
"400": {
"description": "Bad request. **_An array with an object from the error list is expected in the response body_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
},
"401": {
"description": "Authorization failed - the token expired or was not passed in the request. A retry will be made",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Reason for authorization failure",
"example": "Access token has been expired. You should request a new one"
}
},
"required": [
"reason"
]
}
}
}
},
"404": {
"description": "The order was not found in the system. **_An array with an object from the error list is expected in the response body_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
},
"500": {
"description": "Internal server errors. **_An array with an object from the error list is expected in the response body_**",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
}
},
"security": [
{
"OAuth2": [
"read",
"write"
]
}
]
}
},
"/order/{orderId}/courier": {
"put": {
"tags": [
"Orders"
],
"summary": "Update information about the courier",
"description": "An object containing up-to-date information about the courier is transmitted.",
"operationId": "partner.order.courier.post",
"parameters": [
{
"name": "orderId",
"in": "path",
"description": "Order identifier in the partner's system",
"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": "Courier's name",
"example": "Pablo"
},
"type": {
"description": "Courier Type:\n* pedestrian\n* bicycle\n* vehicle\n* motorcycle\n* electric_bicycle\n* rover (delivery robot).",
"enum": [
"pedestrian",
"bicycle",
"vehicle",
"motorcycle",
"electric_bicycle",
"rover"
],
"type": "string",
"default": "pedestrian"
},
"phone": {
"type": "string",
"description": "Phone number to contact the customer in international format. Consists of parts \"+<country code><number>\". May include extension: \"+<country code><number> ext. <extension number>\".",
"example": "+79031111111 ext. 4432"
},
"status": {
"description": "Courier status\n* accepted - the courier accepted the order.\n* arrived_to_source - The courier arrived at the place..\n* taken - the courier took the order.\n* arrived_to_destination - the courier arrived to the client.\n* finished - order is delivered.",
"enum": [
"accepted",
"arrived_to_source",
"taken",
"arrived_to_destination",
"finished"
],
"type": "string",
"default": "accepted"
}
}
},
"order": {
"required": [
"orderNr"
],
"properties": {
"orderNr": {
"type": "string",
"description": "End-to-end order identifier on the Yandex side in the format 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": "Estimated time of arrival of the courier at the restaurant\n in RFC 3339 format with fractional part of seconds (Y-m-d\\TH:i:s.uP)"
}
}
}
}
}
},
"responses": {
"204": {
"description": "Information about the courier has been successfully updated"
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
},
"401": {
"description": "Authorization failed - the token expired or was not passed in the request. A retry will be made",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Reason for authorization failure",
"example": "Access token has been expired. You should request a new one"
}
},
"required": [
"reason"
]
}
}
}
},
"404": {
"description": "The place was not found"
}
},
"security": [
{
"OAuth2": [
"read"
]
}
]
}
},
"/places/{restaurantId}/zones": {
"get": {
"tags": [
"Delivery zones"
],
"summary": "Get restaurant's delivery zones",
"description": "The method of creating delivery zones in Yandex systems. It works according to a schedule (by default, once a day at 9:00, it is possible to change/extend the request interval in agreement with Yandex).\n\n{% note info %}\n\nThis method is only available by subscription.\n\n{% endnote %}\n",
"parameters": [
{
"name": "restaurantId",
"in": "path",
"description": "The ID of the restaurant in the partner's system",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Sucsess",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"description": "Delivery area",
"required": [
"coordinates",
"meta",
"name"
],
"properties": {
"coordinates": {
"type": "array",
"description": "The set of coordinates of the polygon must contain an ordered a set of coordinate points",
"minLength": 4,
"maxLength": 500,
"items": {
"type": "object",
"description": "The coordinate point of the zone",
"required": [
"lt",
"lg"
],
"properties": {
"lt": {
"type": "number",
"example": 56.473673
},
"lg": {
"type": "number",
"example": 35.918658
}
}
}
},
"meta": {
"type": "object",
"description": "Additional data of delivery zones",
"required": [
"zoneId",
"enabled",
"intervals",
"averageDeliveryTime",
"thresholds"
],
"properties": {
"zoneId": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "Delivery zone ID in the partner's system"
},
"enabled": {
"type": "boolean",
"description": "The boolean flag of the Delivery zone activity. When received in response `false` - the zone will become inactive."
},
"intervals": {
"type": "object",
"description": "Delivery zones opening hours",
"required": [
"mon",
"tue",
"wed",
"thu",
"fri",
"sat",
"sun"
],
"properties": {
"mon": {
"type": "array",
"description": "Opening hours for Monday, leave an empty array for non-working days",
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"tue": {
"type": "array",
"description": "Opening hours for Tuesday, leave an empty array for non-working days",
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"wed": {
"type": "array",
"description": "Opening hours for Wednesday, leave an empty array for non-working days",
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"thu": {
"type": "array",
"description": "Opening hours for Thursday, leave an empty array for non-working days",
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"fri": {
"type": "array",
"description": "Opening hours for Friday, leave an empty array for non-working days",
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"sat": {
"type": "array",
"description": "Opening hours for Saturday, leave an empty array for non-working days",
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"sun": {
"type": "array",
"description": "Opening hours for Sunday, leave an empty array for non-working days",
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
}
}
},
"averageDeliveryTime": {
"type": "number",
"description": "Average waiting time for delivery"
},
"thresholds": {
"description": "Terms of delivery",
"minLength": 1,
"maxLength": 10,
"type": "array",
"items": {
"type": "object",
"description": "Terms of delivery",
"required": [
"orderCost",
"deliveryCost"
],
"properties": {
"orderCost": {
"type": "object",
"description": "Minimum order amount for delivery",
"allOf": [
{
"type": "object",
"description": "Presentation of the amount of money",
"required": [
"currency",
"value"
],
"properties": {
"currency": {
"type": "string",
"description": "Three-letter currency designation ISO 4217",
"minLength": 3,
"maxLength": 3,
"example": "SUM"
},
"value": {
"type": "number",
"description": "The value in the specified currency",
"minimum": 0,
"example": 0
}
}
}
]
},
"deliveryCost": {
"type": "object",
"description": "The cost of delivery. Specify 0 for free shipping",
"allOf": [
{
"type": "object",
"description": "Presentation of the amount of money",
"required": [
"currency",
"value"
],
"properties": {
"currency": {
"type": "string",
"description": "Three-letter currency designation ISO 4217",
"minLength": 3,
"maxLength": 3,
"example": "SUM"
},
"value": {
"type": "number",
"description": "The value in the specified currency",
"minimum": 0,
"example": 0
}
}
}
]
}
}
}
},
"courierType": {
"type": "string",
"enum": [
"pedestrian",
"bicycle",
"vehicle",
"motorcycle"
]
}
}
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "Delivery zone name"
}
}
}
}
}
}
},
"400": {
"description": "Error in the parameters, the response contains a list of validation errors",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
},
"401": {
"description": "Authorization failed - the token expired or was not passed in the request. A retry will be made",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Reason for authorization failure",
"example": "Access token has been expired. You should request a new one"
}
},
"required": [
"reason"
]
}
}
}
},
"500": {
"description": "Internal server errors",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
}
}
}
},
"/places/{restaurantId}/zone/meta": {
"get": {
"tags": [
"Delivery zones"
],
"summary": "Get delivery data to update information in delivery areas",
"description": "The method of updating already created delivery zones. It works with a certain frequency (by default, once every 5 minutes).\nYou can update the parameters of the delivery zones already available in Yandex systems.\nFor example, you can update the working intervals of the zone, the average delivery time in the zones, and the delivery conditions.\nYou cannot change the coordinates of the zones. To change the coordinates, you will have to create a new zone.\n\n{% note info %}\n\nThis method is only available by subscription.\n\n{% endnote %}\n",
"parameters": [
{
"name": "restaurantId",
"in": "path",
"description": "The ID of the restaurant in the partner's system",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Sucsess",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"description": "Additional data of delivery zones",
"required": [
"zoneId",
"enabled",
"intervals",
"averageDeliveryTime",
"thresholds"
],
"properties": {
"zoneId": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "Delivery zone ID in the partner's system"
},
"enabled": {
"type": "boolean",
"description": "The boolean flag of the Delivery zone activity. When received in response `false` - the zone will become inactive."
},
"intervals": {
"type": "object",
"description": "Delivery zones opening hours",
"required": [
"mon",
"tue",
"wed",
"thu",
"fri",
"sat",
"sun"
],
"properties": {
"mon": {
"type": "array",
"description": "Opening hours for Monday, leave an empty array for non-working days",
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"tue": {
"type": "array",
"description": "Opening hours for Tuesday, leave an empty array for non-working days",
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"wed": {
"type": "array",
"description": "Opening hours for Wednesday, leave an empty array for non-working days",
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"thu": {
"type": "array",
"description": "Opening hours for Thursday, leave an empty array for non-working days",
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"fri": {
"type": "array",
"description": "Opening hours for Friday, leave an empty array for non-working days",
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"sat": {
"type": "array",
"description": "Opening hours for Saturday, leave an empty array for non-working days",
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"sun": {
"type": "array",
"description": "Opening hours for Sunday, leave an empty array for non-working days",
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
}
}
},
"averageDeliveryTime": {
"type": "number",
"description": "Average waiting time for delivery"
},
"thresholds": {
"description": "Terms of delivery",
"minLength": 1,
"maxLength": 10,
"type": "array",
"items": {
"type": "object",
"description": "Terms of delivery",
"required": [
"orderCost",
"deliveryCost"
],
"properties": {
"orderCost": {
"type": "object",
"description": "Minimum order amount for delivery",
"allOf": [
{
"type": "object",
"description": "Presentation of the amount of money",
"required": [
"currency",
"value"
],
"properties": {
"currency": {
"type": "string",
"description": "Three-letter currency designation ISO 4217",
"minLength": 3,
"maxLength": 3,
"example": "SUM"
},
"value": {
"type": "number",
"description": "The value in the specified currency",
"minimum": 0,
"example": 0
}
}
}
]
},
"deliveryCost": {
"type": "object",
"description": "The cost of delivery. Specify 0 for free shipping",
"allOf": [
{
"type": "object",
"description": "Presentation of the amount of money",
"required": [
"currency",
"value"
],
"properties": {
"currency": {
"type": "string",
"description": "Three-letter currency designation ISO 4217",
"minLength": 3,
"maxLength": 3,
"example": "SUM"
},
"value": {
"type": "number",
"description": "The value in the specified currency",
"minimum": 0,
"example": 0
}
}
}
]
}
}
}
},
"courierType": {
"type": "string",
"enum": [
"pedestrian",
"bicycle",
"vehicle",
"motorcycle"
]
}
}
}
}
}
}
},
"400": {
"description": "Error in the parameters, the response contains a list of validation errors",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
},
"401": {
"description": "Authorization failed - the token expired or was not passed in the request. A retry will be made",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Reason for authorization failure",
"example": "Access token has been expired. You should request a new one"
}
},
"required": [
"reason"
]
}
}
}
},
"500": {
"description": "Internal server errors",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
}
}
}
},
"/places/{restaurantId}/schedule": {
"get": {
"tags": [
"Working schedule"
],
"summary": "Get the restaurant's opening hours",
"description": "It works according to a schedule (it is possible to change/extend the request interval in agreement with Yandex)\n\n{% note info %}\n\nThis method is only available by subscription.\n\n{% endnote %}\n",
"parameters": [
{
"name": "restaurantId",
"in": "path",
"description": "The ID of the restaurant in the partner's system",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Sucsess",
"content": {
"application/json": {
"schema": {
"type": "object",
"description": "The partner's outlet's work schedule by day of the week",
"required": [
"mon",
"tue",
"wed",
"thu",
"fri",
"sat",
"sun"
],
"properties": {
"mon": {
"type": "array",
"description": "Opening hours for Monday, leave an empty array for non-working days",
"minLength": 0,
"maxLength": 10,
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"tue": {
"type": "array",
"description": "Opening hours for Tuesday, leave an empty array for non-working days",
"minLength": 0,
"maxLength": 10,
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"wed": {
"type": "array",
"description": "Opening hours for Wednesday, leave an empty array for non-working days",
"minLength": 0,
"maxLength": 10,
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"thu": {
"type": "array",
"description": "Opening hours for Thursday, leave an empty array for non-working days",
"minLength": 0,
"maxLength": 10,
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"fri": {
"type": "array",
"description": "Opening hours for Friday, leave an empty array for non-working days",
"minLength": 0,
"maxLength": 10,
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"sat": {
"type": "array",
"description": "Opening hours for Saturday, leave an empty array for non-working days",
"minLength": 0,
"maxLength": 10,
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"sun": {
"type": "array",
"description": "Opening hours for Sunday, leave an empty array for non-working days",
"minLength": 0,
"maxLength": 10,
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
}
}
}
}
}
},
"400": {
"description": "Error in the parameters, the response contains a list of validation errors",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
},
"401": {
"description": "Authorization failed - the token expired or was not passed in the request. A retry will be made",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Reason for authorization failure",
"example": "Access token has been expired. You should request a new one"
}
},
"required": [
"reason"
]
}
}
}
},
"500": {
"description": "Internal server errors",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
}
}
}
}
}
}
},
"/v1/orders-history": {
"post": {
"tags": [
"Vendor Management Integration API"
],
"summary": "Get the order history",
"description": "Allows receiving information about orders. Orders can be filtered by multiple filters:\n - by order status\n - by order creation date\n - by the service where the order was placed\nLimitations:\n - The maximum number of orders in the response - 1000\n - The orders history is stored for the last 180 days\n\n{% note info %}\n\nThis method is only available by subscription.\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": "A list of objects. The object consists of the identifier of the restaurant on the partner's side and the type of delivery in this restaurant.",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"origin_id"
],
"properties": {
"origin_id": {
"type": "string",
"description": "restraunt ID in the partner's system"
},
"delivery_type": {
"type": "string",
"enum": [
"native",
"marketplace"
],
"description": "Delivery type"
}
}
}
},
"service": {
"type": "array",
"description": "List of services to return orders for",
"items": {
"type": "string",
"enum": [
"YE",
"MD"
]
}
},
"from": {
"type": "string",
"format": "date-time",
"description": "The date from which Orders should be given. In the RFC 3339 format with a fractional part of seconds (Y-m-d\\TH:i:s.uP)",
"example": "2024-01-01T12:00:05.125+03:00"
},
"to": {
"type": "string",
"format": "date-time",
"description": "The date before which Orders should be given. In the RFC 3339 format with a fractional part of seconds (Y-m-d\\TH:i:s.uP)",
"example": "2024-01-01T12:00:05.125+03:00"
},
"status": {
"type": "array",
"items": {
"type": "string",
"description": "Oredr status in the Yandex system",
"nullable": true,
"enum": [
"NEW",
"CANCELLED",
"DELIVERED"
]
},
"description": "Return orders that match the submitted list statuses"
},
"pagination": {
"type": "object",
"additionalProperties": false,
"required": [
"offset"
],
"properties": {
"limit": {
"type": "integer",
"minimum": 0,
"maximum": 1000,
"description": "Maximum number of orders"
},
"offset": {
"type": "integer",
"minimum": 0,
"description": "Offset/pagination. More about pagination on 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": "End-to-end order identifier on the Yandex side in the format DDDDDD-DDDDDDDD",
"type": "string",
"minLength": 13,
"example": "230328-354380"
},
"order_id": {
"type": "string",
"description": "Order identifier on the partners side"
},
"created_at": {
"type": "string",
"description": "Order creation date",
"format": "date-time"
},
"status": {
"type": "string",
"description": "Oredr status in the Yandex system",
"nullable": true,
"enum": [
"NEW",
"CANCELLED",
"DELIVERED"
]
},
"service": {
"type": "string",
"enum": [
"YE",
"MD"
],
"description": "A service that facilitated the placement of an order"
},
"delivery_type": {
"description": "Delivery type",
"type": "string",
"enum": [
"native",
"marketplace"
],
"example": "marketplace"
},
"origin_id": {
"description": "The ID of the restaurant in the partner's system",
"type": "string",
"example": "restaurant1"
},
"items_cost": {
"type": "number",
"description": "The cost of the order for the partner minus the cost delivery (including partner discounts)"
}
}
},
"description": "List of orders"
}
}
}
}
}
},
"400": {
"description": "Request error",
"content": {
"application/json": {
"schema": {
"description": "Error description",
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Error message",
"type": "string"
},
"code": {
"description": "Error code",
"type": "string"
}
}
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"description": "Error description",
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Error message",
"type": "string"
},
"code": {
"description": "Error code",
"type": "string"
}
}
}
}
}
}
}
}
},
"/v1/get-orders-details": {
"post": {
"summary": "Detailed information about orders",
"description": "Retrieve Detailed Order Information.\n\nLimitations:\n - A maximum of 100 orders can be sent in a request\n - The history is stored for orders for the last 180 days\n\n{% note info %}\n\nThis method is only available by subscription.\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": "List of order numbers to search for",
"minItems": 1,
"maxItems": 100,
"items": {
"type": "string",
"minLength": 13,
"description": "End-to-end order identifier on the Yandex side in the format DDDDDD-DDDDDDDD",
"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": "List of orders with detailed information",
"items": {
"type": "object",
"description": "Order with detailed information",
"additionalProperties": false,
"required": [
"eats_id",
"order_id",
"status",
"items"
],
"properties": {
"eats_id": {
"type": "string",
"minLength": 13,
"description": "End-to-end order identifier on the Yandex side in the format DDDDDD-DDDDDDDD",
"example": "230328-354380"
},
"order_id": {
"type": "string",
"nullable": true,
"description": "Order identifier in the partner's system"
},
"status": {
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Order status. Must be valid – for example, a prepared order cannot be made\nnew again. Status transition is only possible in the specified direction:\nfrom NEW to DELIVERED. Exceptions: the order can move to the CANCELLED\n\nStatus description:\n\n- NEW – new, just sent to the restaurant.\n- ACCEPTED_BY_RESTAURANT – order confirmed by the restaurant.\n- COOKING – order preparation started.\n- READY – order prepared.\n- TAKEN_BY_COURIER – courier picked up the order from the restaurant.\n- DELIVERED – order completed.\n- CANCELLED – order cancelled.\n\nNEW -> ACCEPTED_BY_RESTAURANT -> COOKING -> READY ->\nTAKEN_BY_COURIER -> DELIVERED. From any status -> CANCELLED\n",
"enum": [
"NEW",
"ACCEPTED_BY_RESTAURANT",
"COOKING",
"READY",
"TAKEN_BY_COURIER",
"DELIVERED",
"CANCELLED"
]
},
"comment": {
"maxLength": 500,
"type": "string",
"description": "Status change comment",
"example": "New order"
},
"updatedAt": {
"type": "string",
"description": "Date when the order status changed, in RFC3339 format with fractional seconds (Y-m-d\\TH:i:s.uP)",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
}
},
"required": [
"status"
]
},
"items": {
"description": "The composition of the order",
"type": "array",
"items": {
"description": "Item with modificators",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "Item ID on the partner's system",
"type": "string"
},
"name": {
"description": "Item name",
"type": "string"
},
"quantity": {
"description": "The number of products within this item",
"type": "number"
},
"price": {
"description": "The cost of a given item including the cost of options",
"type": "number",
"example": 123.78
},
"original_price": {
"description": "The cost of a given item excluding the cost of options",
"type": "number",
"example": 100.23
},
"weight": {
"description": "Final weight of the product",
"type": "number"
},
"measure_unit": {
"description": "Units of weight measurement",
"type": "string"
},
"modifications": {
"description": "Product Options",
"type": "array",
"items": {
"description": "Product Option",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "Option's ID in the partner's system",
"type": "string"
},
"group_id": {
"description": "The ID of the group in the partner system to which the option belongs",
"type": "string",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"description": "Option name",
"type": "string"
},
"quantity": {
"description": "The number of options within the item",
"type": "integer"
},
"price": {
"description": "The price of a product option",
"type": "number",
"example": 10.5
}
},
"required": [
"id",
"price",
"quantity"
]
}
}
}
}
},
"items_cost": {
"description": "The cost of the order for the partner minus the cost delivery (including partner discounts)",
"type": "number"
}
}
}
},
"not_found_eats_ids": {
"type": "array",
"description": "List of order numbers for which information not found or unavailable",
"items": {
"type": "string",
"minLength": 13,
"description": "End-to-end order identifier on the Yandex side in the format DDDDDD-DDDDDDDD",
"example": "230328-354380"
}
}
}
}
}
}
},
"400": {
"description": "Request error",
"content": {
"application/json": {
"schema": {
"description": "Error description",
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Error message",
"type": "string"
},
"code": {
"description": "Error code",
"type": "string"
}
}
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"description": "Error description",
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Error message",
"type": "string"
},
"code": {
"description": "Error code",
"type": "string"
}
}
}
}
}
}
}
}
},
"/v1/busy-mode-status": {
"post": {
"summary": "Retrieve list of restaurants with active high-demand status",
"description": "High demand can be set through the Yandex Vendor app if\nthe restaurant is loaded at the moment and the order preparation time has increased.\n\nIn the future, it will be possible to install and remove high demand through the API\n\n{% note info %}\n\nThis method is only available by subscription.\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": "Restaurant search query filters",
"properties": {
"origin_ids": {
"type": "array",
"description": "List of restaurant IDs in the partner's system",
"items": {
"type": "string",
"example": "restaurant1"
},
"minItems": 1,
"maxItems": 100
},
"delivery_type": {
"type": "string",
"enum": [
"native",
"marketplace"
],
"description": "Delivery type",
"example": "marketplace"
},
"service": {
"type": "string",
"enum": [
"YE",
"MD"
]
}
}
},
"pagination": {
"type": "object",
"additionalProperties": false,
"description": "Pagination to obtain the status of high demand in restaurants. More about pagination and cursors at https://slack.engineering/evolving-api-pagination-at-slack/",
"properties": {
"cursor": {
"type": "string",
"description": "Cursor for getting restaurants with an active high demand status"
},
"limit": {
"type": "integer",
"description": "Limit on the number of restaurants to be returned",
"minimum": 1,
"maximum": 500,
"default": 500
}
}
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"description": "Successful response to the request for high-load status of restaurants",
"type": "object",
"additionalProperties": false,
"required": [
"busy_places"
],
"properties": {
"busy_places": {
"type": "array",
"description": "List of restaurants with information about high demand",
"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": "Delivery type",
"example": "marketplace"
},
"services": {
"type": "array",
"description": "The list of services in which the restaurant is represented",
"items": {
"type": "string",
"enum": [
"YE",
"MD"
]
}
},
"extra_minutes": {
"type": "integer",
"description": "Additional cooking time in minutes"
},
"valid_till": {
"type": "string",
"format": "date-time",
"description": "Date and time in RFC 3339 format with indication of the time zone the belt to which the cooking allowance applies",
"example": "2024-01-01T12:00:05.125+03:00"
}
}
}
},
"cursor": {
"type": "string",
"description": "Cursor for getting restaurants with an active high demand status"
}
}
}
}
}
},
"400": {
"description": "Request error",
"content": {
"application/json": {
"schema": {
"description": "Error description",
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Error message",
"type": "string"
},
"code": {
"description": "Error code",
"type": "string"
}
}
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"description": "Error description",
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Error message",
"type": "string"
},
"code": {
"description": "Error code",
"type": "string"
}
}
}
}
}
}
}
}
}
},
"components": {
"securitySchemes": {
"OAuth2": {
"type": "oauth2",
"flows": {
"clientCredentials": {
"tokenUrl": "/security/oauth/token",
"scopes": {
"read": "Read access",
"write": "Write access"
}
}
},
"description": "The partner must implement OAuth2 authorization at home. Minimum requirements: a method must be available to get a token with client_id, client_secret, grand_type, and scopes. The URLs are given below. Link to the full the specification OAuth2 - https://tools.ietf.org/html/rfc6749"
}
},
"parameters": {
"Partner-Name": {
"name": "Partner-Name",
"in": "header",
"description": "Partner name",
"schema": {
"type": "string"
}
},
"Authorization": {
"name": "Authorization",
"in": "header",
"description": "A token generated on the side of the Yandex",
"schema": {
"type": "string"
}
},
"orderId": {
"name": "orderId",
"in": "path",
"required": true,
"description": "The order ID in the external system",
"schema": {
"type": "string"
}
}
},
"schemas": {
"AuthenticationRequest": {
"type": "object",
"properties": {
"client_id": {
"description": "client ID",
"type": "string",
"example": "client_id"
},
"client_secret": {
"type": "string",
"description": "secret",
"example": "client_secret"
},
"grant_type": {
"type": "string",
"description": "Type of access",
"default": "client_credentials"
},
"scope": {
"type": "string",
"description": "Access rights",
"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": "The model of successful authentication result. The only mandatory field is access_token. The other fields possible according to the specification are optional and are not used on the Yandex side.",
"type": "object",
"properties": {
"access_token": {
"type": "string"
}
},
"required": [
"access_token"
],
"example": {
"access_token": "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
}
},
"MenuCompositionV2": {
"type": "object",
"description": "The current version of the model",
"properties": {
"schedules": {
"description": "Description of possible types of menu category schedules",
"properties": {
"scheduleName": {
"description": "Schedule type identification. The schedule type is identified by a unique key name, such as \"breakfasts\". This key is used in the schedule array for menu categories to specify the type of schedule.",
"items": {
"properties": {
"from": {
"type": "string",
"description": "The start time is represented in a 24-hour format, ranging from 00:00 to 24:00.",
"example": "08:00"
},
"till": {
"type": "string",
"description": "The end time is represented in a 24-hour format, ranging from 00:00 to 24:00.",
"example": "09:45"
},
"weekdays": {
"description": "specifying the days of the week when a declared schedule type is active.",
"type": "array",
"items": {
"type": "string",
"example": "monday",
"enum": [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday",
"saturday",
"sunday"
]
}
}
},
"required": [
"from",
"till",
"weekdays"
]
},
"type": "array"
}
}
},
"categories": {
"description": "Menu categories",
"items": {
"properties": {
"id": {
"maxLength": 64,
"type": "string",
"description": "The category ID is a unique identifier that distinguishes one category from another within the partner system. The ID can be any value that can be converted to a string. It is recommended to use a UUID4 UUID4",
"example": "5af86d5a-d92d-4e07-9271-aea0f7ef95a6"
},
"parentId": {
"maxLength": 64,
"type": "string",
"description": "The parent category ID is a unique identifier that references an existing category in the system. The parent category ID is nullable, meaning it can be absent or null, but it cannot be an empty string. It refers to existing categories in the system, ensuring that the hierarchical structure is maintained. When loading, the hierarchical structure is adapted to the flat category structure used by Yandex, where items from subcategories are moved to their parent categories at the first level.",
"example": "5af86d5a-d92d-4e07-9271-aea0f7ef95a6"
},
"schedules": {
"type": "array",
"items": {
"type": "string",
"description": "Category schedule type. This refers to the type of schedule associated with a category. If an empty list is provided or a reference is made to an empty category in a separate schedules block, the category is considered always available. This means that if no schedule is specified or if the referenced category is empty, the category is assumed to be always accessible or available.",
"example": "breakfasts"
}
},
"name": {
"type": "string",
"description": "Category name",
"example": "Breakfast"
},
"sortOrder": {
"type": "integer",
"description": "The sort order is from smallest to largest (i.e., ascending order). If the sort order is not specified, it is assumed to be 100.",
"example": 0
},
"images": {
"description": "Image of the restaurant category",
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Link to the image for download",
"format": "uri"
},
"updatedAt": {
"type": "string",
"description": "The date of the image update, in RFC 3339 format with a fractional part of seconds (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": "List of items available to order",
"items": {
"properties": {
"id": {
"maxLength": 64,
"type": "string",
"description": "Unique identifier for a dish within a restaurant's system. The internal dish ID can be any value that can be converted to a string. It is recommended to use a UUID4.",
"example": "e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9"
},
"categoryId": {
"maxLength": 64,
"type": "string",
"description": "The ID of the category in the partner's system",
"example": "fa494dc1-2578-4adb-a8fa-e270de8c3d28"
},
"name": {
"type": "string",
"description": "The name of the dish in the restaurant",
"example": "Pies Cherry pie"
},
"description": {
"type": "string",
"description": "Full description of the dish",
"example": "Flour, water, egg powder, frozen cherries"
},
"price": {
"type": "number",
"format": "double",
"description": "cost of a dish or product in the restaurant's system. The product price must be a non-zero value; dishes with a price of zero are skipped and not included in the menu.",
"example": 1000
},
"vat": {
"type": "number",
"format": "int32",
"description": "Percentage of Value-Added Tax (VAT) included in the product price. If the VAT rate is not specified, it is assumed to be 0%.",
"example": 20
},
"isCatchweight": {
"type": "boolean",
"description": "boolean flag indicating whether a product is weighted or not in a restaurant system.",
"default": false,
"example": false
},
"measure": {
"type": "integer",
"description": "Characteristics of the measurements of the item - weight or volume",
"example": 666
},
"weightQuantum": {
"type": "number",
"format": "float",
"description": "The smallest quantity of product (quantum) available for order. This field is required if the value of is Catch weight is equal to true, otherwise the field value is not used",
"example": 0.1
},
"measureUnit": {
"type": "string",
"description": "Unit of measurement. Acceptable values are grams and milliliters",
"example": "g",
"enum": [
"г",
"мл",
"g",
"ml"
]
},
"excise": {
"type": "string",
"enum": [
"sugary_drink",
"other"
],
"description": "A sign of an excisable product. You can also use a key instead excise to pass the label [AT] (in capital Latin letters in square brackets) in the product name.",
"example": "sugary_drink"
},
"nutrients": {
"description": "The parameters of calories, proteins, fats and carbohydrates.",
"type": "object",
"properties": {
"calories": {
"type": "number",
"description": "Calories per 100g",
"example": 12.5
},
"proteins": {
"type": "number",
"description": "Protein per 100g",
"example": 15.3
},
"fats": {
"type": "number",
"description": "Fats per 100g",
"example": 12.5
},
"carbohydrates": {
"type": "number",
"description": "Carbohydrates per 100g",
"example": 15.3
}
},
"required": [
"calories",
"proteins",
"fats",
"carbohydrates"
]
},
"sortOrder": {
"type": "integer",
"description": "The sort order is from smaller to larger. If not specified, it's counted for 100",
"example": 0
},
"modifierGroups": {
"type": "array",
"description": "Groups of modifiers for an item. The obligation of modifiers is determined by the parameter `minSelectedModifiers` in the modifiers group.\n",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID of the modifier group on the partner's side. It can be any value that is cast to a string. Recommendation - UUID4",
"example": "9987c815-3069-46ad-9626-74799fb22210"
},
"name": {
"type": "string",
"description": "The name of the modifier group",
"example": "Utensil selection"
},
"modifiers": {
"type": "array",
"description": "Options included in the group",
"items": {
"properties": {
"id": {
"type": "string",
"description": "Modifier identifier on the partner's side. Can be any value convertible to a string. Recommendation - UUID4. This identifier is passed in the order along with the selected quantity. example: 916cfc99-acb4-4a96-9a42-b29159e88189",
"example": "916cfc99-acb4-4a96-9a42-b29159e88189"
},
"name": {
"type": "string",
"description": "Name of the modifier",
"example": "Utensils"
},
"price": {
"type": "number",
"format": "double",
"description": "modifier price",
"example": 150
},
"originalPrice": {
"type": "number",
"format": "double",
"description": "Specific field for transmitting the price of mandatory free modifiers, which will be used for\nprinting in receipts and partial refund receipts. In this case, the price field value must be 0.\n",
"example": 150
},
"vat": {
"type": "integer",
"format": "int32",
"description": "VAT included in the price, in percentage. If not specified, it is considered as 0.",
"example": 20
},
"excise": {
"type": "string",
"enum": [
"sugary_drink",
"other"
],
"description": "Indicator of excise goods. Instead of using the excise key, you can use the [AT] tag (uppercase Latin letters in square brackets) in the modifier's name field.",
"example": "sugary_drink"
},
"minAmount": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"format": "int32",
"description": "Minimum quantity of the specified modifier for the dish in the order. The minAmount value must be less than maxAmount.",
"example": 0
},
"maxAmount": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"format": "int32",
"description": "Maximum quantity of the specified modifier for the dish in the order. This number must not exceed the value of the maxSelectedModifiers parameter in the ModifierGroup model for the entire order. For example, if you support 5 modifiers in a group in total, but the maximum value of the modifier for an individual dish is 10 – such a modifier will not pass validation. Incorrect modifiers, the group to which they belong, and the menu items using incorrect data will not be loaded.",
"example": 10
}
},
"required": [
"id",
"maxAmount",
"minAmount",
"name",
"price"
]
}
},
"minSelectedModifiers": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"format": "int32",
"description": "Minimum number of modifiers that must be selected for this group. Must not exceed the total number of required modifiers (considering their minAmount) and not exceed maxSelectedModifiers",
"example": 0
},
"maxSelectedModifiers": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"format": "int32",
"description": "Maximum number of modifiers that can be selected for this group. Must not be less than the total number of possible modifiers (considering their maxAmount)",
"example": 10
},
"sortOrder": {
"type": "integer",
"description": "Sorting order from smallest to largest. If not specified, it is considered as 100.",
"example": 0
}
},
"required": [
"id",
"name",
"minSelectedModifiers",
"maxSelectedModifiers"
]
}
},
"images": {
"description": "item image",
"type": "array",
"items": {
"properties": {
"hash": {
"type": "string",
"description": "SHA1 hash of the image file content. Calculated by the partner, serves as a uniqueness indicator. If it changes, Yandex reloads the image."
},
"url": {
"type": "string",
"description": "Link to download the image",
"format": "uri"
}
},
"required": [
"hash",
"url"
]
}
},
"additional_descriptions": {
"type": "object",
"additionalProperties": false,
"description": "Additional fields for the item description",
"properties": {
"consisting_ingredients": {
"description": "The list of ingredients that make up the dish. These are the initial components of the dish, not its constituent parts. It is advisable to specify all the ingredients that can cause allergies or they strongly affect the taste. This way users will immediately see the important ones details about the dish.",
"type": "array",
"maxItems": 100,
"items": {
"type": "string",
"example": "flour",
"maxLength": 100
}
},
"badges": {
"type": "array",
"items": {
"description": "The tags of the dish are divided into categories and values. You can select only one option in each category. When processing, the first valid value will be taken from each category. Duplicate, unknown categories or mismatched category values will be skipped.\nAvailable categories and their values:\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 attributes information for the product",
"required": [
"age_group"
],
"properties": {
"age_group": {
"type": "integer",
"description": "Age restriction on the product",
"enum": [
18,
21
]
},
"alcohol_percentage": {
"type": "string",
"pattern": "^[0-9]+(\\.[0-9]{1,2})?$",
"example": "12.34",
"description": "Item's alcohol by volume. The number is indicated only with a dot."
}
}
}
},
"required": [
"categoryId",
"id",
"measureUnit",
"name",
"price",
"measure"
]
},
"type": "array"
},
"lastChange": {
"type": "string",
"description": "The date of the last change in the restaurant menu (on the partner's side). Important: date in RFC 3339 format with fractional part of seconds (Y-m-d\\TH:i:s.uP)! If the last update date hasn't changed, Yandex can automatically determine that the menu doesn't need to be updated. If the update date in this field differs from the date of the last menu update, the menu will be reloaded.",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
}
},
"required": [
"categories",
"lastChange",
"items"
]
},
"Schedule": {
"properties": {
"scheduleName": {
"description": "Schedule type identification. The schedule type is identified by a unique key name, such as \"breakfasts\". This key is used in the schedule array for menu categories to specify the type of schedule.",
"items": {
"properties": {
"from": {
"type": "string",
"description": "The start time is represented in a 24-hour format, ranging from 00:00 to 24:00.",
"example": "08:00"
},
"till": {
"type": "string",
"description": "The end time is represented in a 24-hour format, ranging from 00:00 to 24:00.",
"example": "09:45"
},
"weekdays": {
"description": "specifying the days of the week when a declared schedule type is active.",
"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": "The start time is represented in a 24-hour format, ranging from 00:00 to 24:00.",
"example": "08:00"
},
"till": {
"type": "string",
"description": "The end time is represented in a 24-hour format, ranging from 00:00 to 24:00.",
"example": "09:45"
},
"weekdays": {
"description": "specifying the days of the week when a declared schedule type is active.",
"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": "The category ID is a unique identifier that distinguishes one category from another within the partner system. The ID can be any value that can be converted to a string. It is recommended to use a UUID4 UUID4",
"example": "5af86d5a-d92d-4e07-9271-aea0f7ef95a6"
},
"parentId": {
"maxLength": 64,
"type": "string",
"description": "The parent category ID is a unique identifier that references an existing category in the system. The parent category ID is nullable, meaning it can be absent or null, but it cannot be an empty string. It refers to existing categories in the system, ensuring that the hierarchical structure is maintained. When loading, the hierarchical structure is adapted to the flat category structure used by Yandex, where items from subcategories are moved to their parent categories at the first level.",
"example": "5af86d5a-d92d-4e07-9271-aea0f7ef95a6"
},
"schedules": {
"type": "array",
"items": {
"type": "string",
"description": "Category schedule type. This refers to the type of schedule associated with a category. If an empty list is provided or a reference is made to an empty category in a separate schedules block, the category is considered always available. This means that if no schedule is specified or if the referenced category is empty, the category is assumed to be always accessible or available.",
"example": "breakfasts"
}
},
"name": {
"type": "string",
"description": "Category name",
"example": "Breakfast"
},
"sortOrder": {
"type": "integer",
"description": "The sort order is from smallest to largest (i.e., ascending order). If the sort order is not specified, it is assumed to be 100.",
"example": 0
},
"images": {
"description": "Image of the restaurant category",
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Link to the image for download",
"format": "uri"
},
"updatedAt": {
"type": "string",
"description": "The date of the image update, in RFC 3339 format with a fractional part of seconds (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": "Link to the image for download",
"format": "uri"
},
"updatedAt": {
"type": "string",
"description": "The date of the image update, in RFC 3339 format with a fractional part of seconds (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": "Unique identifier for a dish within a restaurant's system. The internal dish ID can be any value that can be converted to a string. It is recommended to use a UUID4.",
"example": "e6709e9a-d3ab-4d1e-aa69-7ce30073cbc9"
},
"categoryId": {
"maxLength": 64,
"type": "string",
"description": "The ID of the category in the partner's system",
"example": "fa494dc1-2578-4adb-a8fa-e270de8c3d28"
},
"name": {
"type": "string",
"description": "The name of the dish in the restaurant",
"example": "Pies Cherry pie"
},
"description": {
"type": "string",
"description": "Full description of the dish",
"example": "Flour, water, egg powder, frozen cherries"
},
"price": {
"type": "number",
"format": "double",
"description": "cost of a dish or product in the restaurant's system. The product price must be a non-zero value; dishes with a price of zero are skipped and not included in the menu.",
"example": 1000
},
"vat": {
"type": "number",
"format": "int32",
"description": "Percentage of Value-Added Tax (VAT) included in the product price. If the VAT rate is not specified, it is assumed to be 0%.",
"example": 20
},
"isCatchweight": {
"type": "boolean",
"description": "boolean flag indicating whether a product is weighted or not in a restaurant system.",
"default": false,
"example": false
},
"measure": {
"type": "integer",
"description": "Characteristics of the measurements of the item - weight or volume",
"example": 666
},
"weightQuantum": {
"type": "number",
"format": "float",
"description": "The smallest quantity of product (quantum) available for order. This field is required if the value of is Catch weight is equal to true, otherwise the field value is not used",
"example": 0.1
},
"measureUnit": {
"type": "string",
"description": "Unit of measurement. Acceptable values are grams and milliliters",
"example": "g",
"enum": [
"г",
"мл",
"g",
"ml"
]
},
"excise": {
"type": "string",
"enum": [
"sugary_drink",
"other"
],
"description": "A sign of an excisable product. You can also use a key instead excise to pass the label [AT] (in capital Latin letters in square brackets) in the product name.",
"example": "sugary_drink"
},
"nutrients": {
"description": "The parameters of calories, proteins, fats and carbohydrates.",
"type": "object",
"properties": {
"calories": {
"type": "number",
"description": "Calories per 100g",
"example": 12.5
},
"proteins": {
"type": "number",
"description": "Protein per 100g",
"example": 15.3
},
"fats": {
"type": "number",
"description": "Fats per 100g",
"example": 12.5
},
"carbohydrates": {
"type": "number",
"description": "Carbohydrates per 100g",
"example": 15.3
}
},
"required": [
"calories",
"proteins",
"fats",
"carbohydrates"
]
},
"sortOrder": {
"type": "integer",
"description": "The sort order is from smaller to larger. If not specified, it's counted for 100",
"example": 0
},
"modifierGroups": {
"type": "array",
"description": "Groups of modifiers for an item. The obligation of modifiers is determined by the parameter `minSelectedModifiers` in the modifiers group.\n",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID of the modifier group on the partner's side. It can be any value that is cast to a string. Recommendation - UUID4",
"example": "9987c815-3069-46ad-9626-74799fb22210"
},
"name": {
"type": "string",
"description": "The name of the modifier group",
"example": "Utensil selection"
},
"modifiers": {
"type": "array",
"description": "Options included in the group",
"items": {
"properties": {
"id": {
"type": "string",
"description": "Modifier identifier on the partner's side. Can be any value convertible to a string. Recommendation - UUID4. This identifier is passed in the order along with the selected quantity. example: 916cfc99-acb4-4a96-9a42-b29159e88189",
"example": "916cfc99-acb4-4a96-9a42-b29159e88189"
},
"name": {
"type": "string",
"description": "Name of the modifier",
"example": "Utensils"
},
"price": {
"type": "number",
"format": "double",
"description": "modifier price",
"example": 150
},
"originalPrice": {
"type": "number",
"format": "double",
"description": "Specific field for transmitting the price of mandatory free modifiers, which will be used for\nprinting in receipts and partial refund receipts. In this case, the price field value must be 0.\n",
"example": 150
},
"vat": {
"type": "integer",
"format": "int32",
"description": "VAT included in the price, in percentage. If not specified, it is considered as 0.",
"example": 20
},
"excise": {
"type": "string",
"enum": [
"sugary_drink",
"other"
],
"description": "Indicator of excise goods. Instead of using the excise key, you can use the [AT] tag (uppercase Latin letters in square brackets) in the modifier's name field.",
"example": "sugary_drink"
},
"minAmount": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"format": "int32",
"description": "Minimum quantity of the specified modifier for the dish in the order. The minAmount value must be less than maxAmount.",
"example": 0
},
"maxAmount": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"format": "int32",
"description": "Maximum quantity of the specified modifier for the dish in the order. This number must not exceed the value of the maxSelectedModifiers parameter in the ModifierGroup model for the entire order. For example, if you support 5 modifiers in a group in total, but the maximum value of the modifier for an individual dish is 10 – such a modifier will not pass validation. Incorrect modifiers, the group to which they belong, and the menu items using incorrect data will not be loaded.",
"example": 10
}
},
"required": [
"id",
"maxAmount",
"minAmount",
"name",
"price"
]
}
},
"minSelectedModifiers": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"format": "int32",
"description": "Minimum number of modifiers that must be selected for this group. Must not exceed the total number of required modifiers (considering their minAmount) and not exceed maxSelectedModifiers",
"example": 0
},
"maxSelectedModifiers": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"format": "int32",
"description": "Maximum number of modifiers that can be selected for this group. Must not be less than the total number of possible modifiers (considering their maxAmount)",
"example": 10
},
"sortOrder": {
"type": "integer",
"description": "Sorting order from smallest to largest. If not specified, it is considered as 100.",
"example": 0
}
},
"required": [
"id",
"name",
"minSelectedModifiers",
"maxSelectedModifiers"
]
}
},
"images": {
"description": "item image",
"type": "array",
"items": {
"properties": {
"hash": {
"type": "string",
"description": "SHA1 hash of the image file content. Calculated by the partner, serves as a uniqueness indicator. If it changes, Yandex reloads the image."
},
"url": {
"type": "string",
"description": "Link to download the image",
"format": "uri"
}
},
"required": [
"hash",
"url"
]
}
},
"additional_descriptions": {
"type": "object",
"additionalProperties": false,
"description": "Additional fields for the item description",
"properties": {
"consisting_ingredients": {
"description": "The list of ingredients that make up the dish. These are the initial components of the dish, not its constituent parts. It is advisable to specify all the ingredients that can cause allergies or they strongly affect the taste. This way users will immediately see the important ones details about the dish.",
"type": "array",
"maxItems": 100,
"items": {
"type": "string",
"example": "flour",
"maxLength": 100
}
},
"badges": {
"type": "array",
"items": {
"description": "The tags of the dish are divided into categories and values. You can select only one option in each category. When processing, the first valid value will be taken from each category. Duplicate, unknown categories or mismatched category values will be skipped.\nAvailable categories and their values:\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 attributes information for the product",
"required": [
"age_group"
],
"properties": {
"age_group": {
"type": "integer",
"description": "Age restriction on the product",
"enum": [
18,
21
]
},
"alcohol_percentage": {
"type": "string",
"pattern": "^[0-9]+(\\.[0-9]{1,2})?$",
"example": "12.34",
"description": "Item's alcohol by volume. The number is indicated only with a dot."
}
}
}
},
"required": [
"categoryId",
"id",
"measureUnit",
"name",
"price",
"measure"
]
},
"AdultInfo": {
"type": "object",
"additionalProperties": false,
"description": "Adult attributes information for the product",
"required": [
"age_group"
],
"properties": {
"age_group": {
"type": "integer",
"description": "Age restriction on the product",
"enum": [
18,
21
]
},
"alcohol_percentage": {
"type": "string",
"pattern": "^[0-9]+(\\.[0-9]{1,2})?$",
"example": "12.34",
"description": "Item's alcohol by volume. The number is indicated only with a dot."
}
}
},
"AgeGroup": {
"type": "integer",
"description": "Age restriction on the product",
"enum": [
18,
21
]
},
"AlcoholPercentage": {
"type": "string",
"pattern": "^[0-9]+(\\.[0-9]{1,2})?$",
"example": "12.34",
"description": "Item's alcohol by volume. The number is indicated only with a dot."
},
"MenuCompositionItemAdditionalDescriptions": {
"type": "object",
"additionalProperties": false,
"description": "Additional fields for the item description",
"properties": {
"consisting_ingredients": {
"description": "The list of ingredients that make up the dish. These are the initial components of the dish, not its constituent parts. It is advisable to specify all the ingredients that can cause allergies or they strongly affect the taste. This way users will immediately see the important ones details about the dish.",
"type": "array",
"maxItems": 100,
"items": {
"type": "string",
"example": "flour",
"maxLength": 100
}
},
"badges": {
"type": "array",
"items": {
"description": "The tags of the dish are divided into categories and values. You can select only one option in each category. When processing, the first valid value will be taken from each category. Duplicate, unknown categories or mismatched category values will be skipped.\nAvailable categories and their values:\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": "The tags of the dish are divided into categories and values. You can select only one option in each category. When processing, the first valid value will be taken from each category. Duplicate, unknown categories or mismatched category values will be skipped.\nAvailable categories and their values:\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": "The nutrition value of the product per 100g",
"type": "object",
"properties": {
"calories": {
"type": "number",
"description": "Calories per 100g",
"example": 12.5
},
"proteins": {
"type": "number",
"description": "Protein per 100g",
"example": 15.3
},
"fats": {
"type": "number",
"description": "Fats per 100g",
"example": 12.5
},
"carbohydrates": {
"type": "number",
"description": "Carbohydrates per 100g",
"example": 15.3
}
},
"required": [
"calories",
"proteins",
"fats",
"carbohydrates"
]
},
"ModifierGroups": {
"properties": {
"id": {
"type": "string",
"description": "ID of the modifier group on the partner's side. It can be any value that is cast to a string. Recommendation - UUID4",
"example": "9987c815-3069-46ad-9626-74799fb22210"
},
"name": {
"type": "string",
"description": "The name of the modifier group",
"example": "Utensil selection"
},
"modifiers": {
"type": "array",
"description": "Options included in the group",
"items": {
"properties": {
"id": {
"type": "string",
"description": "Modifier identifier on the partner's side. Can be any value convertible to a string. Recommendation - UUID4. This identifier is passed in the order along with the selected quantity. example: 916cfc99-acb4-4a96-9a42-b29159e88189",
"example": "916cfc99-acb4-4a96-9a42-b29159e88189"
},
"name": {
"type": "string",
"description": "Name of the modifier",
"example": "Utensils"
},
"price": {
"type": "number",
"format": "double",
"description": "modifier price",
"example": 150
},
"originalPrice": {
"type": "number",
"format": "double",
"description": "Specific field for transmitting the price of mandatory free modifiers, which will be used for\nprinting in receipts and partial refund receipts. In this case, the price field value must be 0.\n",
"example": 150
},
"vat": {
"type": "integer",
"format": "int32",
"description": "VAT included in the price, in percentage. If not specified, it is considered as 0.",
"example": 20
},
"excise": {
"type": "string",
"enum": [
"sugary_drink",
"other"
],
"description": "Indicator of excise goods. Instead of using the excise key, you can use the [AT] tag (uppercase Latin letters in square brackets) in the modifier's name field.",
"example": "sugary_drink"
},
"minAmount": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"format": "int32",
"description": "Minimum quantity of the specified modifier for the dish in the order. The minAmount value must be less than maxAmount.",
"example": 0
},
"maxAmount": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"format": "int32",
"description": "Maximum quantity of the specified modifier for the dish in the order. This number must not exceed the value of the maxSelectedModifiers parameter in the ModifierGroup model for the entire order. For example, if you support 5 modifiers in a group in total, but the maximum value of the modifier for an individual dish is 10 – such a modifier will not pass validation. Incorrect modifiers, the group to which they belong, and the menu items using incorrect data will not be loaded.",
"example": 10
}
},
"required": [
"id",
"maxAmount",
"minAmount",
"name",
"price"
]
}
},
"minSelectedModifiers": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"format": "int32",
"description": "Minimum number of modifiers that must be selected for this group. Must not exceed the total number of required modifiers (considering their minAmount) and not exceed maxSelectedModifiers",
"example": 0
},
"maxSelectedModifiers": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"format": "int32",
"description": "Maximum number of modifiers that can be selected for this group. Must not be less than the total number of possible modifiers (considering their maxAmount)",
"example": 10
},
"sortOrder": {
"type": "integer",
"description": "Sorting order from smallest to largest. If not specified, it is considered as 100.",
"example": 0
}
},
"required": [
"id",
"name",
"minSelectedModifiers",
"maxSelectedModifiers"
]
},
"ItemsImages": {
"properties": {
"hash": {
"type": "string",
"description": "SHA1 hash of the image file content. Calculated by the partner, serves as a uniqueness indicator. If it changes, Yandex reloads the image."
},
"url": {
"type": "string",
"description": "Link to download the image",
"format": "uri"
}
},
"required": [
"hash",
"url"
]
},
"Modifiers": {
"properties": {
"id": {
"type": "string",
"description": "Modifier identifier on the partner's side. Can be any value convertible to a string. Recommendation - UUID4. This identifier is passed in the order along with the selected quantity. example: 916cfc99-acb4-4a96-9a42-b29159e88189",
"example": "916cfc99-acb4-4a96-9a42-b29159e88189"
},
"name": {
"type": "string",
"description": "Name of the modifier",
"example": "Utensils"
},
"price": {
"type": "number",
"format": "double",
"description": "modifier price",
"example": 150
},
"originalPrice": {
"type": "number",
"format": "double",
"description": "Specific field for transmitting the price of mandatory free modifiers, which will be used for\nprinting in receipts and partial refund receipts. In this case, the price field value must be 0.\n",
"example": 150
},
"vat": {
"type": "integer",
"format": "int32",
"description": "VAT included in the price, in percentage. If not specified, it is considered as 0.",
"example": 20
},
"excise": {
"type": "string",
"enum": [
"sugary_drink",
"other"
],
"description": "Indicator of excise goods. Instead of using the excise key, you can use the [AT] tag (uppercase Latin letters in square brackets) in the modifier's name field.",
"example": "sugary_drink"
},
"minAmount": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"format": "int32",
"description": "Minimum quantity of the specified modifier for the dish in the order. The minAmount value must be less than maxAmount.",
"example": 0
},
"maxAmount": {
"type": "integer",
"minimum": 0,
"maximum": 255,
"format": "int32",
"description": "Maximum quantity of the specified modifier for the dish in the order. This number must not exceed the value of the maxSelectedModifiers parameter in the ModifierGroup model for the entire order. For example, if you support 5 modifiers in a group in total, but the maximum value of the modifier for an individual dish is 10 – such a modifier will not pass validation. Incorrect modifiers, the group to which they belong, and the menu items using incorrect data will not be loaded.",
"example": 10
}
},
"required": [
"id",
"maxAmount",
"minAmount",
"name",
"price"
]
},
"MenuAvailabilityV2": {
"type": "object",
"description": "Current version of the menu availability model",
"properties": {
"items": {
"type": "array",
"description": "List of menu items for which availability needs to be changed",
"items": {
"properties": {
"itemId": {
"type": "string",
"description": "Internal identifier of the dish in the partner's restaurant system. Can be any value convertible to a string. Recommendation - UUID4",
"example": "eff0cec0-058c-4d53-b524-1c04ac24fb51"
},
"stock": {
"type": "integer",
"format": "int32",
"description": "Stock in the restaurant. When 0, the dish disappears from the menu. Optional field. If stock is not passed for itemId, the stock of the dish is considered as 0.",
"default": 0,
"example": 5
}
},
"required": [
"itemId"
]
}
},
"modifiers": {
"type": "array",
"description": "List of dish modifiers for which availability needs to be change",
"items": {
"properties": {
"modifierId": {
"type": "string",
"description": "Internal identifier of the modifier in the partner's restaurant system. Can be any value convertible to a string. Recommendation - UUID4",
"example": "eff0cec0-058c-4d53-b524-1c04ac24fb51"
},
"stock": {
"type": "integer",
"format": "int32",
"description": "Stock in the restaurant. When 0, the modifier disappears from the menu. Optional field. If stock is not passed for modifierId, the stock of the modifier is considered as 0.",
"default": 0,
"example": 5
}
},
"required": [
"modifierId"
]
}
}
},
"required": [
"items",
"modifiers"
]
},
"MenuAvailabilityItems": {
"properties": {
"itemId": {
"type": "string",
"description": "Internal identifier of the dish in the partner's restaurant system. Can be any value convertible to a string. Recommendation - UUID4",
"example": "eff0cec0-058c-4d53-b524-1c04ac24fb51"
},
"stock": {
"type": "integer",
"format": "int32",
"description": "Stock in the restaurant. When 0, the dish disappears from the menu. Optional field. If stock is not passed for itemId, the stock of the dish is considered as 0.",
"default": 0,
"example": 5
}
},
"required": [
"itemId"
]
},
"MenuAvailabilityModifiers": {
"properties": {
"modifierId": {
"type": "string",
"description": "Internal identifier of the modifier in the partner's restaurant system. Can be any value convertible to a string. Recommendation - UUID4",
"example": "eff0cec0-058c-4d53-b524-1c04ac24fb51"
},
"stock": {
"type": "integer",
"format": "int32",
"description": "Stock in the restaurant. When 0, the modifier disappears from the menu. Optional field. If stock is not passed for modifierId, the stock of the modifier is considered as 0.",
"default": 0,
"example": 5
}
},
"required": [
"modifierId"
]
},
"MenuPromo": {
"type": "object",
"properties": {
"promoItems": {
"type": "array",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID of the main menu item",
"example": "string"
},
"promoId": {
"type": "string",
"description": "ID of the promotional item",
"example": "string"
}
},
"required": [
"id",
"promoId"
]
}
}
},
"required": [
"promoItems"
]
},
"PromoItems": {
"properties": {
"id": {
"type": "string",
"description": "ID of the main menu item",
"example": "string"
},
"promoId": {
"type": "string",
"description": "ID of the promotional item",
"example": "string"
}
},
"required": [
"id",
"promoId"
]
},
"RestaurantList": {
"type": "object",
"properties": {
"places": {
"type": "array",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID of the restaurant in the partner system",
"example": "123"
},
"title": {
"type": "string",
"description": "restaurant name",
"example": "Test place"
},
"address": {
"type": "string",
"description": "restaurant adress",
"example": "City, str. Street, 1"
}
},
"required": [
"id",
"title",
"address"
]
}
}
},
"required": [
"places"
]
},
"Places": {
"properties": {
"id": {
"type": "string",
"description": "ID of the restaurant in the partner system",
"example": "123"
},
"title": {
"type": "string",
"description": "restaurant name",
"example": "Test place"
},
"address": {
"type": "string",
"description": "restaurant adress",
"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 of the restaurant in the partner system",
"example": "e89b-12d3-a456"
},
"enabled": {
"type": "boolean",
"description": "Restaurant activity",
"nullable": false,
"example": true
}
},
"required": [
"id",
"enabled"
]
}
}
}
},
"RestaurantAvailability": {
"type": "object",
"properties": {
"id": {
"type": "string",
"maxLength": 255,
"description": "ID of the restaurant in the partner system",
"example": "e89b-12d3-a456"
},
"enabled": {
"type": "boolean",
"description": "Restaurant activity",
"nullable": false,
"example": true
}
},
"required": [
"id",
"enabled"
]
},
"YandexOrderV2": {
"type": "object",
"description": "Current version of the order model for \"Yandex\" delivery scheme.",
"properties": {
"platform": {
"type": "string",
"description": "Platform ID:\n* YE – Yandex\n",
"enum": [
"YE"
]
},
"discriminator": {
"type": "string",
"description": "Schema discriminator object. For YandexOrder, it is \"yandex\".",
"example": "yandex"
},
"eatsId": {
"type": "string",
"description": "End-to-end order identifier on the Yandex side in the format DDDDDD-DDDDDDDD",
"example": "190330-12345678"
},
"restaurantId": {
"type": "string",
"description": "Internal identifier of the establishment in the partner system to which the order is transmitted. Free format, UUID4 recommended.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"deliveryInfo": {
"description": "Delivery information.",
"properties": {
"clientName": {
"type": "string",
"description": "The customer's name in the Yandex service",
"example": "John Cena"
},
"phoneNumber": {
"type": "string",
"description": "Phone number to contact the customer in international format. Consists of parts \"+<country code><number>\". May include extension: \"+<country code><number> ext. <extension number>\".",
"example": "+79031111111 ext. 4432"
},
"additionalPhoneNumbers": {
"description": "A list of additional numbers for contacting the client.",
"type": "array",
"items": {
"type": "string",
"description": "Phone number to contact the customer in international format. Consists of parts \"+<country code><number>\". May include extension: \"+<country code><number> ext. <extension number>\".",
"example": "+79031111111 ext. 4432"
}
},
"courierArrivementDate": {
"type": "string",
"description": "The date when the courier arrives at the restaurant, in RFC 3339 format with fractional part of seconds (Y-m-d\\TH:i:s.uP).",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
},
"realPhoneNumber": {
"type": "string",
"description": "The phone number for contacting the client in an international format. It consists of the parts \"+<country code><number>\". It is indicated if the client consents to the processing of his personal data",
"example": "+79031111111"
},
"pickupCode": {
"type": "string",
"description": "Courier identification code",
"example": 123
}
},
"required": [
"courierArrivementDate"
]
},
"paymentInfo": {
"properties": {
"itemsCost": {
"type": "number",
"format": "double",
"example": 100,
"description": "The full cost of the dishes in the order."
},
"paymentType": {
"type": "string",
"description": "Information about the payment type. CARD – paid order, CASH – unpaid order.",
"enum": [
"CARD",
"CASH"
]
}
},
"required": [
"itemsCost",
"paymentType"
]
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the menu item in the partner system",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Menu item name",
"example": "Pepperoni Pizza"
},
"quantity": {
"type": "number",
"format": "float",
"description": "Quantity of the item in the order",
"example": 3.5
},
"price": {
"type": "number",
"format": "double",
"description": "Price of one item including modification costs. Will be corrected in\n the next version to show the base price without modifications.",
"example": 100
},
"modifications": {
"type": "array",
"description": "List of selected modifications. Can be empty, explicitly transmitted for each individual item in the order. When ordering two items of the same dish with different modifications, different positions with different \"modifications\" lists are transmitted.",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID of the modifier in the partner system",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"group_id": {
"type": "string",
"description": "Unique identifier for a group within a partner system. The Partner Group ID is linked to a specific modifier, which is a component that can be duplicated.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"type": "string",
"description": "Modifier name",
"example": "utensils"
},
"quantity": {
"type": "integer",
"description": "Quantity in the order",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Price of the modifier for the menu item (e.g., additional sauce)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
}
},
"promos": {
"type": "array",
"description": "List of promotions applied to the current dish. If the dish has a non-empty \"promos\" object, it means that a promotion is active in the partner system. If empty, it means no promotions apply to the dish.",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Promotion type. Can be a gift \"GIFT\", percentage discount \"PERCENTAGE\", co-financed discount \"COFINANCE\" and \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Discount amount in currency paid by the partner"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by the partner"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by Yandex"
}
},
"required": [
"type",
"discount"
]
}
}
},
"required": [
"id",
"modifications",
"price",
"quantity",
"promos"
]
}
},
"persons": {
"type": "integer",
"description": "Number of persons for whom the order is placed. May affect the number of cutlery sets.",
"example": 2
},
"comment": {
"type": "string",
"description": "Additional order information",
"example": "Additional order information: ..."
},
"promos": {
"type": "array",
"description": "List of promotions applied to the entire order. If the order has a non-empty \"promos\" object, it means that a promotion is active in the partner system. If empty, it means no promotions apply to the order.",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Promotion type. Can be a gift \"GIFT\", percentage discount \"PERCENTAGE\", co-financed discount \"COFINANCE\" and \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Discount amount in currency paid by the partner"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by the partner"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by Yandex"
}
},
"required": [
"type",
"discount"
],
"type": "object"
}
}
},
"required": [
"discriminator",
"comment",
"nativeOrderDelivery",
"deliveryInfo",
"paymentInfo",
"eatsId",
"restaurantId",
"items",
"nativeOrderPayment",
"promos"
]
},
"YandexOrderDeliveryInfo": {
"properties": {
"clientName": {
"type": "string",
"description": "The customer's name in the Yandex service",
"example": "John Cena"
},
"phoneNumber": {
"type": "string",
"description": "Phone number to contact the customer in international format. Consists of parts \"+<country code><number>\". May include extension: \"+<country code><number> ext. <extension number>\".",
"example": "+79031111111 ext. 4432"
},
"additionalPhoneNumbers": {
"description": "A list of additional numbers for contacting the client.",
"type": "array",
"items": {
"type": "string",
"description": "Phone number to contact the customer in international format. Consists of parts \"+<country code><number>\". May include extension: \"+<country code><number> ext. <extension number>\".",
"example": "+79031111111 ext. 4432"
}
},
"courierArrivementDate": {
"type": "string",
"description": "The date when the courier arrives at the restaurant, in RFC 3339 format with fractional part of seconds (Y-m-d\\TH:i:s.uP).",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
},
"realPhoneNumber": {
"type": "string",
"description": "The phone number for contacting the client in an international format. It consists of the parts \"+<country code><number>\". It is indicated if the client consents to the processing of his personal data",
"example": "+79031111111"
},
"pickupCode": {
"type": "string",
"description": "Courier identification code",
"example": 123
}
},
"required": [
"courierArrivementDate"
]
},
"YandexOrderPaymentInfo": {
"properties": {
"itemsCost": {
"type": "number",
"format": "double",
"example": 100,
"description": "The full cost of the dishes in the order."
},
"paymentType": {
"type": "string",
"description": "Information about the payment type. CARD – paid order, CASH – unpaid order.",
"enum": [
"CARD",
"CASH"
]
}
},
"required": [
"itemsCost",
"paymentType"
]
},
"OrdersItem": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the menu item in the partner system",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Menu item name",
"example": "Pepperoni Pizza"
},
"quantity": {
"type": "number",
"format": "float",
"description": "Quantity of the item in the order",
"example": 3.5
},
"price": {
"type": "number",
"format": "double",
"description": "Price of one item including modification costs. Will be corrected in\n the next version to show the base price without modifications.",
"example": 100
},
"modifications": {
"type": "array",
"description": "List of selected modifications. Can be empty, explicitly transmitted for each individual item in the order. When ordering two items of the same dish with different modifications, different positions with different \"modifications\" lists are transmitted.",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID of the modifier in the partner system",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"group_id": {
"type": "string",
"description": "Unique identifier for a group within a partner system. The Partner Group ID is linked to a specific modifier, which is a component that can be duplicated.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"type": "string",
"description": "Modifier name",
"example": "utensils"
},
"quantity": {
"type": "integer",
"description": "Quantity in the order",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Price of the modifier for the menu item (e.g., additional sauce)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
}
},
"promos": {
"type": "array",
"description": "List of promotions applied to the current dish. If the dish has a non-empty \"promos\" object, it means that a promotion is active in the partner system. If empty, it means no promotions apply to the dish.",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Promotion type. Can be a gift \"GIFT\", percentage discount \"PERCENTAGE\", co-financed discount \"COFINANCE\" and \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Discount amount in currency paid by the partner"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by the partner"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by Yandex"
}
},
"required": [
"type",
"discount"
]
}
}
},
"required": [
"id",
"modifications",
"price",
"quantity",
"promos"
]
},
"OrdersPromoItem": {
"properties": {
"type": {
"type": "string",
"description": "Promotion type. Can be a gift \"GIFT\", percentage discount \"PERCENTAGE\", co-financed discount \"COFINANCE\" and \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Discount amount in currency paid by the partner"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by the partner"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by Yandex"
}
},
"required": [
"type",
"discount"
]
},
"OrdersModificationItem": {
"properties": {
"id": {
"type": "string",
"description": "ID of the modifier in the partner system",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"group_id": {
"type": "string",
"description": "Unique identifier for a group within a partner system. The Partner Group ID is linked to a specific modifier, which is a component that can be duplicated.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"type": "string",
"description": "Modifier name",
"example": "utensils"
},
"quantity": {
"type": "integer",
"description": "Quantity in the order",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Price of the modifier for the menu item (e.g., additional sauce)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
},
"MarketplaceOrderV2": {
"type": "object",
"description": "Current version of the order model for \"Marketplace\" delivery scheme",
"properties": {
"platform": {
"type": "string",
"description": "Platform identifier. YE - Yandex",
"enum": [
"YE"
]
},
"discriminator": {
"type": "string",
"description": "Schema discriminator object. For MarketplaceOrder, it is \"marketplace\"",
"example": "marketplace"
},
"eatsId": {
"type": "string",
"description": "End-to-end order identifier on the Yandex side in the format DDDDDD-DDDDDDDD",
"example": "190330-12345678"
},
"restaurantId": {
"type": "string",
"description": "Internal identifier of the establishment in the partner system to which the order is transmitted. Free format, UUID4 recommended",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"deliveryInfo": {
"description": "Delivery information",
"properties": {
"clientName": {
"type": "string",
"description": "Client's name in Yandex service",
"example": "John Cena"
},
"phoneNumber": {
"type": "string",
"description": "Phone number to contact the customer in international format. Consists of parts \"+<country code><number>\". May include extension: \"+<country code><number> ext. <extension number>\".",
"example": "+79031111111 ext. 4432"
},
"additionalPhoneNumbers": {
"description": "A list of additional numbers for contacting the client.",
"type": "array",
"items": {
"type": "string",
"description": "Phone number to contact the customer in international format. Consists of parts \"+<country code><number>\". May include extension: \"+<country code><number> ext. <extension number>\".",
"example": "+79031111111 ext. 4432"
}
},
"deliveryDate": {
"type": "string",
"description": "Delivery date (when the client expects the order), in RFC3339 format with fractional seconds (Y-m-d\\TH:i:s.uP)",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
},
"deliveryAddress": {
"description": "Delivery address information",
"properties": {
"full": {
"type": "string",
"description": "Full address",
"example": "Tashkent, Amir Temur Street, building 4, entrance 2. 4th floor, intercom code: 123 K 4567"
},
"latitude": {
"type": "string",
"description": "Delivery point latitude",
"example": "55.756994"
},
"longitude": {
"type": "string",
"description": "Delivery point longitude",
"example": "37.614006"
}
},
"required": [
"full",
"latitude",
"longitude"
]
}
},
"required": [
"clientName",
"deliveryAddress",
"deliveryDate",
"phoneNumber",
"type"
]
},
"paymentInfo": {
"properties": {
"paymentType": {
"type": "string",
"description": "Payment type information. CARD – already paid order, CASH – unpaid order.",
"enum": [
"CARD",
"CASH"
]
},
"itemsCost": {
"type": "number",
"format": "double",
"example": 100,
"description": "Total cost of the dishes in the order"
},
"deliveryFee": {
"type": "number",
"format": "double",
"example": 100,
"description": "Delivery cost"
},
"total": {
"type": "number",
"format": "double",
"example": 200,
"description": "Total order cost"
},
"change": {
"type": "number",
"format": "double",
"example": 500,
"description": "Amount of change required"
}
},
"required": [
"change",
"deliveryFee",
"itemsCost",
"paymentType"
]
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the menu item in the partner system",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Menu item name",
"example": "Pepperoni Pizza"
},
"quantity": {
"type": "number",
"format": "float",
"description": "Quantity of the item in the order",
"example": 3.5
},
"price": {
"type": "number",
"format": "double",
"description": "Price of one item including modification costs. Will be corrected in\n the next version to show the base price without modifications.",
"example": 100
},
"modifications": {
"type": "array",
"description": "List of selected modifications. Can be empty, explicitly transmitted for each individual item in the order. When ordering two items of the same dish with different modifications, different positions with different \"modifications\" lists are transmitted.",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID of the modifier in the partner system",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"group_id": {
"type": "string",
"description": "Unique identifier for a group within a partner system. The Partner Group ID is linked to a specific modifier, which is a component that can be duplicated.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"type": "string",
"description": "Modifier name",
"example": "utensils"
},
"quantity": {
"type": "integer",
"description": "Quantity in the order",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Price of the modifier for the menu item (e.g., additional sauce)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
}
},
"promos": {
"type": "array",
"description": "List of promotions applied to the current dish. If the dish has a non-empty \"promos\" object, it means that a promotion is active in the partner system. If empty, it means no promotions apply to the dish.",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Promotion type. Can be a gift \"GIFT\", percentage discount \"PERCENTAGE\", co-financed discount \"COFINANCE\" and \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Discount amount in currency paid by the partner"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by the partner"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by Yandex"
}
},
"required": [
"type",
"discount"
]
}
}
},
"required": [
"id",
"modifications",
"price",
"quantity",
"promos"
]
}
},
"persons": {
"type": "integer",
"description": "Number of persons for whom the order is placed. May affect the number of cutlery sets",
"example": 2
},
"comment": {
"type": "string",
"description": "Additional order information",
"example": "Additional order information: ..."
},
"promos": {
"type": "array",
"description": "List of promotions applied to the entire order. If the order has a non-empty \"promos\" object, it means that a promotion is active in the partner system. If empty, it means no promotions apply to the order.",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Promotion type. Can be a gift \"GIFT\", percentage discount \"PERCENTAGE\", co-financed discount \"COFINANCE\" and \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Discount amount in currency paid by the partner"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by the partner"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by Yandex"
}
},
"required": [
"type",
"discount"
]
}
}
},
"required": [
"discriminator",
"comment",
"marketplaceOrderDelivery",
"eatsId",
"restaurantId",
"items",
"deliveryInfo",
"paymentInfo",
"marketplaceOrderPayment",
"promos"
]
},
"MarketplaceOrderDeliveryInfo": {
"properties": {
"clientName": {
"type": "string",
"description": "Client's name in Yandex service",
"example": "John Cena"
},
"phoneNumber": {
"type": "string",
"description": "Phone number to contact the customer in international format. Consists of parts \"+<country code><number>\". May include extension: \"+<country code><number> ext. <extension number>\".",
"example": "+79031111111 ext. 4432"
},
"additionalPhoneNumbers": {
"description": "A list of additional numbers for contacting the client.",
"type": "array",
"items": {
"type": "string",
"description": "Phone number to contact the customer in international format. Consists of parts \"+<country code><number>\". May include extension: \"+<country code><number> ext. <extension number>\".",
"example": "+79031111111 ext. 4432"
}
},
"deliveryDate": {
"type": "string",
"description": "Delivery date (when the client expects the order), in RFC3339 format with fractional seconds (Y-m-d\\TH:i:s.uP)",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
},
"deliveryAddress": {
"description": "Delivery address information",
"properties": {
"full": {
"type": "string",
"description": "Full address",
"example": "Tashkent, Amir Temur Street, building 4, entrance 2. 4th floor, intercom code: 123 K 4567"
},
"latitude": {
"type": "string",
"description": "Delivery point latitude",
"example": "55.756994"
},
"longitude": {
"type": "string",
"description": "Delivery point longitude",
"example": "37.614006"
}
},
"required": [
"full",
"latitude",
"longitude"
]
}
},
"required": [
"clientName",
"deliveryAddress",
"deliveryDate",
"phoneNumber",
"type"
]
},
"DeliveryAddress": {
"properties": {
"full": {
"type": "string",
"description": "Full address",
"example": "Tashkent, Amir Temur Street, building 4, entrance 2. 4th floor, intercom code: 123 K 4567"
},
"latitude": {
"type": "string",
"description": "Delivery point latitude",
"example": "55.756994"
},
"longitude": {
"type": "string",
"description": "Delivery point longitude",
"example": "37.614006"
}
},
"required": [
"full",
"latitude",
"longitude"
]
},
"MarketplaceOrderPaymentInfo": {
"properties": {
"paymentType": {
"type": "string",
"description": "Payment type information. CARD – already paid order, CASH – unpaid order.",
"enum": [
"CARD",
"CASH"
]
},
"itemsCost": {
"type": "number",
"format": "double",
"example": 100,
"description": "Total cost of the dishes in the order"
},
"deliveryFee": {
"type": "number",
"format": "double",
"example": 100,
"description": "Delivery cost"
},
"total": {
"type": "number",
"format": "double",
"example": 200,
"description": "Total order cost"
},
"change": {
"type": "number",
"format": "double",
"example": 500,
"description": "Amount of change required"
}
},
"required": [
"change",
"deliveryFee",
"itemsCost",
"paymentType"
]
},
"PickupOrderV1": {
"type": "object",
"description": "Current version of the order model for \"pickup\" delivery scheme",
"properties": {
"platform": {
"type": "string",
"description": "Platform identifier. YE - Yandex",
"enum": [
"YE"
]
},
"discriminator": {
"type": "string",
"description": "Object schema discriminator. For PickupOrder equals \"pickup\"",
"example": "pickup"
},
"eatsId": {
"type": "string",
"description": "End-to-end order identifier on the Yandex side in the format DDDDDD-DDDDDD",
"example": "190330-123456"
},
"restaurantId": {
"type": "string",
"description": "Internal identifier of the establishment in the partner system to which the order is transmitted. Free format, UUID4 recommended",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"deliveryInfo": {
"description": "Delivery info",
"properties": {
"clientName": {
"type": "string",
"description": "Client's name in Yandex service",
"example": "John Cena"
},
"phoneNumber": {
"type": "string",
"description": "Phone number to contact the customer in international format. Consists of parts \"+<country code><number>\". May include extension: \"+<country code><number> ext. <extension number>\".",
"example": "+79031111111 ext. 4432"
},
"additionalPhoneNumbers": {
"description": "A list of additional numbers for contacting the client.",
"type": "array",
"items": {
"type": "string",
"description": "Phone number to contact the customer in international format. Consists of parts \"+<country code><number>\". May include extension: \"+<country code><number> ext. <extension number>\".",
"example": "+79031111111 ext. 4432"
}
},
"clientArrivementDate": {
"type": "string",
"description": "The date when the customer arrives at the restaurant, in RFC 3339 format with fractional part of seconds (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": "Payment type information",
"enum": [
"CARD",
"CASH"
]
},
"itemsCost": {
"type": "number",
"format": "double",
"example": 100,
"description": "Total cost of the dishes in the order"
},
"total": {
"type": "number",
"format": "double",
"example": 200,
"description": "Total order cost"
},
"change": {
"type": "number",
"format": "double",
"example": 500,
"description": "Amount of change required."
}
},
"required": [
"change",
"itemsCost",
"paymentType"
]
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the menu item in the partner system",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Menu item name",
"example": "Pepperoni Pizza"
},
"quantity": {
"type": "number",
"format": "float",
"description": "Quantity of the item in the order",
"example": 3.5
},
"price": {
"type": "number",
"format": "double",
"description": "Price of one item including modification costs. Will be corrected in\n the next version to show the base price without modifications.",
"example": 100
},
"modifications": {
"type": "array",
"description": "List of selected modifications. Can be empty, explicitly transmitted for each individual item in the order. When ordering two items of the same dish with different modifications, different positions with different \"modifications\" lists are transmitted.",
"items": {
"properties": {
"id": {
"type": "string",
"description": "ID of the modifier in the partner system",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"group_id": {
"type": "string",
"description": "Unique identifier for a group within a partner system. The Partner Group ID is linked to a specific modifier, which is a component that can be duplicated.",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"type": "string",
"description": "Modifier name",
"example": "utensils"
},
"quantity": {
"type": "integer",
"description": "Quantity in the order",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Price of the modifier for the menu item (e.g., additional sauce)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
}
},
"promos": {
"type": "array",
"description": "List of promotions applied to the current dish. If the dish has a non-empty \"promos\" object, it means that a promotion is active in the partner system. If empty, it means no promotions apply to the dish.",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Promotion type. Can be a gift \"GIFT\", percentage discount \"PERCENTAGE\", co-financed discount \"COFINANCE\" and \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Discount amount in currency paid by the partner"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by the partner"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by Yandex"
}
},
"required": [
"type",
"discount"
]
}
}
},
"required": [
"id",
"modifications",
"price",
"quantity",
"promos"
]
}
},
"persons": {
"type": "integer",
"description": "Number of people the order is for. May affect the number of utensil sets",
"example": 2
},
"comment": {
"type": "string",
"description": "Additional order information",
"example": "Additional order information: ..."
},
"promos": {
"type": "array",
"description": "List of promotions active for the entire order. If the order object \"promos\" is not empty, then the order has a promotion in the partner's system. If empty – this means that the order does not have any promotions",
"items": {
"properties": {
"type": {
"type": "string",
"description": "Promotion type. Can be a gift \"GIFT\", percentage discount \"PERCENTAGE\", co-financed discount \"COFINANCE\" and \"FIXED\"",
"enum": [
"GIFT",
"PERCENTAGE",
"COFINANCE"
],
"example": "GIFT"
},
"discount": {
"type": "number",
"example": 200,
"description": "Discount amount in currency paid by the partner"
},
"partner_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by the partner"
},
"yandex_discount": {
"type": "number",
"example": 100,
"description": "Part of the discount amount in currency paid by Yandex"
}
},
"required": [
"type",
"discount"
],
"type": "object"
}
}
},
"required": [
"discriminator",
"comment",
"deliveryInfo",
"eatsId",
"restaurantId",
"items",
"paymentInfo",
"promos"
]
},
"PickupOrderDeliveryInfo": {
"properties": {
"clientName": {
"type": "string",
"description": "Client's name in Yandex service",
"example": "John Cena"
},
"phoneNumber": {
"type": "string",
"description": "Phone number to contact the customer in international format. Consists of parts \"+<country code><number>\". May include extension: \"+<country code><number> ext. <extension number>\".",
"example": "+79031111111 ext. 4432"
},
"additionalPhoneNumbers": {
"description": "A list of additional numbers for contacting the client.",
"type": "array",
"items": {
"type": "string",
"description": "Phone number to contact the customer in international format. Consists of parts \"+<country code><number>\". May include extension: \"+<country code><number> ext. <extension number>\".",
"example": "+79031111111 ext. 4432"
}
},
"clientArrivementDate": {
"type": "string",
"description": "The date when the customer arrives at the restaurant, in RFC 3339 format with fractional part of seconds (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": "Payment type information",
"enum": [
"CARD",
"CASH"
]
},
"itemsCost": {
"type": "number",
"format": "double",
"example": 100,
"description": "Total cost of the dishes in the order"
},
"total": {
"type": "number",
"format": "double",
"example": 200,
"description": "Total order cost"
},
"change": {
"type": "number",
"format": "double",
"example": 500,
"description": "Amount of change required."
}
},
"required": [
"change",
"itemsCost",
"paymentType"
]
},
"OrderStatus": {
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Order status. Must be valid – for example, a prepared order cannot be made\nnew again. Status transition is only possible in the specified direction:\nfrom NEW to DELIVERED. Exceptions: the order can move to the CANCELLED\n\nStatus description:\n\n- NEW – new, just sent to the restaurant.\n- ACCEPTED_BY_RESTAURANT – order confirmed by the restaurant.\n- COOKING – order preparation started.\n- READY – order prepared.\n- TAKEN_BY_COURIER – courier picked up the order from the restaurant.\n- DELIVERED – order completed.\n- CANCELLED – order cancelled.\n\nNEW -> ACCEPTED_BY_RESTAURANT -> COOKING -> READY ->\nTAKEN_BY_COURIER -> DELIVERED. From any status -> CANCELLED\n",
"enum": [
"NEW",
"ACCEPTED_BY_RESTAURANT",
"COOKING",
"READY",
"TAKEN_BY_COURIER",
"DELIVERED",
"CANCELLED"
]
},
"comment": {
"maxLength": 500,
"type": "string",
"description": "Status change comment",
"example": "New order"
},
"updatedAt": {
"type": "string",
"description": "Date when the order status changed, in RFC3339 format with fractional seconds (Y-m-d\\TH:i:s.uP)",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
}
},
"required": [
"status"
]
},
"OrderStatusPut": {
"type": "object",
"additionalProperties": true,
"properties": {
"status": {
"type": "string",
"description": "Order ststus.\nStatus description:\n- TAKEN_BY_COURIER - courier picked up the order from the restaurant.\n- DELIVERED – order completed.\n- CANCELLED – order cancelled.",
"enum": [
"CANCELLED",
"TAKEN_BY_COURIER",
"DELIVERED"
]
},
"attributes": {
"type": "array",
"description": "Additional attributes when changing the order status, for example, a sign of payment upon cancellation",
"items": {
"type": "string",
"example": "paid"
}
},
"comment": {
"maxLength": 500,
"type": "string",
"description": "Description of cancellation reasons (can be empty)",
"example": "test"
},
"reason": {
"type": "string",
"description": "The reason for the cancellation of the order. It is transmitted only with the CANCELLED status",
"example": "place.unable_to_call"
},
"updatedAt": {
"type": "string",
"description": "The date when the order status changed, in RFC 3339 format with fractional part of seconds (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": "End-to-end order identifier on the Yandex side in the format DDDDDD-DDDDDDDD",
"example": "190330-12345678"
},
"comment": {
"type": "string",
"description": "Description of cancellation reasons (can be empty)",
"example": "Client refusal"
}
},
"required": [
"eatsId"
]
},
"AuthorizationRequiredResponse": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Reason for authorization failure",
"example": "Access token has been expired. You should request a new one"
}
},
"required": [
"reason"
]
},
"ErrorItem": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
},
"ErrorList": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"properties": {
"code": {
"type": "integer",
"description": "Error code agreed with Yandex",
"example": 100
},
"description": {
"type": "string",
"description": "Error message",
"example": "Description of error"
}
}
}
},
"PushAuthorizationRequiredResponse": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Reason for authorization failure",
"example": "invalid-token"
},
"message": {
"type": "string",
"description": "Text description of the reason for authorization failure",
"example": "Bad token"
}
}
},
"UnavailableGoodsResponse": {
"type": "object",
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"example": "unavailable_goods"
},
"message": {
"type": "string",
"example": "At the moment, the product is not available for order: pie with cream cheese and avocado"
},
"goods": {
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "A dictionary to store item information. The keys in the dictionary are string-based IDs that uniquely identify each item. The values in the dictionary are the corresponding names of the items.",
"example": "{\"10000000003998\": \"pie with cream cheese and avocado\"}"
}
}
},
"OrderFeedback": {
"type": "object",
"properties": {
"feedback": {
"type": "object",
"description": "Information about the customer's feedback",
"properties": {
"id": {
"type": "string",
"description": "feedback's ID on the Yandex side"
},
"createdAt": {
"type": "string",
"description": "The date the feedback was created in the RFC 3339 format from fractional part of seconds (Y-m-d\\TH:i:s.uP)",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
},
"eatsId": {
"type": "string",
"description": "End-to-end order identifier on the Yandex side in the format DDDDDD-DDDDDDDD",
"example": "190330-12345678"
},
"orderId": {
"type": "string",
"description": "Order identifier in the partner's system"
},
"predefinedComment": {
"type": "string",
"description": "Predefined comments on the Yandex side, selected by the client"
},
"comment": {
"type": "string",
"description": "Text feedback from the customer on the order"
},
"restaurantId": {
"type": "string",
"description": "The ID of the restaurant in the partner's system"
},
"rating": {
"type": "integer",
"description": "The customer's rating for the order is from 1 to 5",
"example": 5
},
"takenAt": {
"type": "string",
"description": "The date when the courier picked up the order from the restaurant, in ISO format 8601 without fractional part of seconds (Y-m-d\\TH:i:s+hh:ss)",
"format": "date-time",
"example": "1937-01-01T12:00:27+00:20"
},
"deliveredAt": {
"type": "string",
"description": "The date when the order was delivered in ISO 8601 format without fractional part of seconds (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": "Order information",
"properties": {
"createdAt": {
"type": "string",
"description": "The date the review was created in the RFC 3339 format from fractional part of seconds (Y-m-d\\TH:i:s.uP)",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
},
"platform": {
"type": "string",
"description": "Platform ID.",
"enum": [
"YE"
]
},
"discriminator": {
"type": "string",
"description": "Type of order delivery:\n\nyandex - delivery by Yandex couriers\nmarketplace - delivery by restaurant couriers\npickup - pickup by the customer from the restaurant\n",
"enum": [
"marketplace",
"yandex",
"pickup"
],
"example": "marketplace"
},
"deliveryInfo": {
"description": "Delivery info",
"properties": {
"clientName": {
"type": "string",
"description": "Client's name in Yandex service",
"example": "John Cena"
}
},
"required": [
"clientName"
]
},
"paymentInfo": {
"properties": {
"total": {
"type": "number",
"format": "double",
"example": 200.99,
"description": "Total order cost"
}
},
"required": [
"total"
]
},
"items": {
"items": {
"properties": {
"id": {
"type": "string",
"description": "menu item ID in the partner's system",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "menu item name",
"example": "Pizza Pepperoni"
},
"quantity": {
"type": "number",
"format": "float",
"description": "The number of items in the order",
"example": 3.5
},
"price": {
"type": "number",
"format": "double",
"description": "Price of one item including modification costs. In the next version, it will be corrected to the net price of the item without modifications",
"example": 100
},
"modifications": {
"description": "List of selected modifications. May be empty, passed\nexplicitly for each individual item in the order. When ordering two\nitems of the same dish with different sets of modifications, different\nitems with different `modifications` lists are passed.\n",
"items": {
"properties": {
"id": {
"type": "string",
"description": "Modifier ID in the partner's system",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Modifier ID in the partner's system",
"example": "Utensils"
},
"quantity": {
"type": "integer",
"description": "Quantity in the order",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Modifier price for the menu item (e.g., additional sauce)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
},
"type": "array"
}
},
"required": [
"id",
"modifications",
"price",
"quantity"
]
},
"type": "array"
},
"comment": {
"type": "string",
"description": "Additional order information",
"example": "Additional order information: ..."
}
},
"required": [
"createdAt",
"discriminator",
"comment",
"marketplaceOrderDelivery",
"eatsId",
"items",
"deliveryInfo",
"paymentInfo",
"marketplaceOrderPayment"
]
}
},
"required": [
"feedback"
]
},
"Feedback": {
"type": "object",
"description": "Information about the customer's feedback",
"properties": {
"id": {
"type": "string",
"description": "feedback's ID on the Yandex side"
},
"createdAt": {
"type": "string",
"description": "The date the feedback was created in the RFC 3339 format from fractional part of seconds (Y-m-d\\TH:i:s.uP)",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
},
"eatsId": {
"type": "string",
"description": "End-to-end order identifier on the Yandex side in the format DDDDDD-DDDDDDDD",
"example": "190330-12345678"
},
"orderId": {
"type": "string",
"description": "Order identifier in the partner's system"
},
"predefinedComment": {
"type": "string",
"description": "Predefined comments on the Yandex side, selected by the client"
},
"comment": {
"type": "string",
"description": "Text feedback from the customer on the order"
},
"restaurantId": {
"type": "string",
"description": "The ID of the restaurant in the partner's system"
},
"rating": {
"type": "integer",
"description": "The customer's rating for the order is from 1 to 5",
"example": 5
},
"takenAt": {
"type": "string",
"description": "The date when the courier picked up the order from the restaurant, in ISO format 8601 without fractional part of seconds (Y-m-d\\TH:i:s+hh:ss)",
"format": "date-time",
"example": "1937-01-01T12:00:27+00:20"
},
"deliveredAt": {
"type": "string",
"description": "The date when the order was delivered in ISO 8601 format without fractional part of seconds (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": "Order information",
"properties": {
"createdAt": {
"type": "string",
"description": "The date the review was created in the RFC 3339 format from fractional part of seconds (Y-m-d\\TH:i:s.uP)",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
},
"platform": {
"type": "string",
"description": "Platform ID.",
"enum": [
"YE"
]
},
"discriminator": {
"type": "string",
"description": "Type of order delivery:\n\nyandex - delivery by Yandex couriers\nmarketplace - delivery by restaurant couriers\npickup - pickup by the customer from the restaurant\n",
"enum": [
"marketplace",
"yandex",
"pickup"
],
"example": "marketplace"
},
"deliveryInfo": {
"description": "Delivery info",
"properties": {
"clientName": {
"type": "string",
"description": "Client's name in Yandex service",
"example": "John Cena"
}
},
"required": [
"clientName"
]
},
"paymentInfo": {
"properties": {
"total": {
"type": "number",
"format": "double",
"example": 200.99,
"description": "Total order cost"
}
},
"required": [
"total"
]
},
"items": {
"items": {
"properties": {
"id": {
"type": "string",
"description": "menu item ID in the partner's system",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "menu item name",
"example": "Pizza Pepperoni"
},
"quantity": {
"type": "number",
"format": "float",
"description": "The number of items in the order",
"example": 3.5
},
"price": {
"type": "number",
"format": "double",
"description": "Price of one item including modification costs. In the next version, it will be corrected to the net price of the item without modifications",
"example": 100
},
"modifications": {
"description": "List of selected modifications. May be empty, passed\nexplicitly for each individual item in the order. When ordering two\nitems of the same dish with different sets of modifications, different\nitems with different `modifications` lists are passed.\n",
"items": {
"properties": {
"id": {
"type": "string",
"description": "Modifier ID in the partner's system",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Modifier ID in the partner's system",
"example": "Utensils"
},
"quantity": {
"type": "integer",
"description": "Quantity in the order",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Modifier price for the menu item (e.g., additional sauce)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
},
"type": "array"
}
},
"required": [
"id",
"modifications",
"price",
"quantity"
]
},
"type": "array"
},
"comment": {
"type": "string",
"description": "Additional order information",
"example": "Additional order information: ..."
}
},
"required": [
"createdAt",
"discriminator",
"comment",
"marketplaceOrderDelivery",
"eatsId",
"items",
"deliveryInfo",
"paymentInfo",
"marketplaceOrderPayment"
]
},
"DeliveryInfo": {
"properties": {
"clientName": {
"type": "string",
"description": "Client's name in Yandex service",
"example": "John Cena"
}
},
"required": [
"clientName"
]
},
"PaymentInfo": {
"properties": {
"total": {
"type": "number",
"format": "double",
"example": 200.99,
"description": "Total order cost"
}
},
"required": [
"total"
]
},
"OrderInfoItem": {
"properties": {
"id": {
"type": "string",
"description": "menu item ID in the partner's system",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "menu item name",
"example": "Pizza Pepperoni"
},
"quantity": {
"type": "number",
"format": "float",
"description": "The number of items in the order",
"example": 3.5
},
"price": {
"type": "number",
"format": "double",
"description": "Price of one item including modification costs. In the next version, it will be corrected to the net price of the item without modifications",
"example": 100
},
"modifications": {
"description": "List of selected modifications. May be empty, passed\nexplicitly for each individual item in the order. When ordering two\nitems of the same dish with different sets of modifications, different\nitems with different `modifications` lists are passed.\n",
"items": {
"properties": {
"id": {
"type": "string",
"description": "Modifier ID in the partner's system",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Modifier ID in the partner's system",
"example": "Utensils"
},
"quantity": {
"type": "integer",
"description": "Quantity in the order",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Modifier price for the menu item (e.g., additional sauce)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
},
"type": "array"
}
},
"required": [
"id",
"modifications",
"price",
"quantity"
]
},
"ModificationsItem": {
"properties": {
"id": {
"type": "string",
"description": "Modifier ID in the partner's system",
"example": "937c57f6-4508-4858-be7f-20691a16fbb0"
},
"name": {
"type": "string",
"description": "Modifier ID in the partner's system",
"example": "Utensils"
},
"quantity": {
"type": "integer",
"description": "Quantity in the order",
"example": 3
},
"price": {
"type": "number",
"format": "double",
"description": "Modifier price for the menu item (e.g., additional sauce)",
"example": 100
}
},
"required": [
"id",
"price",
"quantity"
]
},
"Zone": {
"type": "object",
"description": "Delivery area",
"required": [
"coordinates",
"meta",
"name"
],
"properties": {
"coordinates": {
"type": "array",
"description": "The set of coordinates of the polygon must contain an ordered a set of coordinate points",
"minLength": 4,
"maxLength": 500,
"items": {
"type": "object",
"description": "The coordinate point of the zone",
"required": [
"lt",
"lg"
],
"properties": {
"lt": {
"type": "number",
"example": 56.473673
},
"lg": {
"type": "number",
"example": 35.918658
}
}
}
},
"meta": {
"type": "object",
"description": "Additional data of delivery zones",
"required": [
"zoneId",
"enabled",
"intervals",
"averageDeliveryTime",
"thresholds"
],
"properties": {
"zoneId": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "Delivery zone ID in the partner's system"
},
"enabled": {
"type": "boolean",
"description": "The boolean flag of the Delivery zone activity. When received in response `false` - the zone will become inactive."
},
"intervals": {
"type": "object",
"description": "Delivery zones opening hours",
"required": [
"mon",
"tue",
"wed",
"thu",
"fri",
"sat",
"sun"
],
"properties": {
"mon": {
"type": "array",
"description": "Opening hours for Monday, leave an empty array for non-working days",
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"tue": {
"type": "array",
"description": "Opening hours for Tuesday, leave an empty array for non-working days",
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"wed": {
"type": "array",
"description": "Opening hours for Wednesday, leave an empty array for non-working days",
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"thu": {
"type": "array",
"description": "Opening hours for Thursday, leave an empty array for non-working days",
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"fri": {
"type": "array",
"description": "Opening hours for Friday, leave an empty array for non-working days",
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"sat": {
"type": "array",
"description": "Opening hours for Saturday, leave an empty array for non-working days",
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"sun": {
"type": "array",
"description": "Opening hours for Sunday, leave an empty array for non-working days",
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
}
}
},
"averageDeliveryTime": {
"type": "number",
"description": "Average waiting time for delivery"
},
"thresholds": {
"description": "Terms of delivery",
"minLength": 1,
"maxLength": 10,
"type": "array",
"items": {
"type": "object",
"description": "Terms of delivery",
"required": [
"orderCost",
"deliveryCost"
],
"properties": {
"orderCost": {
"type": "object",
"description": "Minimum order amount for delivery",
"allOf": [
{
"type": "object",
"description": "Presentation of the amount of money",
"required": [
"currency",
"value"
],
"properties": {
"currency": {
"type": "string",
"description": "Three-letter currency designation ISO 4217",
"minLength": 3,
"maxLength": 3,
"example": "SUM"
},
"value": {
"type": "number",
"description": "The value in the specified currency",
"minimum": 0,
"example": 0
}
}
}
]
},
"deliveryCost": {
"type": "object",
"description": "The cost of delivery. Specify 0 for free shipping",
"allOf": [
{
"type": "object",
"description": "Presentation of the amount of money",
"required": [
"currency",
"value"
],
"properties": {
"currency": {
"type": "string",
"description": "Three-letter currency designation ISO 4217",
"minLength": 3,
"maxLength": 3,
"example": "SUM"
},
"value": {
"type": "number",
"description": "The value in the specified currency",
"minimum": 0,
"example": 0
}
}
}
]
}
}
}
},
"courierType": {
"type": "string",
"enum": [
"pedestrian",
"bicycle",
"vehicle",
"motorcycle"
]
}
}
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "Delivery zone name"
}
}
},
"ZoneMeta": {
"type": "object",
"description": "Additional data of delivery zones",
"required": [
"zoneId",
"enabled",
"intervals",
"averageDeliveryTime",
"thresholds"
],
"properties": {
"zoneId": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "Delivery zone ID in the partner's system"
},
"enabled": {
"type": "boolean",
"description": "The boolean flag of the Delivery zone activity. When received in response `false` - the zone will become inactive."
},
"intervals": {
"type": "object",
"description": "Delivery zones opening hours",
"required": [
"mon",
"tue",
"wed",
"thu",
"fri",
"sat",
"sun"
],
"properties": {
"mon": {
"type": "array",
"description": "Opening hours for Monday, leave an empty array for non-working days",
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"tue": {
"type": "array",
"description": "Opening hours for Tuesday, leave an empty array for non-working days",
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"wed": {
"type": "array",
"description": "Opening hours for Wednesday, leave an empty array for non-working days",
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"thu": {
"type": "array",
"description": "Opening hours for Thursday, leave an empty array for non-working days",
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"fri": {
"type": "array",
"description": "Opening hours for Friday, leave an empty array for non-working days",
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"sat": {
"type": "array",
"description": "Opening hours for Saturday, leave an empty array for non-working days",
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"sun": {
"type": "array",
"description": "Opening hours for Sunday, leave an empty array for non-working days",
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
}
}
},
"averageDeliveryTime": {
"type": "number",
"description": "Average waiting time for delivery"
},
"thresholds": {
"description": "Terms of delivery",
"minLength": 1,
"maxLength": 10,
"type": "array",
"items": {
"type": "object",
"description": "Terms of delivery",
"required": [
"orderCost",
"deliveryCost"
],
"properties": {
"orderCost": {
"type": "object",
"description": "Minimum order amount for delivery",
"allOf": [
{
"type": "object",
"description": "Presentation of the amount of money",
"required": [
"currency",
"value"
],
"properties": {
"currency": {
"type": "string",
"description": "Three-letter currency designation ISO 4217",
"minLength": 3,
"maxLength": 3,
"example": "SUM"
},
"value": {
"type": "number",
"description": "The value in the specified currency",
"minimum": 0,
"example": 0
}
}
}
]
},
"deliveryCost": {
"type": "object",
"description": "The cost of delivery. Specify 0 for free shipping",
"allOf": [
{
"type": "object",
"description": "Presentation of the amount of money",
"required": [
"currency",
"value"
],
"properties": {
"currency": {
"type": "string",
"description": "Three-letter currency designation ISO 4217",
"minLength": 3,
"maxLength": 3,
"example": "SUM"
},
"value": {
"type": "number",
"description": "The value in the specified currency",
"minimum": 0,
"example": 0
}
}
}
]
}
}
}
},
"courierType": {
"type": "string",
"enum": [
"pedestrian",
"bicycle",
"vehicle",
"motorcycle"
]
}
}
},
"Intervals": {
"type": "object",
"description": "Delivery zones opening hours",
"required": [
"mon",
"tue",
"wed",
"thu",
"fri",
"sat",
"sun"
],
"properties": {
"mon": {
"type": "array",
"description": "Opening hours for Monday, leave an empty array for non-working days",
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"tue": {
"type": "array",
"description": "Opening hours for Tuesday, leave an empty array for non-working days",
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"wed": {
"type": "array",
"description": "Opening hours for Wednesday, leave an empty array for non-working days",
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"thu": {
"type": "array",
"description": "Opening hours for Thursday, leave an empty array for non-working days",
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"fri": {
"type": "array",
"description": "Opening hours for Friday, leave an empty array for non-working days",
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"sat": {
"type": "array",
"description": "Opening hours for Saturday, leave an empty array for non-working days",
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"sun": {
"type": "array",
"description": "Opening hours for Sunday, leave an empty array for non-working days",
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
}
}
},
"Interval": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
},
"Threshold": {
"type": "object",
"description": "Terms of delivery",
"required": [
"orderCost",
"deliveryCost"
],
"properties": {
"orderCost": {
"type": "object",
"description": "Minimum order amount for delivery",
"allOf": [
{
"type": "object",
"description": "Presentation of the amount of money",
"required": [
"currency",
"value"
],
"properties": {
"currency": {
"type": "string",
"description": "Three-letter currency designation ISO 4217",
"minLength": 3,
"maxLength": 3,
"example": "SUM"
},
"value": {
"type": "number",
"description": "The value in the specified currency",
"minimum": 0,
"example": 0
}
}
}
]
},
"deliveryCost": {
"type": "object",
"description": "The cost of delivery. Specify 0 for free shipping",
"allOf": [
{
"type": "object",
"description": "Presentation of the amount of money",
"required": [
"currency",
"value"
],
"properties": {
"currency": {
"type": "string",
"description": "Three-letter currency designation ISO 4217",
"minLength": 3,
"maxLength": 3,
"example": "SUM"
},
"value": {
"type": "number",
"description": "The value in the specified currency",
"minimum": 0,
"example": 0
}
}
}
]
}
}
},
"Point": {
"type": "object",
"description": "The coordinate point of the zone",
"required": [
"lt",
"lg"
],
"properties": {
"lt": {
"type": "number",
"example": 56.473673
},
"lg": {
"type": "number",
"example": 35.918658
}
}
},
"Money": {
"type": "object",
"description": "Presentation of the amount of money",
"required": [
"currency",
"value"
],
"properties": {
"currency": {
"type": "string",
"description": "Three-letter currency designation ISO 4217",
"minLength": 3,
"maxLength": 3,
"example": "SUM"
},
"value": {
"type": "number",
"description": "The value in the specified currency",
"minimum": 0,
"example": 0
}
}
},
"PlaceSchedule": {
"type": "object",
"description": "The partner's outlet's work schedule by day of the week",
"required": [
"mon",
"tue",
"wed",
"thu",
"fri",
"sat",
"sun"
],
"properties": {
"mon": {
"type": "array",
"description": "Opening hours for Monday, leave an empty array for non-working days",
"minLength": 0,
"maxLength": 10,
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"tue": {
"type": "array",
"description": "Opening hours for Tuesday, leave an empty array for non-working days",
"minLength": 0,
"maxLength": 10,
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"wed": {
"type": "array",
"description": "Opening hours for Wednesday, leave an empty array for non-working days",
"minLength": 0,
"maxLength": 10,
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"thu": {
"type": "array",
"description": "Opening hours for Thursday, leave an empty array for non-working days",
"minLength": 0,
"maxLength": 10,
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"fri": {
"type": "array",
"description": "Opening hours for Friday, leave an empty array for non-working days",
"minLength": 0,
"maxLength": 10,
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"sat": {
"type": "array",
"description": "Opening hours for Saturday, leave an empty array for non-working days",
"minLength": 0,
"maxLength": 10,
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
},
"sun": {
"type": "array",
"description": "Opening hours for Sunday, leave an empty array for non-working days",
"minLength": 0,
"maxLength": 10,
"items": {
"type": "object",
"description": "The interval of working hours. Specify 00:00-24:00 for round-the-clock zones. Opening hours are indicated according to the local timezone of the restaurant.",
"required": [
"start",
"end"
],
"properties": {
"start": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "The start time of the period in the HH:MM format",
"example": "00:00"
},
"end": {
"type": "string",
"minLength": 5,
"maxLength": 5,
"description": "Period end time in HH:MM format",
"example": "24:00"
}
}
}
}
}
},
"CourierInfo": {
"type": "object",
"required": [
"courier",
"order",
"location"
],
"properties": {
"courier": {
"required": [
"name",
"type"
],
"properties": {
"name": {
"type": "string",
"description": "Courier's name",
"example": "Pablo"
},
"type": {
"description": "Courier Type:\n* pedestrian\n* bicycle\n* vehicle\n* motorcycle\n* electric_bicycle\n* rover (delivery robot).",
"enum": [
"pedestrian",
"bicycle",
"vehicle",
"motorcycle",
"electric_bicycle",
"rover"
],
"type": "string",
"default": "pedestrian"
},
"phone": {
"type": "string",
"description": "Phone number to contact the customer in international format. Consists of parts \"+<country code><number>\". May include extension: \"+<country code><number> ext. <extension number>\".",
"example": "+79031111111 ext. 4432"
},
"status": {
"description": "Courier status\n* accepted - the courier accepted the order.\n* arrived_to_source - The courier arrived at the place..\n* taken - the courier took the order.\n* arrived_to_destination - the courier arrived to the client.\n* finished - order is delivered.",
"enum": [
"accepted",
"arrived_to_source",
"taken",
"arrived_to_destination",
"finished"
],
"type": "string",
"default": "accepted"
}
}
},
"order": {
"required": [
"orderNr"
],
"properties": {
"orderNr": {
"type": "string",
"description": "End-to-end order identifier on the Yandex side in the format 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": "Estimated time of arrival of the courier at the restaurant\n in RFC 3339 format with fractional part of seconds (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": "End-to-end order identifier on the Yandex side in the format DDDDDD-DDDDDDDD",
"example": "190330-12345678"
}
}
},
"CourierInfoCourier": {
"required": [
"name",
"type"
],
"properties": {
"name": {
"type": "string",
"description": "Courier's name",
"example": "Pablo"
},
"type": {
"description": "Courier Type:\n* pedestrian\n* bicycle\n* vehicle\n* motorcycle\n* electric_bicycle\n* rover (delivery robot).",
"enum": [
"pedestrian",
"bicycle",
"vehicle",
"motorcycle",
"electric_bicycle",
"rover"
],
"type": "string",
"default": "pedestrian"
},
"phone": {
"type": "string",
"description": "Phone number to contact the customer in international format. Consists of parts \"+<country code><number>\". May include extension: \"+<country code><number> ext. <extension number>\".",
"example": "+79031111111 ext. 4432"
},
"status": {
"description": "Courier status\n* accepted - the courier accepted the order.\n* arrived_to_source - The courier arrived at the place..\n* taken - the courier took the order.\n* arrived_to_destination - the courier arrived to the client.\n* finished - order is delivered.",
"enum": [
"accepted",
"arrived_to_source",
"taken",
"arrived_to_destination",
"finished"
],
"type": "string",
"default": "accepted"
}
}
},
"PartnerFeedbackRequest": {
"type": "object",
"required": [
"feedback_id",
"text"
],
"properties": {
"feedback_id": {
"type": "string",
"description": "the ID of the feedback to be answered",
"example": 1234567
},
"text": {
"type": "string",
"description": "The text of the partner's response to the feedback"
},
"order_nr": {
"type": "string",
"description": "End-to-end order identifier on the Yandex side in the format DDDDDD-DDDDDDDD"
},
"promo": {
"type": "integer",
"enum": [
10,
15,
20,
30,
40
],
"description": "Promo code with a percentage discount"
}
}
},
"AuthBody": {
"description": "Descriptions of authorization parameters",
"type": "object",
"additionalProperties": false,
"required": [
"client_id",
"client_secret"
],
"properties": {
"client_id": {
"description": "Client ID",
"type": "string"
},
"client_secret": {
"description": "secret key",
"type": "string"
}
}
},
"AuthResponse": {
"description": "auth response",
"type": "object",
"additionalProperties": false,
"required": [
"access_token",
"expires_in"
],
"properties": {
"access_token": {
"description": "The auth token",
"type": "string",
"example": "bqehYcfk7Tb2zKRkxQ-IaK9nHyntdYnlpJ7kwTNX3B6mIKPws"
},
"expires_in": {
"description": "Token lifetime",
"type": "integer",
"example": 120
},
"scope": {
"type": "string",
"example": "vendor_management"
},
"token_type": {
"description": "Token type",
"type": "string",
"example": "bearer"
}
}
},
"Blocks": {
"type": "object",
"properties": {
"vendorInfo": {
"type": "array",
"items": {
"type": "object",
"properties": {
"vendorId": {
"type": "string",
"description": "Restaurant ID in the partner's system",
"example": "819711"
},
"deliveryType": {
"type": "string",
"description": "Delivery type",
"enum": [
"ddc",
"marketplace"
],
"example": "ddc"
}
}
}
},
"from": {
"type": "string",
"description": "Date and time of the start of the block",
"example": "2016-05-12T23:54:32+0100"
},
"to": {
"type": "string",
"description": "The date and time of the end of the lock (if not specified, then it is blocked forever)",
"example": "2016-05-12T23:54:32+0100",
"nullable": true
},
"message": {
"type": "string",
"description": "The reason of blocking",
"maxLength": 4096,
"nullable": true
},
"tag": {
"type": "string",
"description": "blocking tag",
"enum": [
"technical_problem",
"too_busy"
]
}
},
"required": [
"vendorInfo",
"from",
"tag"
]
},
"Unblocks": {
"type": "object",
"additionalProperties": true,
"properties": {
"vendorInfo": {
"type": "array",
"items": {
"type": "object",
"properties": {
"vendorId": {
"type": "string",
"description": "Restaurant ID in the partner's system",
"example": "819711"
},
"deliveryType": {
"type": "string",
"description": "Delivery type",
"enum": [
"ddc",
"marketplace"
],
"example": "ddc"
}
}
}
},
"blockIds": {
"type": "array",
"description": "List of block IDs",
"items": {
"type": "string"
}
}
},
"required": [
"vendorInfo",
"blockIds"
]
},
"BlockStatus": {
"type": "object",
"additionalProperties": true,
"properties": {
"vendorInfo": {
"type": "array",
"items": {
"type": "object",
"properties": {
"vendorId": {
"type": "string",
"description": "Restaurant ID in the partner's system",
"example": "819711"
},
"deliveryType": {
"type": "string",
"description": "Delivery type",
"enum": [
"ddc",
"marketplace"
],
"example": "ddc"
}
}
}
},
"statuses": {
"type": "array",
"items": {
"type": "string",
"enum": [
"enabled"
]
}
},
"limit": {
"type": "integer",
"description": "Issue limit",
"default": 100,
"example": 100
},
"offset": {
"type": "integer",
"description": "Output offset",
"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": "Vendor Array",
"items": {
"type": "object",
"additionalProperties": false,
"description": "Vendor's object",
"required": [
"vendorId",
"blockId",
"deliveryType",
"from"
],
"properties": {
"vendorId": {
"type": "string",
"description": "Vendor ID",
"example": "17205"
},
"blockId": {
"type": "string",
"description": "ID of the block in the service"
},
"externalBlockId": {
"type": "string",
"description": "ID of the block in the partner's system"
},
"deliveryType": {
"type": "string",
"enum": [
"ddc",
"marketplace"
],
"description": "Block ID"
},
"availableToCancel": {
"type": "boolean",
"description": "The ability to unlock"
},
"status": {
"type": "string",
"enum": [
"enabled",
"disabled"
],
"description": "Block status"
},
"from": {
"type": "string",
"description": "Date and time of the start of the block",
"example": "2016-05-12T23:54:32+0100"
},
"to": {
"type": "string",
"description": "Date and time of the end of the block",
"example": "2016-05-12T23:54:32+0100"
},
"source": {
"type": "string",
"description": "The source of the blockage",
"example": "Yandex"
},
"message": {
"type": "string",
"description": "A comment on the blocking (received from a partner) or a description of the blocking from the service"
}
}
}
}
}
},
"VendorObject": {
"type": "object",
"additionalProperties": false,
"description": "Vendor's object",
"required": [
"vendorId",
"blockId",
"deliveryType",
"from"
],
"properties": {
"vendorId": {
"type": "string",
"description": "Vendor ID",
"example": "17205"
},
"blockId": {
"type": "string",
"description": "ID of the block in the service"
},
"externalBlockId": {
"type": "string",
"description": "ID of the block in the partner's system"
},
"deliveryType": {
"type": "string",
"enum": [
"ddc",
"marketplace"
],
"description": "Block ID"
},
"availableToCancel": {
"type": "boolean",
"description": "The ability to unlock"
},
"status": {
"type": "string",
"enum": [
"enabled",
"disabled"
],
"description": "Block status"
},
"from": {
"type": "string",
"description": "Date and time of the start of the block",
"example": "2016-05-12T23:54:32+0100"
},
"to": {
"type": "string",
"description": "Date and time of the end of the block",
"example": "2016-05-12T23:54:32+0100"
},
"source": {
"type": "string",
"description": "The source of the blockage",
"example": "Yandex"
},
"message": {
"type": "string",
"description": "A comment on the blocking (received from a partner) or a description of the blocking from the service"
}
}
},
"VendorInfo": {
"type": "array",
"items": {
"type": "object",
"properties": {
"vendorId": {
"type": "string",
"description": "Restaurant ID in the partner's system",
"example": "819711"
},
"deliveryType": {
"type": "string",
"description": "Delivery type",
"enum": [
"ddc",
"marketplace"
],
"example": "ddc"
}
}
}
},
"Vendor": {
"type": "object",
"properties": {
"vendorId": {
"type": "string",
"description": "Restaurant ID in the partner's system",
"example": "819711"
},
"deliveryType": {
"type": "string",
"description": "Delivery type",
"enum": [
"ddc",
"marketplace"
],
"example": "ddc"
}
}
},
"MenuImportInitiation": {
"type": "object",
"additionalProperties": false,
"properties": {
"restaurantId": {
"type": "string",
"maxLength": 512,
"description": "The ID of the restaurant in the partner's system"
},
"operationType": {
"type": "string",
"enum": [
"menu",
"menu_stop_list"
],
"default": "menu",
"description": "menu - Menu parsing, menu_stop_list - stop list parsing\n"
}
},
"required": [
"restaurantId"
]
},
"OperationType": {
"type": "string",
"enum": [
"menu",
"menu_stop_list"
],
"default": "menu",
"description": "menu - Menu parsing, menu_stop_list - stop list parsing\n"
},
"ValidateCodeRequest": {
"type": "object",
"additionalProperties": false,
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "The code that needs to be validated"
}
}
},
"ValidateCodeResponse": {
"type": "object",
"additionalProperties": false,
"required": [
"is_valid"
],
"properties": {
"is_valid": {
"type": "boolean",
"description": "Validation result."
}
}
},
"Error": {
"description": "Error description",
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Erroe message",
"type": "string"
},
"code": {
"description": "Error code",
"type": "integer"
}
}
},
"V1GetOrdersDetailsRequest": {
"type": "object",
"additionalProperties": false,
"required": [
"eats_ids"
],
"properties": {
"eats_ids": {
"type": "array",
"description": "List of order numbers to search for",
"minItems": 1,
"maxItems": 100,
"items": {
"type": "string",
"minLength": 13,
"description": "End-to-end order identifier on the Yandex side in the format DDDDDD-DDDDDDDD",
"example": "230328-354380"
}
}
}
},
"V1GetOrdersDetailsResponse": {
"type": "object",
"additionalProperties": false,
"required": [
"orders",
"not_found_eats_ids"
],
"properties": {
"orders": {
"type": "array",
"description": "List of orders with detailed information",
"items": {
"type": "object",
"description": "Order with detailed information",
"additionalProperties": false,
"required": [
"eats_id",
"order_id",
"status",
"items"
],
"properties": {
"eats_id": {
"type": "string",
"minLength": 13,
"description": "End-to-end order identifier on the Yandex side in the format DDDDDD-DDDDDDDD",
"example": "230328-354380"
},
"order_id": {
"type": "string",
"nullable": true,
"description": "Order identifier in the partner's system"
},
"status": {
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Order status. Must be valid – for example, a prepared order cannot be made\nnew again. Status transition is only possible in the specified direction:\nfrom NEW to DELIVERED. Exceptions: the order can move to the CANCELLED\n\nStatus description:\n\n- NEW – new, just sent to the restaurant.\n- ACCEPTED_BY_RESTAURANT – order confirmed by the restaurant.\n- COOKING – order preparation started.\n- READY – order prepared.\n- TAKEN_BY_COURIER – courier picked up the order from the restaurant.\n- DELIVERED – order completed.\n- CANCELLED – order cancelled.\n\nNEW -> ACCEPTED_BY_RESTAURANT -> COOKING -> READY ->\nTAKEN_BY_COURIER -> DELIVERED. From any status -> CANCELLED\n",
"enum": [
"NEW",
"ACCEPTED_BY_RESTAURANT",
"COOKING",
"READY",
"TAKEN_BY_COURIER",
"DELIVERED",
"CANCELLED"
]
},
"comment": {
"maxLength": 500,
"type": "string",
"description": "Status change comment",
"example": "New order"
},
"updatedAt": {
"type": "string",
"description": "Date when the order status changed, in RFC3339 format with fractional seconds (Y-m-d\\TH:i:s.uP)",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
}
},
"required": [
"status"
]
},
"items": {
"description": "The composition of the order",
"type": "array",
"items": {
"description": "Item with modificators",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "Item ID on the partner's system",
"type": "string"
},
"name": {
"description": "Item name",
"type": "string"
},
"quantity": {
"description": "The number of products within this item",
"type": "number"
},
"price": {
"description": "The cost of a given item including the cost of options",
"type": "number",
"example": 123.78
},
"original_price": {
"description": "The cost of a given item excluding the cost of options",
"type": "number",
"example": 100.23
},
"weight": {
"description": "Final weight of the product",
"type": "number"
},
"measure_unit": {
"description": "Units of weight measurement",
"type": "string"
},
"modifications": {
"description": "Product Options",
"type": "array",
"items": {
"description": "Product Option",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "Option's ID in the partner's system",
"type": "string"
},
"group_id": {
"description": "The ID of the group in the partner system to which the option belongs",
"type": "string",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"description": "Option name",
"type": "string"
},
"quantity": {
"description": "The number of options within the item",
"type": "integer"
},
"price": {
"description": "The price of a product option",
"type": "number",
"example": 10.5
}
},
"required": [
"id",
"price",
"quantity"
]
}
}
}
}
},
"items_cost": {
"description": "The cost of the order for the partner minus the cost delivery (including partner discounts)",
"type": "number"
}
}
}
},
"not_found_eats_ids": {
"type": "array",
"description": "List of order numbers for which information not found or unavailable",
"items": {
"type": "string",
"minLength": 13,
"description": "End-to-end order identifier on the Yandex side in the format DDDDDD-DDDDDDDD",
"example": "230328-354380"
}
}
}
},
"OrderDetails": {
"type": "object",
"description": "Order with detailed information",
"additionalProperties": false,
"required": [
"eats_id",
"order_id",
"status",
"items"
],
"properties": {
"eats_id": {
"type": "string",
"minLength": 13,
"description": "End-to-end order identifier on the Yandex side in the format DDDDDD-DDDDDDDD",
"example": "230328-354380"
},
"order_id": {
"type": "string",
"nullable": true,
"description": "Order identifier in the partner's system"
},
"status": {
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Order status. Must be valid – for example, a prepared order cannot be made\nnew again. Status transition is only possible in the specified direction:\nfrom NEW to DELIVERED. Exceptions: the order can move to the CANCELLED\n\nStatus description:\n\n- NEW – new, just sent to the restaurant.\n- ACCEPTED_BY_RESTAURANT – order confirmed by the restaurant.\n- COOKING – order preparation started.\n- READY – order prepared.\n- TAKEN_BY_COURIER – courier picked up the order from the restaurant.\n- DELIVERED – order completed.\n- CANCELLED – order cancelled.\n\nNEW -> ACCEPTED_BY_RESTAURANT -> COOKING -> READY ->\nTAKEN_BY_COURIER -> DELIVERED. From any status -> CANCELLED\n",
"enum": [
"NEW",
"ACCEPTED_BY_RESTAURANT",
"COOKING",
"READY",
"TAKEN_BY_COURIER",
"DELIVERED",
"CANCELLED"
]
},
"comment": {
"maxLength": 500,
"type": "string",
"description": "Status change comment",
"example": "New order"
},
"updatedAt": {
"type": "string",
"description": "Date when the order status changed, in RFC3339 format with fractional seconds (Y-m-d\\TH:i:s.uP)",
"format": "date-time",
"example": "1937-01-01T12:00:27.870000+00:20"
}
},
"required": [
"status"
]
},
"items": {
"description": "The composition of the order",
"type": "array",
"items": {
"description": "Item with modificators",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "Item ID on the partner's system",
"type": "string"
},
"name": {
"description": "Item name",
"type": "string"
},
"quantity": {
"description": "The number of products within this item",
"type": "number"
},
"price": {
"description": "The cost of a given item including the cost of options",
"type": "number",
"example": 123.78
},
"original_price": {
"description": "The cost of a given item excluding the cost of options",
"type": "number",
"example": 100.23
},
"weight": {
"description": "Final weight of the product",
"type": "number"
},
"measure_unit": {
"description": "Units of weight measurement",
"type": "string"
},
"modifications": {
"description": "Product Options",
"type": "array",
"items": {
"description": "Product Option",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "Option's ID in the partner's system",
"type": "string"
},
"group_id": {
"description": "The ID of the group in the partner system to which the option belongs",
"type": "string",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"description": "Option name",
"type": "string"
},
"quantity": {
"description": "The number of options within the item",
"type": "integer"
},
"price": {
"description": "The price of a product option",
"type": "number",
"example": 10.5
}
},
"required": [
"id",
"price",
"quantity"
]
}
}
}
}
},
"items_cost": {
"description": "The cost of the order for the partner minus the cost delivery (including partner discounts)",
"type": "number"
}
}
},
"OrderItem": {
"description": "Item with modificators",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "Item ID on the partner's system",
"type": "string"
},
"name": {
"description": "Item name",
"type": "string"
},
"quantity": {
"description": "The number of products within this item",
"type": "number"
},
"price": {
"description": "The cost of a given item including the cost of options",
"type": "number",
"example": 123.78
},
"original_price": {
"description": "The cost of a given item excluding the cost of options",
"type": "number",
"example": 100.23
},
"weight": {
"description": "Final weight of the product",
"type": "number"
},
"measure_unit": {
"description": "Units of weight measurement",
"type": "string"
},
"modifications": {
"description": "Product Options",
"type": "array",
"items": {
"description": "Product Option",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "Option's ID in the partner's system",
"type": "string"
},
"group_id": {
"description": "The ID of the group in the partner system to which the option belongs",
"type": "string",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"description": "Option name",
"type": "string"
},
"quantity": {
"description": "The number of options within the item",
"type": "integer"
},
"price": {
"description": "The price of a product option",
"type": "number",
"example": 10.5
}
},
"required": [
"id",
"price",
"quantity"
]
}
}
}
},
"OrderItemOption": {
"description": "Product Option",
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"description": "Option's ID in the partner's system",
"type": "string"
},
"group_id": {
"description": "The ID of the group in the partner system to which the option belongs",
"type": "string",
"example": "937c57f6-4508-4858-be7f-20691a16fbb1"
},
"name": {
"description": "Option name",
"type": "string"
},
"quantity": {
"description": "The number of options within the item",
"type": "integer"
},
"price": {
"description": "The price of a product option",
"type": "number",
"example": 10.5
}
},
"required": [
"id",
"price",
"quantity"
]
},
"EatsId": {
"type": "string",
"minLength": 13,
"description": "End-to-end order identifier on the Yandex side in the format DDDDDD-DDDDDDDD",
"example": "230328-354380"
},
"OrderHistoryStatus": {
"type": "string",
"description": "Oredr status in the Yandex system",
"nullable": true,
"enum": [
"NEW",
"CANCELLED",
"DELIVERED"
]
},
"OrdersHistoryRequestBody": {
"type": "object",
"additionalProperties": false,
"required": [
"origin_ids",
"from",
"to",
"pagination"
],
"properties": {
"origin_ids": {
"type": "array",
"description": "A list of objects. The object consists of the identifier of the restaurant on the partner's side and the type of delivery in this restaurant.",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"origin_id"
],
"properties": {
"origin_id": {
"type": "string",
"description": "restraunt ID in the partner's system"
},
"delivery_type": {
"type": "string",
"enum": [
"native",
"marketplace"
],
"description": "Delivery type"
}
}
}
},
"service": {
"type": "array",
"description": "List of services to return orders for",
"items": {
"type": "string",
"enum": [
"YE",
"MD"
]
}
},
"from": {
"type": "string",
"format": "date-time",
"description": "The date from which Orders should be given. In the RFC 3339 format with a fractional part of seconds (Y-m-d\\TH:i:s.uP)",
"example": "2024-01-01T12:00:05.125+03:00"
},
"to": {
"type": "string",
"format": "date-time",
"description": "The date before which Orders should be given. In the RFC 3339 format with a fractional part of seconds (Y-m-d\\TH:i:s.uP)",
"example": "2024-01-01T12:00:05.125+03:00"
},
"status": {
"type": "array",
"items": {
"type": "string",
"description": "Oredr status in the Yandex system",
"nullable": true,
"enum": [
"NEW",
"CANCELLED",
"DELIVERED"
]
},
"description": "Return orders that match the submitted list statuses"
},
"pagination": {
"type": "object",
"additionalProperties": false,
"required": [
"offset"
],
"properties": {
"limit": {
"type": "integer",
"minimum": 0,
"maximum": 1000,
"description": "Maximum number of orders"
},
"offset": {
"type": "integer",
"minimum": 0,
"description": "Offset/pagination. More about pagination on 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": "End-to-end order identifier on the Yandex side in the format DDDDDD-DDDDDDDD",
"type": "string",
"minLength": 13,
"example": "230328-354380"
},
"order_id": {
"type": "string",
"description": "Order identifier on the partners side"
},
"created_at": {
"type": "string",
"description": "Order creation date",
"format": "date-time"
},
"status": {
"type": "string",
"description": "Oredr status in the Yandex system",
"nullable": true,
"enum": [
"NEW",
"CANCELLED",
"DELIVERED"
]
},
"service": {
"type": "string",
"enum": [
"YE",
"MD"
],
"description": "A service that facilitated the placement of an order"
},
"delivery_type": {
"description": "Delivery type",
"type": "string",
"enum": [
"native",
"marketplace"
],
"example": "marketplace"
},
"origin_id": {
"description": "The ID of the restaurant in the partner's system",
"type": "string",
"example": "restaurant1"
},
"items_cost": {
"type": "number",
"description": "The cost of the order for the partner minus the cost delivery (including partner discounts)"
}
}
},
"description": "List of orders"
}
}
},
"Order": {
"type": "object",
"additionalProperties": false,
"properties": {
"eats_id": {
"description": "End-to-end order identifier on the Yandex side in the format DDDDDD-DDDDDDDD",
"type": "string",
"minLength": 13,
"example": "230328-354380"
},
"order_id": {
"type": "string",
"description": "Order identifier on the partners side"
},
"created_at": {
"type": "string",
"description": "Order creation date",
"format": "date-time"
},
"status": {
"type": "string",
"description": "Oredr status in the Yandex system",
"nullable": true,
"enum": [
"NEW",
"CANCELLED",
"DELIVERED"
]
},
"service": {
"type": "string",
"enum": [
"YE",
"MD"
],
"description": "A service that facilitated the placement of an order"
},
"delivery_type": {
"description": "Delivery type",
"type": "string",
"enum": [
"native",
"marketplace"
],
"example": "marketplace"
},
"origin_id": {
"description": "The ID of the restaurant in the partner's system",
"type": "string",
"example": "restaurant1"
},
"items_cost": {
"type": "number",
"description": "The cost of the order for the partner minus the cost delivery (including partner discounts)"
}
}
},
"Pagination": {
"type": "object",
"additionalProperties": false,
"required": [
"offset"
],
"properties": {
"limit": {
"type": "integer",
"minimum": 0,
"maximum": 1000,
"description": "Maximum number of orders"
},
"offset": {
"type": "integer",
"minimum": 0,
"description": "Offset/pagination. More about pagination on https://slack.engineering/evolving-api-pagination-at-slack/"
}
}
},
"Service": {
"type": "string",
"enum": [
"YE",
"MD"
]
},
"ErrorV2": {
"description": "Error description",
"type": "object",
"additionalProperties": true,
"x-taxi-additional-properties-true-reason": "protocol",
"required": [
"message",
"code"
],
"properties": {
"message": {
"description": "Error message",
"type": "string"
},
"code": {
"description": "Error code",
"type": "string"
}
}
},
"BusyModePagination": {
"type": "object",
"additionalProperties": false,
"description": "Pagination to obtain the status of high demand in restaurants. More about pagination and cursors at https://slack.engineering/evolving-api-pagination-at-slack/",
"properties": {
"cursor": {
"type": "string",
"description": "Cursor for getting restaurants with an active high demand status"
},
"limit": {
"type": "integer",
"description": "Limit on the number of restaurants to be returned",
"minimum": 1,
"maximum": 500,
"default": 500
}
}
},
"Cursor": {
"type": "string",
"description": "Cursor for getting restaurants with an active high demand status"
},
"Limit": {
"type": "integer",
"description": "Limit on the number of restaurants to be returned",
"minimum": 1,
"maximum": 500,
"default": 500
},
"BusyModeStatusResponse": {
"description": "Successful response to the request for high-load status of restaurants",
"type": "object",
"additionalProperties": false,
"required": [
"busy_places"
],
"properties": {
"busy_places": {
"type": "array",
"description": "List of restaurants with information about high demand",
"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": "Delivery type",
"example": "marketplace"
},
"services": {
"type": "array",
"description": "The list of services in which the restaurant is represented",
"items": {
"type": "string",
"enum": [
"YE",
"MD"
]
}
},
"extra_minutes": {
"type": "integer",
"description": "Additional cooking time in minutes"
},
"valid_till": {
"type": "string",
"format": "date-time",
"description": "Date and time in RFC 3339 format with indication of the time zone the belt to which the cooking allowance applies",
"example": "2024-01-01T12:00:05.125+03:00"
}
}
}
},
"cursor": {
"type": "string",
"description": "Cursor for getting restaurants with an active high demand status"
}
}
},
"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": "Delivery type",
"example": "marketplace"
},
"services": {
"type": "array",
"description": "The list of services in which the restaurant is represented",
"items": {
"type": "string",
"enum": [
"YE",
"MD"
]
}
},
"extra_minutes": {
"type": "integer",
"description": "Additional cooking time in minutes"
},
"valid_till": {
"type": "string",
"format": "date-time",
"description": "Date and time in RFC 3339 format with indication of the time zone the belt to which the cooking allowance applies",
"example": "2024-01-01T12:00:05.125+03:00"
}
}
},
"DeliveryType": {
"type": "string",
"enum": [
"native",
"marketplace"
],
"description": "Delivery type",
"example": "marketplace"
},
"BusyModeStatusRequest": {
"type": "object",
"additionalProperties": false,
"properties": {
"filters": {
"type": "object",
"additionalProperties": false,
"description": "Restaurant search query filters",
"properties": {
"origin_ids": {
"type": "array",
"description": "List of restaurant IDs in the partner's system",
"items": {
"type": "string",
"example": "restaurant1"
},
"minItems": 1,
"maxItems": 100
},
"delivery_type": {
"type": "string",
"enum": [
"native",
"marketplace"
],
"description": "Delivery type",
"example": "marketplace"
},
"service": {
"type": "string",
"enum": [
"YE",
"MD"
]
}
}
},
"pagination": {
"type": "object",
"additionalProperties": false,
"description": "Pagination to obtain the status of high demand in restaurants. More about pagination and cursors at https://slack.engineering/evolving-api-pagination-at-slack/",
"properties": {
"cursor": {
"type": "string",
"description": "Cursor for getting restaurants with an active high demand status"
},
"limit": {
"type": "integer",
"description": "Limit on the number of restaurants to be returned",
"minimum": 1,
"maximum": 500,
"default": 500
}
}
}
}
},
"BusyModeStatusFilters": {
"type": "object",
"additionalProperties": false,
"description": "Restaurant search query filters",
"properties": {
"origin_ids": {
"type": "array",
"description": "List of restaurant IDs in the partner's system",
"items": {
"type": "string",
"example": "restaurant1"
},
"minItems": 1,
"maxItems": 100
},
"delivery_type": {
"type": "string",
"enum": [
"native",
"marketplace"
],
"description": "Delivery type",
"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": "restraunt ID in the partner's system"
},
"delivery_type": {
"type": "string",
"enum": [
"native",
"marketplace"
],
"description": "Delivery type"
}
}
},
"PhoneNumber": {
"type": "string",
"description": "Phone number to contact the customer in international format. Consists of parts \"+<country code><number>\". May include extension: \"+<country code><number> ext. <extension number>\".",
"example": "+79031111111 ext. 4432"
}
}
}
}
Was the article helpful?
Previous
Next