Merchant API
version: 1.0.0
Для работы Merchant API необходим публичный адрес вашего бэкенда. Укажите адрес в поле Callback URL в консоли Яндекс Пэй на странице разработчика.
Ваш бэкенд должен проверять подлинность запроса, прежде чем приступать к его обработке.
Важно
Не привязывайте логику к конкретным IP-адресам — они могут измениться. Для проверки подлинности используйте валидацию JWT-токена с публичными ключами.
Актуальные диапазоны IP-адресов: https://yandex.ru/ips.
Аутентификация запроса Яндекс Пэй
В теле запроса Яндекс Пэй присылает JWT-токен, подписанный по алгоритму ES256.
Токен состоит из трех частей: заголовка (header), полезной нагрузки (payload) и подписи,
конкатенированных через точку: <base64-encoded headers JSON>.<base64-encoded payload JSON>.<signature>
.
Раскодированный из base64 заголовок представляет собой JSON документ со следующей структурой:
{
"alg": "ES256", // алгоритм подписи
"kid": "key-id", // ID ключа, используется при определении публичного ключа
"iat": "1639408318", // UNIX время, когда токен был выпущен
"exp": "1639429918", // UNIX время, когда токен истекает, токен признается не валидным после наступления этого времени
"typ": "JWT" // тип токена
}
Полезная нагрузка также представляет собой JSON, конкретная структура полей которого определяется вызываемым методом. Подпись необходима для проверки валидности JWT-токена.
Важно
Перед десериализацией токена проверьте его валидность.
Алгоритм проверки валидности токена
Для проверки валидности JWT-токена удобнее воспользоваться одной из стандартных библиотек из списка: https://jwt.io/libraries. По возможности воздержитесь от ручной реализации данных проверок.
В общем случае алгоритм проверки JWT-токена с помощью библиотеки включает в себя:
- Проверку валидности подписи JWT-токена с помощью публичных JWK-ключей, размещенных по адресам:
https://sandbox.pay.yandex.ru/api/jwks для тестового окружения и https://pay.yandex.ru/api/jwks
для продуктивного окружения. Публичный ключ, используемый для валидации подписи конкретного JWT-токена,
выбирается на основе требований
alg
иkid
в заголовке самого токена. - Проверку стандартных требований в заголовках JWT-токена:
alg
,typ
,iat
,exp
и т.д.
Только в случае, если обе проверки прошли успешно, получатель может десериализовать JSON payload JWT-токена.
После этого получатель должен дополнительно проверить, что merchantId
в payload токена совпадает с ID продавца в Яндекс Пэй.
В противном случае токен не может быть использован.
Если любая из проверок завершилась неудачей, токен считается невалидным, а запрос — неаутентифицированным.
Такой запрос должен быть отклонен. Код ошибки reasonCode
зависит от причины:
TOKEN_EXPIRED
— срок действия токена истек;UNAUTHORIZED
— не удалось проверить подпись токена;OTHER
— другие ошибки валидации.
Примеры ответов:
{
"status": "fail",
"reasonCode": "TOKEN_EXPIRED",
"reason": "JWT token has expired"
}
{
"status": "fail",
"reasonCode": "UNAUTHORIZED",
"reason": "Invalid token signature"
}
{
"status": "fail",
"reasonCode": "OTHER",
"reason": "Invalid merchantId"
}
Кеширование публичных JWK-ключей
Допускается кеширование JWK-ключей, используемых для валидации JWT-токенов, на бэкенде магазина. Время жизни такого кеша необходимо устанавливать таким образом, чтобы это не приводило к ошибкам валидации токенов в случае ротации JWK-ключей на стороне Яндекс Пэй. На практике некоторые библиотеки по умолчанию устанавливают время жизни такого кеша в 10 минут. В случае кеширования JWK-ключей, необходимо реализовать следующие сценарии проверок.
Сценарий А: Успешная валидация токена кешированными JWK-ключами.
- Приходит запрос с токеном, чей
kid
найден среди кешированных JWK-ключей, и время жизни кеша не истекло. - Валидация подписи токена завершается успешно.
- Токен считается валидным.
Сценарий B: Неуспешная валидация токена кешированными JWK-ключами.
- Приходит запрос с токеном, чей
kid
найден среди кешированных JWK-ключей, и время жизни кеша не истекло. - Валидация подписи токена завершается неудачей.
- Токен считается невалидным, запрос отклоняется.
Сценарий C: Валидация токена со сбросом кеша JWK-ключей.
- Приходит запрос с токеном, чей
kid
не найден среди кешированных JWK-ключей или время жизни кеша истекло. - Продавец должен сбросить кеш JWK-ключей и запросить весь список активных JWK-ключей заново с соответствующего окружению адреса.
- Валидация продолжается по сценарию А или B.
Как и в случае с валидацией токена, рекомендуется использовать стандартные библиотеки и воздержаться от ручной реализации данных сценариев.
Пример кода валидации JWT-токена
Ниже приведен пример успешной валидации JWT-токена, выпущенного в sandbox окружении. Для валидации токенов в продакшен окружении должны использоваться публичные ключи, доступные по адресу https://pay.yandex.ru/api/jwks.
import json
from urllib.request import urlopen
from jose import jwt
YANDEX_JWK_ENDPOINT = "https://sandbox.pay.yandex.ru/api/jwks"
JWT_TOKEN = (
"eyJhbGciOiJFUzI1NiIsImlhdCI6MTY1MDE5Njc1OCwia2lkIjoidGVzdC1rZXkiLCJ0eXAiOiJKV1QifQ.eyJjYXJ0Ijp7Iml0ZW1zIjpbeyJwcm9kdWN"
"0SWQiOiJwMSIsInF1YW50aXR5Ijp7ImNvdW50IjoiMSJ9fV19LCJjdXJyZW5jeUNvZGUiOiJSVUIiLCJtZXJjaGFudElkIjoiMjc2Y2YxZjEtZjhlZC00N"
"GZlLTg5ZTMtNWU0MTEzNDZkYThkIn0.YmQjHlh3ddLWgBexQ3QrwtbgAA3u1TVnBl1qnfMIvToBwinH3uH92KGB15m4NAQXdz5nhkjPZZu7RUStJt40PQ"
)
with urlopen(YANDEX_JWK_ENDPOINT) as response:
public_jwks = json.load(response)
payload = jwt.decode(JWT_TOKEN, public_jwks, algorithms=["ES256"])
print(json.dumps(payload, indent=2))
use Firebase\JWT\JWT;
use Firebase\JWT\JWK;
$sandboxJwk = 'https://sandbox.pay.yandex.ru/api/jwks';
$JWT_TOKEN =
"eyJhbGciOiJFUzI1NiIsImlhdCI6MTY1MDE5Njc1OCwia2lkIjoidGVzdC1rZXkiLCJ0eXAiOiJKV1QifQ.eyJjYXJ0Ijp7Iml0ZW1zIjpbeyJwcm9kdWN"
. "0SWQiOiJwMSIsInF1YW50aXR5Ijp7ImNvdW50IjoiMSJ9fV19LCJjdXJyZW5jeUNvZGUiOiJSVUIiLCJtZXJjaGFudElkIjoiMjc2Y2YxZjEtZjhlZC00N"
. "GZlLTg5ZTMtNWU0MTEzNDZkYThkIn0.YmQjHlh3ddLWgBexQ3QrwtbgAA3u1TVnBl1qnfMIvToBwinH3uH92KGB15m4NAQXdz5nhkjPZZu7RUStJt40PQ";
$client = new GuzzleHttp\Client();
$keysJson = $client->get($sandboxJwk)->getBody();
$keysData = json_decode($keysJson, JSON_OBJECT_AS_ARRAY);
$keys = JWK::parseKeySet($keysData);
$payload = JWT::decode($JWT_TOKEN, $keys);
print_r($payload);
Для работы примера необходимо установить зависимости:
composer require firebase/php-jwt
composer require guzzlehttp/guzzle
Решение проблем c вебхуками
Если нотификации не приходят, проверьте следующие моменты:
-
Неправильный адрес бэкенда
Нотификации могут приходить не туда, куда ожидаете. Указывайте Callback URL без
/v1/webhook
— этот путь добавится автоматически, например:Callback URL
Куда придет запрос
https://example.merchant.ru
https://example.merchant.ru/v1/webhook
https://example.merchant.ru/v1/webhook
https://example.merchant.ru/v1/webhook/v1/webhook
-
Обработка
Content-Type
Убедитесь, что бэкенд вашего магазина готов принимать сообщения с заголовком
Content-Type: application/octet-stream
. -
SSL-сертификат
Система не распознает самоподписанные SSL-сертификаты. Используйте сертификат от доверенного центра сертификации.
-
Настройки брандмауэра
Проверьте, что брандмауэр не блокирует входящие запросы и не обрезает тело запроса.
Endpoints
- /v1/order/render
- /v1/order/create
- /v1/webhook
- /v1/pickup-options
- /v1/pickup-option-details
- /v1/onboard
Specification
Open API
{
"components": {
"schemas": {
"Address": {
"properties": {
"addressLine": {
"description": "Полный адрес",
"type": "string"
},
"building": {
"type": "string"
},
"comment": {
"type": "string"
},
"country": {
"type": "string"
},
"district": {
"type": "string"
},
"entrance": {
"type": "string"
},
"floor": {
"type": "string"
},
"intercom": {
"type": "string"
},
"locale": {
"type": "string"
},
"locality": {
"type": "string"
},
"location": {
"allOf": [
{
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
}
]
},
"region": {
"type": "string"
},
"room": {
"type": "string"
},
"street": {
"type": "string"
},
"zip": {
"type": "string"
}
},
"required": [
"building",
"country"
],
"type": "object"
},
"Agent": {
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
},
"BillingContactFields": {
"properties": {
"email": {
"type": "boolean"
}
},
"type": "object"
},
"BoundingBox": {
"properties": {
"ne": {
"allOf": [
{
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
}
],
"description": "Правый верхний угол (северо-восток)"
},
"sw": {
"allOf": [
{
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
}
],
"description": "Левый нижний угол (юго-запад)"
}
},
"required": [
"ne",
"sw"
],
"type": "object"
},
"Cart": {
"properties": {
"cartId": {
"description": "Внутренний идентификатор корзины Яндекс Пэй.\n\nБэкенд магазина должен использовать этот параметр как идентификатор корзины покупателя и как ключ идемпотентности для запроса `/order/create`. Если бэкенд магазина получает повторный запрос `/order/create`, то необходимо вернуть уже созданный номер заказа. На одну корзину (`cartId`) бэкенд магазина может создать не больше одного заказа (`orderId`).",
"type": "string"
},
"coupons": {
"description": "Купоны, применённые к корзине",
"items": {
"properties": {
"description": {
"description": "Описание. Например, \"Скидка 3%\"",
"type": "string"
},
"status": {
"enum": [
"VALID",
"INVALID",
"EXPIRED",
null
],
"type": "string"
},
"value": {
"description": "Код купона",
"type": "string"
}
},
"required": [
"value"
],
"type": "object"
},
"type": "array"
},
"discounts": {
"description": "Скидки, применённые к корзине",
"items": {
"properties": {
"amount": {
"description": "Сумма скидки",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Текстовое описание",
"type": "string"
},
"discountId": {
"description": "Идентификатор скидки в системе мерчанта",
"type": "string"
}
},
"required": [
"amount",
"description",
"discountId"
],
"type": "object"
},
"type": "array"
},
"externalId": {
"description": "Переданный продавцом идентификатор корзины",
"type": "string"
},
"items": {
"description": "Позиция корзины",
"items": {
"properties": {
"description": {
"description": "Описание товара",
"type": "string"
},
"discountedUnitPrice": {
"description": "Цена за единицу товара с учётом скидок на позицию",
"example": "123.45",
"format": "double",
"type": "string"
},
"features": {
"allOf": [
{
"properties": {
"pointsDisabled": {
"default": false,
"description": "Не распределять баллы Плюса. Используется только при создании заказа. Если это поле не указано, то баллы будут распределены на товар",
"type": "boolean"
},
"tariffModifier": {
"description": "Модификатор тарифа для расчета комиссии. Определяет, какой тариф будет применяться при расчете комиссии за обработку позиции в корзине.",
"enum": [
"VERY_LOW",
"LOW",
"MEDIUM",
"HIGH",
"VERY_HIGH",
null
],
"type": "string"
}
},
"type": "object"
}
],
"description": "Промо параметры товара"
},
"finalPrice": {
"description": "Цена за единицу товара с учётом всех скидок на позицию и на корзину",
"example": "123.45",
"format": "double",
"type": "string"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Высота, в метрах",
"format": "float",
"type": "number"
},
"length": {
"description": "Длина, в метрах",
"format": "float",
"type": "number"
},
"weight": {
"description": "Вес, в килограммах",
"format": "float",
"type": "number"
},
"width": {
"description": "Ширина, в метрах",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
],
"description": "Размеры и вес товара. Обязательно для товара типа `PHYSICAL`"
},
"pointsAmount": {
"description": "Количество баллов Плюса\n\nПоле только для чтения. Переданные значения будут проигнорированы.",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
},
"productId": {
"description": "Id товара в системе продавца. В параметрах запроса каждый идентификатор товара `productId` должен быть уникальным",
"type": "string"
},
"quantity": {
"allOf": [
{
"properties": {
"available": {
"description": "Максимально доступное количество товара",
"example": "123.45",
"format": "double",
"type": "string"
},
"count": {
"description": "Количество товара в заказе",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"count"
],
"type": "object"
}
],
"description": "Количество товара в заказе"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
],
"description": "Данные для формирования чека"
},
"skuId": {
"description": "Уникальный id, который описывает единицу ассортимента. Необходим для применения индивидуального тарифа.",
"type": "string"
},
"subtotal": {
"description": "Суммарная цена за позицию без учета скидок",
"example": "123.45",
"format": "double",
"type": "string"
},
"title": {
"description": "Наименование товара",
"type": "string"
},
"total": {
"description": "Суммарная цена за позицию с учётом скидок на позицию",
"example": "123.45",
"format": "double",
"type": "string"
},
"type": {
"default": "UNSPECIFIED",
"description": "Тип товара. Важен для интеграции с доставками",
"enum": [
"PHYSICAL",
"DIGITAL",
"UNSPECIFIED"
],
"type": "string"
},
"unitPrice": {
"description": "Полная цена за единицу товара без учетка скидки",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"productId",
"quantity"
],
"type": "object"
},
"type": "array"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Высота, в метрах",
"format": "float",
"type": "number"
},
"length": {
"description": "Длина, в метрах",
"format": "float",
"type": "number"
},
"weight": {
"description": "Вес, в килограммах",
"format": "float",
"type": "number"
},
"width": {
"description": "Ширина, в метрах",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
]
},
"total": {
"allOf": [
{
"properties": {
"amount": {
"description": "Стоимость корзины с учетом всех скидок.",
"example": "123.45",
"format": "double",
"type": "string"
},
"pointsAmount": {
"description": "Количество баллов Плюса\n\nПоле только для чтения. Переданные значения будут проигнорированы.",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
}
},
"required": [
"amount"
],
"type": "object"
}
],
"default": null,
"description": "Итоговая стоимость корзины, которая пойдет в оплату"
}
},
"required": [
"items"
],
"type": "object"
},
"CartItem": {
"properties": {
"description": {
"description": "Описание товара",
"type": "string"
},
"discountedUnitPrice": {
"description": "Цена за единицу товара с учётом скидок на позицию",
"example": "123.45",
"format": "double",
"type": "string"
},
"features": {
"allOf": [
{
"properties": {
"pointsDisabled": {
"default": false,
"description": "Не распределять баллы Плюса. Используется только при создании заказа. Если это поле не указано, то баллы будут распределены на товар",
"type": "boolean"
},
"tariffModifier": {
"description": "Модификатор тарифа для расчета комиссии. Определяет, какой тариф будет применяться при расчете комиссии за обработку позиции в корзине.",
"enum": [
"VERY_LOW",
"LOW",
"MEDIUM",
"HIGH",
"VERY_HIGH",
null
],
"type": "string"
}
},
"type": "object"
}
],
"description": "Промо параметры товара"
},
"finalPrice": {
"description": "Цена за единицу товара с учётом всех скидок на позицию и на корзину",
"example": "123.45",
"format": "double",
"type": "string"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Высота, в метрах",
"format": "float",
"type": "number"
},
"length": {
"description": "Длина, в метрах",
"format": "float",
"type": "number"
},
"weight": {
"description": "Вес, в килограммах",
"format": "float",
"type": "number"
},
"width": {
"description": "Ширина, в метрах",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
],
"description": "Размеры и вес товара. Обязательно для товара типа `PHYSICAL`"
},
"pointsAmount": {
"description": "Количество баллов Плюса\n\nПоле только для чтения. Переданные значения будут проигнорированы.",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
},
"productId": {
"description": "Id товара в системе продавца. В параметрах запроса каждый идентификатор товара `productId` должен быть уникальным",
"type": "string"
},
"quantity": {
"allOf": [
{
"properties": {
"available": {
"description": "Максимально доступное количество товара",
"example": "123.45",
"format": "double",
"type": "string"
},
"count": {
"description": "Количество товара в заказе",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"count"
],
"type": "object"
}
],
"description": "Количество товара в заказе"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
],
"description": "Данные для формирования чека"
},
"skuId": {
"description": "Уникальный id, который описывает единицу ассортимента. Необходим для применения индивидуального тарифа.",
"type": "string"
},
"subtotal": {
"description": "Суммарная цена за позицию без учета скидок",
"example": "123.45",
"format": "double",
"type": "string"
},
"title": {
"description": "Наименование товара",
"type": "string"
},
"total": {
"description": "Суммарная цена за позицию с учётом скидок на позицию",
"example": "123.45",
"format": "double",
"type": "string"
},
"type": {
"default": "UNSPECIFIED",
"description": "Тип товара. Важен для интеграции с доставками",
"enum": [
"PHYSICAL",
"DIGITAL",
"UNSPECIFIED"
],
"type": "string"
},
"unitPrice": {
"description": "Полная цена за единицу товара без учетка скидки",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"productId",
"quantity"
],
"type": "object"
},
"CartItemFeatures": {
"properties": {
"pointsDisabled": {
"default": false,
"description": "Не распределять баллы Плюса. Используется только при создании заказа. Если это поле не указано, то баллы будут распределены на товар",
"type": "boolean"
},
"tariffModifier": {
"description": "Модификатор тарифа для расчета комиссии. Определяет, какой тариф будет применяться при расчете комиссии за обработку позиции в корзине.",
"enum": [
"VERY_LOW",
"LOW",
"MEDIUM",
"HIGH",
"VERY_HIGH",
null
],
"type": "string"
}
},
"type": "object"
},
"CartItemWithoutFinalPrice": {
"properties": {
"description": {
"description": "Описание товара",
"type": "string"
},
"discountedUnitPrice": {
"description": "Цена за единицу товара с учётом скидок на позицию",
"example": "123.45",
"format": "double",
"type": "string"
},
"features": {
"allOf": [
{
"properties": {
"pointsDisabled": {
"default": false,
"description": "Не распределять баллы Плюса. Используется только при создании заказа. Если это поле не указано, то баллы будут распределены на товар",
"type": "boolean"
},
"tariffModifier": {
"description": "Модификатор тарифа для расчета комиссии. Определяет, какой тариф будет применяться при расчете комиссии за обработку позиции в корзине.",
"enum": [
"VERY_LOW",
"LOW",
"MEDIUM",
"HIGH",
"VERY_HIGH",
null
],
"type": "string"
}
},
"type": "object"
}
],
"description": "Промо параметры товара"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Высота, в метрах",
"format": "float",
"type": "number"
},
"length": {
"description": "Длина, в метрах",
"format": "float",
"type": "number"
},
"weight": {
"description": "Вес, в килограммах",
"format": "float",
"type": "number"
},
"width": {
"description": "Ширина, в метрах",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
],
"description": "Размеры и вес товара. Обязательно для товара типа `PHYSICAL`"
},
"pointsAmount": {
"description": "Количество баллов Плюса\n\nПоле только для чтения. Переданные значения будут проигнорированы.",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
},
"productId": {
"description": "Id товара в системе продавца. В параметрах запроса каждый идентификатор товара `productId` должен быть уникальным",
"type": "string"
},
"quantity": {
"allOf": [
{
"properties": {
"available": {
"description": "Максимально доступное количество товара",
"example": "123.45",
"format": "double",
"type": "string"
},
"count": {
"description": "Количество товара в заказе",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"count"
],
"type": "object"
}
],
"description": "Количество товара в заказе"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
],
"description": "Данные для формирования чека"
},
"skuId": {
"description": "Уникальный id, который описывает единицу ассортимента. Необходим для применения индивидуального тарифа.",
"type": "string"
},
"subtotal": {
"description": "Суммарная цена за позицию без учета скидок",
"example": "123.45",
"format": "double",
"type": "string"
},
"title": {
"description": "Наименование товара",
"type": "string"
},
"total": {
"description": "Суммарная цена за позицию с учётом скидок на позицию",
"example": "123.45",
"format": "double",
"type": "string"
},
"type": {
"default": "UNSPECIFIED",
"description": "Тип товара. Важен для интеграции с доставками",
"enum": [
"PHYSICAL",
"DIGITAL",
"UNSPECIFIED"
],
"type": "string"
},
"unitPrice": {
"description": "Полная цена за единицу товара без учетка скидки",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"productId",
"quantity"
],
"type": "object"
},
"CartTotal": {
"properties": {
"amount": {
"description": "Стоимость корзины с учетом всех скидок.",
"example": "123.45",
"format": "double",
"type": "string"
},
"pointsAmount": {
"description": "Количество баллов Плюса\n\nПоле только для чтения. Переданные значения будут проигнорированы.",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
}
},
"required": [
"amount"
],
"type": "object"
},
"CartWithoutFinalPrice": {
"properties": {
"cartId": {
"description": "Внутренний идентификатор корзины Яндекс Пэй.\n\nБэкенд магазина должен использовать этот параметр как идентификатор корзины покупателя и как ключ идемпотентности для запроса `/order/create`. Если бэкенд магазина получает повторный запрос `/order/create`, то необходимо вернуть уже созданный номер заказа. На одну корзину (`cartId`) бэкенд магазина может создать не больше одного заказа (`orderId`).",
"type": "string"
},
"coupons": {
"description": "Купоны, применённые к корзине",
"items": {
"properties": {
"description": {
"description": "Описание. Например, \"Скидка 3%\"",
"type": "string"
},
"status": {
"enum": [
"VALID",
"INVALID",
"EXPIRED",
null
],
"type": "string"
},
"value": {
"description": "Код купона",
"type": "string"
}
},
"required": [
"value"
],
"type": "object"
},
"type": "array"
},
"discounts": {
"description": "Скидки, применённые к корзине",
"items": {
"properties": {
"amount": {
"description": "Сумма скидки",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Текстовое описание",
"type": "string"
},
"discountId": {
"description": "Идентификатор скидки в системе мерчанта",
"type": "string"
}
},
"required": [
"amount",
"description",
"discountId"
],
"type": "object"
},
"type": "array"
},
"externalId": {
"description": "Переданный продавцом идентификатор корзины",
"type": "string"
},
"items": {
"items": {
"properties": {
"description": {
"description": "Описание товара",
"type": "string"
},
"discountedUnitPrice": {
"description": "Цена за единицу товара с учётом скидок на позицию",
"example": "123.45",
"format": "double",
"type": "string"
},
"features": {
"allOf": [
{
"properties": {
"pointsDisabled": {
"default": false,
"description": "Не распределять баллы Плюса. Используется только при создании заказа. Если это поле не указано, то баллы будут распределены на товар",
"type": "boolean"
},
"tariffModifier": {
"description": "Модификатор тарифа для расчета комиссии. Определяет, какой тариф будет применяться при расчете комиссии за обработку позиции в корзине.",
"enum": [
"VERY_LOW",
"LOW",
"MEDIUM",
"HIGH",
"VERY_HIGH",
null
],
"type": "string"
}
},
"type": "object"
}
],
"description": "Промо параметры товара"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Высота, в метрах",
"format": "float",
"type": "number"
},
"length": {
"description": "Длина, в метрах",
"format": "float",
"type": "number"
},
"weight": {
"description": "Вес, в килограммах",
"format": "float",
"type": "number"
},
"width": {
"description": "Ширина, в метрах",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
],
"description": "Размеры и вес товара. Обязательно для товара типа `PHYSICAL`"
},
"pointsAmount": {
"description": "Количество баллов Плюса\n\nПоле только для чтения. Переданные значения будут проигнорированы.",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
},
"productId": {
"description": "Id товара в системе продавца. В параметрах запроса каждый идентификатор товара `productId` должен быть уникальным",
"type": "string"
},
"quantity": {
"allOf": [
{
"properties": {
"available": {
"description": "Максимально доступное количество товара",
"example": "123.45",
"format": "double",
"type": "string"
},
"count": {
"description": "Количество товара в заказе",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"count"
],
"type": "object"
}
],
"description": "Количество товара в заказе"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
],
"description": "Данные для формирования чека"
},
"skuId": {
"description": "Уникальный id, который описывает единицу ассортимента. Необходим для применения индивидуального тарифа.",
"type": "string"
},
"subtotal": {
"description": "Суммарная цена за позицию без учета скидок",
"example": "123.45",
"format": "double",
"type": "string"
},
"title": {
"description": "Наименование товара",
"type": "string"
},
"total": {
"description": "Суммарная цена за позицию с учётом скидок на позицию",
"example": "123.45",
"format": "double",
"type": "string"
},
"type": {
"default": "UNSPECIFIED",
"description": "Тип товара. Важен для интеграции с доставками",
"enum": [
"PHYSICAL",
"DIGITAL",
"UNSPECIFIED"
],
"type": "string"
},
"unitPrice": {
"description": "Полная цена за единицу товара без учетка скидки",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"productId",
"quantity"
],
"type": "object"
},
"type": "array"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Высота, в метрах",
"format": "float",
"type": "number"
},
"length": {
"description": "Длина, в метрах",
"format": "float",
"type": "number"
},
"weight": {
"description": "Вес, в килограммах",
"format": "float",
"type": "number"
},
"width": {
"description": "Ширина, в метрах",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
]
},
"total": {
"allOf": [
{
"properties": {
"amount": {
"description": "Стоимость корзины с учетом всех скидок.",
"example": "123.45",
"format": "double",
"type": "string"
},
"pointsAmount": {
"description": "Количество баллов Плюса\n\nПоле только для чтения. Переданные значения будут проигнорированы.",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
}
},
"required": [
"amount"
],
"type": "object"
}
],
"default": null,
"description": "Итоговая стоимость корзины, которая пойдет в оплату"
}
},
"type": "object"
},
"Contact": {
"properties": {
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneAdditionalCode": {
"type": "string"
},
"secondName": {
"type": "string"
}
},
"type": "object"
},
"ContactFields": {
"properties": {
"email": {
"type": "boolean"
},
"name": {
"type": "boolean"
},
"phone": {
"type": "boolean"
}
},
"type": "object"
},
"Coupon": {
"properties": {
"description": {
"description": "Описание. Например, \"Скидка 3%\"",
"type": "string"
},
"status": {
"enum": [
"VALID",
"INVALID",
"EXPIRED",
null
],
"type": "string"
},
"value": {
"description": "Код купона",
"type": "string"
}
},
"required": [
"value"
],
"type": "object"
},
"CourierOption": {
"properties": {
"allowedPaymentMethods": {
"description": "Индивидуальные методы оплаты для метода доставки. Этот параметр нужно использовать, если нужно ограничить методы оплаты, указанные в `availablePaymentMethods`. Если параметр не указан, то используются все методы оплаты, перечисленные в `availablePaymentMethods`.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Стоимость доставки",
"example": "123.45",
"format": "double",
"type": "string"
},
"category": {
"enum": [
"EXPRESS",
"TODAY",
"STANDARD"
],
"type": "string"
},
"courierOptionId": {
"description": "id выбранного варианта доставки в системе продавца",
"type": "string"
},
"customerChoice": {
"allOf": [
{
"properties": {
"date": {
"format": "date",
"type": "string"
},
"time": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
]
}
},
"required": [
"date"
],
"type": "object"
}
],
"description": "Выбранные пользователем дата и интервал. Только для `type: FLEXIBLE`"
},
"fromDate": {
"description": "Ближайшая дата доставки для `type: PLAIN`. Начало интервала выбора даты доставки для `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"fromTime": {
"description": "Начало интервала времени доставки. Только для `type: PLAIN`",
"type": "string"
},
"provider": {
"description": "Тип службы доставки.",
"enum": [
"BOXBERRY",
"CDEK",
"RUSSIAN_POST",
"EMS",
"COURIER",
"DHL",
"EXPRESS_DELIVERY",
"FIVEPOST",
"OZON_ROCKET",
"DPD",
"SBER_LOGISTICS",
"PEK",
"PICKPOINT",
"KCE",
"PONY_EXPRESS",
"YANDEX_DELIVERY",
null
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"timeIntervals": {
"allOf": [
{
"properties": {
"grid": {
"allOf": [
{
"properties": {
"duration": {
"description": "Продолжительность каждого интервала",
"type": "string"
},
"end": {
"description": "Максимальное время начала самого последнего интервала",
"type": "string"
},
"start": {
"description": "Время начала самого первого интервала",
"type": "string"
},
"step": {
"description": "Разница во времени между началами двух соседних интервалов",
"type": "string"
}
},
"required": [
"duration",
"end",
"start",
"step"
],
"type": "object"
}
],
"description": "Кодирует интервалы в виде сетки. Используйте этот формат, если необходимо задать больше 20 интервалов доставки.\nПример: `{\"start\": \"09:00\", \"end\": \"21:00\", \"duration\": \"00:20\", \"step\": \"01:00\"}` трактуется как набор интервалов: `[{\"start\": \"09:00\", \"end\": \"09:20\"}, {\"start\": \"10:00\", \"end\": \"10:20\"}, ..., {\"start\": \"20:00\", \"end\": \"20:20\"}]`"
},
"type": {
"description": "Если указан тип `GRID`, то необходимо задать поле `grid`. Если указан тип `VALUES`, то необходимо задать поле `values`",
"enum": [
"GRID",
"VALUES"
],
"type": "string"
},
"values": {
"description": "Задаёт список интервалов напрямую. Подходит для небольшого количества интервалов доставки. Рекомендуемое максимальная количество интервалов - 20",
"items": {
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"type"
],
"type": "object"
}
],
"description": "Кодирует интервалы времени доставки, доступные для выбора. Только для `type: FLEXIBLE`"
},
"title": {
"description": "Название способа доставки. Показывается пользователю в списке вариантов",
"type": "string"
},
"toDate": {
"description": "Самая поздняя дата доставки для `type: PLAIN`. Конец интервала выбора даты доставки для `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"toTime": {
"description": "Конец интервала времени доставки. Только для `type: PLAIN`",
"type": "string"
},
"type": {
"default": "PLAIN",
"description": "Тип опции.\nДля `FLEXIBLE` вариантов доставки пользователю дается возможность выбрать желаемые дату и интервал:\n- дата доставки выбирается покупателем в отрезке `[fromDate, toDate]`\n- чтобы предоставить пользователю выбор интервала в течении дня, заполните `timeIntervals`\nДля `PLAIN` вариантов такой выбор отсутствует.",
"enum": [
"PLAIN",
"FLEXIBLE"
],
"type": "string"
}
},
"required": [
"amount",
"category",
"courierOptionId",
"title"
],
"type": "object"
},
"CourierOption1": {
"properties": {
"allowedPaymentMethods": {
"description": "Индивидуальные методы оплаты для метода доставки. Этот параметр нужно использовать, если нужно ограничить методы оплаты, указанные в `availablePaymentMethods`. Если параметр не указан, то используются все методы оплаты, перечисленные в `availablePaymentMethods`.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Стоимость доставки",
"example": "123.45",
"format": "double",
"type": "string"
},
"category": {
"enum": [
"EXPRESS",
"TODAY",
"STANDARD"
],
"type": "string"
},
"courierOptionId": {
"description": "id выбранного варианта доставки в системе продавца",
"type": "string"
},
"fromDate": {
"description": "Ближайшая дата доставки для `type: PLAIN`. Начало интервала выбора даты доставки для `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"fromTime": {
"description": "Начало интервала времени доставки. Только для `type: PLAIN`",
"type": "string"
},
"provider": {
"description": "Тип службы доставки.",
"enum": [
"BOXBERRY",
"CDEK",
"RUSSIAN_POST",
"EMS",
"COURIER",
"DHL",
"EXPRESS_DELIVERY",
"FIVEPOST",
"OZON_ROCKET",
"DPD",
"SBER_LOGISTICS",
"PEK",
"PICKPOINT",
"KCE",
"PONY_EXPRESS",
"YANDEX_DELIVERY",
null
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"timeIntervals": {
"allOf": [
{
"properties": {
"grid": {
"allOf": [
{
"properties": {
"duration": {
"description": "Продолжительность каждого интервала",
"type": "string"
},
"end": {
"description": "Максимальное время начала самого последнего интервала",
"type": "string"
},
"start": {
"description": "Время начала самого первого интервала",
"type": "string"
},
"step": {
"description": "Разница во времени между началами двух соседних интервалов",
"type": "string"
}
},
"required": [
"duration",
"end",
"start",
"step"
],
"type": "object"
}
],
"description": "Кодирует интервалы в виде сетки. Используйте этот формат, если необходимо задать больше 20 интервалов доставки.\nПример: `{\"start\": \"09:00\", \"end\": \"21:00\", \"duration\": \"00:20\", \"step\": \"01:00\"}` трактуется как набор интервалов: `[{\"start\": \"09:00\", \"end\": \"09:20\"}, {\"start\": \"10:00\", \"end\": \"10:20\"}, ..., {\"start\": \"20:00\", \"end\": \"20:20\"}]`"
},
"type": {
"description": "Если указан тип `GRID`, то необходимо задать поле `grid`. Если указан тип `VALUES`, то необходимо задать поле `values`",
"enum": [
"GRID",
"VALUES"
],
"type": "string"
},
"values": {
"description": "Задаёт список интервалов напрямую. Подходит для небольшого количества интервалов доставки. Рекомендуемое максимальная количество интервалов - 20",
"items": {
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"type"
],
"type": "object"
}
],
"description": "Кодирует интервалы времени доставки, доступные для выбора. Только для `type: FLEXIBLE`"
},
"title": {
"description": "Название способа доставки. Показывается пользователю в списке вариантов",
"type": "string"
},
"toDate": {
"description": "Самая поздняя дата доставки для `type: PLAIN`. Конец интервала выбора даты доставки для `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"toTime": {
"description": "Конец интервала времени доставки. Только для `type: PLAIN`",
"type": "string"
},
"type": {
"default": "PLAIN",
"description": "Тип опции.\nДля `FLEXIBLE` вариантов доставки пользователю дается возможность выбрать желаемые дату и интервал:\n- дата доставки выбирается покупателем в отрезке `[fromDate, toDate]`\n- чтобы предоставить пользователю выбор интервала в течении дня, заполните `timeIntervals`\nДля `PLAIN` вариантов такой выбор отсутствует.",
"enum": [
"PLAIN",
"FLEXIBLE"
],
"type": "string"
}
},
"required": [
"amount",
"category",
"courierOptionId",
"title"
],
"type": "object"
},
"Discount": {
"properties": {
"amount": {
"description": "Сумма скидки",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Текстовое описание",
"type": "string"
},
"discountId": {
"description": "Идентификатор скидки в системе мерчанта",
"type": "string"
}
},
"required": [
"amount",
"description",
"discountId"
],
"type": "object"
},
"FlexibleCustomerChoice": {
"properties": {
"date": {
"format": "date",
"type": "string"
},
"time": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
]
}
},
"required": [
"date"
],
"type": "object"
},
"FlexibleTimeIntervals": {
"properties": {
"grid": {
"allOf": [
{
"properties": {
"duration": {
"description": "Продолжительность каждого интервала",
"type": "string"
},
"end": {
"description": "Максимальное время начала самого последнего интервала",
"type": "string"
},
"start": {
"description": "Время начала самого первого интервала",
"type": "string"
},
"step": {
"description": "Разница во времени между началами двух соседних интервалов",
"type": "string"
}
},
"required": [
"duration",
"end",
"start",
"step"
],
"type": "object"
}
],
"description": "Кодирует интервалы в виде сетки. Используйте этот формат, если необходимо задать больше 20 интервалов доставки.\nПример: `{\"start\": \"09:00\", \"end\": \"21:00\", \"duration\": \"00:20\", \"step\": \"01:00\"}` трактуется как набор интервалов: `[{\"start\": \"09:00\", \"end\": \"09:20\"}, {\"start\": \"10:00\", \"end\": \"10:20\"}, ..., {\"start\": \"20:00\", \"end\": \"20:20\"}]`"
},
"type": {
"description": "Если указан тип `GRID`, то необходимо задать поле `grid`. Если указан тип `VALUES`, то необходимо задать поле `values`",
"enum": [
"GRID",
"VALUES"
],
"type": "string"
},
"values": {
"description": "Задаёт список интервалов напрямую. Подходит для небольшого количества интервалов доставки. Рекомендуемое максимальная количество интервалов - 20",
"items": {
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"type"
],
"type": "object"
},
"FlexibleTimeIntervalsGridDescriptor": {
"properties": {
"duration": {
"description": "Продолжительность каждого интервала",
"type": "string"
},
"end": {
"description": "Максимальное время начала самого последнего интервала",
"type": "string"
},
"start": {
"description": "Время начала самого первого интервала",
"type": "string"
},
"step": {
"description": "Разница во времени между началами двух соседних интервалов",
"type": "string"
}
},
"required": [
"duration",
"end",
"start",
"step"
],
"type": "object"
},
"ItemQuantity": {
"properties": {
"available": {
"description": "Максимально доступное количество товара",
"example": "123.45",
"format": "double",
"type": "string"
},
"count": {
"description": "Количество товара в заказе",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"count"
],
"type": "object"
},
"ItemReceipt": {
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
},
"Location": {
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
},
"MarkQuantity": {
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
},
"Measurements": {
"properties": {
"height": {
"description": "Высота, в метрах",
"format": "float",
"type": "number"
},
"length": {
"description": "Длина, в метрах",
"format": "float",
"type": "number"
},
"weight": {
"description": "Вес, в килограммах",
"format": "float",
"type": "number"
},
"width": {
"description": "Ширина, в метрах",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
},
"MerchantCreateOrderResponse": {
"properties": {
"metadata": {
"type": "string"
},
"orderId": {
"description": "ID созданного заказа на стороне продавца",
"type": "string"
},
"redirectUrls": {
"allOf": [
{
"properties": {
"onAbort": {
"description": "Ссылка для переадресации пользователя в случае отмены процесса оплаты. Отмену оплаты осуществляет пользователь на форме для оплаты.",
"type": "string"
},
"onError": {
"description": "Обязательное поле только для онлайн-магазинов. Ссылка для переадресации пользователя в случае возникновения ошибки во время оплаты, или если срок ссылки на оплату истек.",
"type": "string"
},
"onSuccess": {
"description": "Обязательное поле только для онлайн-магазинов. Ссылка для переадресации пользователя в случае успешной оплаты.",
"type": "string"
}
},
"required": [
"onError",
"onSuccess"
],
"type": "object"
}
]
},
"ttl": {
"default": null,
"description": "Время жизни заказа (в секундах)",
"format": "int32",
"type": "integer"
}
},
"required": [
"orderId"
],
"type": "object"
},
"MerchantCreateOrderV1Request": {
"properties": {
"billingContact": {
"allOf": [
{
"properties": {
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneAdditionalCode": {
"type": "string"
},
"secondName": {
"type": "string"
}
},
"type": "object"
}
]
},
"cart": {
"allOf": [
{
"properties": {
"cartId": {
"description": "Внутренний идентификатор корзины Яндекс Пэй.\n\nБэкенд магазина должен использовать этот параметр как идентификатор корзины покупателя и как ключ идемпотентности для запроса `/order/create`. Если бэкенд магазина получает повторный запрос `/order/create`, то необходимо вернуть уже созданный номер заказа. На одну корзину (`cartId`) бэкенд магазина может создать не больше одного заказа (`orderId`).",
"type": "string"
},
"coupons": {
"description": "Купоны, применённые к корзине",
"items": {
"properties": {
"description": {
"description": "Описание. Например, \"Скидка 3%\"",
"type": "string"
},
"status": {
"enum": [
"VALID",
"INVALID",
"EXPIRED",
null
],
"type": "string"
},
"value": {
"description": "Код купона",
"type": "string"
}
},
"required": [
"value"
],
"type": "object"
},
"type": "array"
},
"discounts": {
"description": "Скидки, применённые к корзине",
"items": {
"properties": {
"amount": {
"description": "Сумма скидки",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Текстовое описание",
"type": "string"
},
"discountId": {
"description": "Идентификатор скидки в системе мерчанта",
"type": "string"
}
},
"required": [
"amount",
"description",
"discountId"
],
"type": "object"
},
"type": "array"
},
"externalId": {
"description": "Переданный продавцом идентификатор корзины",
"type": "string"
},
"items": {
"description": "Позиция корзины",
"items": {
"properties": {
"description": {
"description": "Описание товара",
"type": "string"
},
"discountedUnitPrice": {
"description": "Цена за единицу товара с учётом скидок на позицию",
"example": "123.45",
"format": "double",
"type": "string"
},
"features": {
"allOf": [
{
"properties": {
"pointsDisabled": {
"default": false,
"description": "Не распределять баллы Плюса. Используется только при создании заказа. Если это поле не указано, то баллы будут распределены на товар",
"type": "boolean"
},
"tariffModifier": {
"description": "Модификатор тарифа для расчета комиссии. Определяет, какой тариф будет применяться при расчете комиссии за обработку позиции в корзине.",
"enum": [
"VERY_LOW",
"LOW",
"MEDIUM",
"HIGH",
"VERY_HIGH",
null
],
"type": "string"
}
},
"type": "object"
}
],
"description": "Промо параметры товара"
},
"finalPrice": {
"description": "Цена за единицу товара с учётом всех скидок на позицию и на корзину",
"example": "123.45",
"format": "double",
"type": "string"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Высота, в метрах",
"format": "float",
"type": "number"
},
"length": {
"description": "Длина, в метрах",
"format": "float",
"type": "number"
},
"weight": {
"description": "Вес, в килограммах",
"format": "float",
"type": "number"
},
"width": {
"description": "Ширина, в метрах",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
],
"description": "Размеры и вес товара. Обязательно для товара типа `PHYSICAL`"
},
"pointsAmount": {
"description": "Количество баллов Плюса\n\nПоле только для чтения. Переданные значения будут проигнорированы.",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
},
"productId": {
"description": "Id товара в системе продавца. В параметрах запроса каждый идентификатор товара `productId` должен быть уникальным",
"type": "string"
},
"quantity": {
"allOf": [
{
"properties": {
"available": {
"description": "Максимально доступное количество товара",
"example": "123.45",
"format": "double",
"type": "string"
},
"count": {
"description": "Количество товара в заказе",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"count"
],
"type": "object"
}
],
"description": "Количество товара в заказе"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
],
"description": "Данные для формирования чека"
},
"skuId": {
"description": "Уникальный id, который описывает единицу ассортимента. Необходим для применения индивидуального тарифа.",
"type": "string"
},
"subtotal": {
"description": "Суммарная цена за позицию без учета скидок",
"example": "123.45",
"format": "double",
"type": "string"
},
"title": {
"description": "Наименование товара",
"type": "string"
},
"total": {
"description": "Суммарная цена за позицию с учётом скидок на позицию",
"example": "123.45",
"format": "double",
"type": "string"
},
"type": {
"default": "UNSPECIFIED",
"description": "Тип товара. Важен для интеграции с доставками",
"enum": [
"PHYSICAL",
"DIGITAL",
"UNSPECIFIED"
],
"type": "string"
},
"unitPrice": {
"description": "Полная цена за единицу товара без учетка скидки",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"productId",
"quantity"
],
"type": "object"
},
"type": "array"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Высота, в метрах",
"format": "float",
"type": "number"
},
"length": {
"description": "Длина, в метрах",
"format": "float",
"type": "number"
},
"weight": {
"description": "Вес, в килограммах",
"format": "float",
"type": "number"
},
"width": {
"description": "Ширина, в метрах",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
]
},
"total": {
"allOf": [
{
"properties": {
"amount": {
"description": "Стоимость корзины с учетом всех скидок.",
"example": "123.45",
"format": "double",
"type": "string"
},
"pointsAmount": {
"description": "Количество баллов Плюса\n\nПоле только для чтения. Переданные значения будут проигнорированы.",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
}
},
"required": [
"amount"
],
"type": "object"
}
],
"default": null,
"description": "Итоговая стоимость корзины, которая пойдет в оплату"
}
},
"required": [
"items"
],
"type": "object"
}
],
"description": "Корзина"
},
"currencyCode": {
"description": "Трехбуквенный код валюты заказа (ISO 4217)",
"enum": [
"RUB",
"UZS"
],
"type": "string"
},
"merchantId": {
"format": "uuid",
"type": "string"
},
"metadata": {
"description": "Произвольные данные, переданные при инициализации кнопки",
"type": "string"
},
"orderAmount": {
"description": "Полная стоимость заказа к оплате с учётом возвратов, доставки, скидок и промокодов",
"example": "123.45",
"format": "double",
"type": "string"
},
"orderId": {
"description": "Id существующего заказа на стороне продавца, переданный при инициализации кнопки",
"type": "string"
},
"paymentMethod": {
"allOf": [
{
"properties": {
"cardLast4": {
"type": "string"
},
"cardNetwork": {
"description": "Платежная система",
"enum": [
"AMEX",
"DISCOVER",
"JCB",
"MASTERCARD",
"MAESTRO",
"VISAELECTRON",
"VISA",
"MIR",
"UNIONPAY",
"UZCARD",
"HUMOCARD",
"UNKNOWN",
"UNDEFINED",
null
],
"type": "string"
},
"methodType": {
"enum": [
"CARD",
"SPLIT",
"SBP",
"SPLIT_SBP",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
}
},
"required": [
"methodType"
],
"type": "object"
}
],
"description": "Выбранный способ оплаты"
},
"shippingAddress": {
"allOf": [
{
"properties": {
"addressLine": {
"description": "Полный адрес",
"type": "string"
},
"building": {
"type": "string"
},
"comment": {
"type": "string"
},
"country": {
"type": "string"
},
"district": {
"type": "string"
},
"entrance": {
"type": "string"
},
"floor": {
"type": "string"
},
"intercom": {
"type": "string"
},
"locale": {
"type": "string"
},
"locality": {
"type": "string"
},
"location": {
"allOf": [
{
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
}
]
},
"region": {
"type": "string"
},
"room": {
"type": "string"
},
"street": {
"type": "string"
},
"zip": {
"type": "string"
}
},
"required": [
"building",
"country"
],
"type": "object"
}
],
"description": "Адрес доставки доступен, если выбран метод COURIER"
},
"shippingContact": {
"allOf": [
{
"properties": {
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneAdditionalCode": {
"type": "string"
},
"secondName": {
"type": "string"
}
},
"type": "object"
}
]
},
"shippingMethod": {
"allOf": [
{
"properties": {
"courierOption": {
"allOf": [
{
"properties": {
"allowedPaymentMethods": {
"description": "Индивидуальные методы оплаты для метода доставки. Этот параметр нужно использовать, если нужно ограничить методы оплаты, указанные в `availablePaymentMethods`. Если параметр не указан, то используются все методы оплаты, перечисленные в `availablePaymentMethods`.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Стоимость доставки",
"example": "123.45",
"format": "double",
"type": "string"
},
"category": {
"enum": [
"EXPRESS",
"TODAY",
"STANDARD"
],
"type": "string"
},
"courierOptionId": {
"description": "id выбранного варианта доставки в системе продавца",
"type": "string"
},
"customerChoice": {
"allOf": [
{
"properties": {
"date": {
"format": "date",
"type": "string"
},
"time": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
]
}
},
"required": [
"date"
],
"type": "object"
}
],
"description": "Выбранные пользователем дата и интервал. Только для `type: FLEXIBLE`"
},
"fromDate": {
"description": "Ближайшая дата доставки для `type: PLAIN`. Начало интервала выбора даты доставки для `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"fromTime": {
"description": "Начало интервала времени доставки. Только для `type: PLAIN`",
"type": "string"
},
"provider": {
"description": "Тип службы доставки.",
"enum": [
"BOXBERRY",
"CDEK",
"RUSSIAN_POST",
"EMS",
"COURIER",
"DHL",
"EXPRESS_DELIVERY",
"FIVEPOST",
"OZON_ROCKET",
"DPD",
"SBER_LOGISTICS",
"PEK",
"PICKPOINT",
"KCE",
"PONY_EXPRESS",
"YANDEX_DELIVERY",
null
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"timeIntervals": {
"allOf": [
{
"properties": {
"grid": {
"allOf": [
{
"properties": {
"duration": {
"description": "Продолжительность каждого интервала",
"type": "string"
},
"end": {
"description": "Максимальное время начала самого последнего интервала",
"type": "string"
},
"start": {
"description": "Время начала самого первого интервала",
"type": "string"
},
"step": {
"description": "Разница во времени между началами двух соседних интервалов",
"type": "string"
}
},
"required": [
"duration",
"end",
"start",
"step"
],
"type": "object"
}
],
"description": "Кодирует интервалы в виде сетки. Используйте этот формат, если необходимо задать больше 20 интервалов доставки.\nПример: `{\"start\": \"09:00\", \"end\": \"21:00\", \"duration\": \"00:20\", \"step\": \"01:00\"}` трактуется как набор интервалов: `[{\"start\": \"09:00\", \"end\": \"09:20\"}, {\"start\": \"10:00\", \"end\": \"10:20\"}, ..., {\"start\": \"20:00\", \"end\": \"20:20\"}]`"
},
"type": {
"description": "Если указан тип `GRID`, то необходимо задать поле `grid`. Если указан тип `VALUES`, то необходимо задать поле `values`",
"enum": [
"GRID",
"VALUES"
],
"type": "string"
},
"values": {
"description": "Задаёт список интервалов напрямую. Подходит для небольшого количества интервалов доставки. Рекомендуемое максимальная количество интервалов - 20",
"items": {
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"type"
],
"type": "object"
}
],
"description": "Кодирует интервалы времени доставки, доступные для выбора. Только для `type: FLEXIBLE`"
},
"title": {
"description": "Название способа доставки. Показывается пользователю в списке вариантов",
"type": "string"
},
"toDate": {
"description": "Самая поздняя дата доставки для `type: PLAIN`. Конец интервала выбора даты доставки для `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"toTime": {
"description": "Конец интервала времени доставки. Только для `type: PLAIN`",
"type": "string"
},
"type": {
"default": "PLAIN",
"description": "Тип опции.\nДля `FLEXIBLE` вариантов доставки пользователю дается возможность выбрать желаемые дату и интервал:\n- дата доставки выбирается покупателем в отрезке `[fromDate, toDate]`\n- чтобы предоставить пользователю выбор интервала в течении дня, заполните `timeIntervals`\nДля `PLAIN` вариантов такой выбор отсутствует.",
"enum": [
"PLAIN",
"FLEXIBLE"
],
"type": "string"
}
},
"required": [
"amount",
"category",
"courierOptionId",
"title"
],
"type": "object"
}
],
"description": "если methodType == COURIER"
},
"methodType": {
"enum": [
"DIRECT",
"PICKUP",
"COURIER",
"YANDEX_DELIVERY"
],
"type": "string"
},
"pickupOption": {
"allOf": [
{
"properties": {
"address": {
"description": "Адрес в виде строки",
"type": "string"
},
"allowedPaymentMethods": {
"description": "Индивидуальные методы оплаты для выбранного способа самовывоза. Доступные методы оплаты заказа при выбранном способе самовывоза. Этот параметр нужно использовать, если нужно ограничить методы оплаты, указанные в `availablePaymentMethods`. Если параметр не указан, то используются все методы оплаты, перечисленные в `availablePaymentMethods`.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Стоимость доставки в точку",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Дополнительное описание",
"type": "string"
},
"fromDate": {
"description": "YYYY-MM-DD. Ближайшая возможная дата доставки",
"format": "date",
"type": "string"
},
"location": {
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
},
"phones": {
"description": "Телефоны для связи",
"items": {
"type": "string"
},
"type": "array"
},
"pickupPointId": {
"description": "Уникальный id точки самовывоза в системе продавца",
"type": "string"
},
"provider": {
"description": "Тип точки вывоза.",
"enum": [
"YANDEX_MARKET",
"BOXBERRY",
"CDEK",
"IN_STORE",
"RUSSIAN_POST",
"PICKPOINT",
"DPD"
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"schedule": {
"description": "График работы точки",
"items": {
"properties": {
"fromTime": {
"description": "HH:mm, \"08:00\"",
"type": "string"
},
"label": {
"description": "Например, \"пн-пт\"",
"type": "string"
},
"toTime": {
"description": "HH:mm, \"20:00\"",
"type": "string"
}
},
"required": [
"fromTime",
"label",
"toTime"
],
"type": "object"
},
"type": "array"
},
"storagePeriod": {
"description": "Опционально. Срок хранения товара в точке самовывоза в днях",
"format": "int32",
"type": "integer"
},
"title": {
"description": "Название точки самовывоза",
"type": "string"
},
"toDate": {
"description": "YYYY-MM-DD. Самая поздняя дата доставки",
"format": "date",
"type": "string"
}
},
"required": [
"address",
"location",
"pickupPointId",
"title"
],
"type": "object"
}
],
"description": "если methodType == PICKUP"
},
"yandexDeliveryOption": {
"allOf": [
{
"properties": {
"allowedPaymentMethods": {
"description": "Индивидуальные методы оплаты для метода доставки. Этот параметр нужно использовать, если нужно ограничить методы оплаты, указанные в `availablePaymentMethods`. Если параметр не указан, то используются все методы оплаты, перечисленные в `availablePaymentMethods`.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Стоимость доставки",
"example": "123.45",
"format": "double",
"type": "string"
},
"category": {
"enum": [
"EXPRESS",
"TODAY",
"STANDARD"
],
"type": "string"
},
"fromDatetime": {
"format": "date-time",
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"title": {
"description": "Название способа доставки. Показывается пользователю в списке вариантов",
"type": "string"
},
"toDatetime": {
"format": "date-time",
"type": "string"
},
"yandexDeliveryOptionId": {
"description": "Id предложения Яндекс Доставки",
"type": "string"
}
},
"required": [
"amount",
"category",
"title",
"yandexDeliveryOptionId"
],
"type": "object"
}
],
"description": "если methodType == YANDEX_DELIVERY"
}
},
"required": [
"methodType"
],
"type": "object"
}
],
"description": "Выбранный способ доставки"
}
},
"required": [
"cart",
"currencyCode"
],
"type": "object"
},
"MerchantCreateOrderV1Response": {
"properties": {
"data": {
"properties": {
"metadata": {
"type": "string"
},
"orderId": {
"description": "ID созданного заказа на стороне продавца",
"type": "string"
},
"redirectUrls": {
"allOf": [
{
"properties": {
"onAbort": {
"description": "Ссылка для переадресации пользователя в случае отмены процесса оплаты. Отмену оплаты осуществляет пользователь на форме для оплаты.",
"type": "string"
},
"onError": {
"description": "Обязательное поле только для онлайн-магазинов. Ссылка для переадресации пользователя в случае возникновения ошибки во время оплаты, или если срок ссылки на оплату истек.",
"type": "string"
},
"onSuccess": {
"description": "Обязательное поле только для онлайн-магазинов. Ссылка для переадресации пользователя в случае успешной оплаты.",
"type": "string"
}
},
"required": [
"onError",
"onSuccess"
],
"type": "object"
}
]
},
"ttl": {
"default": null,
"description": "Время жизни заказа (в секундах)",
"format": "int32",
"type": "integer"
}
},
"required": [
"orderId"
],
"type": "object"
},
"status": {
"type": "string"
}
},
"required": [
"data",
"status"
],
"type": "object"
},
"MerchantErrorResponse": {
"properties": {
"reason": {
"description": "Описание причины ошибки.",
"type": "string"
},
"reasonCode": {
"description": "Код ошибки:\n\n- `FORBIDDEN` — заказ существует, но был оплачен не через Яндекс Пэй;\n- `ORDER_NOT_FOUND` — заказ не найден в системе продавца;\n- `ORDER_AMOUNT_MISMATCH` — сумма заказа не совпадает с суммой в системе продавца;\n- `ORDER_DETAILS_MISMATCH` — детали заказа отличаются от данных в системе продавца;\n- `OTHER` — общая ошибка;\n- `UNAUTHORIZED` — не удалось проверить подпись JWT-токена;\n- `TOKEN_EXPIRED` — срок действия JWT-токена истек;\n- `CONFLICT` — данные в нотификации расходятся с состоянием заказа в системе продавца. Например, пришла нотификация об оплате для отмененного заказа.",
"enum": [
"FORBIDDEN",
"ITEM_NOT_FOUND",
"ORDER_NOT_FOUND",
"ORDER_AMOUNT_MISMATCH",
"ORDER_DETAILS_MISMATCH",
"OUT_OF_INVENTORY",
"PICKUP_POINT_NOT_FOUND",
"SHIPPING_DETAILS_MISMATCH",
"OTHER",
"UNAUTHORIZED",
"TOKEN_EXPIRED",
"CONFLICT"
],
"type": "string"
},
"status": {
"default": "fail",
"type": "string"
}
},
"required": [
"reasonCode"
],
"type": "object"
},
"MerchantOnboardRequest": {
"properties": {
"apiKey": {
"type": "string"
},
"force": {
"default": false,
"type": "boolean"
},
"merchantAuthToken": {
"description": "Авторизационный токен, сгенерированный мерчантом",
"type": "string"
},
"merchantId": {
"format": "uuid",
"type": "string"
}
},
"required": [
"apiKey",
"merchantAuthToken"
],
"type": "object"
},
"MerchantPickupOptionDetailsRequest": {
"properties": {
"cart": {
"allOf": [
{
"properties": {
"cartId": {
"description": "Внутренний идентификатор корзины Яндекс Пэй.\n\nБэкенд магазина должен использовать этот параметр как идентификатор корзины покупателя и как ключ идемпотентности для запроса `/order/create`. Если бэкенд магазина получает повторный запрос `/order/create`, то необходимо вернуть уже созданный номер заказа. На одну корзину (`cartId`) бэкенд магазина может создать не больше одного заказа (`orderId`).",
"type": "string"
},
"coupons": {
"description": "Купоны, применённые к корзине",
"items": {
"properties": {
"description": {
"description": "Описание. Например, \"Скидка 3%\"",
"type": "string"
},
"status": {
"enum": [
"VALID",
"INVALID",
"EXPIRED",
null
],
"type": "string"
},
"value": {
"description": "Код купона",
"type": "string"
}
},
"required": [
"value"
],
"type": "object"
},
"type": "array"
},
"discounts": {
"description": "Скидки, применённые к корзине",
"items": {
"properties": {
"amount": {
"description": "Сумма скидки",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Текстовое описание",
"type": "string"
},
"discountId": {
"description": "Идентификатор скидки в системе мерчанта",
"type": "string"
}
},
"required": [
"amount",
"description",
"discountId"
],
"type": "object"
},
"type": "array"
},
"externalId": {
"description": "Переданный продавцом идентификатор корзины",
"type": "string"
},
"items": {
"items": {
"properties": {
"description": {
"description": "Описание товара",
"type": "string"
},
"discountedUnitPrice": {
"description": "Цена за единицу товара с учётом скидок на позицию",
"example": "123.45",
"format": "double",
"type": "string"
},
"features": {
"allOf": [
{
"properties": {
"pointsDisabled": {
"default": false,
"description": "Не распределять баллы Плюса. Используется только при создании заказа. Если это поле не указано, то баллы будут распределены на товар",
"type": "boolean"
},
"tariffModifier": {
"description": "Модификатор тарифа для расчета комиссии. Определяет, какой тариф будет применяться при расчете комиссии за обработку позиции в корзине.",
"enum": [
"VERY_LOW",
"LOW",
"MEDIUM",
"HIGH",
"VERY_HIGH",
null
],
"type": "string"
}
},
"type": "object"
}
],
"description": "Промо параметры товара"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Высота, в метрах",
"format": "float",
"type": "number"
},
"length": {
"description": "Длина, в метрах",
"format": "float",
"type": "number"
},
"weight": {
"description": "Вес, в килограммах",
"format": "float",
"type": "number"
},
"width": {
"description": "Ширина, в метрах",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
],
"description": "Размеры и вес товара. Обязательно для товара типа `PHYSICAL`"
},
"pointsAmount": {
"description": "Количество баллов Плюса\n\nПоле только для чтения. Переданные значения будут проигнорированы.",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
},
"productId": {
"description": "Id товара в системе продавца. В параметрах запроса каждый идентификатор товара `productId` должен быть уникальным",
"type": "string"
},
"quantity": {
"allOf": [
{
"properties": {
"available": {
"description": "Максимально доступное количество товара",
"example": "123.45",
"format": "double",
"type": "string"
},
"count": {
"description": "Количество товара в заказе",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"count"
],
"type": "object"
}
],
"description": "Количество товара в заказе"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
],
"description": "Данные для формирования чека"
},
"skuId": {
"description": "Уникальный id, который описывает единицу ассортимента. Необходим для применения индивидуального тарифа.",
"type": "string"
},
"subtotal": {
"description": "Суммарная цена за позицию без учета скидок",
"example": "123.45",
"format": "double",
"type": "string"
},
"title": {
"description": "Наименование товара",
"type": "string"
},
"total": {
"description": "Суммарная цена за позицию с учётом скидок на позицию",
"example": "123.45",
"format": "double",
"type": "string"
},
"type": {
"default": "UNSPECIFIED",
"description": "Тип товара. Важен для интеграции с доставками",
"enum": [
"PHYSICAL",
"DIGITAL",
"UNSPECIFIED"
],
"type": "string"
},
"unitPrice": {
"description": "Полная цена за единицу товара без учетка скидки",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"productId",
"quantity"
],
"type": "object"
},
"type": "array"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Высота, в метрах",
"format": "float",
"type": "number"
},
"length": {
"description": "Длина, в метрах",
"format": "float",
"type": "number"
},
"weight": {
"description": "Вес, в килограммах",
"format": "float",
"type": "number"
},
"width": {
"description": "Ширина, в метрах",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
]
},
"total": {
"allOf": [
{
"properties": {
"amount": {
"description": "Стоимость корзины с учетом всех скидок.",
"example": "123.45",
"format": "double",
"type": "string"
},
"pointsAmount": {
"description": "Количество баллов Плюса\n\nПоле только для чтения. Переданные значения будут проигнорированы.",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
}
},
"required": [
"amount"
],
"type": "object"
}
],
"default": null,
"description": "Итоговая стоимость корзины, которая пойдет в оплату"
}
},
"type": "object"
}
],
"description": "Корзина c ценами, размером и весом товаров"
},
"currencyCode": {
"type": "string"
},
"merchantId": {
"format": "uuid",
"type": "string"
},
"metadata": {
"type": "string"
},
"pickupPointId": {
"type": "string"
}
},
"required": [
"cart",
"currencyCode",
"merchantId",
"pickupPointId"
],
"type": "object"
},
"MerchantPickupOptionDetailsResponse": {
"properties": {
"data": {
"properties": {
"pickupOption": {
"properties": {
"address": {
"description": "Адрес в виде строки",
"type": "string"
},
"allowedPaymentMethods": {
"description": "Индивидуальные методы оплаты для выбранного способа самовывоза. Доступные методы оплаты заказа при выбранном способе самовывоза. Этот параметр нужно использовать, если нужно ограничить методы оплаты, указанные в `availablePaymentMethods`. Если параметр не указан, то используются все методы оплаты, перечисленные в `availablePaymentMethods`.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Стоимость доставки в точку",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Дополнительное описание",
"type": "string"
},
"fromDate": {
"description": "YYYY-MM-DD. Ближайшая возможная дата доставки",
"format": "date",
"type": "string"
},
"location": {
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
},
"phones": {
"description": "Телефоны для связи",
"items": {
"type": "string"
},
"type": "array"
},
"pickupPointId": {
"description": "Уникальный id точки самовывоза в системе продавца",
"type": "string"
},
"provider": {
"description": "Тип точки вывоза.",
"enum": [
"YANDEX_MARKET",
"BOXBERRY",
"CDEK",
"IN_STORE",
"RUSSIAN_POST",
"PICKPOINT",
"DPD"
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"schedule": {
"description": "График работы точки",
"items": {
"properties": {
"fromTime": {
"description": "HH:mm, \"08:00\"",
"type": "string"
},
"label": {
"description": "Например, \"пн-пт\"",
"type": "string"
},
"toTime": {
"description": "HH:mm, \"20:00\"",
"type": "string"
}
},
"required": [
"fromTime",
"label",
"toTime"
],
"type": "object"
},
"type": "array"
},
"storagePeriod": {
"description": "Опционально. Срок хранения товара в точке самовывоза в днях",
"format": "int32",
"type": "integer"
},
"title": {
"description": "Название точки самовывоза",
"type": "string"
},
"toDate": {
"description": "YYYY-MM-DD. Самая поздняя дата доставки",
"format": "date",
"type": "string"
}
},
"required": [
"address",
"amount",
"location",
"pickupPointId",
"title"
],
"type": "object"
}
},
"required": [
"pickupOption"
],
"type": "object"
},
"status": {
"type": "string"
}
},
"required": [
"data",
"status"
],
"type": "object"
},
"MerchantPickupOptionDetailsResponseData": {
"properties": {
"pickupOption": {
"properties": {
"address": {
"description": "Адрес в виде строки",
"type": "string"
},
"allowedPaymentMethods": {
"description": "Индивидуальные методы оплаты для выбранного способа самовывоза. Доступные методы оплаты заказа при выбранном способе самовывоза. Этот параметр нужно использовать, если нужно ограничить методы оплаты, указанные в `availablePaymentMethods`. Если параметр не указан, то используются все методы оплаты, перечисленные в `availablePaymentMethods`.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Стоимость доставки в точку",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Дополнительное описание",
"type": "string"
},
"fromDate": {
"description": "YYYY-MM-DD. Ближайшая возможная дата доставки",
"format": "date",
"type": "string"
},
"location": {
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
},
"phones": {
"description": "Телефоны для связи",
"items": {
"type": "string"
},
"type": "array"
},
"pickupPointId": {
"description": "Уникальный id точки самовывоза в системе продавца",
"type": "string"
},
"provider": {
"description": "Тип точки вывоза.",
"enum": [
"YANDEX_MARKET",
"BOXBERRY",
"CDEK",
"IN_STORE",
"RUSSIAN_POST",
"PICKPOINT",
"DPD"
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"schedule": {
"description": "График работы точки",
"items": {
"properties": {
"fromTime": {
"description": "HH:mm, \"08:00\"",
"type": "string"
},
"label": {
"description": "Например, \"пн-пт\"",
"type": "string"
},
"toTime": {
"description": "HH:mm, \"20:00\"",
"type": "string"
}
},
"required": [
"fromTime",
"label",
"toTime"
],
"type": "object"
},
"type": "array"
},
"storagePeriod": {
"description": "Опционально. Срок хранения товара в точке самовывоза в днях",
"format": "int32",
"type": "integer"
},
"title": {
"description": "Название точки самовывоза",
"type": "string"
},
"toDate": {
"description": "YYYY-MM-DD. Самая поздняя дата доставки",
"format": "date",
"type": "string"
}
},
"required": [
"address",
"amount",
"location",
"pickupPointId",
"title"
],
"type": "object"
}
},
"required": [
"pickupOption"
],
"type": "object"
},
"MerchantPickupOptionsRequest": {
"properties": {
"boundingBox": {
"allOf": [
{
"properties": {
"ne": {
"allOf": [
{
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
}
],
"description": "Правый верхний угол (северо-восток)"
},
"sw": {
"allOf": [
{
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
}
],
"description": "Левый нижний угол (юго-запад)"
}
},
"required": [
"ne",
"sw"
],
"type": "object"
}
],
"description": "Границы области на карте"
},
"cart": {
"allOf": [
{
"properties": {
"cartId": {
"description": "Внутренний идентификатор корзины Яндекс Пэй.\n\nБэкенд магазина должен использовать этот параметр как идентификатор корзины покупателя и как ключ идемпотентности для запроса `/order/create`. Если бэкенд магазина получает повторный запрос `/order/create`, то необходимо вернуть уже созданный номер заказа. На одну корзину (`cartId`) бэкенд магазина может создать не больше одного заказа (`orderId`).",
"type": "string"
},
"coupons": {
"description": "Купоны, применённые к корзине",
"items": {
"properties": {
"description": {
"description": "Описание. Например, \"Скидка 3%\"",
"type": "string"
},
"status": {
"enum": [
"VALID",
"INVALID",
"EXPIRED",
null
],
"type": "string"
},
"value": {
"description": "Код купона",
"type": "string"
}
},
"required": [
"value"
],
"type": "object"
},
"type": "array"
},
"discounts": {
"description": "Скидки, применённые к корзине",
"items": {
"properties": {
"amount": {
"description": "Сумма скидки",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Текстовое описание",
"type": "string"
},
"discountId": {
"description": "Идентификатор скидки в системе мерчанта",
"type": "string"
}
},
"required": [
"amount",
"description",
"discountId"
],
"type": "object"
},
"type": "array"
},
"externalId": {
"description": "Переданный продавцом идентификатор корзины",
"type": "string"
},
"items": {
"items": {
"properties": {
"description": {
"description": "Описание товара",
"type": "string"
},
"discountedUnitPrice": {
"description": "Цена за единицу товара с учётом скидок на позицию",
"example": "123.45",
"format": "double",
"type": "string"
},
"features": {
"allOf": [
{
"properties": {
"pointsDisabled": {
"default": false,
"description": "Не распределять баллы Плюса. Используется только при создании заказа. Если это поле не указано, то баллы будут распределены на товар",
"type": "boolean"
},
"tariffModifier": {
"description": "Модификатор тарифа для расчета комиссии. Определяет, какой тариф будет применяться при расчете комиссии за обработку позиции в корзине.",
"enum": [
"VERY_LOW",
"LOW",
"MEDIUM",
"HIGH",
"VERY_HIGH",
null
],
"type": "string"
}
},
"type": "object"
}
],
"description": "Промо параметры товара"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Высота, в метрах",
"format": "float",
"type": "number"
},
"length": {
"description": "Длина, в метрах",
"format": "float",
"type": "number"
},
"weight": {
"description": "Вес, в килограммах",
"format": "float",
"type": "number"
},
"width": {
"description": "Ширина, в метрах",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
],
"description": "Размеры и вес товара. Обязательно для товара типа `PHYSICAL`"
},
"pointsAmount": {
"description": "Количество баллов Плюса\n\nПоле только для чтения. Переданные значения будут проигнорированы.",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
},
"productId": {
"description": "Id товара в системе продавца. В параметрах запроса каждый идентификатор товара `productId` должен быть уникальным",
"type": "string"
},
"quantity": {
"allOf": [
{
"properties": {
"available": {
"description": "Максимально доступное количество товара",
"example": "123.45",
"format": "double",
"type": "string"
},
"count": {
"description": "Количество товара в заказе",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"count"
],
"type": "object"
}
],
"description": "Количество товара в заказе"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
],
"description": "Данные для формирования чека"
},
"skuId": {
"description": "Уникальный id, который описывает единицу ассортимента. Необходим для применения индивидуального тарифа.",
"type": "string"
},
"subtotal": {
"description": "Суммарная цена за позицию без учета скидок",
"example": "123.45",
"format": "double",
"type": "string"
},
"title": {
"description": "Наименование товара",
"type": "string"
},
"total": {
"description": "Суммарная цена за позицию с учётом скидок на позицию",
"example": "123.45",
"format": "double",
"type": "string"
},
"type": {
"default": "UNSPECIFIED",
"description": "Тип товара. Важен для интеграции с доставками",
"enum": [
"PHYSICAL",
"DIGITAL",
"UNSPECIFIED"
],
"type": "string"
},
"unitPrice": {
"description": "Полная цена за единицу товара без учетка скидки",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"productId",
"quantity"
],
"type": "object"
},
"type": "array"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Высота, в метрах",
"format": "float",
"type": "number"
},
"length": {
"description": "Длина, в метрах",
"format": "float",
"type": "number"
},
"weight": {
"description": "Вес, в килограммах",
"format": "float",
"type": "number"
},
"width": {
"description": "Ширина, в метрах",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
]
},
"total": {
"allOf": [
{
"properties": {
"amount": {
"description": "Стоимость корзины с учетом всех скидок.",
"example": "123.45",
"format": "double",
"type": "string"
},
"pointsAmount": {
"description": "Количество баллов Плюса\n\nПоле только для чтения. Переданные значения будут проигнорированы.",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
}
},
"required": [
"amount"
],
"type": "object"
}
],
"default": null,
"description": "Итоговая стоимость корзины, которая пойдет в оплату"
}
},
"type": "object"
}
],
"description": "Корзина c ценами, размером и весом товаров"
},
"currencyCode": {
"type": "string"
},
"merchantId": {
"format": "uuid",
"type": "string"
},
"metadata": {
"type": "string"
}
},
"required": [
"boundingBox",
"cart",
"currencyCode",
"merchantId"
],
"type": "object"
},
"MerchantPickupOptionsResponse": {
"properties": {
"data": {
"properties": {
"pickupOptions": {
"items": {
"properties": {
"address": {
"description": "Адрес в виде строки",
"type": "string"
},
"allowedPaymentMethods": {
"description": "Индивидуальные методы оплаты для выбранного способа самовывоза. Доступные методы оплаты заказа при выбранном способе самовывоза. Этот параметр нужно использовать, если нужно ограничить методы оплаты, указанные в `availablePaymentMethods`. Если параметр не указан, то используются все методы оплаты, перечисленные в `availablePaymentMethods`.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Стоимость доставки в точку",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Дополнительное описание",
"type": "string"
},
"fromDate": {
"description": "YYYY-MM-DD. Ближайшая возможная дата доставки",
"format": "date",
"type": "string"
},
"location": {
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
},
"phones": {
"description": "Телефоны для связи",
"items": {
"type": "string"
},
"type": "array"
},
"pickupPointId": {
"description": "Уникальный id точки самовывоза в системе продавца",
"type": "string"
},
"provider": {
"description": "Тип точки вывоза.",
"enum": [
"YANDEX_MARKET",
"BOXBERRY",
"CDEK",
"IN_STORE",
"RUSSIAN_POST",
"PICKPOINT",
"DPD"
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"schedule": {
"description": "График работы точки",
"items": {
"properties": {
"fromTime": {
"description": "HH:mm, \"08:00\"",
"type": "string"
},
"label": {
"description": "Например, \"пн-пт\"",
"type": "string"
},
"toTime": {
"description": "HH:mm, \"20:00\"",
"type": "string"
}
},
"required": [
"fromTime",
"label",
"toTime"
],
"type": "object"
},
"type": "array"
},
"storagePeriod": {
"description": "Опционально. Срок хранения товара в точке самовывоза в днях",
"format": "int32",
"type": "integer"
},
"title": {
"description": "Название точки самовывоза",
"type": "string"
},
"toDate": {
"description": "YYYY-MM-DD. Самая поздняя дата доставки",
"format": "date",
"type": "string"
}
},
"required": [
"address",
"location",
"pickupPointId",
"title"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"pickupOptions"
],
"type": "object"
},
"status": {
"type": "string"
}
},
"required": [
"data",
"status"
],
"type": "object"
},
"MerchantPickupOptionsResponseData": {
"properties": {
"pickupOptions": {
"items": {
"properties": {
"address": {
"description": "Адрес в виде строки",
"type": "string"
},
"allowedPaymentMethods": {
"description": "Индивидуальные методы оплаты для выбранного способа самовывоза. Доступные методы оплаты заказа при выбранном способе самовывоза. Этот параметр нужно использовать, если нужно ограничить методы оплаты, указанные в `availablePaymentMethods`. Если параметр не указан, то используются все методы оплаты, перечисленные в `availablePaymentMethods`.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Стоимость доставки в точку",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Дополнительное описание",
"type": "string"
},
"fromDate": {
"description": "YYYY-MM-DD. Ближайшая возможная дата доставки",
"format": "date",
"type": "string"
},
"location": {
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
},
"phones": {
"description": "Телефоны для связи",
"items": {
"type": "string"
},
"type": "array"
},
"pickupPointId": {
"description": "Уникальный id точки самовывоза в системе продавца",
"type": "string"
},
"provider": {
"description": "Тип точки вывоза.",
"enum": [
"YANDEX_MARKET",
"BOXBERRY",
"CDEK",
"IN_STORE",
"RUSSIAN_POST",
"PICKPOINT",
"DPD"
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"schedule": {
"description": "График работы точки",
"items": {
"properties": {
"fromTime": {
"description": "HH:mm, \"08:00\"",
"type": "string"
},
"label": {
"description": "Например, \"пн-пт\"",
"type": "string"
},
"toTime": {
"description": "HH:mm, \"20:00\"",
"type": "string"
}
},
"required": [
"fromTime",
"label",
"toTime"
],
"type": "object"
},
"type": "array"
},
"storagePeriod": {
"description": "Опционально. Срок хранения товара в точке самовывоза в днях",
"format": "int32",
"type": "integer"
},
"title": {
"description": "Название точки самовывоза",
"type": "string"
},
"toDate": {
"description": "YYYY-MM-DD. Самая поздняя дата доставки",
"format": "date",
"type": "string"
}
},
"required": [
"address",
"location",
"pickupPointId",
"title"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"pickupOptions"
],
"type": "object"
},
"MerchantRedirectUrls": {
"properties": {
"onAbort": {
"description": "Ссылка для переадресации пользователя в случае отмены процесса оплаты. Отмену оплаты осуществляет пользователь на форме для оплаты.",
"type": "string"
},
"onError": {
"description": "Обязательное поле только для онлайн-магазинов. Ссылка для переадресации пользователя в случае возникновения ошибки во время оплаты, или если срок ссылки на оплату истек.",
"type": "string"
},
"onSuccess": {
"description": "Обязательное поле только для онлайн-магазинов. Ссылка для переадресации пользователя в случае успешной оплаты.",
"type": "string"
}
},
"required": [
"onError",
"onSuccess"
],
"type": "object"
},
"MerchantRenderOrderRequest": {
"properties": {
"cart": {
"allOf": [
{
"properties": {
"cartId": {
"description": "Внутренний идентификатор корзины Яндекс Пэй.\n\nБэкенд магазина должен использовать этот параметр как идентификатор корзины покупателя и как ключ идемпотентности для запроса `/order/create`. Если бэкенд магазина получает повторный запрос `/order/create`, то необходимо вернуть уже созданный номер заказа. На одну корзину (`cartId`) бэкенд магазина может создать не больше одного заказа (`orderId`).",
"type": "string"
},
"coupons": {
"description": "Купоны, применённые к корзине",
"items": {
"properties": {
"description": {
"description": "Описание. Например, \"Скидка 3%\"",
"type": "string"
},
"status": {
"enum": [
"VALID",
"INVALID",
"EXPIRED",
null
],
"type": "string"
},
"value": {
"description": "Код купона",
"type": "string"
}
},
"required": [
"value"
],
"type": "object"
},
"type": "array"
},
"discounts": {
"description": "Скидки, применённые к корзине",
"items": {
"properties": {
"amount": {
"description": "Сумма скидки",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Текстовое описание",
"type": "string"
},
"discountId": {
"description": "Идентификатор скидки в системе мерчанта",
"type": "string"
}
},
"required": [
"amount",
"description",
"discountId"
],
"type": "object"
},
"type": "array"
},
"externalId": {
"description": "Переданный продавцом идентификатор корзины",
"type": "string"
},
"items": {
"items": {
"properties": {
"description": {
"description": "Описание товара",
"type": "string"
},
"discountedUnitPrice": {
"description": "Цена за единицу товара с учётом скидок на позицию",
"example": "123.45",
"format": "double",
"type": "string"
},
"features": {
"allOf": [
{
"properties": {
"pointsDisabled": {
"default": false,
"description": "Не распределять баллы Плюса. Используется только при создании заказа. Если это поле не указано, то баллы будут распределены на товар",
"type": "boolean"
},
"tariffModifier": {
"description": "Модификатор тарифа для расчета комиссии. Определяет, какой тариф будет применяться при расчете комиссии за обработку позиции в корзине.",
"enum": [
"VERY_LOW",
"LOW",
"MEDIUM",
"HIGH",
"VERY_HIGH",
null
],
"type": "string"
}
},
"type": "object"
}
],
"description": "Промо параметры товара"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Высота, в метрах",
"format": "float",
"type": "number"
},
"length": {
"description": "Длина, в метрах",
"format": "float",
"type": "number"
},
"weight": {
"description": "Вес, в килограммах",
"format": "float",
"type": "number"
},
"width": {
"description": "Ширина, в метрах",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
],
"description": "Размеры и вес товара. Обязательно для товара типа `PHYSICAL`"
},
"pointsAmount": {
"description": "Количество баллов Плюса\n\nПоле только для чтения. Переданные значения будут проигнорированы.",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
},
"productId": {
"description": "Id товара в системе продавца. В параметрах запроса каждый идентификатор товара `productId` должен быть уникальным",
"type": "string"
},
"quantity": {
"allOf": [
{
"properties": {
"available": {
"description": "Максимально доступное количество товара",
"example": "123.45",
"format": "double",
"type": "string"
},
"count": {
"description": "Количество товара в заказе",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"count"
],
"type": "object"
}
],
"description": "Количество товара в заказе"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
],
"description": "Данные для формирования чека"
},
"skuId": {
"description": "Уникальный id, который описывает единицу ассортимента. Необходим для применения индивидуального тарифа.",
"type": "string"
},
"subtotal": {
"description": "Суммарная цена за позицию без учета скидок",
"example": "123.45",
"format": "double",
"type": "string"
},
"title": {
"description": "Наименование товара",
"type": "string"
},
"total": {
"description": "Суммарная цена за позицию с учётом скидок на позицию",
"example": "123.45",
"format": "double",
"type": "string"
},
"type": {
"default": "UNSPECIFIED",
"description": "Тип товара. Важен для интеграции с доставками",
"enum": [
"PHYSICAL",
"DIGITAL",
"UNSPECIFIED"
],
"type": "string"
},
"unitPrice": {
"description": "Полная цена за единицу товара без учетка скидки",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"productId",
"quantity"
],
"type": "object"
},
"type": "array"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Высота, в метрах",
"format": "float",
"type": "number"
},
"length": {
"description": "Длина, в метрах",
"format": "float",
"type": "number"
},
"weight": {
"description": "Вес, в килограммах",
"format": "float",
"type": "number"
},
"width": {
"description": "Ширина, в метрах",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
]
},
"total": {
"allOf": [
{
"properties": {
"amount": {
"description": "Стоимость корзины с учетом всех скидок.",
"example": "123.45",
"format": "double",
"type": "string"
},
"pointsAmount": {
"description": "Количество баллов Плюса\n\nПоле только для чтения. Переданные значения будут проигнорированы.",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
}
},
"required": [
"amount"
],
"type": "object"
}
],
"default": null,
"description": "Итоговая стоимость корзины, которая пойдет в оплату"
}
},
"type": "object"
}
],
"description": "Корзина c ценами, размером и весом товаров"
},
"currencyCode": {
"description": "Трехбуквенный код валюты заказа (ISO 4217)",
"enum": [
"RUB",
"UZS"
],
"type": "string"
},
"merchantId": {
"format": "uuid",
"type": "string"
},
"metadata": {
"description": "Произвольные данные, переданные при инициализации кнопки",
"type": "string"
},
"orderId": {
"description": "Id существующего заказа на стороне продавца, переданный при инициализации кнопки",
"type": "string"
},
"paymentMethod": {
"allOf": [
{
"properties": {
"cardLast4": {
"type": "string"
},
"cardNetwork": {
"description": "Платежная система",
"enum": [
"AMEX",
"DISCOVER",
"JCB",
"MASTERCARD",
"MAESTRO",
"VISAELECTRON",
"VISA",
"MIR",
"UNIONPAY",
"UZCARD",
"HUMOCARD",
"UNKNOWN",
"UNDEFINED",
null
],
"type": "string"
},
"methodType": {
"enum": [
"CARD",
"SPLIT",
"SBP",
"SPLIT_SBP",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
}
},
"required": [
"methodType"
],
"type": "object"
}
],
"description": "Выбранный способ оплаты"
},
"shippingAddress": {
"allOf": [
{
"properties": {
"addressLine": {
"description": "Полный адрес",
"type": "string"
},
"building": {
"type": "string"
},
"comment": {
"type": "string"
},
"country": {
"type": "string"
},
"district": {
"type": "string"
},
"entrance": {
"type": "string"
},
"floor": {
"type": "string"
},
"intercom": {
"type": "string"
},
"locale": {
"type": "string"
},
"locality": {
"type": "string"
},
"location": {
"allOf": [
{
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
}
]
},
"region": {
"type": "string"
},
"room": {
"type": "string"
},
"street": {
"type": "string"
},
"zip": {
"type": "string"
}
},
"required": [
"building",
"country"
],
"type": "object"
}
],
"description": "Адрес доставки доступен, если выбран метод COURIER"
},
"shippingMethod": {
"allOf": [
{
"properties": {
"courierOption": {
"allOf": [
{
"properties": {
"allowedPaymentMethods": {
"description": "Индивидуальные методы оплаты для метода доставки. Этот параметр нужно использовать, если нужно ограничить методы оплаты, указанные в `availablePaymentMethods`. Если параметр не указан, то используются все методы оплаты, перечисленные в `availablePaymentMethods`.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Стоимость доставки",
"example": "123.45",
"format": "double",
"type": "string"
},
"category": {
"enum": [
"EXPRESS",
"TODAY",
"STANDARD"
],
"type": "string"
},
"courierOptionId": {
"description": "id выбранного варианта доставки в системе продавца",
"type": "string"
},
"customerChoice": {
"allOf": [
{
"properties": {
"date": {
"format": "date",
"type": "string"
},
"time": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
]
}
},
"required": [
"date"
],
"type": "object"
}
],
"description": "Выбранные пользователем дата и интервал. Только для `type: FLEXIBLE`"
},
"fromDate": {
"description": "Ближайшая дата доставки для `type: PLAIN`. Начало интервала выбора даты доставки для `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"fromTime": {
"description": "Начало интервала времени доставки. Только для `type: PLAIN`",
"type": "string"
},
"provider": {
"description": "Тип службы доставки.",
"enum": [
"BOXBERRY",
"CDEK",
"RUSSIAN_POST",
"EMS",
"COURIER",
"DHL",
"EXPRESS_DELIVERY",
"FIVEPOST",
"OZON_ROCKET",
"DPD",
"SBER_LOGISTICS",
"PEK",
"PICKPOINT",
"KCE",
"PONY_EXPRESS",
"YANDEX_DELIVERY",
null
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"timeIntervals": {
"allOf": [
{
"properties": {
"grid": {
"allOf": [
{
"properties": {
"duration": {
"description": "Продолжительность каждого интервала",
"type": "string"
},
"end": {
"description": "Максимальное время начала самого последнего интервала",
"type": "string"
},
"start": {
"description": "Время начала самого первого интервала",
"type": "string"
},
"step": {
"description": "Разница во времени между началами двух соседних интервалов",
"type": "string"
}
},
"required": [
"duration",
"end",
"start",
"step"
],
"type": "object"
}
],
"description": "Кодирует интервалы в виде сетки. Используйте этот формат, если необходимо задать больше 20 интервалов доставки.\nПример: `{\"start\": \"09:00\", \"end\": \"21:00\", \"duration\": \"00:20\", \"step\": \"01:00\"}` трактуется как набор интервалов: `[{\"start\": \"09:00\", \"end\": \"09:20\"}, {\"start\": \"10:00\", \"end\": \"10:20\"}, ..., {\"start\": \"20:00\", \"end\": \"20:20\"}]`"
},
"type": {
"description": "Если указан тип `GRID`, то необходимо задать поле `grid`. Если указан тип `VALUES`, то необходимо задать поле `values`",
"enum": [
"GRID",
"VALUES"
],
"type": "string"
},
"values": {
"description": "Задаёт список интервалов напрямую. Подходит для небольшого количества интервалов доставки. Рекомендуемое максимальная количество интервалов - 20",
"items": {
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"type"
],
"type": "object"
}
],
"description": "Кодирует интервалы времени доставки, доступные для выбора. Только для `type: FLEXIBLE`"
},
"title": {
"description": "Название способа доставки. Показывается пользователю в списке вариантов",
"type": "string"
},
"toDate": {
"description": "Самая поздняя дата доставки для `type: PLAIN`. Конец интервала выбора даты доставки для `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"toTime": {
"description": "Конец интервала времени доставки. Только для `type: PLAIN`",
"type": "string"
},
"type": {
"default": "PLAIN",
"description": "Тип опции.\nДля `FLEXIBLE` вариантов доставки пользователю дается возможность выбрать желаемые дату и интервал:\n- дата доставки выбирается покупателем в отрезке `[fromDate, toDate]`\n- чтобы предоставить пользователю выбор интервала в течении дня, заполните `timeIntervals`\nДля `PLAIN` вариантов такой выбор отсутствует.",
"enum": [
"PLAIN",
"FLEXIBLE"
],
"type": "string"
}
},
"required": [
"amount",
"category",
"courierOptionId",
"title"
],
"type": "object"
}
],
"description": "если methodType == COURIER"
},
"methodType": {
"enum": [
"DIRECT",
"PICKUP",
"COURIER",
"YANDEX_DELIVERY"
],
"type": "string"
},
"pickupOption": {
"allOf": [
{
"properties": {
"address": {
"description": "Адрес в виде строки",
"type": "string"
},
"allowedPaymentMethods": {
"description": "Индивидуальные методы оплаты для выбранного способа самовывоза. Доступные методы оплаты заказа при выбранном способе самовывоза. Этот параметр нужно использовать, если нужно ограничить методы оплаты, указанные в `availablePaymentMethods`. Если параметр не указан, то используются все методы оплаты, перечисленные в `availablePaymentMethods`.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Стоимость доставки в точку",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Дополнительное описание",
"type": "string"
},
"fromDate": {
"description": "YYYY-MM-DD. Ближайшая возможная дата доставки",
"format": "date",
"type": "string"
},
"location": {
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
},
"phones": {
"description": "Телефоны для связи",
"items": {
"type": "string"
},
"type": "array"
},
"pickupPointId": {
"description": "Уникальный id точки самовывоза в системе продавца",
"type": "string"
},
"provider": {
"description": "Тип точки вывоза.",
"enum": [
"YANDEX_MARKET",
"BOXBERRY",
"CDEK",
"IN_STORE",
"RUSSIAN_POST",
"PICKPOINT",
"DPD"
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"schedule": {
"description": "График работы точки",
"items": {
"properties": {
"fromTime": {
"description": "HH:mm, \"08:00\"",
"type": "string"
},
"label": {
"description": "Например, \"пн-пт\"",
"type": "string"
},
"toTime": {
"description": "HH:mm, \"20:00\"",
"type": "string"
}
},
"required": [
"fromTime",
"label",
"toTime"
],
"type": "object"
},
"type": "array"
},
"storagePeriod": {
"description": "Опционально. Срок хранения товара в точке самовывоза в днях",
"format": "int32",
"type": "integer"
},
"title": {
"description": "Название точки самовывоза",
"type": "string"
},
"toDate": {
"description": "YYYY-MM-DD. Самая поздняя дата доставки",
"format": "date",
"type": "string"
}
},
"required": [
"address",
"location",
"pickupPointId",
"title"
],
"type": "object"
}
],
"description": "если methodType == PICKUP"
},
"yandexDeliveryOption": {
"allOf": [
{
"properties": {
"allowedPaymentMethods": {
"description": "Индивидуальные методы оплаты для метода доставки. Этот параметр нужно использовать, если нужно ограничить методы оплаты, указанные в `availablePaymentMethods`. Если параметр не указан, то используются все методы оплаты, перечисленные в `availablePaymentMethods`.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Стоимость доставки",
"example": "123.45",
"format": "double",
"type": "string"
},
"category": {
"enum": [
"EXPRESS",
"TODAY",
"STANDARD"
],
"type": "string"
},
"fromDatetime": {
"format": "date-time",
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"title": {
"description": "Название способа доставки. Показывается пользователю в списке вариантов",
"type": "string"
},
"toDatetime": {
"format": "date-time",
"type": "string"
},
"yandexDeliveryOptionId": {
"description": "Id предложения Яндекс Доставки",
"type": "string"
}
},
"required": [
"amount",
"category",
"title",
"yandexDeliveryOptionId"
],
"type": "object"
}
],
"description": "если methodType == YANDEX_DELIVERY"
}
},
"required": [
"methodType"
],
"type": "object"
}
],
"description": "Выбранный способ доставки"
}
},
"required": [
"cart",
"currencyCode"
],
"type": "object"
},
"MerchantRenderOrderResponse": {
"properties": {
"data": {
"properties": {
"availablePaymentMethods": {
"description": "Доступные методы оплаты на платежной форме Яндекс Пэй.\n\nНужно указать все возможные методы, которые может выбрать пользователь - при оплате онлайн и доставке. Если вы интегрируете оплату только одним методом, например, Сплит — указывается один метод `[\"SPLIT\"]`.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
},
"type": "array"
},
"cart": {
"allOf": [
{
"properties": {
"coupons": {
"description": "Купоны, применённые к корзине",
"items": {
"properties": {
"description": {
"description": "Описание. Например, \"Скидка 3%\"",
"type": "string"
},
"status": {
"enum": [
"VALID",
"INVALID",
"EXPIRED",
null
],
"type": "string"
},
"value": {
"description": "Код купона",
"type": "string"
}
},
"required": [
"value"
],
"type": "object"
},
"type": "array"
},
"discounts": {
"description": "Скидки, применённые к корзине",
"items": {
"properties": {
"amount": {
"description": "Сумма скидки",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Текстовое описание",
"type": "string"
},
"discountId": {
"description": "Идентификатор скидки в системе мерчанта",
"type": "string"
}
},
"required": [
"amount",
"description",
"discountId"
],
"type": "object"
},
"type": "array"
},
"externalId": {
"description": "Переданный продавцом идентификатор корзины",
"type": "string"
},
"items": {
"description": "Корзина товаров, которую оплачивает покупатель.",
"items": {
"properties": {
"description": {
"description": "Описание товара",
"type": "string"
},
"discountedUnitPrice": {
"description": "Цена за единицу товара с учётом скидок на позицию",
"example": "123.45",
"format": "double",
"type": "string"
},
"features": {
"allOf": [
{
"properties": {
"pointsDisabled": {
"default": false,
"description": "Не распределять баллы Плюса. Используется только при создании заказа. Если это поле не указано, то баллы будут распределены на товар",
"type": "boolean"
},
"tariffModifier": {
"description": "Модификатор тарифа для расчета комиссии. Определяет, какой тариф будет применяться при расчете комиссии за обработку позиции в корзине.",
"enum": [
"VERY_LOW",
"LOW",
"MEDIUM",
"HIGH",
"VERY_HIGH",
null
],
"type": "string"
}
},
"type": "object"
}
],
"description": "Промо параметры товара"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Высота, в метрах",
"format": "float",
"type": "number"
},
"length": {
"description": "Длина, в метрах",
"format": "float",
"type": "number"
},
"weight": {
"description": "Вес, в килограммах",
"format": "float",
"type": "number"
},
"width": {
"description": "Ширина, в метрах",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
],
"description": "Размеры и вес товара. Обязательно для товара типа `PHYSICAL`"
},
"pointsAmount": {
"description": "Количество баллов Плюса\n\nПоле только для чтения. Переданные значения будут проигнорированы.",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
},
"productId": {
"description": "Id товара в системе продавца. В параметрах запроса каждый идентификатор товара `productId` должен быть уникальным",
"type": "string"
},
"quantity": {
"allOf": [
{
"properties": {
"available": {
"description": "Максимально доступное количество товара",
"example": "123.45",
"format": "double",
"type": "string"
},
"count": {
"description": "Количество товара в заказе",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"count"
],
"type": "object"
}
],
"description": "Количество товара в заказе"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
],
"description": "Данные для формирования чека"
},
"skuId": {
"description": "Уникальный id, который описывает единицу ассортимента. Необходим для применения индивидуального тарифа.",
"type": "string"
},
"subtotal": {
"description": "Суммарная цена за позицию без учета скидок",
"example": "123.45",
"format": "double",
"type": "string"
},
"title": {
"description": "Наименование товара",
"type": "string"
},
"total": {
"description": "Суммарная цена за позицию с учётом скидок на позицию",
"example": "123.45",
"format": "double",
"type": "string"
},
"type": {
"default": "UNSPECIFIED",
"description": "Тип товара. Важен для интеграции с доставками",
"enum": [
"PHYSICAL",
"DIGITAL",
"UNSPECIFIED"
],
"type": "string"
},
"unitPrice": {
"description": "Полная цена за единицу товара без учетка скидки",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"productId",
"quantity",
"total"
],
"type": "object"
},
"type": "array"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Высота, в метрах",
"format": "float",
"type": "number"
},
"length": {
"description": "Длина, в метрах",
"format": "float",
"type": "number"
},
"weight": {
"description": "Вес, в килограммах",
"format": "float",
"type": "number"
},
"width": {
"description": "Ширина, в метрах",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
]
},
"total": {
"allOf": [
{
"properties": {
"amount": {
"description": "Стоимость корзины с учетом всех скидок.",
"example": "123.45",
"format": "double",
"type": "string"
},
"pointsAmount": {
"description": "Количество баллов Плюса\n\nПоле только для чтения. Переданные значения будут проигнорированы.",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
}
},
"required": [
"amount"
],
"type": "object"
}
],
"description": "Итоговая информация о стоимости заказа."
}
},
"required": [
"items",
"total"
],
"type": "object"
}
],
"description": "Корзина"
},
"currencyCode": {
"description": "Трехбуквенный код валюты заказа (ISO 4217)",
"enum": [
"RUB",
"UZS"
],
"type": "string"
},
"enableCommentField": {
"type": "boolean"
},
"enableCoupons": {
"type": "boolean"
},
"metadata": {
"description": "Произвольные данные, переданные при инициализации кнопки",
"type": "string"
},
"orderAmount": {
"description": "Полная стоимость заказа к оплате с учётом возвратов, доставки, скидок и промокодов",
"example": "123.45",
"format": "double",
"type": "string"
},
"requiredFields": {
"allOf": [
{
"properties": {
"billingContact": {
"allOf": [
{
"properties": {
"email": {
"type": "boolean"
}
},
"type": "object"
}
]
},
"shippingContact": {
"allOf": [
{
"properties": {
"email": {
"type": "boolean"
},
"name": {
"type": "boolean"
},
"phone": {
"type": "boolean"
}
},
"type": "object"
}
]
}
},
"type": "object"
}
],
"description": "Данные пользователя, необходимые для оформления заказа"
},
"shipping": {
"allOf": [
{
"properties": {
"availableCourierOptions": {
"description": "Доступные варианты доставки (при наличии адреса в запросе)",
"items": {
"properties": {
"allowedPaymentMethods": {
"description": "Индивидуальные методы оплаты для метода доставки. Этот параметр нужно использовать, если нужно ограничить методы оплаты, указанные в `availablePaymentMethods`. Если параметр не указан, то используются все методы оплаты, перечисленные в `availablePaymentMethods`.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Стоимость доставки",
"example": "123.45",
"format": "double",
"type": "string"
},
"category": {
"enum": [
"EXPRESS",
"TODAY",
"STANDARD"
],
"type": "string"
},
"courierOptionId": {
"description": "id выбранного варианта доставки в системе продавца",
"type": "string"
},
"fromDate": {
"description": "Ближайшая дата доставки для `type: PLAIN`. Начало интервала выбора даты доставки для `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"fromTime": {
"description": "Начало интервала времени доставки. Только для `type: PLAIN`",
"type": "string"
},
"provider": {
"description": "Тип службы доставки.",
"enum": [
"BOXBERRY",
"CDEK",
"RUSSIAN_POST",
"EMS",
"COURIER",
"DHL",
"EXPRESS_DELIVERY",
"FIVEPOST",
"OZON_ROCKET",
"DPD",
"SBER_LOGISTICS",
"PEK",
"PICKPOINT",
"KCE",
"PONY_EXPRESS",
"YANDEX_DELIVERY",
null
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"timeIntervals": {
"allOf": [
{
"properties": {
"grid": {
"allOf": [
{
"properties": {
"duration": {
"description": "Продолжительность каждого интервала",
"type": "string"
},
"end": {
"description": "Максимальное время начала самого последнего интервала",
"type": "string"
},
"start": {
"description": "Время начала самого первого интервала",
"type": "string"
},
"step": {
"description": "Разница во времени между началами двух соседних интервалов",
"type": "string"
}
},
"required": [
"duration",
"end",
"start",
"step"
],
"type": "object"
}
],
"description": "Кодирует интервалы в виде сетки. Используйте этот формат, если необходимо задать больше 20 интервалов доставки.\nПример: `{\"start\": \"09:00\", \"end\": \"21:00\", \"duration\": \"00:20\", \"step\": \"01:00\"}` трактуется как набор интервалов: `[{\"start\": \"09:00\", \"end\": \"09:20\"}, {\"start\": \"10:00\", \"end\": \"10:20\"}, ..., {\"start\": \"20:00\", \"end\": \"20:20\"}]`"
},
"type": {
"description": "Если указан тип `GRID`, то необходимо задать поле `grid`. Если указан тип `VALUES`, то необходимо задать поле `values`",
"enum": [
"GRID",
"VALUES"
],
"type": "string"
},
"values": {
"description": "Задаёт список интервалов напрямую. Подходит для небольшого количества интервалов доставки. Рекомендуемое максимальная количество интервалов - 20",
"items": {
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"type"
],
"type": "object"
}
],
"description": "Кодирует интервалы времени доставки, доступные для выбора. Только для `type: FLEXIBLE`"
},
"title": {
"description": "Название способа доставки. Показывается пользователю в списке вариантов",
"type": "string"
},
"toDate": {
"description": "Самая поздняя дата доставки для `type: PLAIN`. Конец интервала выбора даты доставки для `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"toTime": {
"description": "Конец интервала времени доставки. Только для `type: PLAIN`",
"type": "string"
},
"type": {
"default": "PLAIN",
"description": "Тип опции.\nДля `FLEXIBLE` вариантов доставки пользователю дается возможность выбрать желаемые дату и интервал:\n- дата доставки выбирается покупателем в отрезке `[fromDate, toDate]`\n- чтобы предоставить пользователю выбор интервала в течении дня, заполните `timeIntervals`\nДля `PLAIN` вариантов такой выбор отсутствует.",
"enum": [
"PLAIN",
"FLEXIBLE"
],
"type": "string"
}
},
"required": [
"amount",
"category",
"courierOptionId",
"title"
],
"type": "object"
},
"type": "array"
},
"availableMethods": {
"items": {
"enum": [
"DIRECT",
"PICKUP",
"COURIER",
"YANDEX_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"courierOptionsError": {
"description": "Ошибка при определении доставки. При указании этого параметра, в интерфейсе пользователя будет отображаться описание ошибки.",
"enum": [
"WRONG_ADDRESS",
"DELIVERY_NOT_AVAILABLE_FOR_ADDRESS",
null
],
"type": "string"
},
"yandexDelivery": {
"allOf": [
{
"properties": {
"warehouse": {
"allOf": [
{
"properties": {
"address": {
"properties": {
"addressLine": {
"description": "Полный адрес",
"type": "string"
},
"building": {
"type": "string"
},
"comment": {
"type": "string"
},
"country": {
"type": "string"
},
"district": {
"type": "string"
},
"entrance": {
"type": "string"
},
"floor": {
"type": "string"
},
"intercom": {
"type": "string"
},
"locale": {
"type": "string"
},
"locality": {
"type": "string"
},
"location": {
"allOf": [
{
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
}
]
},
"region": {
"type": "string"
},
"room": {
"type": "string"
},
"street": {
"type": "string"
},
"zip": {
"type": "string"
}
},
"required": [
"building",
"country"
],
"type": "object"
},
"contact": {
"properties": {
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneAdditionalCode": {
"type": "string"
},
"secondName": {
"type": "string"
}
},
"type": "object"
},
"emergencyContact": {
"properties": {
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneAdditionalCode": {
"type": "string"
},
"secondName": {
"type": "string"
}
},
"type": "object"
},
"schedule": {
"allOf": [
{
"properties": {
"custom": {
"additionalProperties": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"nullable": true
},
"description": "Переопределённое расписание для конкретных дат. Ключи - даты в формате \"YYYY-MM-DD\", значения - объекты {\"start\": string, \"end\": string} или null для указания выходных",
"nullable": true,
"type": "object"
},
"tzoffset": {
"description": "Смещение часового пояса относительно UTC в минутах. Например, 180 для Москвы (UTC+3)",
"format": "int32",
"maximum": 840,
"minimum": -720,
"type": "integer"
},
"weekly": {
"allOf": [
{
"properties": {
"fri": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Пятница"
},
"mon": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Понедельник"
},
"sat": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Суббота"
},
"sun": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Воскресенье"
},
"thu": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Четверг"
},
"tue": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Вторник"
},
"wed": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Среда"
}
},
"type": "object"
}
],
"description": "Еженедельное расписание работы"
}
},
"required": [
"tzoffset",
"weekly"
],
"type": "object"
}
],
"description": "Расписание работы"
}
},
"required": [
"address",
"contact",
"emergencyContact"
],
"type": "object"
}
]
}
},
"type": "object"
}
]
}
},
"required": [
"availableMethods"
],
"type": "object"
}
]
}
},
"required": [
"cart",
"currencyCode"
],
"type": "object"
},
"status": {
"type": "string"
}
},
"required": [
"data",
"status"
],
"type": "object"
},
"MerchantRenderOrderResponseData": {
"properties": {
"availablePaymentMethods": {
"description": "Доступные методы оплаты на платежной форме Яндекс Пэй.\n\nНужно указать все возможные методы, которые может выбрать пользователь - при оплате онлайн и доставке. Если вы интегрируете оплату только одним методом, например, Сплит — указывается один метод `[\"SPLIT\"]`.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
},
"type": "array"
},
"cart": {
"allOf": [
{
"properties": {
"coupons": {
"description": "Купоны, применённые к корзине",
"items": {
"properties": {
"description": {
"description": "Описание. Например, \"Скидка 3%\"",
"type": "string"
},
"status": {
"enum": [
"VALID",
"INVALID",
"EXPIRED",
null
],
"type": "string"
},
"value": {
"description": "Код купона",
"type": "string"
}
},
"required": [
"value"
],
"type": "object"
},
"type": "array"
},
"discounts": {
"description": "Скидки, применённые к корзине",
"items": {
"properties": {
"amount": {
"description": "Сумма скидки",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Текстовое описание",
"type": "string"
},
"discountId": {
"description": "Идентификатор скидки в системе мерчанта",
"type": "string"
}
},
"required": [
"amount",
"description",
"discountId"
],
"type": "object"
},
"type": "array"
},
"externalId": {
"description": "Переданный продавцом идентификатор корзины",
"type": "string"
},
"items": {
"description": "Корзина товаров, которую оплачивает покупатель.",
"items": {
"properties": {
"description": {
"description": "Описание товара",
"type": "string"
},
"discountedUnitPrice": {
"description": "Цена за единицу товара с учётом скидок на позицию",
"example": "123.45",
"format": "double",
"type": "string"
},
"features": {
"allOf": [
{
"properties": {
"pointsDisabled": {
"default": false,
"description": "Не распределять баллы Плюса. Используется только при создании заказа. Если это поле не указано, то баллы будут распределены на товар",
"type": "boolean"
},
"tariffModifier": {
"description": "Модификатор тарифа для расчета комиссии. Определяет, какой тариф будет применяться при расчете комиссии за обработку позиции в корзине.",
"enum": [
"VERY_LOW",
"LOW",
"MEDIUM",
"HIGH",
"VERY_HIGH",
null
],
"type": "string"
}
},
"type": "object"
}
],
"description": "Промо параметры товара"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Высота, в метрах",
"format": "float",
"type": "number"
},
"length": {
"description": "Длина, в метрах",
"format": "float",
"type": "number"
},
"weight": {
"description": "Вес, в килограммах",
"format": "float",
"type": "number"
},
"width": {
"description": "Ширина, в метрах",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
],
"description": "Размеры и вес товара. Обязательно для товара типа `PHYSICAL`"
},
"pointsAmount": {
"description": "Количество баллов Плюса\n\nПоле только для чтения. Переданные значения будут проигнорированы.",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
},
"productId": {
"description": "Id товара в системе продавца. В параметрах запроса каждый идентификатор товара `productId` должен быть уникальным",
"type": "string"
},
"quantity": {
"allOf": [
{
"properties": {
"available": {
"description": "Максимально доступное количество товара",
"example": "123.45",
"format": "double",
"type": "string"
},
"count": {
"description": "Количество товара в заказе",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"count"
],
"type": "object"
}
],
"description": "Количество товара в заказе"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
],
"description": "Данные для формирования чека"
},
"skuId": {
"description": "Уникальный id, который описывает единицу ассортимента. Необходим для применения индивидуального тарифа.",
"type": "string"
},
"subtotal": {
"description": "Суммарная цена за позицию без учета скидок",
"example": "123.45",
"format": "double",
"type": "string"
},
"title": {
"description": "Наименование товара",
"type": "string"
},
"total": {
"description": "Суммарная цена за позицию с учётом скидок на позицию",
"example": "123.45",
"format": "double",
"type": "string"
},
"type": {
"default": "UNSPECIFIED",
"description": "Тип товара. Важен для интеграции с доставками",
"enum": [
"PHYSICAL",
"DIGITAL",
"UNSPECIFIED"
],
"type": "string"
},
"unitPrice": {
"description": "Полная цена за единицу товара без учетка скидки",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"productId",
"quantity",
"total"
],
"type": "object"
},
"type": "array"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Высота, в метрах",
"format": "float",
"type": "number"
},
"length": {
"description": "Длина, в метрах",
"format": "float",
"type": "number"
},
"weight": {
"description": "Вес, в килограммах",
"format": "float",
"type": "number"
},
"width": {
"description": "Ширина, в метрах",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
]
},
"total": {
"allOf": [
{
"properties": {
"amount": {
"description": "Стоимость корзины с учетом всех скидок.",
"example": "123.45",
"format": "double",
"type": "string"
},
"pointsAmount": {
"description": "Количество баллов Плюса\n\nПоле только для чтения. Переданные значения будут проигнорированы.",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
}
},
"required": [
"amount"
],
"type": "object"
}
],
"description": "Итоговая информация о стоимости заказа."
}
},
"required": [
"items",
"total"
],
"type": "object"
}
],
"description": "Корзина"
},
"currencyCode": {
"description": "Трехбуквенный код валюты заказа (ISO 4217)",
"enum": [
"RUB",
"UZS"
],
"type": "string"
},
"enableCommentField": {
"type": "boolean"
},
"enableCoupons": {
"type": "boolean"
},
"metadata": {
"description": "Произвольные данные, переданные при инициализации кнопки",
"type": "string"
},
"orderAmount": {
"description": "Полная стоимость заказа к оплате с учётом возвратов, доставки, скидок и промокодов",
"example": "123.45",
"format": "double",
"type": "string"
},
"requiredFields": {
"allOf": [
{
"properties": {
"billingContact": {
"allOf": [
{
"properties": {
"email": {
"type": "boolean"
}
},
"type": "object"
}
]
},
"shippingContact": {
"allOf": [
{
"properties": {
"email": {
"type": "boolean"
},
"name": {
"type": "boolean"
},
"phone": {
"type": "boolean"
}
},
"type": "object"
}
]
}
},
"type": "object"
}
],
"description": "Данные пользователя, необходимые для оформления заказа"
},
"shipping": {
"allOf": [
{
"properties": {
"availableCourierOptions": {
"description": "Доступные варианты доставки (при наличии адреса в запросе)",
"items": {
"properties": {
"allowedPaymentMethods": {
"description": "Индивидуальные методы оплаты для метода доставки. Этот параметр нужно использовать, если нужно ограничить методы оплаты, указанные в `availablePaymentMethods`. Если параметр не указан, то используются все методы оплаты, перечисленные в `availablePaymentMethods`.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Стоимость доставки",
"example": "123.45",
"format": "double",
"type": "string"
},
"category": {
"enum": [
"EXPRESS",
"TODAY",
"STANDARD"
],
"type": "string"
},
"courierOptionId": {
"description": "id выбранного варианта доставки в системе продавца",
"type": "string"
},
"fromDate": {
"description": "Ближайшая дата доставки для `type: PLAIN`. Начало интервала выбора даты доставки для `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"fromTime": {
"description": "Начало интервала времени доставки. Только для `type: PLAIN`",
"type": "string"
},
"provider": {
"description": "Тип службы доставки.",
"enum": [
"BOXBERRY",
"CDEK",
"RUSSIAN_POST",
"EMS",
"COURIER",
"DHL",
"EXPRESS_DELIVERY",
"FIVEPOST",
"OZON_ROCKET",
"DPD",
"SBER_LOGISTICS",
"PEK",
"PICKPOINT",
"KCE",
"PONY_EXPRESS",
"YANDEX_DELIVERY",
null
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"timeIntervals": {
"allOf": [
{
"properties": {
"grid": {
"allOf": [
{
"properties": {
"duration": {
"description": "Продолжительность каждого интервала",
"type": "string"
},
"end": {
"description": "Максимальное время начала самого последнего интервала",
"type": "string"
},
"start": {
"description": "Время начала самого первого интервала",
"type": "string"
},
"step": {
"description": "Разница во времени между началами двух соседних интервалов",
"type": "string"
}
},
"required": [
"duration",
"end",
"start",
"step"
],
"type": "object"
}
],
"description": "Кодирует интервалы в виде сетки. Используйте этот формат, если необходимо задать больше 20 интервалов доставки.\nПример: `{\"start\": \"09:00\", \"end\": \"21:00\", \"duration\": \"00:20\", \"step\": \"01:00\"}` трактуется как набор интервалов: `[{\"start\": \"09:00\", \"end\": \"09:20\"}, {\"start\": \"10:00\", \"end\": \"10:20\"}, ..., {\"start\": \"20:00\", \"end\": \"20:20\"}]`"
},
"type": {
"description": "Если указан тип `GRID`, то необходимо задать поле `grid`. Если указан тип `VALUES`, то необходимо задать поле `values`",
"enum": [
"GRID",
"VALUES"
],
"type": "string"
},
"values": {
"description": "Задаёт список интервалов напрямую. Подходит для небольшого количества интервалов доставки. Рекомендуемое максимальная количество интервалов - 20",
"items": {
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"type"
],
"type": "object"
}
],
"description": "Кодирует интервалы времени доставки, доступные для выбора. Только для `type: FLEXIBLE`"
},
"title": {
"description": "Название способа доставки. Показывается пользователю в списке вариантов",
"type": "string"
},
"toDate": {
"description": "Самая поздняя дата доставки для `type: PLAIN`. Конец интервала выбора даты доставки для `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"toTime": {
"description": "Конец интервала времени доставки. Только для `type: PLAIN`",
"type": "string"
},
"type": {
"default": "PLAIN",
"description": "Тип опции.\nДля `FLEXIBLE` вариантов доставки пользователю дается возможность выбрать желаемые дату и интервал:\n- дата доставки выбирается покупателем в отрезке `[fromDate, toDate]`\n- чтобы предоставить пользователю выбор интервала в течении дня, заполните `timeIntervals`\nДля `PLAIN` вариантов такой выбор отсутствует.",
"enum": [
"PLAIN",
"FLEXIBLE"
],
"type": "string"
}
},
"required": [
"amount",
"category",
"courierOptionId",
"title"
],
"type": "object"
},
"type": "array"
},
"availableMethods": {
"items": {
"enum": [
"DIRECT",
"PICKUP",
"COURIER",
"YANDEX_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"courierOptionsError": {
"description": "Ошибка при определении доставки. При указании этого параметра, в интерфейсе пользователя будет отображаться описание ошибки.",
"enum": [
"WRONG_ADDRESS",
"DELIVERY_NOT_AVAILABLE_FOR_ADDRESS",
null
],
"type": "string"
},
"yandexDelivery": {
"allOf": [
{
"properties": {
"warehouse": {
"allOf": [
{
"properties": {
"address": {
"properties": {
"addressLine": {
"description": "Полный адрес",
"type": "string"
},
"building": {
"type": "string"
},
"comment": {
"type": "string"
},
"country": {
"type": "string"
},
"district": {
"type": "string"
},
"entrance": {
"type": "string"
},
"floor": {
"type": "string"
},
"intercom": {
"type": "string"
},
"locale": {
"type": "string"
},
"locality": {
"type": "string"
},
"location": {
"allOf": [
{
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
}
]
},
"region": {
"type": "string"
},
"room": {
"type": "string"
},
"street": {
"type": "string"
},
"zip": {
"type": "string"
}
},
"required": [
"building",
"country"
],
"type": "object"
},
"contact": {
"properties": {
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneAdditionalCode": {
"type": "string"
},
"secondName": {
"type": "string"
}
},
"type": "object"
},
"emergencyContact": {
"properties": {
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneAdditionalCode": {
"type": "string"
},
"secondName": {
"type": "string"
}
},
"type": "object"
},
"schedule": {
"allOf": [
{
"properties": {
"custom": {
"additionalProperties": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"nullable": true
},
"description": "Переопределённое расписание для конкретных дат. Ключи - даты в формате \"YYYY-MM-DD\", значения - объекты {\"start\": string, \"end\": string} или null для указания выходных",
"nullable": true,
"type": "object"
},
"tzoffset": {
"description": "Смещение часового пояса относительно UTC в минутах. Например, 180 для Москвы (UTC+3)",
"format": "int32",
"maximum": 840,
"minimum": -720,
"type": "integer"
},
"weekly": {
"allOf": [
{
"properties": {
"fri": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Пятница"
},
"mon": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Понедельник"
},
"sat": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Суббота"
},
"sun": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Воскресенье"
},
"thu": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Четверг"
},
"tue": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Вторник"
},
"wed": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Среда"
}
},
"type": "object"
}
],
"description": "Еженедельное расписание работы"
}
},
"required": [
"tzoffset",
"weekly"
],
"type": "object"
}
],
"description": "Расписание работы"
}
},
"required": [
"address",
"contact",
"emergencyContact"
],
"type": "object"
}
]
}
},
"type": "object"
}
]
}
},
"required": [
"availableMethods"
],
"type": "object"
}
]
}
},
"required": [
"cart",
"currencyCode"
],
"type": "object"
},
"MerchantSuccessResponse": {
"properties": {
"status": {
"default": "success",
"type": "string"
}
},
"type": "object"
},
"MerchantWebhookV1Request": {
"properties": {
"event": {
"description": "Тип события:\n- `ORDER_STATUS_UPDATED` — обновление статуса заказа;\n- `OPERATION_STATUS_UPDATED` — обновление статуса операций списания, возврата или отмены платежа.",
"enum": [
"TRANSACTION_STATUS_UPDATE",
"ORDER_STATUS_UPDATED",
"OPERATION_STATUS_UPDATED",
"SUBSCRIPTION_STATUS_UPDATED"
],
"type": "string"
},
"eventTime": {
"description": "Время события в формате `RFC 3339`: `YYYY-MM-DDThh:mm:ssTZD`.",
"example": "2025-05-26T21:00:36.08847+00:00",
"format": "date-time",
"type": "string"
},
"merchantId": {
"description": "ID (идентификатор) продавца.",
"format": "uuid",
"type": "string"
},
"operation": {
"allOf": [
{
"properties": {
"externalOperationId": {
"description": "Идентификатор операции в системе продавца. Должен быть уникальным.\n\nПередайте этот параметр, чтобы отслеживать конкретную операцию через метод [v1/operations/external_operation_id](../yandex-pay-api/operation/merchant_v1_operations-get)",
"type": "string"
},
"operationId": {
"description": "Идентификатор операции.",
"example": "5d32f295-8723-457d-81f9-ab13f17b7bd6",
"format": "uuid",
"type": "string"
},
"operationType": {
"description": "Тип операции. Подробнее о типах операций читайте в разделе [Статусы операций](../../../payments/statuses).",
"enum": [
"AUTHORIZE",
"BIND_CARD",
"REFUND",
"CAPTURE",
"VOID",
"RECURRING",
"PREPAYMENT",
"SUBMIT"
],
"type": "string"
},
"orderId": {
"description": "ID заказа, переданный в [/v1/orders](../yandex-pay-api/order/merchant_v1_orders-post.md) при создании заказа.",
"type": "string"
},
"status": {
"description": "Статус операции. Подробнее о статусах операций читайте в разделе [Статусы операций](../../../payments/statuses).",
"enum": [
"PENDING",
"SUCCESS",
"FAIL"
],
"type": "string"
}
},
"required": [
"operationId",
"operationType",
"orderId",
"status"
],
"type": "object"
}
],
"description": "Информация по операции. Приходит с событием `OPERATION_STATUS_UPDATED`"
},
"order": {
"allOf": [
{
"properties": {
"cartUpdated": {
"description": "Была ли обновлена корзина. Возвращается при оплате баллами.Если флаг имеет значение `true`, получите актуальную корзину.",
"type": "boolean"
},
"orderId": {
"description": "ID заказа, переданный в [/v1/orders](../yandex-pay-api/order/merchant_v1_orders-post.md) при создании заказа.",
"type": "string"
},
"paymentStatus": {
"description": "Статус платежа в заказе. Подробнее читайте в разделе [Статусы платежей](../../../payments/statuses.md#payments-statuses).",
"enum": [
"PENDING",
"AUTHORIZED",
"CAPTURED",
"VOIDED",
"REFUNDED",
"CONFIRMED",
"PARTIALLY_REFUNDED",
"FAILED"
],
"type": "string",
"x-enumDescriptions": {
"AUTHORIZED": "Платеж за заказ авторизован. Средства заблокированы на счету плательщика",
"CAPTURED": "Заказ успешно оплачен. Средства списаны со счета плательщика",
"CONFIRMED": "Заказ успешно оформлен",
"FAILED": "Заказ не был успешно оплачен",
"PARTIALLY_REFUNDED": "Совершён частичный возврат средств за заказ",
"PENDING": "Ожидается оплата",
"REFUNDED": "Совершён возврат средств за заказ",
"VOIDED": "Оплата отменена (voided). Списание средств не производилось"
}
}
},
"required": [
"orderId",
"paymentStatus"
],
"type": "object"
}
],
"description": "Информация по заказу. Приходит с событием `ORDER_STATUS_UPDATED`"
},
"subscription": {
"allOf": [
{
"properties": {
"customerSubscriptionId": {
"description": "ID подписки. Возвращается из SDK при успешном создании подписки. Также можно сохранить подписку при получении первой нотификации по ней. Дальнейшие обновления по этой подписке будут приходить с таким же значением этого поля.",
"format": "uuid",
"type": "string"
},
"nextWriteOff": {
"description": "Дата следующей попытки списания денег по подписке.",
"format": "date-time",
"type": "string"
},
"status": {
"description": "Статус подписки.",
"enum": [
"NEW",
"ACTIVE",
"CANCELLED",
"EXPIRED"
],
"type": "string"
},
"subscriptionPlanId": {
"description": "ID плана подписки, созданного в личном кабинете или через API.",
"format": "uuid",
"type": "string"
}
},
"required": [
"customerSubscriptionId",
"status",
"subscriptionPlanId"
],
"type": "object"
}
],
"description": "Состояние подписки."
}
},
"required": [
"event",
"eventTime",
"merchantId"
],
"type": "object"
},
"OperationWebhookData": {
"properties": {
"externalOperationId": {
"description": "Идентификатор операции в системе продавца. Должен быть уникальным.\n\nПередайте этот параметр, чтобы отслеживать конкретную операцию через метод [v1/operations/external_operation_id](../yandex-pay-api/operation/merchant_v1_operations-get)",
"type": "string"
},
"operationId": {
"description": "Идентификатор операции.",
"example": "5d32f295-8723-457d-81f9-ab13f17b7bd6",
"format": "uuid",
"type": "string"
},
"operationType": {
"description": "Тип операции. Подробнее о типах операций читайте в разделе [Статусы операций](../../../payments/statuses).",
"enum": [
"AUTHORIZE",
"BIND_CARD",
"REFUND",
"CAPTURE",
"VOID",
"RECURRING",
"PREPAYMENT",
"SUBMIT"
],
"type": "string"
},
"orderId": {
"description": "ID заказа, переданный в [/v1/orders](../yandex-pay-api/order/merchant_v1_orders-post.md) при создании заказа.",
"type": "string"
},
"status": {
"description": "Статус операции. Подробнее о статусах операций читайте в разделе [Статусы операций](../../../payments/statuses).",
"enum": [
"PENDING",
"SUCCESS",
"FAIL"
],
"type": "string"
}
},
"required": [
"operationId",
"operationType",
"orderId",
"status"
],
"type": "object"
},
"OrderWebhookData": {
"properties": {
"cartUpdated": {
"description": "Была ли обновлена корзина. Возвращается при оплате баллами.Если флаг имеет значение `true`, получите актуальную корзину.",
"type": "boolean"
},
"orderId": {
"description": "ID заказа, переданный в [/v1/orders](../yandex-pay-api/order/merchant_v1_orders-post.md) при создании заказа.",
"type": "string"
},
"paymentStatus": {
"description": "Статус платежа в заказе. Подробнее читайте в разделе [Статусы платежей](../../../payments/statuses.md#payments-statuses).",
"enum": [
"PENDING",
"AUTHORIZED",
"CAPTURED",
"VOIDED",
"REFUNDED",
"CONFIRMED",
"PARTIALLY_REFUNDED",
"FAILED"
],
"type": "string",
"x-enumDescriptions": {
"AUTHORIZED": "Платеж за заказ авторизован. Средства заблокированы на счету плательщика",
"CAPTURED": "Заказ успешно оплачен. Средства списаны со счета плательщика",
"CONFIRMED": "Заказ успешно оформлен",
"FAILED": "Заказ не был успешно оплачен",
"PARTIALLY_REFUNDED": "Совершён частичный возврат средств за заказ",
"PENDING": "Ожидается оплата",
"REFUNDED": "Совершён возврат средств за заказ",
"VOIDED": "Оплата отменена (voided). Списание средств не производилось"
}
}
},
"required": [
"orderId",
"paymentStatus"
],
"type": "object"
},
"PaymentMethod": {
"properties": {
"cardLast4": {
"type": "string"
},
"cardNetwork": {
"description": "Платежная система",
"enum": [
"AMEX",
"DISCOVER",
"JCB",
"MASTERCARD",
"MAESTRO",
"VISAELECTRON",
"VISA",
"MIR",
"UNIONPAY",
"UZCARD",
"HUMOCARD",
"UNKNOWN",
"UNDEFINED",
null
],
"type": "string"
},
"methodType": {
"enum": [
"CARD",
"SPLIT",
"SBP",
"SPLIT_SBP",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
}
},
"required": [
"methodType"
],
"type": "object"
},
"PaymentsOperator": {
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"PickupOption": {
"properties": {
"address": {
"description": "Адрес в виде строки",
"type": "string"
},
"allowedPaymentMethods": {
"description": "Индивидуальные методы оплаты для выбранного способа самовывоза. Доступные методы оплаты заказа при выбранном способе самовывоза. Этот параметр нужно использовать, если нужно ограничить методы оплаты, указанные в `availablePaymentMethods`. Если параметр не указан, то используются все методы оплаты, перечисленные в `availablePaymentMethods`.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Стоимость доставки в точку",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Дополнительное описание",
"type": "string"
},
"fromDate": {
"description": "YYYY-MM-DD. Ближайшая возможная дата доставки",
"format": "date",
"type": "string"
},
"location": {
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
},
"phones": {
"description": "Телефоны для связи",
"items": {
"type": "string"
},
"type": "array"
},
"pickupPointId": {
"description": "Уникальный id точки самовывоза в системе продавца",
"type": "string"
},
"provider": {
"description": "Тип точки вывоза.",
"enum": [
"YANDEX_MARKET",
"BOXBERRY",
"CDEK",
"IN_STORE",
"RUSSIAN_POST",
"PICKPOINT",
"DPD"
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"schedule": {
"description": "График работы точки",
"items": {
"properties": {
"fromTime": {
"description": "HH:mm, \"08:00\"",
"type": "string"
},
"label": {
"description": "Например, \"пн-пт\"",
"type": "string"
},
"toTime": {
"description": "HH:mm, \"20:00\"",
"type": "string"
}
},
"required": [
"fromTime",
"label",
"toTime"
],
"type": "object"
},
"type": "array"
},
"storagePeriod": {
"description": "Опционально. Срок хранения товара в точке самовывоза в днях",
"format": "int32",
"type": "integer"
},
"title": {
"description": "Название точки самовывоза",
"type": "string"
},
"toDate": {
"description": "YYYY-MM-DD. Самая поздняя дата доставки",
"format": "date",
"type": "string"
}
},
"required": [
"address",
"location",
"pickupPointId",
"title"
],
"type": "object"
},
"PickupOptionDetails": {
"properties": {
"address": {
"description": "Адрес в виде строки",
"type": "string"
},
"allowedPaymentMethods": {
"description": "Индивидуальные методы оплаты для выбранного способа самовывоза. Доступные методы оплаты заказа при выбранном способе самовывоза. Этот параметр нужно использовать, если нужно ограничить методы оплаты, указанные в `availablePaymentMethods`. Если параметр не указан, то используются все методы оплаты, перечисленные в `availablePaymentMethods`.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Стоимость доставки в точку",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Дополнительное описание",
"type": "string"
},
"fromDate": {
"description": "YYYY-MM-DD. Ближайшая возможная дата доставки",
"format": "date",
"type": "string"
},
"location": {
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
},
"phones": {
"description": "Телефоны для связи",
"items": {
"type": "string"
},
"type": "array"
},
"pickupPointId": {
"description": "Уникальный id точки самовывоза в системе продавца",
"type": "string"
},
"provider": {
"description": "Тип точки вывоза.",
"enum": [
"YANDEX_MARKET",
"BOXBERRY",
"CDEK",
"IN_STORE",
"RUSSIAN_POST",
"PICKPOINT",
"DPD"
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"schedule": {
"description": "График работы точки",
"items": {
"properties": {
"fromTime": {
"description": "HH:mm, \"08:00\"",
"type": "string"
},
"label": {
"description": "Например, \"пн-пт\"",
"type": "string"
},
"toTime": {
"description": "HH:mm, \"20:00\"",
"type": "string"
}
},
"required": [
"fromTime",
"label",
"toTime"
],
"type": "object"
},
"type": "array"
},
"storagePeriod": {
"description": "Опционально. Срок хранения товара в точке самовывоза в днях",
"format": "int32",
"type": "integer"
},
"title": {
"description": "Название точки самовывоза",
"type": "string"
},
"toDate": {
"description": "YYYY-MM-DD. Самая поздняя дата доставки",
"format": "date",
"type": "string"
}
},
"required": [
"address",
"amount",
"location",
"pickupPointId",
"title"
],
"type": "object"
},
"PickupSchedule": {
"properties": {
"fromTime": {
"description": "HH:mm, \"08:00\"",
"type": "string"
},
"label": {
"description": "Например, \"пн-пт\"",
"type": "string"
},
"toTime": {
"description": "HH:mm, \"20:00\"",
"type": "string"
}
},
"required": [
"fromTime",
"label",
"toTime"
],
"type": "object"
},
"RenderedCart": {
"properties": {
"coupons": {
"description": "Купоны, применённые к корзине",
"items": {
"properties": {
"description": {
"description": "Описание. Например, \"Скидка 3%\"",
"type": "string"
},
"status": {
"enum": [
"VALID",
"INVALID",
"EXPIRED",
null
],
"type": "string"
},
"value": {
"description": "Код купона",
"type": "string"
}
},
"required": [
"value"
],
"type": "object"
},
"type": "array"
},
"discounts": {
"description": "Скидки, применённые к корзине",
"items": {
"properties": {
"amount": {
"description": "Сумма скидки",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Текстовое описание",
"type": "string"
},
"discountId": {
"description": "Идентификатор скидки в системе мерчанта",
"type": "string"
}
},
"required": [
"amount",
"description",
"discountId"
],
"type": "object"
},
"type": "array"
},
"externalId": {
"description": "Переданный продавцом идентификатор корзины",
"type": "string"
},
"items": {
"description": "Корзина товаров, которую оплачивает покупатель.",
"items": {
"properties": {
"description": {
"description": "Описание товара",
"type": "string"
},
"discountedUnitPrice": {
"description": "Цена за единицу товара с учётом скидок на позицию",
"example": "123.45",
"format": "double",
"type": "string"
},
"features": {
"allOf": [
{
"properties": {
"pointsDisabled": {
"default": false,
"description": "Не распределять баллы Плюса. Используется только при создании заказа. Если это поле не указано, то баллы будут распределены на товар",
"type": "boolean"
},
"tariffModifier": {
"description": "Модификатор тарифа для расчета комиссии. Определяет, какой тариф будет применяться при расчете комиссии за обработку позиции в корзине.",
"enum": [
"VERY_LOW",
"LOW",
"MEDIUM",
"HIGH",
"VERY_HIGH",
null
],
"type": "string"
}
},
"type": "object"
}
],
"description": "Промо параметры товара"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Высота, в метрах",
"format": "float",
"type": "number"
},
"length": {
"description": "Длина, в метрах",
"format": "float",
"type": "number"
},
"weight": {
"description": "Вес, в килограммах",
"format": "float",
"type": "number"
},
"width": {
"description": "Ширина, в метрах",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
],
"description": "Размеры и вес товара. Обязательно для товара типа `PHYSICAL`"
},
"pointsAmount": {
"description": "Количество баллов Плюса\n\nПоле только для чтения. Переданные значения будут проигнорированы.",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
},
"productId": {
"description": "Id товара в системе продавца. В параметрах запроса каждый идентификатор товара `productId` должен быть уникальным",
"type": "string"
},
"quantity": {
"allOf": [
{
"properties": {
"available": {
"description": "Максимально доступное количество товара",
"example": "123.45",
"format": "double",
"type": "string"
},
"count": {
"description": "Количество товара в заказе",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"count"
],
"type": "object"
}
],
"description": "Количество товара в заказе"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
],
"description": "Данные для формирования чека"
},
"skuId": {
"description": "Уникальный id, который описывает единицу ассортимента. Необходим для применения индивидуального тарифа.",
"type": "string"
},
"subtotal": {
"description": "Суммарная цена за позицию без учета скидок",
"example": "123.45",
"format": "double",
"type": "string"
},
"title": {
"description": "Наименование товара",
"type": "string"
},
"total": {
"description": "Суммарная цена за позицию с учётом скидок на позицию",
"example": "123.45",
"format": "double",
"type": "string"
},
"type": {
"default": "UNSPECIFIED",
"description": "Тип товара. Важен для интеграции с доставками",
"enum": [
"PHYSICAL",
"DIGITAL",
"UNSPECIFIED"
],
"type": "string"
},
"unitPrice": {
"description": "Полная цена за единицу товара без учетка скидки",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"productId",
"quantity",
"total"
],
"type": "object"
},
"type": "array"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Высота, в метрах",
"format": "float",
"type": "number"
},
"length": {
"description": "Длина, в метрах",
"format": "float",
"type": "number"
},
"weight": {
"description": "Вес, в килограммах",
"format": "float",
"type": "number"
},
"width": {
"description": "Ширина, в метрах",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
]
},
"total": {
"allOf": [
{
"properties": {
"amount": {
"description": "Стоимость корзины с учетом всех скидок.",
"example": "123.45",
"format": "double",
"type": "string"
},
"pointsAmount": {
"description": "Количество баллов Плюса\n\nПоле только для чтения. Переданные значения будут проигнорированы.",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
}
},
"required": [
"amount"
],
"type": "object"
}
],
"description": "Итоговая информация о стоимости заказа."
}
},
"required": [
"items",
"total"
],
"type": "object"
},
"RenderedCartItem": {
"properties": {
"description": {
"description": "Описание товара",
"type": "string"
},
"discountedUnitPrice": {
"description": "Цена за единицу товара с учётом скидок на позицию",
"example": "123.45",
"format": "double",
"type": "string"
},
"features": {
"allOf": [
{
"properties": {
"pointsDisabled": {
"default": false,
"description": "Не распределять баллы Плюса. Используется только при создании заказа. Если это поле не указано, то баллы будут распределены на товар",
"type": "boolean"
},
"tariffModifier": {
"description": "Модификатор тарифа для расчета комиссии. Определяет, какой тариф будет применяться при расчете комиссии за обработку позиции в корзине.",
"enum": [
"VERY_LOW",
"LOW",
"MEDIUM",
"HIGH",
"VERY_HIGH",
null
],
"type": "string"
}
},
"type": "object"
}
],
"description": "Промо параметры товара"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Высота, в метрах",
"format": "float",
"type": "number"
},
"length": {
"description": "Длина, в метрах",
"format": "float",
"type": "number"
},
"weight": {
"description": "Вес, в килограммах",
"format": "float",
"type": "number"
},
"width": {
"description": "Ширина, в метрах",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
],
"description": "Размеры и вес товара. Обязательно для товара типа `PHYSICAL`"
},
"pointsAmount": {
"description": "Количество баллов Плюса\n\nПоле только для чтения. Переданные значения будут проигнорированы.",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
},
"productId": {
"description": "Id товара в системе продавца. В параметрах запроса каждый идентификатор товара `productId` должен быть уникальным",
"type": "string"
},
"quantity": {
"allOf": [
{
"properties": {
"available": {
"description": "Максимально доступное количество товара",
"example": "123.45",
"format": "double",
"type": "string"
},
"count": {
"description": "Количество товара в заказе",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"count"
],
"type": "object"
}
],
"description": "Количество товара в заказе"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
],
"description": "Данные для формирования чека"
},
"skuId": {
"description": "Уникальный id, который описывает единицу ассортимента. Необходим для применения индивидуального тарифа.",
"type": "string"
},
"subtotal": {
"description": "Суммарная цена за позицию без учета скидок",
"example": "123.45",
"format": "double",
"type": "string"
},
"title": {
"description": "Наименование товара",
"type": "string"
},
"total": {
"description": "Суммарная цена за позицию с учётом скидок на позицию",
"example": "123.45",
"format": "double",
"type": "string"
},
"type": {
"default": "UNSPECIFIED",
"description": "Тип товара. Важен для интеграции с доставками",
"enum": [
"PHYSICAL",
"DIGITAL",
"UNSPECIFIED"
],
"type": "string"
},
"unitPrice": {
"description": "Полная цена за единицу товара без учетка скидки",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"productId",
"quantity",
"total"
],
"type": "object"
},
"RequiredFields": {
"properties": {
"billingContact": {
"allOf": [
{
"properties": {
"email": {
"type": "boolean"
}
},
"type": "object"
}
]
},
"shippingContact": {
"allOf": [
{
"properties": {
"email": {
"type": "boolean"
},
"name": {
"type": "boolean"
},
"phone": {
"type": "boolean"
}
},
"type": "object"
}
]
}
},
"type": "object"
},
"Schedule": {
"properties": {
"custom": {
"additionalProperties": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"nullable": true
},
"description": "Переопределённое расписание для конкретных дат. Ключи - даты в формате \"YYYY-MM-DD\", значения - объекты {\"start\": string, \"end\": string} или null для указания выходных",
"nullable": true,
"type": "object"
},
"tzoffset": {
"description": "Смещение часового пояса относительно UTC в минутах. Например, 180 для Москвы (UTC+3)",
"format": "int32",
"maximum": 840,
"minimum": -720,
"type": "integer"
},
"weekly": {
"allOf": [
{
"properties": {
"fri": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Пятница"
},
"mon": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Понедельник"
},
"sat": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Суббота"
},
"sun": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Воскресенье"
},
"thu": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Четверг"
},
"tue": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Вторник"
},
"wed": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Среда"
}
},
"type": "object"
}
],
"description": "Еженедельное расписание работы"
}
},
"required": [
"tzoffset",
"weekly"
],
"type": "object"
},
"ShippingMethod": {
"properties": {
"courierOption": {
"allOf": [
{
"properties": {
"allowedPaymentMethods": {
"description": "Индивидуальные методы оплаты для метода доставки. Этот параметр нужно использовать, если нужно ограничить методы оплаты, указанные в `availablePaymentMethods`. Если параметр не указан, то используются все методы оплаты, перечисленные в `availablePaymentMethods`.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Стоимость доставки",
"example": "123.45",
"format": "double",
"type": "string"
},
"category": {
"enum": [
"EXPRESS",
"TODAY",
"STANDARD"
],
"type": "string"
},
"courierOptionId": {
"description": "id выбранного варианта доставки в системе продавца",
"type": "string"
},
"customerChoice": {
"allOf": [
{
"properties": {
"date": {
"format": "date",
"type": "string"
},
"time": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
]
}
},
"required": [
"date"
],
"type": "object"
}
],
"description": "Выбранные пользователем дата и интервал. Только для `type: FLEXIBLE`"
},
"fromDate": {
"description": "Ближайшая дата доставки для `type: PLAIN`. Начало интервала выбора даты доставки для `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"fromTime": {
"description": "Начало интервала времени доставки. Только для `type: PLAIN`",
"type": "string"
},
"provider": {
"description": "Тип службы доставки.",
"enum": [
"BOXBERRY",
"CDEK",
"RUSSIAN_POST",
"EMS",
"COURIER",
"DHL",
"EXPRESS_DELIVERY",
"FIVEPOST",
"OZON_ROCKET",
"DPD",
"SBER_LOGISTICS",
"PEK",
"PICKPOINT",
"KCE",
"PONY_EXPRESS",
"YANDEX_DELIVERY",
null
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"timeIntervals": {
"allOf": [
{
"properties": {
"grid": {
"allOf": [
{
"properties": {
"duration": {
"description": "Продолжительность каждого интервала",
"type": "string"
},
"end": {
"description": "Максимальное время начала самого последнего интервала",
"type": "string"
},
"start": {
"description": "Время начала самого первого интервала",
"type": "string"
},
"step": {
"description": "Разница во времени между началами двух соседних интервалов",
"type": "string"
}
},
"required": [
"duration",
"end",
"start",
"step"
],
"type": "object"
}
],
"description": "Кодирует интервалы в виде сетки. Используйте этот формат, если необходимо задать больше 20 интервалов доставки.\nПример: `{\"start\": \"09:00\", \"end\": \"21:00\", \"duration\": \"00:20\", \"step\": \"01:00\"}` трактуется как набор интервалов: `[{\"start\": \"09:00\", \"end\": \"09:20\"}, {\"start\": \"10:00\", \"end\": \"10:20\"}, ..., {\"start\": \"20:00\", \"end\": \"20:20\"}]`"
},
"type": {
"description": "Если указан тип `GRID`, то необходимо задать поле `grid`. Если указан тип `VALUES`, то необходимо задать поле `values`",
"enum": [
"GRID",
"VALUES"
],
"type": "string"
},
"values": {
"description": "Задаёт список интервалов напрямую. Подходит для небольшого количества интервалов доставки. Рекомендуемое максимальная количество интервалов - 20",
"items": {
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"type"
],
"type": "object"
}
],
"description": "Кодирует интервалы времени доставки, доступные для выбора. Только для `type: FLEXIBLE`"
},
"title": {
"description": "Название способа доставки. Показывается пользователю в списке вариантов",
"type": "string"
},
"toDate": {
"description": "Самая поздняя дата доставки для `type: PLAIN`. Конец интервала выбора даты доставки для `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"toTime": {
"description": "Конец интервала времени доставки. Только для `type: PLAIN`",
"type": "string"
},
"type": {
"default": "PLAIN",
"description": "Тип опции.\nДля `FLEXIBLE` вариантов доставки пользователю дается возможность выбрать желаемые дату и интервал:\n- дата доставки выбирается покупателем в отрезке `[fromDate, toDate]`\n- чтобы предоставить пользователю выбор интервала в течении дня, заполните `timeIntervals`\nДля `PLAIN` вариантов такой выбор отсутствует.",
"enum": [
"PLAIN",
"FLEXIBLE"
],
"type": "string"
}
},
"required": [
"amount",
"category",
"courierOptionId",
"title"
],
"type": "object"
}
],
"description": "если methodType == COURIER"
},
"methodType": {
"enum": [
"DIRECT",
"PICKUP",
"COURIER",
"YANDEX_DELIVERY"
],
"type": "string"
},
"pickupOption": {
"allOf": [
{
"properties": {
"address": {
"description": "Адрес в виде строки",
"type": "string"
},
"allowedPaymentMethods": {
"description": "Индивидуальные методы оплаты для выбранного способа самовывоза. Доступные методы оплаты заказа при выбранном способе самовывоза. Этот параметр нужно использовать, если нужно ограничить методы оплаты, указанные в `availablePaymentMethods`. Если параметр не указан, то используются все методы оплаты, перечисленные в `availablePaymentMethods`.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Стоимость доставки в точку",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Дополнительное описание",
"type": "string"
},
"fromDate": {
"description": "YYYY-MM-DD. Ближайшая возможная дата доставки",
"format": "date",
"type": "string"
},
"location": {
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
},
"phones": {
"description": "Телефоны для связи",
"items": {
"type": "string"
},
"type": "array"
},
"pickupPointId": {
"description": "Уникальный id точки самовывоза в системе продавца",
"type": "string"
},
"provider": {
"description": "Тип точки вывоза.",
"enum": [
"YANDEX_MARKET",
"BOXBERRY",
"CDEK",
"IN_STORE",
"RUSSIAN_POST",
"PICKPOINT",
"DPD"
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"schedule": {
"description": "График работы точки",
"items": {
"properties": {
"fromTime": {
"description": "HH:mm, \"08:00\"",
"type": "string"
},
"label": {
"description": "Например, \"пн-пт\"",
"type": "string"
},
"toTime": {
"description": "HH:mm, \"20:00\"",
"type": "string"
}
},
"required": [
"fromTime",
"label",
"toTime"
],
"type": "object"
},
"type": "array"
},
"storagePeriod": {
"description": "Опционально. Срок хранения товара в точке самовывоза в днях",
"format": "int32",
"type": "integer"
},
"title": {
"description": "Название точки самовывоза",
"type": "string"
},
"toDate": {
"description": "YYYY-MM-DD. Самая поздняя дата доставки",
"format": "date",
"type": "string"
}
},
"required": [
"address",
"location",
"pickupPointId",
"title"
],
"type": "object"
}
],
"description": "если methodType == PICKUP"
},
"yandexDeliveryOption": {
"allOf": [
{
"properties": {
"allowedPaymentMethods": {
"description": "Индивидуальные методы оплаты для метода доставки. Этот параметр нужно использовать, если нужно ограничить методы оплаты, указанные в `availablePaymentMethods`. Если параметр не указан, то используются все методы оплаты, перечисленные в `availablePaymentMethods`.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Стоимость доставки",
"example": "123.45",
"format": "double",
"type": "string"
},
"category": {
"enum": [
"EXPRESS",
"TODAY",
"STANDARD"
],
"type": "string"
},
"fromDatetime": {
"format": "date-time",
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"title": {
"description": "Название способа доставки. Показывается пользователю в списке вариантов",
"type": "string"
},
"toDatetime": {
"format": "date-time",
"type": "string"
},
"yandexDeliveryOptionId": {
"description": "Id предложения Яндекс Доставки",
"type": "string"
}
},
"required": [
"amount",
"category",
"title",
"yandexDeliveryOptionId"
],
"type": "object"
}
],
"description": "если methodType == YANDEX_DELIVERY"
}
},
"required": [
"methodType"
],
"type": "object"
},
"ShippingOptions": {
"properties": {
"availableCourierOptions": {
"description": "Доступные варианты доставки (при наличии адреса в запросе)",
"items": {
"properties": {
"allowedPaymentMethods": {
"description": "Индивидуальные методы оплаты для метода доставки. Этот параметр нужно использовать, если нужно ограничить методы оплаты, указанные в `availablePaymentMethods`. Если параметр не указан, то используются все методы оплаты, перечисленные в `availablePaymentMethods`.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Стоимость доставки",
"example": "123.45",
"format": "double",
"type": "string"
},
"category": {
"enum": [
"EXPRESS",
"TODAY",
"STANDARD"
],
"type": "string"
},
"courierOptionId": {
"description": "id выбранного варианта доставки в системе продавца",
"type": "string"
},
"fromDate": {
"description": "Ближайшая дата доставки для `type: PLAIN`. Начало интервала выбора даты доставки для `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"fromTime": {
"description": "Начало интервала времени доставки. Только для `type: PLAIN`",
"type": "string"
},
"provider": {
"description": "Тип службы доставки.",
"enum": [
"BOXBERRY",
"CDEK",
"RUSSIAN_POST",
"EMS",
"COURIER",
"DHL",
"EXPRESS_DELIVERY",
"FIVEPOST",
"OZON_ROCKET",
"DPD",
"SBER_LOGISTICS",
"PEK",
"PICKPOINT",
"KCE",
"PONY_EXPRESS",
"YANDEX_DELIVERY",
null
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"timeIntervals": {
"allOf": [
{
"properties": {
"grid": {
"allOf": [
{
"properties": {
"duration": {
"description": "Продолжительность каждого интервала",
"type": "string"
},
"end": {
"description": "Максимальное время начала самого последнего интервала",
"type": "string"
},
"start": {
"description": "Время начала самого первого интервала",
"type": "string"
},
"step": {
"description": "Разница во времени между началами двух соседних интервалов",
"type": "string"
}
},
"required": [
"duration",
"end",
"start",
"step"
],
"type": "object"
}
],
"description": "Кодирует интервалы в виде сетки. Используйте этот формат, если необходимо задать больше 20 интервалов доставки.\nПример: `{\"start\": \"09:00\", \"end\": \"21:00\", \"duration\": \"00:20\", \"step\": \"01:00\"}` трактуется как набор интервалов: `[{\"start\": \"09:00\", \"end\": \"09:20\"}, {\"start\": \"10:00\", \"end\": \"10:20\"}, ..., {\"start\": \"20:00\", \"end\": \"20:20\"}]`"
},
"type": {
"description": "Если указан тип `GRID`, то необходимо задать поле `grid`. Если указан тип `VALUES`, то необходимо задать поле `values`",
"enum": [
"GRID",
"VALUES"
],
"type": "string"
},
"values": {
"description": "Задаёт список интервалов напрямую. Подходит для небольшого количества интервалов доставки. Рекомендуемое максимальная количество интервалов - 20",
"items": {
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"type"
],
"type": "object"
}
],
"description": "Кодирует интервалы времени доставки, доступные для выбора. Только для `type: FLEXIBLE`"
},
"title": {
"description": "Название способа доставки. Показывается пользователю в списке вариантов",
"type": "string"
},
"toDate": {
"description": "Самая поздняя дата доставки для `type: PLAIN`. Конец интервала выбора даты доставки для `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"toTime": {
"description": "Конец интервала времени доставки. Только для `type: PLAIN`",
"type": "string"
},
"type": {
"default": "PLAIN",
"description": "Тип опции.\nДля `FLEXIBLE` вариантов доставки пользователю дается возможность выбрать желаемые дату и интервал:\n- дата доставки выбирается покупателем в отрезке `[fromDate, toDate]`\n- чтобы предоставить пользователю выбор интервала в течении дня, заполните `timeIntervals`\nДля `PLAIN` вариантов такой выбор отсутствует.",
"enum": [
"PLAIN",
"FLEXIBLE"
],
"type": "string"
}
},
"required": [
"amount",
"category",
"courierOptionId",
"title"
],
"type": "object"
},
"type": "array"
},
"availableMethods": {
"items": {
"enum": [
"DIRECT",
"PICKUP",
"COURIER",
"YANDEX_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"courierOptionsError": {
"description": "Ошибка при определении доставки. При указании этого параметра, в интерфейсе пользователя будет отображаться описание ошибки.",
"enum": [
"WRONG_ADDRESS",
"DELIVERY_NOT_AVAILABLE_FOR_ADDRESS",
null
],
"type": "string"
},
"yandexDelivery": {
"allOf": [
{
"properties": {
"warehouse": {
"allOf": [
{
"properties": {
"address": {
"properties": {
"addressLine": {
"description": "Полный адрес",
"type": "string"
},
"building": {
"type": "string"
},
"comment": {
"type": "string"
},
"country": {
"type": "string"
},
"district": {
"type": "string"
},
"entrance": {
"type": "string"
},
"floor": {
"type": "string"
},
"intercom": {
"type": "string"
},
"locale": {
"type": "string"
},
"locality": {
"type": "string"
},
"location": {
"allOf": [
{
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
}
]
},
"region": {
"type": "string"
},
"room": {
"type": "string"
},
"street": {
"type": "string"
},
"zip": {
"type": "string"
}
},
"required": [
"building",
"country"
],
"type": "object"
},
"contact": {
"properties": {
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneAdditionalCode": {
"type": "string"
},
"secondName": {
"type": "string"
}
},
"type": "object"
},
"emergencyContact": {
"properties": {
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneAdditionalCode": {
"type": "string"
},
"secondName": {
"type": "string"
}
},
"type": "object"
},
"schedule": {
"allOf": [
{
"properties": {
"custom": {
"additionalProperties": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"nullable": true
},
"description": "Переопределённое расписание для конкретных дат. Ключи - даты в формате \"YYYY-MM-DD\", значения - объекты {\"start\": string, \"end\": string} или null для указания выходных",
"nullable": true,
"type": "object"
},
"tzoffset": {
"description": "Смещение часового пояса относительно UTC в минутах. Например, 180 для Москвы (UTC+3)",
"format": "int32",
"maximum": 840,
"minimum": -720,
"type": "integer"
},
"weekly": {
"allOf": [
{
"properties": {
"fri": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Пятница"
},
"mon": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Понедельник"
},
"sat": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Суббота"
},
"sun": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Воскресенье"
},
"thu": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Четверг"
},
"tue": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Вторник"
},
"wed": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Среда"
}
},
"type": "object"
}
],
"description": "Еженедельное расписание работы"
}
},
"required": [
"tzoffset",
"weekly"
],
"type": "object"
}
],
"description": "Расписание работы"
}
},
"required": [
"address",
"contact",
"emergencyContact"
],
"type": "object"
}
]
}
},
"type": "object"
}
]
}
},
"required": [
"availableMethods"
],
"type": "object"
},
"ShippingWarehouse": {
"properties": {
"address": {
"properties": {
"addressLine": {
"description": "Полный адрес",
"type": "string"
},
"building": {
"type": "string"
},
"comment": {
"type": "string"
},
"country": {
"type": "string"
},
"district": {
"type": "string"
},
"entrance": {
"type": "string"
},
"floor": {
"type": "string"
},
"intercom": {
"type": "string"
},
"locale": {
"type": "string"
},
"locality": {
"type": "string"
},
"location": {
"allOf": [
{
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
}
]
},
"region": {
"type": "string"
},
"room": {
"type": "string"
},
"street": {
"type": "string"
},
"zip": {
"type": "string"
}
},
"required": [
"building",
"country"
],
"type": "object"
},
"contact": {
"properties": {
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneAdditionalCode": {
"type": "string"
},
"secondName": {
"type": "string"
}
},
"type": "object"
},
"emergencyContact": {
"properties": {
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneAdditionalCode": {
"type": "string"
},
"secondName": {
"type": "string"
}
},
"type": "object"
},
"schedule": {
"allOf": [
{
"properties": {
"custom": {
"additionalProperties": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"nullable": true
},
"description": "Переопределённое расписание для конкретных дат. Ключи - даты в формате \"YYYY-MM-DD\", значения - объекты {\"start\": string, \"end\": string} или null для указания выходных",
"nullable": true,
"type": "object"
},
"tzoffset": {
"description": "Смещение часового пояса относительно UTC в минутах. Например, 180 для Москвы (UTC+3)",
"format": "int32",
"maximum": 840,
"minimum": -720,
"type": "integer"
},
"weekly": {
"allOf": [
{
"properties": {
"fri": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Пятница"
},
"mon": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Понедельник"
},
"sat": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Суббота"
},
"sun": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Воскресенье"
},
"thu": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Четверг"
},
"tue": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Вторник"
},
"wed": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Среда"
}
},
"type": "object"
}
],
"description": "Еженедельное расписание работы"
}
},
"required": [
"tzoffset",
"weekly"
],
"type": "object"
}
],
"description": "Расписание работы"
}
},
"required": [
"address",
"contact",
"emergencyContact"
],
"type": "object"
},
"SubscriptionWebhookData": {
"properties": {
"customerSubscriptionId": {
"description": "ID подписки. Возвращается из SDK при успешном создании подписки. Также можно сохранить подписку при получении первой нотификации по ней. Дальнейшие обновления по этой подписке будут приходить с таким же значением этого поля.",
"format": "uuid",
"type": "string"
},
"nextWriteOff": {
"description": "Дата следующей попытки списания денег по подписке.",
"format": "date-time",
"type": "string"
},
"status": {
"description": "Статус подписки.",
"enum": [
"NEW",
"ACTIVE",
"CANCELLED",
"EXPIRED"
],
"type": "string"
},
"subscriptionPlanId": {
"description": "ID плана подписки, созданного в личном кабинете или через API.",
"format": "uuid",
"type": "string"
}
},
"required": [
"customerSubscriptionId",
"status",
"subscriptionPlanId"
],
"type": "object"
},
"Supplier": {
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"TimeInterval": {
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
},
"TimeInterval1": {
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
},
"TransferOperator": {
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"WeeklySchedule": {
"properties": {
"fri": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Пятница"
},
"mon": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Понедельник"
},
"sat": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Суббота"
},
"sun": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Воскресенье"
},
"thu": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Четверг"
},
"tue": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Вторник"
},
"wed": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Среда"
}
},
"type": "object"
},
"YandexDeliveryOption": {
"properties": {
"allowedPaymentMethods": {
"description": "Индивидуальные методы оплаты для метода доставки. Этот параметр нужно использовать, если нужно ограничить методы оплаты, указанные в `availablePaymentMethods`. Если параметр не указан, то используются все методы оплаты, перечисленные в `availablePaymentMethods`.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Стоимость доставки",
"example": "123.45",
"format": "double",
"type": "string"
},
"category": {
"enum": [
"EXPRESS",
"TODAY",
"STANDARD"
],
"type": "string"
},
"fromDatetime": {
"format": "date-time",
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"title": {
"description": "Название способа доставки. Показывается пользователю в списке вариантов",
"type": "string"
},
"toDatetime": {
"format": "date-time",
"type": "string"
},
"yandexDeliveryOptionId": {
"description": "Id предложения Яндекс Доставки",
"type": "string"
}
},
"required": [
"amount",
"category",
"title",
"yandexDeliveryOptionId"
],
"type": "object"
},
"YandexDeliveryShippingParams": {
"properties": {
"warehouse": {
"allOf": [
{
"properties": {
"address": {
"properties": {
"addressLine": {
"description": "Полный адрес",
"type": "string"
},
"building": {
"type": "string"
},
"comment": {
"type": "string"
},
"country": {
"type": "string"
},
"district": {
"type": "string"
},
"entrance": {
"type": "string"
},
"floor": {
"type": "string"
},
"intercom": {
"type": "string"
},
"locale": {
"type": "string"
},
"locality": {
"type": "string"
},
"location": {
"allOf": [
{
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
}
]
},
"region": {
"type": "string"
},
"room": {
"type": "string"
},
"street": {
"type": "string"
},
"zip": {
"type": "string"
}
},
"required": [
"building",
"country"
],
"type": "object"
},
"contact": {
"properties": {
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneAdditionalCode": {
"type": "string"
},
"secondName": {
"type": "string"
}
},
"type": "object"
},
"emergencyContact": {
"properties": {
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneAdditionalCode": {
"type": "string"
},
"secondName": {
"type": "string"
}
},
"type": "object"
},
"schedule": {
"allOf": [
{
"properties": {
"custom": {
"additionalProperties": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"nullable": true
},
"description": "Переопределённое расписание для конкретных дат. Ключи - даты в формате \"YYYY-MM-DD\", значения - объекты {\"start\": string, \"end\": string} или null для указания выходных",
"nullable": true,
"type": "object"
},
"tzoffset": {
"description": "Смещение часового пояса относительно UTC в минутах. Например, 180 для Москвы (UTC+3)",
"format": "int32",
"maximum": 840,
"minimum": -720,
"type": "integer"
},
"weekly": {
"allOf": [
{
"properties": {
"fri": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Пятница"
},
"mon": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Понедельник"
},
"sat": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Суббота"
},
"sun": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Воскресенье"
},
"thu": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Четверг"
},
"tue": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Вторник"
},
"wed": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Среда"
}
},
"type": "object"
}
],
"description": "Еженедельное расписание работы"
}
},
"required": [
"tzoffset",
"weekly"
],
"type": "object"
}
],
"description": "Расписание работы"
}
},
"required": [
"address",
"contact",
"emergencyContact"
],
"type": "object"
}
]
}
},
"type": "object"
}
}
},
"info": {
"description": "\nДля работы Merchant API необходим публичный адрес вашего бэкенда. [Укажите адрес](../../../console/settings-pay-split.md#callback-settings) в поле **Callback URL** в консоли Яндекс Пэй на [странице разработчика](https://console.pay.yandex.ru/settings).\n\nВаш бэкенд должен проверять подлинность запроса, прежде чем приступать к его обработке.\n\n{% note warning %}\n\nНе привязывайте логику к конкретным IP-адресам — они могут измениться. Для проверки подлинности используйте [валидацию JWT-токена](#validate) с публичными ключами.\n\nАктуальные диапазоны IP-адресов: [https://yandex.ru/ips](https://yandex.ru/ips).\n\n{% endnote %}\n\n## Аутентификация запроса Яндекс Пэй {#auth}\n\nВ теле запроса Яндекс Пэй присылает JWT-токен, подписанный по алгоритму ES256.\nТокен состоит из трех частей: заголовка (header), полезной нагрузки (payload) и подписи,\nконкатенированных через точку: `<base64-encoded headers JSON>.<base64-encoded payload JSON>.<signature>`.\nРаскодированный из base64 заголовок представляет собой JSON документ со следующей структурой:\n\n```json\n{\n \"alg\": \"ES256\", // алгоритм подписи\n \"kid\": \"key-id\", // ID ключа, используется при определении публичного ключа\n \"iat\": \"1639408318\", // UNIX время, когда токен был выпущен\n \"exp\": \"1639429918\", // UNIX время, когда токен истекает, токен признается не валидным после наступления этого времени\n \"typ\": \"JWT\" // тип токена\n}\n```\n\nПолезная нагрузка также представляет собой JSON, конкретная структура полей которого определяется\nвызываемым методом. Подпись необходима для проверки валидности JWT-токена.\n\n{% note warning %}\n\nПеред десериализацией токена проверьте его валидность.\n\n{% endnote %}\n\n### Алгоритм проверки валидности токена {#validate}\n\nДля проверки валидности JWT-токена удобнее воспользоваться одной из стандартных библиотек\nиз списка: <https://jwt.io/libraries>. По возможности воздержитесь от ручной реализации данных проверок.\n\nВ общем случае алгоритм проверки JWT-токена с помощью библиотеки включает в себя:\n\n1. Проверку валидности подписи JWT-токена с помощью публичных JWK-ключей, размещенных по адресам:\n<https://sandbox.pay.yandex.ru/api/jwks> для тестового окружения и <https://pay.yandex.ru/api/jwks>\nдля продуктивного окружения. Публичный ключ, используемый для валидации подписи конкретного JWT-токена,\nвыбирается на основе требований `alg` и `kid` в заголовке самого токена.\n1. Проверку стандартных требований в заголовках JWT-токена: `alg`, `typ`, `iat`, `exp` и т.д.\n\nТолько в случае, если обе проверки прошли успешно, получатель может десериализовать JSON payload JWT-токена.\nПосле этого получатель должен дополнительно проверить, что `merchantId` в payload токена совпадает с ID продавца в Яндекс Пэй.\nВ противном случае токен не может быть использован.\n\nЕсли любая из проверок завершилась неудачей, токен считается невалидным, а запрос — неаутентифицированным.\nТакой запрос должен быть отклонен. Код ошибки `reasonCode` зависит от причины:\n\n- `TOKEN_EXPIRED` — срок действия токена истек;\n- `UNAUTHORIZED` — не удалось проверить подпись токена;\n- `OTHER` — другие ошибки валидации.\n\nПримеры ответов:\n\n```json\n{\n \"status\": \"fail\",\n \"reasonCode\": \"TOKEN_EXPIRED\",\n \"reason\": \"JWT token has expired\"\n}\n```\n\n```json\n{\n \"status\": \"fail\",\n \"reasonCode\": \"UNAUTHORIZED\",\n \"reason\": \"Invalid token signature\"\n}\n```\n\n```json\n{\n \"status\": \"fail\",\n \"reasonCode\": \"OTHER\",\n \"reason\": \"Invalid merchantId\"\n}\n```\n\n### Кеширование публичных JWK-ключей {#jwk-cache}\n\nДопускается кеширование JWK-ключей, используемых для валидации JWT-токенов, на бэкенде магазина.\nВремя жизни такого кеша необходимо устанавливать таким образом, чтобы это не приводило к ошибкам валидации\nтокенов в случае ротации JWK-ключей на стороне Яндекс Пэй. На практике\n[некоторые библиотеки](https://github.com/auth0/node-jwks-rsa#caching) по умолчанию устанавливают\nвремя жизни такого кеша в 10 минут. В случае кеширования JWK-ключей, необходимо реализовать следующие\nсценарии проверок.\n\n**Сценарий А:** Успешная валидация токена кешированными JWK-ключами.\n\n1. Приходит запрос с токеном, чей `kid` найден среди кешированных JWK-ключей, и время жизни кеша не истекло.\n1. Валидация подписи токена завершается успешно.\n1. Токен считается валидным.\n\n**Сценарий B:** Неуспешная валидация токена кешированными JWK-ключами.\n\n1. Приходит запрос с токеном, чей `kid` найден среди кешированных JWK-ключей, и время жизни кеша не истекло.\n1. Валидация подписи токена завершается неудачей.\n1. Токен считается невалидным, запрос отклоняется.\n\n**Сценарий C:** Валидация токена со сбросом кеша JWK-ключей.\n\n1. Приходит запрос с токеном, чей `kid` не найден среди кешированных JWK-ключей или время жизни кеша истекло.\n1. Продавец должен сбросить кеш JWK-ключей и запросить весь список активных JWK-ключей заново с соответствующего окружению адреса.\n1. Валидация продолжается по сценарию А или B.\n\nКак и в случае с валидацией токена, рекомендуется использовать стандартные библиотеки и воздержаться от\nручной реализации данных сценариев.\n\n### Пример кода валидации JWT-токена {#jwk-verify-example}\n\nНиже приведен пример успешной валидации JWT-токена, выпущенного в sandbox окружении.\nДля валидации токенов в продакшен окружении должны использоваться публичные ключи, доступные по адресу <https://pay.yandex.ru/api/jwks>.\n\n{% list tabs %}\n\n- Python\n\n ```python\n import json\n from urllib.request import urlopen\n\n from jose import jwt\n\n YANDEX_JWK_ENDPOINT = \"https://sandbox.pay.yandex.ru/api/jwks\"\n\n JWT_TOKEN = (\n \"eyJhbGciOiJFUzI1NiIsImlhdCI6MTY1MDE5Njc1OCwia2lkIjoidGVzdC1rZXkiLCJ0eXAiOiJKV1QifQ.eyJjYXJ0Ijp7Iml0ZW1zIjpbeyJwcm9kdWN\"\n \"0SWQiOiJwMSIsInF1YW50aXR5Ijp7ImNvdW50IjoiMSJ9fV19LCJjdXJyZW5jeUNvZGUiOiJSVUIiLCJtZXJjaGFudElkIjoiMjc2Y2YxZjEtZjhlZC00N\"\n \"GZlLTg5ZTMtNWU0MTEzNDZkYThkIn0.YmQjHlh3ddLWgBexQ3QrwtbgAA3u1TVnBl1qnfMIvToBwinH3uH92KGB15m4NAQXdz5nhkjPZZu7RUStJt40PQ\"\n )\n\n with urlopen(YANDEX_JWK_ENDPOINT) as response:\n public_jwks = json.load(response)\n\n payload = jwt.decode(JWT_TOKEN, public_jwks, algorithms=[\"ES256\"])\n print(json.dumps(payload, indent=2))\n ```\n\n- PHP\n\n ```php\n use Firebase\\JWT\\JWT;\n use Firebase\\JWT\\JWK;\n\n $sandboxJwk = 'https://sandbox.pay.yandex.ru/api/jwks';\n\n $JWT_TOKEN =\n \"eyJhbGciOiJFUzI1NiIsImlhdCI6MTY1MDE5Njc1OCwia2lkIjoidGVzdC1rZXkiLCJ0eXAiOiJKV1QifQ.eyJjYXJ0Ijp7Iml0ZW1zIjpbeyJwcm9kdWN\"\n . \"0SWQiOiJwMSIsInF1YW50aXR5Ijp7ImNvdW50IjoiMSJ9fV19LCJjdXJyZW5jeUNvZGUiOiJSVUIiLCJtZXJjaGFudElkIjoiMjc2Y2YxZjEtZjhlZC00N\"\n . \"GZlLTg5ZTMtNWU0MTEzNDZkYThkIn0.YmQjHlh3ddLWgBexQ3QrwtbgAA3u1TVnBl1qnfMIvToBwinH3uH92KGB15m4NAQXdz5nhkjPZZu7RUStJt40PQ\";\n\n $client = new GuzzleHttp\\Client();\n $keysJson = $client->get($sandboxJwk)->getBody();\n $keysData = json_decode($keysJson, JSON_OBJECT_AS_ARRAY);\n\n $keys = JWK::parseKeySet($keysData);\n $payload = JWT::decode($JWT_TOKEN, $keys);\n\n print_r($payload);\n ```\n\n Для работы примера необходимо установить зависимости:\n\n ```bash\n composer require firebase/php-jwt\n composer require guzzlehttp/guzzle\n ```\n\n{% endlist %}\n\n## Решение проблем c вебхуками {#troubleshooting}\n\nЕсли нотификации не приходят, проверьте следующие моменты:\n\n- Неправильный адрес бэкенда\n\n Нотификации могут приходить не туда, куда ожидаете. [Указывайте Callback URL](../../../console/settings-pay-split.md#callback-settings) без `/v1/webhook` — этот путь добавится автоматически, например:\n\n #|\n || **Callback URL** | **Куда придет запрос** ||\n || `https://example.merchant.ru` | `https://example.merchant.ru/v1/webhook` ||\n || `https://example.merchant.ru/v1/webhook` | `https://example.merchant.ru/v1/webhook/v1/webhook` ||\n |#\n\n- Обработка `Content-Type`\n\n Убедитесь, что бэкенд вашего магазина готов принимать сообщения с заголовком `Content-Type: application/octet-stream`.\n\n- SSL-сертификат\n\n Система не распознает самоподписанные SSL-сертификаты. Используйте сертификат от доверенного центра сертификации.\n\n- Настройки брандмауэра\n\n Проверьте, что брандмауэр не блокирует входящие запросы и не обрезает тело запроса.",
"title": "Merchant API",
"version": "1.0.0"
},
"openapi": "3.0.3",
"paths": {
"/v1/order/render": {
"post": {
"description": "Запрос информации для отображения корзины.\n\nВ параметрах запроса передаются идентификаторы товаров и их количество или номер заказа.\nВ ответе возвращаются параметры и контент для формы Яндекс Пэй.\n\nНа входе идентификаторы товаров и их количество. <br/>\nИмеется возможность передать произвольные данные в поле `metadata` с фронтенда продавца на\nбэкенд магазина. Метод вызывается при изменении состава корзины, выборе адреса, способа доставки,\nвводе промокодов. Продавцу необходимо проверять состав заказа и заполнять детальную информацию\nдля товаров, способов доставки и промокодов, пересчитывать стоимости товаров и всего заказа.\n\nВ ответе ожидаются детальная информация по заказу и товарам:\n- Доступные типы способов оплаты и доставки в `availablePaymentMethods`, `shipping.availableMethods`\n- Дополнительные данные пользователя необходимые для оформления заказа, в `requiredFields`\n- Стоимость каждого товара и название. Опционально, максимально доступное количество товара\n- Информация о скидках, примененных к корзине, в `discounts`",
"operationId": "order-render",
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"cart": {
"allOf": [
{
"properties": {
"cartId": {
"description": "Внутренний идентификатор корзины Яндекс Пэй.\n\nБэкенд магазина должен использовать этот параметр как идентификатор корзины покупателя и как ключ идемпотентности для запроса `/order/create`. Если бэкенд магазина получает повторный запрос `/order/create`, то необходимо вернуть уже созданный номер заказа. На одну корзину (`cartId`) бэкенд магазина может создать не больше одного заказа (`orderId`).",
"type": "string"
},
"coupons": {
"description": "Купоны, применённые к корзине",
"items": {
"properties": {
"description": {
"description": "Описание. Например, \"Скидка 3%\"",
"type": "string"
},
"status": {
"enum": [
"VALID",
"INVALID",
"EXPIRED",
null
],
"type": "string"
},
"value": {
"description": "Код купона",
"type": "string"
}
},
"required": [
"value"
],
"type": "object"
},
"type": "array"
},
"discounts": {
"description": "Скидки, применённые к корзине",
"items": {
"properties": {
"amount": {
"description": "Сумма скидки",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Текстовое описание",
"type": "string"
},
"discountId": {
"description": "Идентификатор скидки в системе мерчанта",
"type": "string"
}
},
"required": [
"amount",
"description",
"discountId"
],
"type": "object"
},
"type": "array"
},
"externalId": {
"description": "Переданный продавцом идентификатор корзины",
"type": "string"
},
"items": {
"items": {
"properties": {
"description": {
"description": "Описание товара",
"type": "string"
},
"discountedUnitPrice": {
"description": "Цена за единицу товара с учётом скидок на позицию",
"example": "123.45",
"format": "double",
"type": "string"
},
"features": {
"allOf": [
{
"properties": {
"pointsDisabled": {
"default": false,
"description": "Не распределять баллы Плюса. Используется только при создании заказа. Если это поле не указано, то баллы будут распределены на товар",
"type": "boolean"
},
"tariffModifier": {
"description": "Модификатор тарифа для расчета комиссии. Определяет, какой тариф будет применяться при расчете комиссии за обработку позиции в корзине.",
"enum": [
"VERY_LOW",
"LOW",
"MEDIUM",
"HIGH",
"VERY_HIGH",
null
],
"type": "string"
}
},
"type": "object"
}
],
"description": "Промо параметры товара"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Высота, в метрах",
"format": "float",
"type": "number"
},
"length": {
"description": "Длина, в метрах",
"format": "float",
"type": "number"
},
"weight": {
"description": "Вес, в килограммах",
"format": "float",
"type": "number"
},
"width": {
"description": "Ширина, в метрах",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
],
"description": "Размеры и вес товара. Обязательно для товара типа `PHYSICAL`"
},
"pointsAmount": {
"description": "Количество баллов Плюса\n\nПоле только для чтения. Переданные значения будут проигнорированы.",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
},
"productId": {
"description": "Id товара в системе продавца. В параметрах запроса каждый идентификатор товара `productId` должен быть уникальным",
"type": "string"
},
"quantity": {
"allOf": [
{
"properties": {
"available": {
"description": "Максимально доступное количество товара",
"example": "123.45",
"format": "double",
"type": "string"
},
"count": {
"description": "Количество товара в заказе",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"count"
],
"type": "object"
}
],
"description": "Количество товара в заказе"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
],
"description": "Данные для формирования чека"
},
"skuId": {
"description": "Уникальный id, который описывает единицу ассортимента. Необходим для применения индивидуального тарифа.",
"type": "string"
},
"subtotal": {
"description": "Суммарная цена за позицию без учета скидок",
"example": "123.45",
"format": "double",
"type": "string"
},
"title": {
"description": "Наименование товара",
"type": "string"
},
"total": {
"description": "Суммарная цена за позицию с учётом скидок на позицию",
"example": "123.45",
"format": "double",
"type": "string"
},
"type": {
"default": "UNSPECIFIED",
"description": "Тип товара. Важен для интеграции с доставками",
"enum": [
"PHYSICAL",
"DIGITAL",
"UNSPECIFIED"
],
"type": "string"
},
"unitPrice": {
"description": "Полная цена за единицу товара без учетка скидки",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"productId",
"quantity"
],
"type": "object"
},
"type": "array"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Высота, в метрах",
"format": "float",
"type": "number"
},
"length": {
"description": "Длина, в метрах",
"format": "float",
"type": "number"
},
"weight": {
"description": "Вес, в килограммах",
"format": "float",
"type": "number"
},
"width": {
"description": "Ширина, в метрах",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
]
},
"total": {
"allOf": [
{
"properties": {
"amount": {
"description": "Стоимость корзины с учетом всех скидок.",
"example": "123.45",
"format": "double",
"type": "string"
},
"pointsAmount": {
"description": "Количество баллов Плюса\n\nПоле только для чтения. Переданные значения будут проигнорированы.",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
}
},
"required": [
"amount"
],
"type": "object"
}
],
"default": null,
"description": "Итоговая стоимость корзины, которая пойдет в оплату"
}
},
"type": "object"
}
],
"description": "Корзина c ценами, размером и весом товаров"
},
"currencyCode": {
"description": "Трехбуквенный код валюты заказа (ISO 4217)",
"enum": [
"RUB",
"UZS"
],
"type": "string"
},
"merchantId": {
"format": "uuid",
"type": "string"
},
"metadata": {
"description": "Произвольные данные, переданные при инициализации кнопки",
"type": "string"
},
"orderId": {
"description": "Id существующего заказа на стороне продавца, переданный при инициализации кнопки",
"type": "string"
},
"paymentMethod": {
"allOf": [
{
"properties": {
"cardLast4": {
"type": "string"
},
"cardNetwork": {
"description": "Платежная система",
"enum": [
"AMEX",
"DISCOVER",
"JCB",
"MASTERCARD",
"MAESTRO",
"VISAELECTRON",
"VISA",
"MIR",
"UNIONPAY",
"UZCARD",
"HUMOCARD",
"UNKNOWN",
"UNDEFINED",
null
],
"type": "string"
},
"methodType": {
"enum": [
"CARD",
"SPLIT",
"SBP",
"SPLIT_SBP",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
}
},
"required": [
"methodType"
],
"type": "object"
}
],
"description": "Выбранный способ оплаты"
},
"shippingAddress": {
"allOf": [
{
"properties": {
"addressLine": {
"description": "Полный адрес",
"type": "string"
},
"building": {
"type": "string"
},
"comment": {
"type": "string"
},
"country": {
"type": "string"
},
"district": {
"type": "string"
},
"entrance": {
"type": "string"
},
"floor": {
"type": "string"
},
"intercom": {
"type": "string"
},
"locale": {
"type": "string"
},
"locality": {
"type": "string"
},
"location": {
"allOf": [
{
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
}
]
},
"region": {
"type": "string"
},
"room": {
"type": "string"
},
"street": {
"type": "string"
},
"zip": {
"type": "string"
}
},
"required": [
"building",
"country"
],
"type": "object"
}
],
"description": "Адрес доставки доступен, если выбран метод COURIER"
},
"shippingMethod": {
"allOf": [
{
"properties": {
"courierOption": {
"allOf": [
{
"properties": {
"allowedPaymentMethods": {
"description": "Индивидуальные методы оплаты для метода доставки. Этот параметр нужно использовать, если нужно ограничить методы оплаты, указанные в `availablePaymentMethods`. Если параметр не указан, то используются все методы оплаты, перечисленные в `availablePaymentMethods`.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Стоимость доставки",
"example": "123.45",
"format": "double",
"type": "string"
},
"category": {
"enum": [
"EXPRESS",
"TODAY",
"STANDARD"
],
"type": "string"
},
"courierOptionId": {
"description": "id выбранного варианта доставки в системе продавца",
"type": "string"
},
"customerChoice": {
"allOf": [
{
"properties": {
"date": {
"format": "date",
"type": "string"
},
"time": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
]
}
},
"required": [
"date"
],
"type": "object"
}
],
"description": "Выбранные пользователем дата и интервал. Только для `type: FLEXIBLE`"
},
"fromDate": {
"description": "Ближайшая дата доставки для `type: PLAIN`. Начало интервала выбора даты доставки для `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"fromTime": {
"description": "Начало интервала времени доставки. Только для `type: PLAIN`",
"type": "string"
},
"provider": {
"description": "Тип службы доставки.",
"enum": [
"BOXBERRY",
"CDEK",
"RUSSIAN_POST",
"EMS",
"COURIER",
"DHL",
"EXPRESS_DELIVERY",
"FIVEPOST",
"OZON_ROCKET",
"DPD",
"SBER_LOGISTICS",
"PEK",
"PICKPOINT",
"KCE",
"PONY_EXPRESS",
"YANDEX_DELIVERY",
null
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"timeIntervals": {
"allOf": [
{
"properties": {
"grid": {
"allOf": [
{
"properties": {
"duration": {
"description": "Продолжительность каждого интервала",
"type": "string"
},
"end": {
"description": "Максимальное время начала самого последнего интервала",
"type": "string"
},
"start": {
"description": "Время начала самого первого интервала",
"type": "string"
},
"step": {
"description": "Разница во времени между началами двух соседних интервалов",
"type": "string"
}
},
"required": [
"duration",
"end",
"start",
"step"
],
"type": "object"
}
],
"description": "Кодирует интервалы в виде сетки. Используйте этот формат, если необходимо задать больше 20 интервалов доставки.\nПример: `{\"start\": \"09:00\", \"end\": \"21:00\", \"duration\": \"00:20\", \"step\": \"01:00\"}` трактуется как набор интервалов: `[{\"start\": \"09:00\", \"end\": \"09:20\"}, {\"start\": \"10:00\", \"end\": \"10:20\"}, ..., {\"start\": \"20:00\", \"end\": \"20:20\"}]`"
},
"type": {
"description": "Если указан тип `GRID`, то необходимо задать поле `grid`. Если указан тип `VALUES`, то необходимо задать поле `values`",
"enum": [
"GRID",
"VALUES"
],
"type": "string"
},
"values": {
"description": "Задаёт список интервалов напрямую. Подходит для небольшого количества интервалов доставки. Рекомендуемое максимальная количество интервалов - 20",
"items": {
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"type"
],
"type": "object"
}
],
"description": "Кодирует интервалы времени доставки, доступные для выбора. Только для `type: FLEXIBLE`"
},
"title": {
"description": "Название способа доставки. Показывается пользователю в списке вариантов",
"type": "string"
},
"toDate": {
"description": "Самая поздняя дата доставки для `type: PLAIN`. Конец интервала выбора даты доставки для `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"toTime": {
"description": "Конец интервала времени доставки. Только для `type: PLAIN`",
"type": "string"
},
"type": {
"default": "PLAIN",
"description": "Тип опции.\nДля `FLEXIBLE` вариантов доставки пользователю дается возможность выбрать желаемые дату и интервал:\n- дата доставки выбирается покупателем в отрезке `[fromDate, toDate]`\n- чтобы предоставить пользователю выбор интервала в течении дня, заполните `timeIntervals`\nДля `PLAIN` вариантов такой выбор отсутствует.",
"enum": [
"PLAIN",
"FLEXIBLE"
],
"type": "string"
}
},
"required": [
"amount",
"category",
"courierOptionId",
"title"
],
"type": "object"
}
],
"description": "если methodType == COURIER"
},
"methodType": {
"enum": [
"DIRECT",
"PICKUP",
"COURIER",
"YANDEX_DELIVERY"
],
"type": "string"
},
"pickupOption": {
"allOf": [
{
"properties": {
"address": {
"description": "Адрес в виде строки",
"type": "string"
},
"allowedPaymentMethods": {
"description": "Индивидуальные методы оплаты для выбранного способа самовывоза. Доступные методы оплаты заказа при выбранном способе самовывоза. Этот параметр нужно использовать, если нужно ограничить методы оплаты, указанные в `availablePaymentMethods`. Если параметр не указан, то используются все методы оплаты, перечисленные в `availablePaymentMethods`.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Стоимость доставки в точку",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Дополнительное описание",
"type": "string"
},
"fromDate": {
"description": "YYYY-MM-DD. Ближайшая возможная дата доставки",
"format": "date",
"type": "string"
},
"location": {
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
},
"phones": {
"description": "Телефоны для связи",
"items": {
"type": "string"
},
"type": "array"
},
"pickupPointId": {
"description": "Уникальный id точки самовывоза в системе продавца",
"type": "string"
},
"provider": {
"description": "Тип точки вывоза.",
"enum": [
"YANDEX_MARKET",
"BOXBERRY",
"CDEK",
"IN_STORE",
"RUSSIAN_POST",
"PICKPOINT",
"DPD"
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"schedule": {
"description": "График работы точки",
"items": {
"properties": {
"fromTime": {
"description": "HH:mm, \"08:00\"",
"type": "string"
},
"label": {
"description": "Например, \"пн-пт\"",
"type": "string"
},
"toTime": {
"description": "HH:mm, \"20:00\"",
"type": "string"
}
},
"required": [
"fromTime",
"label",
"toTime"
],
"type": "object"
},
"type": "array"
},
"storagePeriod": {
"description": "Опционально. Срок хранения товара в точке самовывоза в днях",
"format": "int32",
"type": "integer"
},
"title": {
"description": "Название точки самовывоза",
"type": "string"
},
"toDate": {
"description": "YYYY-MM-DD. Самая поздняя дата доставки",
"format": "date",
"type": "string"
}
},
"required": [
"address",
"location",
"pickupPointId",
"title"
],
"type": "object"
}
],
"description": "если methodType == PICKUP"
},
"yandexDeliveryOption": {
"allOf": [
{
"properties": {
"allowedPaymentMethods": {
"description": "Индивидуальные методы оплаты для метода доставки. Этот параметр нужно использовать, если нужно ограничить методы оплаты, указанные в `availablePaymentMethods`. Если параметр не указан, то используются все методы оплаты, перечисленные в `availablePaymentMethods`.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Стоимость доставки",
"example": "123.45",
"format": "double",
"type": "string"
},
"category": {
"enum": [
"EXPRESS",
"TODAY",
"STANDARD"
],
"type": "string"
},
"fromDatetime": {
"format": "date-time",
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"title": {
"description": "Название способа доставки. Показывается пользователю в списке вариантов",
"type": "string"
},
"toDatetime": {
"format": "date-time",
"type": "string"
},
"yandexDeliveryOptionId": {
"description": "Id предложения Яндекс Доставки",
"type": "string"
}
},
"required": [
"amount",
"category",
"title",
"yandexDeliveryOptionId"
],
"type": "object"
}
],
"description": "если methodType == YANDEX_DELIVERY"
}
},
"required": [
"methodType"
],
"type": "object"
}
],
"description": "Выбранный способ доставки"
}
},
"required": [
"cart",
"currencyCode"
],
"type": "object"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"data": {
"properties": {
"availablePaymentMethods": {
"description": "Доступные методы оплаты на платежной форме Яндекс Пэй.\n\nНужно указать все возможные методы, которые может выбрать пользователь - при оплате онлайн и доставке. Если вы интегрируете оплату только одним методом, например, Сплит — указывается один метод `[\"SPLIT\"]`.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
},
"type": "array"
},
"cart": {
"allOf": [
{
"properties": {
"coupons": {
"description": "Купоны, применённые к корзине",
"items": {
"properties": {
"description": {
"description": "Описание. Например, \"Скидка 3%\"",
"type": "string"
},
"status": {
"enum": [
"VALID",
"INVALID",
"EXPIRED",
null
],
"type": "string"
},
"value": {
"description": "Код купона",
"type": "string"
}
},
"required": [
"value"
],
"type": "object"
},
"type": "array"
},
"discounts": {
"description": "Скидки, применённые к корзине",
"items": {
"properties": {
"amount": {
"description": "Сумма скидки",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Текстовое описание",
"type": "string"
},
"discountId": {
"description": "Идентификатор скидки в системе мерчанта",
"type": "string"
}
},
"required": [
"amount",
"description",
"discountId"
],
"type": "object"
},
"type": "array"
},
"externalId": {
"description": "Переданный продавцом идентификатор корзины",
"type": "string"
},
"items": {
"description": "Корзина товаров, которую оплачивает покупатель.",
"items": {
"properties": {
"description": {
"description": "Описание товара",
"type": "string"
},
"discountedUnitPrice": {
"description": "Цена за единицу товара с учётом скидок на позицию",
"example": "123.45",
"format": "double",
"type": "string"
},
"features": {
"allOf": [
{
"properties": {
"pointsDisabled": {
"default": false,
"description": "Не распределять баллы Плюса. Используется только при создании заказа. Если это поле не указано, то баллы будут распределены на товар",
"type": "boolean"
},
"tariffModifier": {
"description": "Модификатор тарифа для расчета комиссии. Определяет, какой тариф будет применяться при расчете комиссии за обработку позиции в корзине.",
"enum": [
"VERY_LOW",
"LOW",
"MEDIUM",
"HIGH",
"VERY_HIGH",
null
],
"type": "string"
}
},
"type": "object"
}
],
"description": "Промо параметры товара"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Высота, в метрах",
"format": "float",
"type": "number"
},
"length": {
"description": "Длина, в метрах",
"format": "float",
"type": "number"
},
"weight": {
"description": "Вес, в килограммах",
"format": "float",
"type": "number"
},
"width": {
"description": "Ширина, в метрах",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
],
"description": "Размеры и вес товара. Обязательно для товара типа `PHYSICAL`"
},
"pointsAmount": {
"description": "Количество баллов Плюса\n\nПоле только для чтения. Переданные значения будут проигнорированы.",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
},
"productId": {
"description": "Id товара в системе продавца. В параметрах запроса каждый идентификатор товара `productId` должен быть уникальным",
"type": "string"
},
"quantity": {
"allOf": [
{
"properties": {
"available": {
"description": "Максимально доступное количество товара",
"example": "123.45",
"format": "double",
"type": "string"
},
"count": {
"description": "Количество товара в заказе",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"count"
],
"type": "object"
}
],
"description": "Количество товара в заказе"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
],
"description": "Данные для формирования чека"
},
"skuId": {
"description": "Уникальный id, который описывает единицу ассортимента. Необходим для применения индивидуального тарифа.",
"type": "string"
},
"subtotal": {
"description": "Суммарная цена за позицию без учета скидок",
"example": "123.45",
"format": "double",
"type": "string"
},
"title": {
"description": "Наименование товара",
"type": "string"
},
"total": {
"description": "Суммарная цена за позицию с учётом скидок на позицию",
"example": "123.45",
"format": "double",
"type": "string"
},
"type": {
"default": "UNSPECIFIED",
"description": "Тип товара. Важен для интеграции с доставками",
"enum": [
"PHYSICAL",
"DIGITAL",
"UNSPECIFIED"
],
"type": "string"
},
"unitPrice": {
"description": "Полная цена за единицу товара без учетка скидки",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"productId",
"quantity",
"total"
],
"type": "object"
},
"type": "array"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Высота, в метрах",
"format": "float",
"type": "number"
},
"length": {
"description": "Длина, в метрах",
"format": "float",
"type": "number"
},
"weight": {
"description": "Вес, в килограммах",
"format": "float",
"type": "number"
},
"width": {
"description": "Ширина, в метрах",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
]
},
"total": {
"allOf": [
{
"properties": {
"amount": {
"description": "Стоимость корзины с учетом всех скидок.",
"example": "123.45",
"format": "double",
"type": "string"
},
"pointsAmount": {
"description": "Количество баллов Плюса\n\nПоле только для чтения. Переданные значения будут проигнорированы.",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
}
},
"required": [
"amount"
],
"type": "object"
}
],
"description": "Итоговая информация о стоимости заказа."
}
},
"required": [
"items",
"total"
],
"type": "object"
}
],
"description": "Корзина"
},
"currencyCode": {
"description": "Трехбуквенный код валюты заказа (ISO 4217)",
"enum": [
"RUB",
"UZS"
],
"type": "string"
},
"enableCommentField": {
"type": "boolean"
},
"enableCoupons": {
"type": "boolean"
},
"metadata": {
"description": "Произвольные данные, переданные при инициализации кнопки",
"type": "string"
},
"orderAmount": {
"description": "Полная стоимость заказа к оплате с учётом возвратов, доставки, скидок и промокодов",
"example": "123.45",
"format": "double",
"type": "string"
},
"requiredFields": {
"allOf": [
{
"properties": {
"billingContact": {
"allOf": [
{
"properties": {
"email": {
"type": "boolean"
}
},
"type": "object"
}
]
},
"shippingContact": {
"allOf": [
{
"properties": {
"email": {
"type": "boolean"
},
"name": {
"type": "boolean"
},
"phone": {
"type": "boolean"
}
},
"type": "object"
}
]
}
},
"type": "object"
}
],
"description": "Данные пользователя, необходимые для оформления заказа"
},
"shipping": {
"allOf": [
{
"properties": {
"availableCourierOptions": {
"description": "Доступные варианты доставки (при наличии адреса в запросе)",
"items": {
"properties": {
"allowedPaymentMethods": {
"description": "Индивидуальные методы оплаты для метода доставки. Этот параметр нужно использовать, если нужно ограничить методы оплаты, указанные в `availablePaymentMethods`. Если параметр не указан, то используются все методы оплаты, перечисленные в `availablePaymentMethods`.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Стоимость доставки",
"example": "123.45",
"format": "double",
"type": "string"
},
"category": {
"enum": [
"EXPRESS",
"TODAY",
"STANDARD"
],
"type": "string"
},
"courierOptionId": {
"description": "id выбранного варианта доставки в системе продавца",
"type": "string"
},
"fromDate": {
"description": "Ближайшая дата доставки для `type: PLAIN`. Начало интервала выбора даты доставки для `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"fromTime": {
"description": "Начало интервала времени доставки. Только для `type: PLAIN`",
"type": "string"
},
"provider": {
"description": "Тип службы доставки.",
"enum": [
"BOXBERRY",
"CDEK",
"RUSSIAN_POST",
"EMS",
"COURIER",
"DHL",
"EXPRESS_DELIVERY",
"FIVEPOST",
"OZON_ROCKET",
"DPD",
"SBER_LOGISTICS",
"PEK",
"PICKPOINT",
"KCE",
"PONY_EXPRESS",
"YANDEX_DELIVERY",
null
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"timeIntervals": {
"allOf": [
{
"properties": {
"grid": {
"allOf": [
{
"properties": {
"duration": {
"description": "Продолжительность каждого интервала",
"type": "string"
},
"end": {
"description": "Максимальное время начала самого последнего интервала",
"type": "string"
},
"start": {
"description": "Время начала самого первого интервала",
"type": "string"
},
"step": {
"description": "Разница во времени между началами двух соседних интервалов",
"type": "string"
}
},
"required": [
"duration",
"end",
"start",
"step"
],
"type": "object"
}
],
"description": "Кодирует интервалы в виде сетки. Используйте этот формат, если необходимо задать больше 20 интервалов доставки.\nПример: `{\"start\": \"09:00\", \"end\": \"21:00\", \"duration\": \"00:20\", \"step\": \"01:00\"}` трактуется как набор интервалов: `[{\"start\": \"09:00\", \"end\": \"09:20\"}, {\"start\": \"10:00\", \"end\": \"10:20\"}, ..., {\"start\": \"20:00\", \"end\": \"20:20\"}]`"
},
"type": {
"description": "Если указан тип `GRID`, то необходимо задать поле `grid`. Если указан тип `VALUES`, то необходимо задать поле `values`",
"enum": [
"GRID",
"VALUES"
],
"type": "string"
},
"values": {
"description": "Задаёт список интервалов напрямую. Подходит для небольшого количества интервалов доставки. Рекомендуемое максимальная количество интервалов - 20",
"items": {
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"type"
],
"type": "object"
}
],
"description": "Кодирует интервалы времени доставки, доступные для выбора. Только для `type: FLEXIBLE`"
},
"title": {
"description": "Название способа доставки. Показывается пользователю в списке вариантов",
"type": "string"
},
"toDate": {
"description": "Самая поздняя дата доставки для `type: PLAIN`. Конец интервала выбора даты доставки для `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"toTime": {
"description": "Конец интервала времени доставки. Только для `type: PLAIN`",
"type": "string"
},
"type": {
"default": "PLAIN",
"description": "Тип опции.\nДля `FLEXIBLE` вариантов доставки пользователю дается возможность выбрать желаемые дату и интервал:\n- дата доставки выбирается покупателем в отрезке `[fromDate, toDate]`\n- чтобы предоставить пользователю выбор интервала в течении дня, заполните `timeIntervals`\nДля `PLAIN` вариантов такой выбор отсутствует.",
"enum": [
"PLAIN",
"FLEXIBLE"
],
"type": "string"
}
},
"required": [
"amount",
"category",
"courierOptionId",
"title"
],
"type": "object"
},
"type": "array"
},
"availableMethods": {
"items": {
"enum": [
"DIRECT",
"PICKUP",
"COURIER",
"YANDEX_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"courierOptionsError": {
"description": "Ошибка при определении доставки. При указании этого параметра, в интерфейсе пользователя будет отображаться описание ошибки.",
"enum": [
"WRONG_ADDRESS",
"DELIVERY_NOT_AVAILABLE_FOR_ADDRESS",
null
],
"type": "string"
},
"yandexDelivery": {
"allOf": [
{
"properties": {
"warehouse": {
"allOf": [
{
"properties": {
"address": {
"properties": {
"addressLine": {
"description": "Полный адрес",
"type": "string"
},
"building": {
"type": "string"
},
"comment": {
"type": "string"
},
"country": {
"type": "string"
},
"district": {
"type": "string"
},
"entrance": {
"type": "string"
},
"floor": {
"type": "string"
},
"intercom": {
"type": "string"
},
"locale": {
"type": "string"
},
"locality": {
"type": "string"
},
"location": {
"allOf": [
{
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
}
]
},
"region": {
"type": "string"
},
"room": {
"type": "string"
},
"street": {
"type": "string"
},
"zip": {
"type": "string"
}
},
"required": [
"building",
"country"
],
"type": "object"
},
"contact": {
"properties": {
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneAdditionalCode": {
"type": "string"
},
"secondName": {
"type": "string"
}
},
"type": "object"
},
"emergencyContact": {
"properties": {
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneAdditionalCode": {
"type": "string"
},
"secondName": {
"type": "string"
}
},
"type": "object"
},
"schedule": {
"allOf": [
{
"properties": {
"custom": {
"additionalProperties": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"nullable": true
},
"description": "Переопределённое расписание для конкретных дат. Ключи - даты в формате \"YYYY-MM-DD\", значения - объекты {\"start\": string, \"end\": string} или null для указания выходных",
"nullable": true,
"type": "object"
},
"tzoffset": {
"description": "Смещение часового пояса относительно UTC в минутах. Например, 180 для Москвы (UTC+3)",
"format": "int32",
"maximum": 840,
"minimum": -720,
"type": "integer"
},
"weekly": {
"allOf": [
{
"properties": {
"fri": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Пятница"
},
"mon": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Понедельник"
},
"sat": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Суббота"
},
"sun": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Воскресенье"
},
"thu": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Четверг"
},
"tue": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Вторник"
},
"wed": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Среда"
}
},
"type": "object"
}
],
"description": "Еженедельное расписание работы"
}
},
"required": [
"tzoffset",
"weekly"
],
"type": "object"
}
],
"description": "Расписание работы"
}
},
"required": [
"address",
"contact",
"emergencyContact"
],
"type": "object"
}
]
}
},
"type": "object"
}
]
}
},
"required": [
"availableMethods"
],
"type": "object"
}
]
}
},
"required": [
"cart",
"currencyCode"
],
"type": "object"
},
"status": {
"type": "string"
}
},
"required": [
"data",
"status"
],
"type": "object"
}
}
},
"description": "Вебхук успешно получен и обработан.\nТело ответа может быть любым, рекомендуем отправить `{\"status\": \"success\"}`.\nПри получении `200` Яндекс Пэй прекращает отправку повторных вебхуков."
},
"400": {
"content": {
"application/json": {
"schema": {
"properties": {
"reason": {
"description": "Описание причины ошибки.",
"type": "string"
},
"reasonCode": {
"description": "Код ошибки:\n\n- `FORBIDDEN` — заказ существует, но был оплачен не через Яндекс Пэй;\n- `ORDER_NOT_FOUND` — заказ не найден в системе продавца;\n- `ORDER_AMOUNT_MISMATCH` — сумма заказа не совпадает с суммой в системе продавца;\n- `ORDER_DETAILS_MISMATCH` — детали заказа отличаются от данных в системе продавца;\n- `OTHER` — общая ошибка;\n- `UNAUTHORIZED` — не удалось проверить подпись JWT-токена;\n- `TOKEN_EXPIRED` — срок действия JWT-токена истек;\n- `CONFLICT` — данные в нотификации расходятся с состоянием заказа в системе продавца. Например, пришла нотификация об оплате для отмененного заказа.",
"enum": [
"FORBIDDEN",
"ITEM_NOT_FOUND",
"ORDER_NOT_FOUND",
"ORDER_AMOUNT_MISMATCH",
"ORDER_DETAILS_MISMATCH",
"OUT_OF_INVENTORY",
"PICKUP_POINT_NOT_FOUND",
"SHIPPING_DETAILS_MISMATCH",
"OTHER",
"UNAUTHORIZED",
"TOKEN_EXPIRED",
"CONFLICT"
],
"type": "string"
},
"status": {
"default": "fail",
"type": "string"
}
},
"required": [
"reasonCode"
],
"type": "object"
}
}
},
"description": "Ошибка обработки вебхука.\nПри отсутствии ответа или любом статусе кроме `200` Яндекс Пэй генерирует новый JWT-токен и повторяет отправку вебхука:\n- первые 10 раз через 5 мс;\n- далее с экспоненциально возрастающим интервалом до 15 минут;\n- затем каждые 15 минут в течение 24 часов.\nОбщее время повторных отправок — 24 часа. После этого вебхук считается недоставленным."
}
},
"summary": "/v1/order/render"
}
},
"/v1/order/create": {
"post": {
"description": "Запрос на валидацию или создание заказа на стороне продавца.\n\nВ параметрах запроса передается заполненная корзина с ценами товаров, выбранным способом доставки\nи полной ценой заказа (`orderAmount`). Продавец проверяет корректность цен и состава корзины.\n\nЕсли корзина корректна, то продавец резервирует товар на 30 минут и отвечает успешным кодом ответа\nв бэкенд Яндекс Пэй. Бэкенд Яндекс Пэй в течении 30 минут должен прислать нотификации о статусе оплаты.\nТак же продавец может poll-ить статус заказа через ручку получения деталей заказа\nв [Yandex Pay API](https://pay.yandex.ru/ru/docs/custom/backend/yandex-pay-api/).\n\nЕсли корзина корректна, то продавец резервирует товар на 30 минут и отправляет успешный код ответа\nс номером заказа. Если продавец не получил [нотификацию](./webhook) о изменении статуса оплаты заказа в течении 30 минут,\nто необходимо синхронно получить [детали заказа](../yandex-pay-api/order/merchant_v1_orders-post) перед снятием\nрезерва на товар.\n\n{% note warning %}\n\nТолько после получении статуса оплаты `FAILED` продавец может снимать резерв с товаров и отмечать\nзаказ отмененным.\n\n{% endnote %}\n\nВ случае получения 4xx ответа валидация заказа считается неуспешной, оплата заказа не будет\nпроводиться, повторных попыток проверки заказа осуществляться не будет. В случае получения\n5xx ответа запрос будет повторен.",
"operationId": "order-create",
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"billingContact": {
"allOf": [
{
"properties": {
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneAdditionalCode": {
"type": "string"
},
"secondName": {
"type": "string"
}
},
"type": "object"
}
]
},
"cart": {
"allOf": [
{
"properties": {
"cartId": {
"description": "Внутренний идентификатор корзины Яндекс Пэй.\n\nБэкенд магазина должен использовать этот параметр как идентификатор корзины покупателя и как ключ идемпотентности для запроса `/order/create`. Если бэкенд магазина получает повторный запрос `/order/create`, то необходимо вернуть уже созданный номер заказа. На одну корзину (`cartId`) бэкенд магазина может создать не больше одного заказа (`orderId`).",
"type": "string"
},
"coupons": {
"description": "Купоны, применённые к корзине",
"items": {
"properties": {
"description": {
"description": "Описание. Например, \"Скидка 3%\"",
"type": "string"
},
"status": {
"enum": [
"VALID",
"INVALID",
"EXPIRED",
null
],
"type": "string"
},
"value": {
"description": "Код купона",
"type": "string"
}
},
"required": [
"value"
],
"type": "object"
},
"type": "array"
},
"discounts": {
"description": "Скидки, применённые к корзине",
"items": {
"properties": {
"amount": {
"description": "Сумма скидки",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Текстовое описание",
"type": "string"
},
"discountId": {
"description": "Идентификатор скидки в системе мерчанта",
"type": "string"
}
},
"required": [
"amount",
"description",
"discountId"
],
"type": "object"
},
"type": "array"
},
"externalId": {
"description": "Переданный продавцом идентификатор корзины",
"type": "string"
},
"items": {
"description": "Позиция корзины",
"items": {
"properties": {
"description": {
"description": "Описание товара",
"type": "string"
},
"discountedUnitPrice": {
"description": "Цена за единицу товара с учётом скидок на позицию",
"example": "123.45",
"format": "double",
"type": "string"
},
"features": {
"allOf": [
{
"properties": {
"pointsDisabled": {
"default": false,
"description": "Не распределять баллы Плюса. Используется только при создании заказа. Если это поле не указано, то баллы будут распределены на товар",
"type": "boolean"
},
"tariffModifier": {
"description": "Модификатор тарифа для расчета комиссии. Определяет, какой тариф будет применяться при расчете комиссии за обработку позиции в корзине.",
"enum": [
"VERY_LOW",
"LOW",
"MEDIUM",
"HIGH",
"VERY_HIGH",
null
],
"type": "string"
}
},
"type": "object"
}
],
"description": "Промо параметры товара"
},
"finalPrice": {
"description": "Цена за единицу товара с учётом всех скидок на позицию и на корзину",
"example": "123.45",
"format": "double",
"type": "string"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Высота, в метрах",
"format": "float",
"type": "number"
},
"length": {
"description": "Длина, в метрах",
"format": "float",
"type": "number"
},
"weight": {
"description": "Вес, в килограммах",
"format": "float",
"type": "number"
},
"width": {
"description": "Ширина, в метрах",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
],
"description": "Размеры и вес товара. Обязательно для товара типа `PHYSICAL`"
},
"pointsAmount": {
"description": "Количество баллов Плюса\n\nПоле только для чтения. Переданные значения будут проигнорированы.",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
},
"productId": {
"description": "Id товара в системе продавца. В параметрах запроса каждый идентификатор товара `productId` должен быть уникальным",
"type": "string"
},
"quantity": {
"allOf": [
{
"properties": {
"available": {
"description": "Максимально доступное количество товара",
"example": "123.45",
"format": "double",
"type": "string"
},
"count": {
"description": "Количество товара в заказе",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"count"
],
"type": "object"
}
],
"description": "Количество товара в заказе"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
],
"description": "Данные для формирования чека"
},
"skuId": {
"description": "Уникальный id, который описывает единицу ассортимента. Необходим для применения индивидуального тарифа.",
"type": "string"
},
"subtotal": {
"description": "Суммарная цена за позицию без учета скидок",
"example": "123.45",
"format": "double",
"type": "string"
},
"title": {
"description": "Наименование товара",
"type": "string"
},
"total": {
"description": "Суммарная цена за позицию с учётом скидок на позицию",
"example": "123.45",
"format": "double",
"type": "string"
},
"type": {
"default": "UNSPECIFIED",
"description": "Тип товара. Важен для интеграции с доставками",
"enum": [
"PHYSICAL",
"DIGITAL",
"UNSPECIFIED"
],
"type": "string"
},
"unitPrice": {
"description": "Полная цена за единицу товара без учетка скидки",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"productId",
"quantity"
],
"type": "object"
},
"type": "array"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Высота, в метрах",
"format": "float",
"type": "number"
},
"length": {
"description": "Длина, в метрах",
"format": "float",
"type": "number"
},
"weight": {
"description": "Вес, в килограммах",
"format": "float",
"type": "number"
},
"width": {
"description": "Ширина, в метрах",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
]
},
"total": {
"allOf": [
{
"properties": {
"amount": {
"description": "Стоимость корзины с учетом всех скидок.",
"example": "123.45",
"format": "double",
"type": "string"
},
"pointsAmount": {
"description": "Количество баллов Плюса\n\nПоле только для чтения. Переданные значения будут проигнорированы.",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
}
},
"required": [
"amount"
],
"type": "object"
}
],
"default": null,
"description": "Итоговая стоимость корзины, которая пойдет в оплату"
}
},
"required": [
"items"
],
"type": "object"
}
],
"description": "Корзина"
},
"currencyCode": {
"description": "Трехбуквенный код валюты заказа (ISO 4217)",
"enum": [
"RUB",
"UZS"
],
"type": "string"
},
"merchantId": {
"format": "uuid",
"type": "string"
},
"metadata": {
"description": "Произвольные данные, переданные при инициализации кнопки",
"type": "string"
},
"orderAmount": {
"description": "Полная стоимость заказа к оплате с учётом возвратов, доставки, скидок и промокодов",
"example": "123.45",
"format": "double",
"type": "string"
},
"orderId": {
"description": "Id существующего заказа на стороне продавца, переданный при инициализации кнопки",
"type": "string"
},
"paymentMethod": {
"allOf": [
{
"properties": {
"cardLast4": {
"type": "string"
},
"cardNetwork": {
"description": "Платежная система",
"enum": [
"AMEX",
"DISCOVER",
"JCB",
"MASTERCARD",
"MAESTRO",
"VISAELECTRON",
"VISA",
"MIR",
"UNIONPAY",
"UZCARD",
"HUMOCARD",
"UNKNOWN",
"UNDEFINED",
null
],
"type": "string"
},
"methodType": {
"enum": [
"CARD",
"SPLIT",
"SBP",
"SPLIT_SBP",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
}
},
"required": [
"methodType"
],
"type": "object"
}
],
"description": "Выбранный способ оплаты"
},
"shippingAddress": {
"allOf": [
{
"properties": {
"addressLine": {
"description": "Полный адрес",
"type": "string"
},
"building": {
"type": "string"
},
"comment": {
"type": "string"
},
"country": {
"type": "string"
},
"district": {
"type": "string"
},
"entrance": {
"type": "string"
},
"floor": {
"type": "string"
},
"intercom": {
"type": "string"
},
"locale": {
"type": "string"
},
"locality": {
"type": "string"
},
"location": {
"allOf": [
{
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
}
]
},
"region": {
"type": "string"
},
"room": {
"type": "string"
},
"street": {
"type": "string"
},
"zip": {
"type": "string"
}
},
"required": [
"building",
"country"
],
"type": "object"
}
],
"description": "Адрес доставки доступен, если выбран метод COURIER"
},
"shippingContact": {
"allOf": [
{
"properties": {
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneAdditionalCode": {
"type": "string"
},
"secondName": {
"type": "string"
}
},
"type": "object"
}
]
},
"shippingMethod": {
"allOf": [
{
"properties": {
"courierOption": {
"allOf": [
{
"properties": {
"allowedPaymentMethods": {
"description": "Индивидуальные методы оплаты для метода доставки. Этот параметр нужно использовать, если нужно ограничить методы оплаты, указанные в `availablePaymentMethods`. Если параметр не указан, то используются все методы оплаты, перечисленные в `availablePaymentMethods`.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Стоимость доставки",
"example": "123.45",
"format": "double",
"type": "string"
},
"category": {
"enum": [
"EXPRESS",
"TODAY",
"STANDARD"
],
"type": "string"
},
"courierOptionId": {
"description": "id выбранного варианта доставки в системе продавца",
"type": "string"
},
"customerChoice": {
"allOf": [
{
"properties": {
"date": {
"format": "date",
"type": "string"
},
"time": {
"allOf": [
{
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
]
}
},
"required": [
"date"
],
"type": "object"
}
],
"description": "Выбранные пользователем дата и интервал. Только для `type: FLEXIBLE`"
},
"fromDate": {
"description": "Ближайшая дата доставки для `type: PLAIN`. Начало интервала выбора даты доставки для `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"fromTime": {
"description": "Начало интервала времени доставки. Только для `type: PLAIN`",
"type": "string"
},
"provider": {
"description": "Тип службы доставки.",
"enum": [
"BOXBERRY",
"CDEK",
"RUSSIAN_POST",
"EMS",
"COURIER",
"DHL",
"EXPRESS_DELIVERY",
"FIVEPOST",
"OZON_ROCKET",
"DPD",
"SBER_LOGISTICS",
"PEK",
"PICKPOINT",
"KCE",
"PONY_EXPRESS",
"YANDEX_DELIVERY",
null
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"timeIntervals": {
"allOf": [
{
"properties": {
"grid": {
"allOf": [
{
"properties": {
"duration": {
"description": "Продолжительность каждого интервала",
"type": "string"
},
"end": {
"description": "Максимальное время начала самого последнего интервала",
"type": "string"
},
"start": {
"description": "Время начала самого первого интервала",
"type": "string"
},
"step": {
"description": "Разница во времени между началами двух соседних интервалов",
"type": "string"
}
},
"required": [
"duration",
"end",
"start",
"step"
],
"type": "object"
}
],
"description": "Кодирует интервалы в виде сетки. Используйте этот формат, если необходимо задать больше 20 интервалов доставки.\nПример: `{\"start\": \"09:00\", \"end\": \"21:00\", \"duration\": \"00:20\", \"step\": \"01:00\"}` трактуется как набор интервалов: `[{\"start\": \"09:00\", \"end\": \"09:20\"}, {\"start\": \"10:00\", \"end\": \"10:20\"}, ..., {\"start\": \"20:00\", \"end\": \"20:20\"}]`"
},
"type": {
"description": "Если указан тип `GRID`, то необходимо задать поле `grid`. Если указан тип `VALUES`, то необходимо задать поле `values`",
"enum": [
"GRID",
"VALUES"
],
"type": "string"
},
"values": {
"description": "Задаёт список интервалов напрямую. Подходит для небольшого количества интервалов доставки. Рекомендуемое максимальная количество интервалов - 20",
"items": {
"properties": {
"end": {
"description": "Время конца интервала",
"type": "string"
},
"start": {
"description": "Время начала интервала",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"type"
],
"type": "object"
}
],
"description": "Кодирует интервалы времени доставки, доступные для выбора. Только для `type: FLEXIBLE`"
},
"title": {
"description": "Название способа доставки. Показывается пользователю в списке вариантов",
"type": "string"
},
"toDate": {
"description": "Самая поздняя дата доставки для `type: PLAIN`. Конец интервала выбора даты доставки для `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"toTime": {
"description": "Конец интервала времени доставки. Только для `type: PLAIN`",
"type": "string"
},
"type": {
"default": "PLAIN",
"description": "Тип опции.\nДля `FLEXIBLE` вариантов доставки пользователю дается возможность выбрать желаемые дату и интервал:\n- дата доставки выбирается покупателем в отрезке `[fromDate, toDate]`\n- чтобы предоставить пользователю выбор интервала в течении дня, заполните `timeIntervals`\nДля `PLAIN` вариантов такой выбор отсутствует.",
"enum": [
"PLAIN",
"FLEXIBLE"
],
"type": "string"
}
},
"required": [
"amount",
"category",
"courierOptionId",
"title"
],
"type": "object"
}
],
"description": "если methodType == COURIER"
},
"methodType": {
"enum": [
"DIRECT",
"PICKUP",
"COURIER",
"YANDEX_DELIVERY"
],
"type": "string"
},
"pickupOption": {
"allOf": [
{
"properties": {
"address": {
"description": "Адрес в виде строки",
"type": "string"
},
"allowedPaymentMethods": {
"description": "Индивидуальные методы оплаты для выбранного способа самовывоза. Доступные методы оплаты заказа при выбранном способе самовывоза. Этот параметр нужно использовать, если нужно ограничить методы оплаты, указанные в `availablePaymentMethods`. Если параметр не указан, то используются все методы оплаты, перечисленные в `availablePaymentMethods`.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Стоимость доставки в точку",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Дополнительное описание",
"type": "string"
},
"fromDate": {
"description": "YYYY-MM-DD. Ближайшая возможная дата доставки",
"format": "date",
"type": "string"
},
"location": {
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
},
"phones": {
"description": "Телефоны для связи",
"items": {
"type": "string"
},
"type": "array"
},
"pickupPointId": {
"description": "Уникальный id точки самовывоза в системе продавца",
"type": "string"
},
"provider": {
"description": "Тип точки вывоза.",
"enum": [
"YANDEX_MARKET",
"BOXBERRY",
"CDEK",
"IN_STORE",
"RUSSIAN_POST",
"PICKPOINT",
"DPD"
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"schedule": {
"description": "График работы точки",
"items": {
"properties": {
"fromTime": {
"description": "HH:mm, \"08:00\"",
"type": "string"
},
"label": {
"description": "Например, \"пн-пт\"",
"type": "string"
},
"toTime": {
"description": "HH:mm, \"20:00\"",
"type": "string"
}
},
"required": [
"fromTime",
"label",
"toTime"
],
"type": "object"
},
"type": "array"
},
"storagePeriod": {
"description": "Опционально. Срок хранения товара в точке самовывоза в днях",
"format": "int32",
"type": "integer"
},
"title": {
"description": "Название точки самовывоза",
"type": "string"
},
"toDate": {
"description": "YYYY-MM-DD. Самая поздняя дата доставки",
"format": "date",
"type": "string"
}
},
"required": [
"address",
"location",
"pickupPointId",
"title"
],
"type": "object"
}
],
"description": "если methodType == PICKUP"
},
"yandexDeliveryOption": {
"allOf": [
{
"properties": {
"allowedPaymentMethods": {
"description": "Индивидуальные методы оплаты для метода доставки. Этот параметр нужно использовать, если нужно ограничить методы оплаты, указанные в `availablePaymentMethods`. Если параметр не указан, то используются все методы оплаты, перечисленные в `availablePaymentMethods`.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Стоимость доставки",
"example": "123.45",
"format": "double",
"type": "string"
},
"category": {
"enum": [
"EXPRESS",
"TODAY",
"STANDARD"
],
"type": "string"
},
"fromDatetime": {
"format": "date-time",
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"title": {
"description": "Название способа доставки. Показывается пользователю в списке вариантов",
"type": "string"
},
"toDatetime": {
"format": "date-time",
"type": "string"
},
"yandexDeliveryOptionId": {
"description": "Id предложения Яндекс Доставки",
"type": "string"
}
},
"required": [
"amount",
"category",
"title",
"yandexDeliveryOptionId"
],
"type": "object"
}
],
"description": "если methodType == YANDEX_DELIVERY"
}
},
"required": [
"methodType"
],
"type": "object"
}
],
"description": "Выбранный способ доставки"
}
},
"required": [
"cart",
"currencyCode"
],
"type": "object"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"data": {
"properties": {
"metadata": {
"type": "string"
},
"orderId": {
"description": "ID созданного заказа на стороне продавца",
"type": "string"
},
"redirectUrls": {
"allOf": [
{
"properties": {
"onAbort": {
"description": "Ссылка для переадресации пользователя в случае отмены процесса оплаты. Отмену оплаты осуществляет пользователь на форме для оплаты.",
"type": "string"
},
"onError": {
"description": "Обязательное поле только для онлайн-магазинов. Ссылка для переадресации пользователя в случае возникновения ошибки во время оплаты, или если срок ссылки на оплату истек.",
"type": "string"
},
"onSuccess": {
"description": "Обязательное поле только для онлайн-магазинов. Ссылка для переадресации пользователя в случае успешной оплаты.",
"type": "string"
}
},
"required": [
"onError",
"onSuccess"
],
"type": "object"
}
]
},
"ttl": {
"default": null,
"description": "Время жизни заказа (в секундах)",
"format": "int32",
"type": "integer"
}
},
"required": [
"orderId"
],
"type": "object"
},
"status": {
"type": "string"
}
},
"required": [
"data",
"status"
],
"type": "object"
}
}
},
"description": "Вебхук успешно получен и обработан.\nТело ответа может быть любым, рекомендуем отправить `{\"status\": \"success\"}`.\nПри получении `200` Яндекс Пэй прекращает отправку повторных вебхуков."
},
"400": {
"content": {
"application/json": {
"schema": {
"properties": {
"reason": {
"description": "Описание причины ошибки.",
"type": "string"
},
"reasonCode": {
"description": "Код ошибки:\n\n- `FORBIDDEN` — заказ существует, но был оплачен не через Яндекс Пэй;\n- `ORDER_NOT_FOUND` — заказ не найден в системе продавца;\n- `ORDER_AMOUNT_MISMATCH` — сумма заказа не совпадает с суммой в системе продавца;\n- `ORDER_DETAILS_MISMATCH` — детали заказа отличаются от данных в системе продавца;\n- `OTHER` — общая ошибка;\n- `UNAUTHORIZED` — не удалось проверить подпись JWT-токена;\n- `TOKEN_EXPIRED` — срок действия JWT-токена истек;\n- `CONFLICT` — данные в нотификации расходятся с состоянием заказа в системе продавца. Например, пришла нотификация об оплате для отмененного заказа.",
"enum": [
"FORBIDDEN",
"ITEM_NOT_FOUND",
"ORDER_NOT_FOUND",
"ORDER_AMOUNT_MISMATCH",
"ORDER_DETAILS_MISMATCH",
"OUT_OF_INVENTORY",
"PICKUP_POINT_NOT_FOUND",
"SHIPPING_DETAILS_MISMATCH",
"OTHER",
"UNAUTHORIZED",
"TOKEN_EXPIRED",
"CONFLICT"
],
"type": "string"
},
"status": {
"default": "fail",
"type": "string"
}
},
"required": [
"reasonCode"
],
"type": "object"
}
}
},
"description": "Ошибка обработки вебхука.\nПри отсутствии ответа или любом статусе кроме `200` Яндекс Пэй генерирует новый JWT-токен и повторяет отправку вебхука:\n- первые 10 раз через 5 мс;\n- далее с экспоненциально возрастающим интервалом до 15 минут;\n- затем каждые 15 минут в течение 24 часов.\nОбщее время повторных отправок — 24 часа. После этого вебхук считается недоставленным."
}
},
"summary": "/v1/order/create"
}
},
"/v1/webhook": {
"post": {
"description": "Нотификации об изменении статуса.\n\nЗапрос отправляется при изменении статуса заказа или операции по заказу.\n\nПоддерживаемые события:\n\n- `ORDER_STATUS_UPDATED` — обновление статуса заказа;\n- `OPERATION_STATUS_UPDATED` — обновление статуса операций списания, возврата или отмены платежа.\n<!-- - `SUBSCRIPTION_STATUS_UPDATED` — сейчас этот статус не отдаем? -->\n\n## Формат запроса {#webhook-format}\n\nЗапрос приходит в формате `application/octet-stream` в виде JWT-токена, подписанного по алгоритму ES256. Перед обработкой запроса проверьте его подлинность. Как это сделать, читайте в разделе [Аутентификация](../merchant-api/index.md).\n\nPayload проверенного и декодированного JWT-токена содержит JSON с данными события. Посмотрите [примеры событий](#webhook-examples).\n\n{% note warning \"Если в токене нет тела запроса\" %}\n\n- Убедитесь, что бэкенд вашего магазина готов принимать сообщение с заголовком `Content-Type: application/octet-stream`.\n- Проверьте, что брандмауэр не блокирует входящие запросы и не обрезает тело запроса.\n\nДругие ошибки смотрите в разделе [Решение проблем c вебхуками](../merchant-api/index.md#troubleshooting).\n\n{% endnote %}\n\n## Идемпотентность операций {#idempotency}\n\nПри действиях с заказом, например, при возврате средств методом [/v2/orders/{order_id}/refund](../yandex-pay-api/order/merchant_v2_refund-post.md), передавайте уникальный идентификатор операции `externalOperationId`.\n\nС помощью него вы сможете:\n- понять, по какой операции пришла нотификация;\n- проверить состояние операции через метод [v1/operations/{external_operation_id}](../yandex-pay-api/operation/merchant_v1_operations-get.md);\n- защититься от дублирования.\n\nЕсли отправите запрос повторно с тем же `externalOperationId`, то получите:\n- информацию о текущей операции, если она в процессе;\n- ошибку c `reasonCode: \"DUPLICATE_EXTERNAL_OPERATION_ID\"`, если операция завершена.\n\n## Примеры событий {#webhook-examples}\n\n### Оплата заказа\n\n{% list tabs %}\n\n- Успех\n\n ```json\n {\n \"merchantId\": \"xxxxxxxxx-xxx-5xxx-xxxxx-xxxxxxxx\",\n \"event\": \"ORDER_STATUS_UPDATED\",\n \"eventTime\": \"2023-11-26T08:11:09.359370+00:00\",\n \"order\": {\n \"orderId\": \"700aa3f04df64b3b8712d6b51f752e8b\",\n \"paymentStatus\": \"CAPTURED\"\n }\n }\n ```\n\n Посмотрите пример JWT-токена на [jwt.io](https://jwt.io/#debugger-io?token=eyJhbGciOiJFUzI1NiIsImV4cCI6MTcwMDk4NzYwMCwiaWF0IjoxNzAwOTg3MzAwLCJraWQiOiIxLW1lcmNoYW50LWFwaSIsInR5cCI6IkpXVCJ9.eyJtZXJjaGFudElkIjoieHh4eHh4eHh4LXh4eC01eHh4LXh4eHh4LXh4eHh4eHh4IiwiZXZlbnQiOiJPUkRFUl9TVEFUVVNfVVBEQVRFRCIsImV2ZW50VGltZSI6IjIwMjMtMTEtMjZUMDg6MTE6MDkuMzU5MzcwKzAwOjAwIiwib3JkZXIiOnsib3JkZXJJZCI6IjcwMGFhM2YwNGRmNjRiM2I4NzEyZDZiNTFmNzUyZThiIiwicGF5bWVudFN0YXR1cyI6IkNBUFRVUkVEIn19.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx).\n\n **Пример запроса от Яндекс Пэй:**\n\n ```(bash)\n curl -X POST https://test.ru/some/prefix/v1/webhook \\\n --header 'User-Agent: YandexPay/1.0' \\\n --header 'Accept: \\*/\\*' \\\n --header 'Content-Type: application/octet-stream' \\\n --header 'X-Request-Id: ff2a54885c4e45309853d2e33af1d63b\\\\_3a70f3062db640fcb2f3c34de1a27bd5' \\\n --header 'X-Request-Timeout: 13970' \\\n --compressed \\\n -d eyJhbGciOiJFUzI1NiIsImV4cCI6MTcwMDk4NzYwMCwiaWF0IjoxNzAwOTg3MzAwLCJraWQiOiIxLW1lcmNoYW50LWFwaSIsInR5cCI6IkpXVCJ9.eyJtZXJjaGFudElkIjoieHh4eHh4eHh4LXh4eC01eHh4LXh4eHh4LXh4eHh4eHh4IiwiZXZlbnQiOiJPUkRFUl9TVEFUVVNfVVBEQVRFRCIsImV2ZW50VGltZSI6IjIwMjMtMTEtMjZUMDg6MTE6MDkuMzU5MzcwKzAwOjAwIiwib3JkZXIiOnsib3JkZXJJZCI6IjcwMGFhM2YwNGRmNjRiM2I4NzEyZDZiNTFmNzUyZThiIiwicGF5bWVudFN0YXR1cyI6IkNBUFRVUkVEIn19.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n ```\n\n- Неудача\n\n ```json\n {\n \"merchantId\": \"xxxxxxxxx-xxx-5xxx-xxxxx-xxxxxxxx\",\n \"event\": \"ORDER_STATUS_UPDATED\",\n \"eventTime\": \"2024-04-25T07:56:29.974810+00:00\",\n \"order\": {\n \"orderId\": \"253222_1714029088\",\n \"paymentStatus\": \"FAILED\"\n }\n }\n ```\n\n Посмотрите пример JWT-токена на [jwt.io](https://jwt.io/#debugger-io?token=eyJhbGciOiJFUzI1NiIsImV4cCI6MTcxNDAzMjIyMSwiaWF0IjoxNzE0MDMxOTIxLCJraWQiOiIxLW1lcmNoYW50LWFwaSIsInR5cCI6IkpXVCJ9.eyJtZXJjaGFudElkIjoieHh4eHh4eHh4LXh4eC01eHh4LXh4eHh4LXh4eHh4eHh4IiwiZXZlbnQiOiJPUkRFUl9TVEFUVVNfVVBEQVRFRCIsImV2ZW50VGltZSI6IjIwMjQtMDQtMjVUMDc6NTY6MjkuOTc0ODEwKzAwOjAwIiwib3JkZXIiOnsib3JkZXJJZCI6IjI1MzIyMl8xNzE0MDI5MDg4IiwicGF5bWVudFN0YXR1cyI6IkZBSUxFRCJ9fQ.v9dw_cR3_b4R5v0D8WRisrSPABxhegSSpEq4kz9s10fr5cUK150yWnwJREYCGQCm5BZK1Yydsquh-WE6OyRR2APOST).\n\n{% endlist %}\n\n### Возврат\n\n{% note tip %}\n\nСначала изучите, как работают возвраты, в разделе [/v2/orders/{order_id}/refund](../yandex-pay-api/order/merchant_v2_refund-post.md).\n\n{% endnote %}\n\n#### Полный возврат\n\nНезависимо от того, меняется ли статус заказа, отправляется 2 нотификации: по операции и по заказу.\n\n{% list tabs %}\n\n- Успех\n\n 1. `OPERATION_STATUS_UPDATED` — операция возврата завершилась успешно:\n\n ```json\n {\n \"merchantId\": \"xxxxxxxxx-xxx-5xxx-xxxxx-xxxxxxxx\",\n \"event\": \"OPERATION_STATUS_UPDATED\",\n \"eventTime\": \"2024-04-19T10:27:53.323878+00:00\",\n \"operation\": {\n \"operationId\": \"73dec2cd-db5c-4386-be6d-10c5b5a2ee09\",\n \"orderId\": \"86283\",\n \"status\": \"SUCCESS\",\n \"operationType\": \"REFUND\"\n }\n }\n ```\n\n 2. `ORDER_STATUS_UPDATED` — заказ в перешел в терминальный статус `REFUNDED`. Больше нельзя вызывать возвраты.\n\n ```json\n {\n \"merchantId\": \"xxxxxxxxx-xxx-5xxx-xxxxx-xxxxxxxx\",\n \"event\": \"ORDER_STATUS_UPDATED\",\n \"eventTime\": \"2024-04-19T12:16:28.766392+00:00\",\n \"order\": {\n \"orderId\": \"86283\",\n \"paymentStatus\": \"REFUNDED\"\n }\n }\n ```\n\n Посмотрите пример JWT-токена на [jwt.io](https://jwt.io/#debugger-io?token=eyJhbGciOiJFUzI1NiIsImV4cCI6MTcxMzUyOTI4OSwiaWF0IjoxNzEzNTI4OTg5LCJraWQiOiIxLW1lcmNoYW50LWFwaSIsInR5cCI6IkpXVCJ9.eyJtZXJjaGFudElkIjoieHh4eHh4eHh4LXh4eC01eHh4LXh4eHh4LXh4eHh4eHh4IiwiZXZlbnQiOiJPUkRFUl9TVEFUVVNfVVBEQVRFRCIsImV2ZW50VGltZSI6IjIwMjQtMDQtMTlUMTI6MTY6MjguNzY2MzkyKzAwOjAwIiwib3JkZXIiOnsib3JkZXJJZCI6Ijg2MjgzIiwicGF5bWVudFN0YXR1cyI6IlJFRlVOREVEIn19.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx).\n\n- Неудача\n\n 1. `OPERATION_STATUS_UPDATED` — операция возврата завершилась неуспешно:\n\n ```json\n {\n \"merchantId\": \"xxxxxxxxx-xxx-5xxx-xxxxx-xxxxxxxx\",\n \"event\": \"OPERATION_STATUS_UPDATED\",\n \"eventTime\": \"2024-06-13T22:27:53.323878+00:00\",\n \"operation\": {\n \"operationId\": \"73dec2cd-db5c-4386-be6d-10c5b5a2ee08\",\n \"orderId\": \"9c8aed6d-a8e5-4c6a-acd8-645538173f66\",\n \"status\": \"FAIL\",\n \"operationType\": \"REFUND\"\n }\n }\n ```\n\n Посмотрите пример JWT-токена на [jwt.io](https://jwt.io/#debugger-io?token=eyJhbGciOiJFUzI1NiIsImV4cCI6MTcxODMxNzk3NCwiaWF0IjoxNzE4MzE3Njc0LCJraWQiOiIxLW1lcmNoYW50LWFwaSIsInR5cCI6IkpXVCJ9.eyJtZXJjaGFudElkIjoieHh4eHh4eHh4LXh4eC01eHh4LXh4eHh4LXh4eHh4eHh4IiwiZXZlbnQiOiJPUEVSQVRJT05fU1RBVFVTX1VQREFURUQiLCJldmVudFRpbWUiOiIyMDI0LTA2LTEzVDIyOjI3OjUzLjMyMzg3OCswMDowMCIsIm9wZXJhdGlvbiI6eyJvcGVyYXRpb25JZCI6IjczZGVjMmNkLWRiNWMtNDM4Ni1iZTZkLTEwYzViNWEyZWUwOCIsIm9yZGVySWQiOiI5YzhhZWQ2ZC1hOGU1LTRjNmEtYWNkOC02NDU1MzgxNzNmNjYiLCJzdGF0dXMiOiJGQUlMIiwib3BlcmF0aW9uVHlwZSI6IlJFRlVORCJ9fQ.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx).\n\n 2. `ORDER_STATUS_UPDATED` — заказ остался в предыдущем статусе `CAPTURED`:\n\n ```json\n {\n \"merchantId\": \"xxxxxxxxx-xxx-5xxx-xxxxx-xxxxxxxx\",\n \"event\": \"ORDER_STATUS_UPDATED\",\n \"eventTime\": \"2024-06-13T22:27:54.323878+00:00\",\n \"order\": {\n \"orderId\": \"9c8aed6d-a8e5-4c6a-acd8-645538173f66\",\n \"paymentStatus\": \"CAPTURED\"\n }\n }\n ```\n\n{% endlist %}\n\n#### Частичный возврат\n\nВы можете вернуть всю сумму заказа несколькими частичными возвратами. Когда сумма всех возвратов достигнет полной стоимости, заказ перейдет в терминальный статус `REFUNDED`. После этого нельзя вызывать возвраты.\n\nНезависимо от того, меняется ли статус заказа, отправляется 2 нотификации: по операции и по заказу.\n\nРассмотрим на примере заказа с тремя пачками сока.\n\n1. Совершили частичный возврат одного сока. Вам придет 2 нотификации:\n\n 1. `OPERATION_STATUS_UPDATED` — операция возврата завершилась успешно:\n\n ```json\n {\n \"merchantId\": \"xxxxxxxxx-xxx-5xxx-xxxxx-xxxxxxxx\",\n \"event\": \"OPERATION_STATUS_UPDATED\",\n \"eventTime\": \"2024-04-19T10:27:53.323878+00:00\",\n \"operation\": {\n \"operationId\": \"73dec3cs-sd5t-4356-ne6d-10c79b5d2ee09\",\n \"externalOperationId\": \"123-partial-refund-1\",\n \"orderId\": \"123\",\n \"status\": \"SUCCESS\",\n \"operationType\": \"REFUND\"\n }\n }\n ```\n\n 2. `ORDER_STATUS_UPDATED` — заказ в перешел в статус `PARTIALLY_REFUNDED`:\n\n ```json\n {\n \"merchantId\": \"xxxxxxxxx-xxx-5xxx-xxxxx-xxxxxxxx\",\n \"event\": \"ORDER_STATUS_UPDATED\",\n \"eventTime\": \"2024-04-19T12:16:28.766392+00:00\",\n \"order\": {\n \"orderId\": \"123\",\n \"paymentStatus\": \"PARTIALLY_REFUNDED\"\n }\n }\n ```\n\n2. Совершили второй частичный возврат одного сока. Вам придет 2 нотификации:\n\n 1. `OPERATION_STATUS_UPDATED` — операция возврата завершилась успешно:\n\n ```json\n {\n \"merchantId\": \"xxxxxxxxx-xxx-5xxx-xxxxx-xxxxxxxx\",\n \"event\": \"OPERATION_STATUS_UPDATED\",\n \"eventTime\": \"2024-04-19T13:27:53.323878+00:00\",\n \"operation\": {\n \"operationId\": \"28fba9ds-kl2m-7891-qw3r-45e82c7f1bb12\",\n \"externalOperationId\": \"123-partial-refund-2\",\n \"orderId\": \"123\",\n \"status\": \"SUCCESS\",\n \"operationType\": \"REFUND\"\n }\n }\n ```\n\n 2. `ORDER_STATUS_UPDATED` — заказ остался в статусе `PARTIALLY_REFUNDED`:\n\n ```json\n {\n \"merchantId\": \"xxxxxxxxx-xxx-5xxx-xxxxx-xxxxxxxx\",\n \"event\": \"ORDER_STATUS_UPDATED\",\n \"eventTime\": \"2024-04-19T13:27:54.321878+00:00\",\n \"order\": {\n \"orderId\": \"123\",\n \"paymentStatus\": \"PARTIALLY_REFUNDED\"\n }\n }\n ```\n\n3. Совершили третий частичный возврат. Сумма всех возвратов достигла полной стоимости. Вам придет 2 нотификации:\n\n 1. `OPERATION_STATUS_UPDATED` — операция возврата завершилась успешно:\n\n ```json\n {\n \"merchantId\": \"xxxxxxxxx-xxx-5xxx-xxxxx-xxxxxxxx\",\n \"event\": \"OPERATION_STATUS_UPDATED\",\n \"eventTime\": \"2024-04-19T13:40:51.323878+00:00\",\n \"operation\": {\n \"operationId\": \"64abc2ts-rj4y-3187-mf5g-56b71e9a4dd67\",\n \"externalOperationId\": \"123-partial-refund-3\",\n \"orderId\": \"123\",\n \"status\": \"SUCCESS\",\n \"operationType\": \"REFUND\"\n }\n }\n ```\n\n 2. `ORDER_STATUS_UPDATED` — заказ в перешел в терминальный статус `REFUNDED`. Больше нельзя вызывать возвраты.\n\n ```json\n {\n \"merchantId\": \"xxxxxxxxx-xxx-5xxx-xxxxx-xxxxxxxx\",\n \"event\": \"ORDER_STATUS_UPDATED\",\n \"eventTime\": \"2024-04-19T14:16:28.766392+00:00\",\n \"order\": {\n \"orderId\": \"123\",\n \"paymentStatus\": \"REFUNDED\"\n }\n }\n ```\n\n### Двухстадийный платеж: списание заблокированных средств\n\nВ [двухстадийных платежах](../../../hold/index.md) после подтверждения списания средств методом [/v1/orders/{order_id}/capture](../yandex-pay-api/order/merchant_v1_capture-post.md) вам придет 2 нотификации:\n\n1. `OPERATION_STATUS_UPDATED` — операция списания средств завершилась успешно:\n\n ```json\n {\n \"merchantId\": \"xxxxxxxxx-xxx-5xxx-xxxxx-xxxxxxxx\",\n \"event\": \"OPERATION_STATUS_UPDATED\",\n \"eventTime\": \"2024-07-22T03:19:07.425889+00:00\",\n \"operation\": {\n \"operationId\": \"2d23342e-6688-4201-bee2-299330ff7ba6\",\n \"orderId\": \"000540777\",\n \"status\": \"SUCCESS\",\n \"operationType\": \"CAPTURE\",\n \"externalOperationId\": \"000540777-capture\"\n }\n }\n ```\n\n Посмотрите пример JWT-токена на [jwt.io](https://jwt.io/#debugger-io?token=eyJhbGciOiJFUzI1NiIsImV4cCI6MTcyMTYxODY0OCwiaWF0IjoxNzIxNjE4MzQ4LCJraWQiOiIxLW1lcmNoYW50LWFwaSIsInR5cCI6IkpXVCJ9.eyJtZXJjaGFudElkIjoieHh4eHh4eHh4LXh4eC01eHh4LXh4eHh4LXh4eHh4eHh4IiwiZXZlbnQiOiJPUEVSQVRJT05fU1RBVFVTX1VQREFURUQiLCJldmVudFRpbWUiOiIyMDI0LTA3LTIyVDAzOjE5OjA3LjQyNTg4OSswMDowMCIsIm9wZXJhdGlvbiI6eyJvcGVyYXRpb25JZCI6IjJkMjMzNDJlLTY2ODgtNDIwMS1iZWUyLTI5OTMzMGZmN2JhNiIsIm9yZGVySWQiOiIwMDA1NDA3NzciLCJzdGF0dXMiOiJTVUNDRVNTIiwib3BlcmF0aW9uVHlwZSI6IkNBUFRVUkUiLCJleHRlcm5hbE9wZXJhdGlvbklkIjoiMDAwNTQwNzc3LWNhcHR1cmUifX0.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx).\n\n2. `ORDER_STATUS_UPDATED` — заказ в перешел в статус `CAPTURED`:\n\n ```json\n {\n \"merchantId\": \"xxxxxxxxx-xxx-5xxx-xxxxx-xxxxxxxx\",\n \"event\": \"ORDER_STATUS_UPDATED\",\n \"eventTime\": \"2024-07-22T06:29:07.425889+00:00\",\n \"order\": {\n \"orderId\": \"000540777\",\n \"paymentStatus\": \"CAPTURED\"\n }\n }\n ```\n\n### Рекуррентный платеж: списание средств по подписке\n\nВ [рекуррентных платежах](../../../payments/recurrents.md) после списания средств методом [/v1/subscriptions/recur](../yandex-pay-api/subscriptions/merchant_v1_subscriptions_recur-post.md) вам придет 2 нотификации.\n\n{% list tabs %}\n\n- Успех\n\n 1. `OPERATION_STATUS_UPDATED` — операция списания средств завершилась успешно:\n\n ```json\n {\n \"event\": \"OPERATION_STATUS_UPDATED\",\n \"eventTime\": \"2025-05-26T21:00:36.08847+00:00\",\n \"merchantId\": \"xxxxxxxxx-xxx-5xxx-xxxxx-xxxxxxxx\",\n \"operation\": {\n \"operationId\": \"15c980db-1d76-4d4b-a28e-b1c18dfff74f\",\n \"operationType\": \"RECURRING\",\n \"orderId\": \"667682505ORG12622TO79659--1748293232\",\n \"status\": \"SUCCESS\"\n }\n }\n ```\n\n Посмотрите пример JWT-токена на [jwt.io](https://jwt.io/#debugger-io?token=eyJhbGciOiJFUzI1NiIsImNydiI6IlAtMjU2IiwiZXhwIjoxNzQ4MjkzNTM3LCJpYXQiOjE3NDgyOTMyMzcsImtpZCI6IjEtbWVyY2hhbnQtYXBpIiwia3R5IjoiRUMiLCJ0eXAiOiJKV1QifQ.eyJldmVudCI6Ik9QRVJBVElPTl9TVEFUVVNfVVBEQVRFRCIsImV2ZW50VGltZSI6IjIwMjUtMDUtMjZUMjE6MDA6MzYuMDg4NDcrMDA6MDAiLCJtZXJjaGFudElkIjoieHh4eHh4eHh4LXh4eC01eHh4LXh4eHh4LXh4eHh4eHh4Iiwib3BlcmF0aW9uIjp7Im9wZXJhdGlvbklkIjoiMTVjOTgwZGItMWQ3Ni00ZDRiLWEyOGUtYjFjMThkZmZmNzRmIiwib3BlcmF0aW9uVHlwZSI6IlJFQ1VSUklORyIsIm9yZGVySWQiOiI2Njc2ODI1MDVPUkcxMjYyMlRPNzk2NTktLTE3NDgyOTMyMzIiLCJzdGF0dXMiOiJTVUNDRVNTIn19.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx).\n\n 2. `ORDER_STATUS_UPDATED` — заказ в перешел в статус `CAPTURED`:\n\n ```json\n {\n \"merchantId\": \"xxxxxxxxx-xxx-5xxx-xxxxx-xxxxxxxx\",\n \"event\": \"ORDER_STATUS_UPDATED\",\n \"eventTime\": \"2025-05-26T22:00:36.08847+00:00\",\n \"order\": {\n \"orderId\": \"667682505ORG12622TO79659--1748293232\",\n \"paymentStatus\": \"CAPTURED\"\n }\n }\n ```\n\n- Неудача\n\n 1. `OPERATION_STATUS_UPDATED` — операция списания средств завершилась неуспешно:\n\n ```json\n {\n \"event\": \"OPERATION_STATUS_UPDATED\",\n \"eventTime\": \"2025-05-26T21:02:03.343994+00:00\",\n \"merchantId\": \"xxxxxxxxx-xxx-5xxx-xxxxx-xxxxxxxx\",\n \"operation\": {\n \"operationId\": \"eba91cce-6723-4c7b-ae28-bd2fe39de287\",\n \"operationType\": \"RECURRING\",\n \"orderId\": \"667683695ORG1393TO285518--1748293320\",\n \"status\": \"FAIL\"\n }\n }\n ```\n\n 2. `ORDER_STATUS_UPDATED` — заказ в перешел в статус `FAILED`:\n\n ```json\n {\n \"merchantId\": \"xxxxxxxxx-xxx-5xxx-xxxxx-xxxxxxxx\",\n \"event\": \"ORDER_STATUS_UPDATED\",\n \"eventTime\": \"2025-05-26T21:42:03.343994+00:00\",\n \"order\": {\n \"orderId\": \"667683695ORG1393TO285518--1748293320\",\n \"paymentStatus\": \"FAILED\"\n }\n }\n ```\n\n{% endlist %}",
"operationId": "webhook",
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"event": {
"description": "Тип события:\n- `ORDER_STATUS_UPDATED` — обновление статуса заказа;\n- `OPERATION_STATUS_UPDATED` — обновление статуса операций списания, возврата или отмены платежа.",
"enum": [
"TRANSACTION_STATUS_UPDATE",
"ORDER_STATUS_UPDATED",
"OPERATION_STATUS_UPDATED",
"SUBSCRIPTION_STATUS_UPDATED"
],
"type": "string"
},
"eventTime": {
"description": "Время события в формате `RFC 3339`: `YYYY-MM-DDThh:mm:ssTZD`.",
"example": "2025-05-26T21:00:36.08847+00:00",
"format": "date-time",
"type": "string"
},
"merchantId": {
"description": "ID (идентификатор) продавца.",
"format": "uuid",
"type": "string"
},
"operation": {
"allOf": [
{
"properties": {
"externalOperationId": {
"description": "Идентификатор операции в системе продавца. Должен быть уникальным.\n\nПередайте этот параметр, чтобы отслеживать конкретную операцию через метод [v1/operations/external_operation_id](../yandex-pay-api/operation/merchant_v1_operations-get)",
"type": "string"
},
"operationId": {
"description": "Идентификатор операции.",
"example": "5d32f295-8723-457d-81f9-ab13f17b7bd6",
"format": "uuid",
"type": "string"
},
"operationType": {
"description": "Тип операции. Подробнее о типах операций читайте в разделе [Статусы операций](../../../payments/statuses).",
"enum": [
"AUTHORIZE",
"BIND_CARD",
"REFUND",
"CAPTURE",
"VOID",
"RECURRING",
"PREPAYMENT",
"SUBMIT"
],
"type": "string"
},
"orderId": {
"description": "ID заказа, переданный в [/v1/orders](../yandex-pay-api/order/merchant_v1_orders-post.md) при создании заказа.",
"type": "string"
},
"status": {
"description": "Статус операции. Подробнее о статусах операций читайте в разделе [Статусы операций](../../../payments/statuses).",
"enum": [
"PENDING",
"SUCCESS",
"FAIL"
],
"type": "string"
}
},
"required": [
"operationId",
"operationType",
"orderId",
"status"
],
"type": "object"
}
],
"description": "Информация по операции. Приходит с событием `OPERATION_STATUS_UPDATED`"
},
"order": {
"allOf": [
{
"properties": {
"cartUpdated": {
"description": "Была ли обновлена корзина. Возвращается при оплате баллами.Если флаг имеет значение `true`, получите актуальную корзину.",
"type": "boolean"
},
"orderId": {
"description": "ID заказа, переданный в [/v1/orders](../yandex-pay-api/order/merchant_v1_orders-post.md) при создании заказа.",
"type": "string"
},
"paymentStatus": {
"description": "Статус платежа в заказе. Подробнее читайте в разделе [Статусы платежей](../../../payments/statuses.md#payments-statuses).",
"enum": [
"PENDING",
"AUTHORIZED",
"CAPTURED",
"VOIDED",
"REFUNDED",
"CONFIRMED",
"PARTIALLY_REFUNDED",
"FAILED"
],
"type": "string",
"x-enumDescriptions": {
"AUTHORIZED": "Платеж за заказ авторизован. Средства заблокированы на счету плательщика",
"CAPTURED": "Заказ успешно оплачен. Средства списаны со счета плательщика",
"CONFIRMED": "Заказ успешно оформлен",
"FAILED": "Заказ не был успешно оплачен",
"PARTIALLY_REFUNDED": "Совершён частичный возврат средств за заказ",
"PENDING": "Ожидается оплата",
"REFUNDED": "Совершён возврат средств за заказ",
"VOIDED": "Оплата отменена (voided). Списание средств не производилось"
}
}
},
"required": [
"orderId",
"paymentStatus"
],
"type": "object"
}
],
"description": "Информация по заказу. Приходит с событием `ORDER_STATUS_UPDATED`"
},
"subscription": {
"allOf": [
{
"properties": {
"customerSubscriptionId": {
"description": "ID подписки. Возвращается из SDK при успешном создании подписки. Также можно сохранить подписку при получении первой нотификации по ней. Дальнейшие обновления по этой подписке будут приходить с таким же значением этого поля.",
"format": "uuid",
"type": "string"
},
"nextWriteOff": {
"description": "Дата следующей попытки списания денег по подписке.",
"format": "date-time",
"type": "string"
},
"status": {
"description": "Статус подписки.",
"enum": [
"NEW",
"ACTIVE",
"CANCELLED",
"EXPIRED"
],
"type": "string"
},
"subscriptionPlanId": {
"description": "ID плана подписки, созданного в личном кабинете или через API.",
"format": "uuid",
"type": "string"
}
},
"required": [
"customerSubscriptionId",
"status",
"subscriptionPlanId"
],
"type": "object"
}
],
"description": "Состояние подписки."
}
},
"required": [
"event",
"eventTime",
"merchantId"
],
"type": "object"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"status": {
"default": "success",
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Вебхук успешно получен и обработан.\nТело ответа может быть любым, рекомендуем отправить `{\"status\": \"success\"}`.\nПри получении `200` Яндекс Пэй прекращает отправку повторных вебхуков."
},
"400": {
"content": {
"application/json": {
"schema": {
"properties": {
"reason": {
"description": "Описание причины ошибки.",
"type": "string"
},
"reasonCode": {
"description": "Код ошибки:\n\n- `FORBIDDEN` — заказ существует, но был оплачен не через Яндекс Пэй;\n- `ORDER_NOT_FOUND` — заказ не найден в системе продавца;\n- `ORDER_AMOUNT_MISMATCH` — сумма заказа не совпадает с суммой в системе продавца;\n- `ORDER_DETAILS_MISMATCH` — детали заказа отличаются от данных в системе продавца;\n- `OTHER` — общая ошибка;\n- `UNAUTHORIZED` — не удалось проверить подпись JWT-токена;\n- `TOKEN_EXPIRED` — срок действия JWT-токена истек;\n- `CONFLICT` — данные в нотификации расходятся с состоянием заказа в системе продавца. Например, пришла нотификация об оплате для отмененного заказа.",
"enum": [
"FORBIDDEN",
"ITEM_NOT_FOUND",
"ORDER_NOT_FOUND",
"ORDER_AMOUNT_MISMATCH",
"ORDER_DETAILS_MISMATCH",
"OUT_OF_INVENTORY",
"PICKUP_POINT_NOT_FOUND",
"SHIPPING_DETAILS_MISMATCH",
"OTHER",
"UNAUTHORIZED",
"TOKEN_EXPIRED",
"CONFLICT"
],
"type": "string"
},
"status": {
"default": "fail",
"type": "string"
}
},
"required": [
"reasonCode"
],
"type": "object"
}
}
},
"description": "Ошибка обработки вебхука.\nПри отсутствии ответа или любом статусе кроме `200` Яндекс Пэй генерирует новый JWT-токен и повторяет отправку вебхука:\n- первые 10 раз через 5 мс;\n- далее с экспоненциально возрастающим интервалом до 15 минут;\n- затем каждые 15 минут в течение 24 часов.\nОбщее время повторных отправок — 24 часа. После этого вебхук считается недоставленным."
}
},
"summary": "/v1/webhook"
}
},
"/v1/pickup-options": {
"post": {
"description": "Запрос на получение точек самовывоза.\n\nЗапрос на получение доступных точек самовывоза по корзине товаров.",
"operationId": "pickup-options",
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"boundingBox": {
"allOf": [
{
"properties": {
"ne": {
"allOf": [
{
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
}
],
"description": "Правый верхний угол (северо-восток)"
},
"sw": {
"allOf": [
{
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
}
],
"description": "Левый нижний угол (юго-запад)"
}
},
"required": [
"ne",
"sw"
],
"type": "object"
}
],
"description": "Границы области на карте"
},
"cart": {
"allOf": [
{
"properties": {
"cartId": {
"description": "Внутренний идентификатор корзины Яндекс Пэй.\n\nБэкенд магазина должен использовать этот параметр как идентификатор корзины покупателя и как ключ идемпотентности для запроса `/order/create`. Если бэкенд магазина получает повторный запрос `/order/create`, то необходимо вернуть уже созданный номер заказа. На одну корзину (`cartId`) бэкенд магазина может создать не больше одного заказа (`orderId`).",
"type": "string"
},
"coupons": {
"description": "Купоны, применённые к корзине",
"items": {
"properties": {
"description": {
"description": "Описание. Например, \"Скидка 3%\"",
"type": "string"
},
"status": {
"enum": [
"VALID",
"INVALID",
"EXPIRED",
null
],
"type": "string"
},
"value": {
"description": "Код купона",
"type": "string"
}
},
"required": [
"value"
],
"type": "object"
},
"type": "array"
},
"discounts": {
"description": "Скидки, применённые к корзине",
"items": {
"properties": {
"amount": {
"description": "Сумма скидки",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Текстовое описание",
"type": "string"
},
"discountId": {
"description": "Идентификатор скидки в системе мерчанта",
"type": "string"
}
},
"required": [
"amount",
"description",
"discountId"
],
"type": "object"
},
"type": "array"
},
"externalId": {
"description": "Переданный продавцом идентификатор корзины",
"type": "string"
},
"items": {
"items": {
"properties": {
"description": {
"description": "Описание товара",
"type": "string"
},
"discountedUnitPrice": {
"description": "Цена за единицу товара с учётом скидок на позицию",
"example": "123.45",
"format": "double",
"type": "string"
},
"features": {
"allOf": [
{
"properties": {
"pointsDisabled": {
"default": false,
"description": "Не распределять баллы Плюса. Используется только при создании заказа. Если это поле не указано, то баллы будут распределены на товар",
"type": "boolean"
},
"tariffModifier": {
"description": "Модификатор тарифа для расчета комиссии. Определяет, какой тариф будет применяться при расчете комиссии за обработку позиции в корзине.",
"enum": [
"VERY_LOW",
"LOW",
"MEDIUM",
"HIGH",
"VERY_HIGH",
null
],
"type": "string"
}
},
"type": "object"
}
],
"description": "Промо параметры товара"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Высота, в метрах",
"format": "float",
"type": "number"
},
"length": {
"description": "Длина, в метрах",
"format": "float",
"type": "number"
},
"weight": {
"description": "Вес, в килограммах",
"format": "float",
"type": "number"
},
"width": {
"description": "Ширина, в метрах",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
],
"description": "Размеры и вес товара. Обязательно для товара типа `PHYSICAL`"
},
"pointsAmount": {
"description": "Количество баллов Плюса\n\nПоле только для чтения. Переданные значения будут проигнорированы.",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
},
"productId": {
"description": "Id товара в системе продавца. В параметрах запроса каждый идентификатор товара `productId` должен быть уникальным",
"type": "string"
},
"quantity": {
"allOf": [
{
"properties": {
"available": {
"description": "Максимально доступное количество товара",
"example": "123.45",
"format": "double",
"type": "string"
},
"count": {
"description": "Количество товара в заказе",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"count"
],
"type": "object"
}
],
"description": "Количество товара в заказе"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
],
"description": "Данные для формирования чека"
},
"skuId": {
"description": "Уникальный id, который описывает единицу ассортимента. Необходим для применения индивидуального тарифа.",
"type": "string"
},
"subtotal": {
"description": "Суммарная цена за позицию без учета скидок",
"example": "123.45",
"format": "double",
"type": "string"
},
"title": {
"description": "Наименование товара",
"type": "string"
},
"total": {
"description": "Суммарная цена за позицию с учётом скидок на позицию",
"example": "123.45",
"format": "double",
"type": "string"
},
"type": {
"default": "UNSPECIFIED",
"description": "Тип товара. Важен для интеграции с доставками",
"enum": [
"PHYSICAL",
"DIGITAL",
"UNSPECIFIED"
],
"type": "string"
},
"unitPrice": {
"description": "Полная цена за единицу товара без учетка скидки",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"productId",
"quantity"
],
"type": "object"
},
"type": "array"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Высота, в метрах",
"format": "float",
"type": "number"
},
"length": {
"description": "Длина, в метрах",
"format": "float",
"type": "number"
},
"weight": {
"description": "Вес, в килограммах",
"format": "float",
"type": "number"
},
"width": {
"description": "Ширина, в метрах",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
]
},
"total": {
"allOf": [
{
"properties": {
"amount": {
"description": "Стоимость корзины с учетом всех скидок.",
"example": "123.45",
"format": "double",
"type": "string"
},
"pointsAmount": {
"description": "Количество баллов Плюса\n\nПоле только для чтения. Переданные значения будут проигнорированы.",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
}
},
"required": [
"amount"
],
"type": "object"
}
],
"default": null,
"description": "Итоговая стоимость корзины, которая пойдет в оплату"
}
},
"type": "object"
}
],
"description": "Корзина c ценами, размером и весом товаров"
},
"currencyCode": {
"type": "string"
},
"merchantId": {
"format": "uuid",
"type": "string"
},
"metadata": {
"type": "string"
}
},
"required": [
"boundingBox",
"cart",
"currencyCode",
"merchantId"
],
"type": "object"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"data": {
"properties": {
"pickupOptions": {
"items": {
"properties": {
"address": {
"description": "Адрес в виде строки",
"type": "string"
},
"allowedPaymentMethods": {
"description": "Индивидуальные методы оплаты для выбранного способа самовывоза. Доступные методы оплаты заказа при выбранном способе самовывоза. Этот параметр нужно использовать, если нужно ограничить методы оплаты, указанные в `availablePaymentMethods`. Если параметр не указан, то используются все методы оплаты, перечисленные в `availablePaymentMethods`.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Стоимость доставки в точку",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Дополнительное описание",
"type": "string"
},
"fromDate": {
"description": "YYYY-MM-DD. Ближайшая возможная дата доставки",
"format": "date",
"type": "string"
},
"location": {
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
},
"phones": {
"description": "Телефоны для связи",
"items": {
"type": "string"
},
"type": "array"
},
"pickupPointId": {
"description": "Уникальный id точки самовывоза в системе продавца",
"type": "string"
},
"provider": {
"description": "Тип точки вывоза.",
"enum": [
"YANDEX_MARKET",
"BOXBERRY",
"CDEK",
"IN_STORE",
"RUSSIAN_POST",
"PICKPOINT",
"DPD"
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"schedule": {
"description": "График работы точки",
"items": {
"properties": {
"fromTime": {
"description": "HH:mm, \"08:00\"",
"type": "string"
},
"label": {
"description": "Например, \"пн-пт\"",
"type": "string"
},
"toTime": {
"description": "HH:mm, \"20:00\"",
"type": "string"
}
},
"required": [
"fromTime",
"label",
"toTime"
],
"type": "object"
},
"type": "array"
},
"storagePeriod": {
"description": "Опционально. Срок хранения товара в точке самовывоза в днях",
"format": "int32",
"type": "integer"
},
"title": {
"description": "Название точки самовывоза",
"type": "string"
},
"toDate": {
"description": "YYYY-MM-DD. Самая поздняя дата доставки",
"format": "date",
"type": "string"
}
},
"required": [
"address",
"location",
"pickupPointId",
"title"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"pickupOptions"
],
"type": "object"
},
"status": {
"type": "string"
}
},
"required": [
"data",
"status"
],
"type": "object"
}
}
},
"description": "Вебхук успешно получен и обработан.\nТело ответа может быть любым, рекомендуем отправить `{\"status\": \"success\"}`.\nПри получении `200` Яндекс Пэй прекращает отправку повторных вебхуков."
},
"400": {
"content": {
"application/json": {
"schema": {
"properties": {
"reason": {
"description": "Описание причины ошибки.",
"type": "string"
},
"reasonCode": {
"description": "Код ошибки:\n\n- `FORBIDDEN` — заказ существует, но был оплачен не через Яндекс Пэй;\n- `ORDER_NOT_FOUND` — заказ не найден в системе продавца;\n- `ORDER_AMOUNT_MISMATCH` — сумма заказа не совпадает с суммой в системе продавца;\n- `ORDER_DETAILS_MISMATCH` — детали заказа отличаются от данных в системе продавца;\n- `OTHER` — общая ошибка;\n- `UNAUTHORIZED` — не удалось проверить подпись JWT-токена;\n- `TOKEN_EXPIRED` — срок действия JWT-токена истек;\n- `CONFLICT` — данные в нотификации расходятся с состоянием заказа в системе продавца. Например, пришла нотификация об оплате для отмененного заказа.",
"enum": [
"FORBIDDEN",
"ITEM_NOT_FOUND",
"ORDER_NOT_FOUND",
"ORDER_AMOUNT_MISMATCH",
"ORDER_DETAILS_MISMATCH",
"OUT_OF_INVENTORY",
"PICKUP_POINT_NOT_FOUND",
"SHIPPING_DETAILS_MISMATCH",
"OTHER",
"UNAUTHORIZED",
"TOKEN_EXPIRED",
"CONFLICT"
],
"type": "string"
},
"status": {
"default": "fail",
"type": "string"
}
},
"required": [
"reasonCode"
],
"type": "object"
}
}
},
"description": "Ошибка обработки вебхука.\nПри отсутствии ответа или любом статусе кроме `200` Яндекс Пэй генерирует новый JWT-токен и повторяет отправку вебхука:\n- первые 10 раз через 5 мс;\n- далее с экспоненциально возрастающим интервалом до 15 минут;\n- затем каждые 15 минут в течение 24 часов.\nОбщее время повторных отправок — 24 часа. После этого вебхук считается недоставленным."
}
},
"summary": "/v1/pickup-options"
}
},
"/v1/pickup-option-details": {
"post": {
"description": "Запрос на получение детальной информации о точке самовывоза.\n\nПо точке самовывоза (`pickupPointId`) и корзине товаров бэкенд магазина возвращает\nдетальную информацию о точке самовывоза.",
"operationId": "pickup-option-details",
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"cart": {
"allOf": [
{
"properties": {
"cartId": {
"description": "Внутренний идентификатор корзины Яндекс Пэй.\n\nБэкенд магазина должен использовать этот параметр как идентификатор корзины покупателя и как ключ идемпотентности для запроса `/order/create`. Если бэкенд магазина получает повторный запрос `/order/create`, то необходимо вернуть уже созданный номер заказа. На одну корзину (`cartId`) бэкенд магазина может создать не больше одного заказа (`orderId`).",
"type": "string"
},
"coupons": {
"description": "Купоны, применённые к корзине",
"items": {
"properties": {
"description": {
"description": "Описание. Например, \"Скидка 3%\"",
"type": "string"
},
"status": {
"enum": [
"VALID",
"INVALID",
"EXPIRED",
null
],
"type": "string"
},
"value": {
"description": "Код купона",
"type": "string"
}
},
"required": [
"value"
],
"type": "object"
},
"type": "array"
},
"discounts": {
"description": "Скидки, применённые к корзине",
"items": {
"properties": {
"amount": {
"description": "Сумма скидки",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Текстовое описание",
"type": "string"
},
"discountId": {
"description": "Идентификатор скидки в системе мерчанта",
"type": "string"
}
},
"required": [
"amount",
"description",
"discountId"
],
"type": "object"
},
"type": "array"
},
"externalId": {
"description": "Переданный продавцом идентификатор корзины",
"type": "string"
},
"items": {
"items": {
"properties": {
"description": {
"description": "Описание товара",
"type": "string"
},
"discountedUnitPrice": {
"description": "Цена за единицу товара с учётом скидок на позицию",
"example": "123.45",
"format": "double",
"type": "string"
},
"features": {
"allOf": [
{
"properties": {
"pointsDisabled": {
"default": false,
"description": "Не распределять баллы Плюса. Используется только при создании заказа. Если это поле не указано, то баллы будут распределены на товар",
"type": "boolean"
},
"tariffModifier": {
"description": "Модификатор тарифа для расчета комиссии. Определяет, какой тариф будет применяться при расчете комиссии за обработку позиции в корзине.",
"enum": [
"VERY_LOW",
"LOW",
"MEDIUM",
"HIGH",
"VERY_HIGH",
null
],
"type": "string"
}
},
"type": "object"
}
],
"description": "Промо параметры товара"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Высота, в метрах",
"format": "float",
"type": "number"
},
"length": {
"description": "Длина, в метрах",
"format": "float",
"type": "number"
},
"weight": {
"description": "Вес, в килограммах",
"format": "float",
"type": "number"
},
"width": {
"description": "Ширина, в метрах",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
],
"description": "Размеры и вес товара. Обязательно для товара типа `PHYSICAL`"
},
"pointsAmount": {
"description": "Количество баллов Плюса\n\nПоле только для чтения. Переданные значения будут проигнорированы.",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
},
"productId": {
"description": "Id товара в системе продавца. В параметрах запроса каждый идентификатор товара `productId` должен быть уникальным",
"type": "string"
},
"quantity": {
"allOf": [
{
"properties": {
"available": {
"description": "Максимально доступное количество товара",
"example": "123.45",
"format": "double",
"type": "string"
},
"count": {
"description": "Количество товара в заказе",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"count"
],
"type": "object"
}
],
"description": "Количество товара в заказе"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
],
"description": "Данные для формирования чека"
},
"skuId": {
"description": "Уникальный id, который описывает единицу ассортимента. Необходим для применения индивидуального тарифа.",
"type": "string"
},
"subtotal": {
"description": "Суммарная цена за позицию без учета скидок",
"example": "123.45",
"format": "double",
"type": "string"
},
"title": {
"description": "Наименование товара",
"type": "string"
},
"total": {
"description": "Суммарная цена за позицию с учётом скидок на позицию",
"example": "123.45",
"format": "double",
"type": "string"
},
"type": {
"default": "UNSPECIFIED",
"description": "Тип товара. Важен для интеграции с доставками",
"enum": [
"PHYSICAL",
"DIGITAL",
"UNSPECIFIED"
],
"type": "string"
},
"unitPrice": {
"description": "Полная цена за единицу товара без учетка скидки",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"productId",
"quantity"
],
"type": "object"
},
"type": "array"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Высота, в метрах",
"format": "float",
"type": "number"
},
"length": {
"description": "Длина, в метрах",
"format": "float",
"type": "number"
},
"weight": {
"description": "Вес, в килограммах",
"format": "float",
"type": "number"
},
"width": {
"description": "Ширина, в метрах",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
]
},
"total": {
"allOf": [
{
"properties": {
"amount": {
"description": "Стоимость корзины с учетом всех скидок.",
"example": "123.45",
"format": "double",
"type": "string"
},
"pointsAmount": {
"description": "Количество баллов Плюса\n\nПоле только для чтения. Переданные значения будут проигнорированы.",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
}
},
"required": [
"amount"
],
"type": "object"
}
],
"default": null,
"description": "Итоговая стоимость корзины, которая пойдет в оплату"
}
},
"type": "object"
}
],
"description": "Корзина c ценами, размером и весом товаров"
},
"currencyCode": {
"type": "string"
},
"merchantId": {
"format": "uuid",
"type": "string"
},
"metadata": {
"type": "string"
},
"pickupPointId": {
"type": "string"
}
},
"required": [
"cart",
"currencyCode",
"merchantId",
"pickupPointId"
],
"type": "object"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"data": {
"properties": {
"pickupOption": {
"properties": {
"address": {
"description": "Адрес в виде строки",
"type": "string"
},
"allowedPaymentMethods": {
"description": "Индивидуальные методы оплаты для выбранного способа самовывоза. Доступные методы оплаты заказа при выбранном способе самовывоза. Этот параметр нужно использовать, если нужно ограничить методы оплаты, указанные в `availablePaymentMethods`. Если параметр не указан, то используются все методы оплаты, перечисленные в `availablePaymentMethods`.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY",
"UNIQR_REUSABLE",
"UNIQR_ONETIME"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Стоимость доставки в точку",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Дополнительное описание",
"type": "string"
},
"fromDate": {
"description": "YYYY-MM-DD. Ближайшая возможная дата доставки",
"format": "date",
"type": "string"
},
"location": {
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
},
"phones": {
"description": "Телефоны для связи",
"items": {
"type": "string"
},
"type": "array"
},
"pickupPointId": {
"description": "Уникальный id точки самовывоза в системе продавца",
"type": "string"
},
"provider": {
"description": "Тип точки вывоза.",
"enum": [
"YANDEX_MARKET",
"BOXBERRY",
"CDEK",
"IN_STORE",
"RUSSIAN_POST",
"PICKPOINT",
"DPD"
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Признак агента по предмету расчёта. См. [значения](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "Не должно содержать больше двух знаков после запятой.\nНапример: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"enum": [
0,
10,
11,
12,
20,
21,
22,
30,
31,
32,
40,
41,
42,
50,
51,
70,
71,
72,
73,
80,
81,
82,
83,
255,
null
],
"type": "integer"
},
"paymentMethodType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
null
],
"type": "integer"
},
"productCode": {
"description": "Код товара (base64 кодированный массив от 1 до 32 байт)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Описание значений: [Ссылка](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"schedule": {
"description": "График работы точки",
"items": {
"properties": {
"fromTime": {
"description": "HH:mm, \"08:00\"",
"type": "string"
},
"label": {
"description": "Например, \"пн-пт\"",
"type": "string"
},
"toTime": {
"description": "HH:mm, \"20:00\"",
"type": "string"
}
},
"required": [
"fromTime",
"label",
"toTime"
],
"type": "object"
},
"type": "array"
},
"storagePeriod": {
"description": "Опционально. Срок хранения товара в точке самовывоза в днях",
"format": "int32",
"type": "integer"
},
"title": {
"description": "Название точки самовывоза",
"type": "string"
},
"toDate": {
"description": "YYYY-MM-DD. Самая поздняя дата доставки",
"format": "date",
"type": "string"
}
},
"required": [
"address",
"amount",
"location",
"pickupPointId",
"title"
],
"type": "object"
}
},
"required": [
"pickupOption"
],
"type": "object"
},
"status": {
"type": "string"
}
},
"required": [
"data",
"status"
],
"type": "object"
}
}
},
"description": "Вебхук успешно получен и обработан.\nТело ответа может быть любым, рекомендуем отправить `{\"status\": \"success\"}`.\nПри получении `200` Яндекс Пэй прекращает отправку повторных вебхуков."
},
"400": {
"content": {
"application/json": {
"schema": {
"properties": {
"reason": {
"description": "Описание причины ошибки.",
"type": "string"
},
"reasonCode": {
"description": "Код ошибки:\n\n- `FORBIDDEN` — заказ существует, но был оплачен не через Яндекс Пэй;\n- `ORDER_NOT_FOUND` — заказ не найден в системе продавца;\n- `ORDER_AMOUNT_MISMATCH` — сумма заказа не совпадает с суммой в системе продавца;\n- `ORDER_DETAILS_MISMATCH` — детали заказа отличаются от данных в системе продавца;\n- `OTHER` — общая ошибка;\n- `UNAUTHORIZED` — не удалось проверить подпись JWT-токена;\n- `TOKEN_EXPIRED` — срок действия JWT-токена истек;\n- `CONFLICT` — данные в нотификации расходятся с состоянием заказа в системе продавца. Например, пришла нотификация об оплате для отмененного заказа.",
"enum": [
"FORBIDDEN",
"ITEM_NOT_FOUND",
"ORDER_NOT_FOUND",
"ORDER_AMOUNT_MISMATCH",
"ORDER_DETAILS_MISMATCH",
"OUT_OF_INVENTORY",
"PICKUP_POINT_NOT_FOUND",
"SHIPPING_DETAILS_MISMATCH",
"OTHER",
"UNAUTHORIZED",
"TOKEN_EXPIRED",
"CONFLICT"
],
"type": "string"
},
"status": {
"default": "fail",
"type": "string"
}
},
"required": [
"reasonCode"
],
"type": "object"
}
}
},
"description": "Ошибка обработки вебхука.\nПри отсутствии ответа или любом статусе кроме `200` Яндекс Пэй генерирует новый JWT-токен и повторяет отправку вебхука:\n- первые 10 раз через 5 мс;\n- далее с экспоненциально возрастающим интервалом до 15 минут;\n- затем каждые 15 минут в течение 24 часов.\nОбщее время повторных отправок — 24 часа. После этого вебхук считается недоставленным."
}
},
"summary": "/v1/pickup-option-details"
}
},
"/v1/onboard": {
"post": {
"description": "Запрос на подтверждение регистрации в консоли Яндекс Пэй.",
"operationId": "onboard",
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"apiKey": {
"type": "string"
},
"force": {
"default": false,
"type": "boolean"
},
"merchantAuthToken": {
"description": "Авторизационный токен, сгенерированный мерчантом",
"type": "string"
},
"merchantId": {
"format": "uuid",
"type": "string"
}
},
"required": [
"apiKey",
"merchantAuthToken"
],
"type": "object"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"status": {
"default": "success",
"type": "string"
}
},
"type": "object"
}
}
},
"description": "Вебхук успешно получен и обработан.\nТело ответа может быть любым, рекомендуем отправить `{\"status\": \"success\"}`.\nПри получении `200` Яндекс Пэй прекращает отправку повторных вебхуков."
},
"400": {
"content": {
"application/json": {
"schema": {
"properties": {
"reason": {
"description": "Описание причины ошибки.",
"type": "string"
},
"reasonCode": {
"description": "Код ошибки:\n\n- `FORBIDDEN` — заказ существует, но был оплачен не через Яндекс Пэй;\n- `ORDER_NOT_FOUND` — заказ не найден в системе продавца;\n- `ORDER_AMOUNT_MISMATCH` — сумма заказа не совпадает с суммой в системе продавца;\n- `ORDER_DETAILS_MISMATCH` — детали заказа отличаются от данных в системе продавца;\n- `OTHER` — общая ошибка;\n- `UNAUTHORIZED` — не удалось проверить подпись JWT-токена;\n- `TOKEN_EXPIRED` — срок действия JWT-токена истек;\n- `CONFLICT` — данные в нотификации расходятся с состоянием заказа в системе продавца. Например, пришла нотификация об оплате для отмененного заказа.",
"enum": [
"FORBIDDEN",
"ITEM_NOT_FOUND",
"ORDER_NOT_FOUND",
"ORDER_AMOUNT_MISMATCH",
"ORDER_DETAILS_MISMATCH",
"OUT_OF_INVENTORY",
"PICKUP_POINT_NOT_FOUND",
"SHIPPING_DETAILS_MISMATCH",
"OTHER",
"UNAUTHORIZED",
"TOKEN_EXPIRED",
"CONFLICT"
],
"type": "string"
},
"status": {
"default": "fail",
"type": "string"
}
},
"required": [
"reasonCode"
],
"type": "object"
}
}
},
"description": "Ошибка обработки вебхука.\nПри отсутствии ответа или любом статусе кроме `200` Яндекс Пэй генерирует новый JWT-токен и повторяет отправку вебхука:\n- первые 10 раз через 5 мс;\n- далее с экспоненциально возрастающим интервалом до 15 минут;\n- затем каждые 15 минут в течение 24 часов.\nОбщее время повторных отправок — 24 часа. После этого вебхук считается недоставленным."
}
},
"summary": "/v1/onboard"
}
}
},
"servers": [
{
"description": "Production",
"url": "https://example.merchant.ru"
},
{
"description": "Sandbox",
"url": "https://sandbox.example.merchant.ru"
}
]
}