/v1/pickup-options
Запрос на получение точек самовывоза.
Запрос на получение доступных точек самовывоза по корзине товаров.
Request
POST
https://example.merchant.ru/v1/pickup-options
Production
POST
https://sandbox.example.merchant.ru/v1/pickup-options
Sandbox
Body
application/json
{
"boundingBox": {
"ne": {
"latitude": 0.5,
"longitude": 0.5
},
"sw": null
},
"cart": {
"cartId": "example",
"coupons": [
{
"description": "example",
"status": "VALID",
"value": "example"
}
],
"discounts": [
{
"amount": "123.45",
"description": "example",
"discountId": "example"
}
],
"externalId": "example",
"items": [
{
"description": "example",
"discountedUnitPrice": "123.45",
"features": null,
"measurements": null,
"productId": "example",
"quantity": null,
"receipt": null,
"skuId": "example",
"subtotal": "123.45",
"title": "example",
"total": "123.45",
"type": "UNSPECIFIED",
"unitPrice": "123.45"
}
],
"measurements": {
"height": 0.5,
"length": 0.5,
"weight": 0.5,
"width": 0.5
},
"total": null
},
"currencyCode": "example",
"merchantId": "123e4567-e89b-12d3-a456-426614174000",
"metadata": "example"
}
|
Name |
Description |
|
boundingBox |
All of 1 type
Границы области на карте Example
|
|
cart |
All of 1 type
Корзина c ценами, размером и весом товаров Example
|
|
currencyCode |
Type: string Example: |
|
merchantId |
Type: string<uuid> Example: |
|
metadata |
Type: string Example: |
Location
|
Name |
Description |
|
latitude |
Type: number |
|
longitude |
Type: number |
Example
{
"latitude": 0.5,
"longitude": 0.5
}
BoundingBox
|
Name |
Description |
|
ne |
All of 1 type
Правый верхний угол (северо-восток) Example
|
|
sw |
All of 1 type
Левый нижний угол (юго-запад) Example
|
Example
{
"ne": {
"latitude": 0.5,
"longitude": 0.5
},
"sw": null
}
Coupon
|
Name |
Description |
|
value |
Type: string Код купона Example: |
|
description |
Type: string Описание. Например, "Скидка 3%" Example: |
|
status |
Type: string Enum: Example: |
Example
{
"description": "example",
"status": "VALID",
"value": "example"
}
Discount
|
Name |
Description |
|
amount |
Type: string<double> Сумма скидки Example: |
|
description |
Type: string Текстовое описание Example: |
|
discountId |
Type: string Идентификатор скидки в системе мерчанта Example: |
Example
{
"amount": "123.45",
"description": "example",
"discountId": "example"
}
CartItemFeatures
|
Name |
Description |
|
pointsDisabled |
Type: boolean Не распределять баллы Плюса. Используется только при создании заказа. Если это поле не указано, то баллы будут распределены на товар Default: |
|
tariffModifier |
Type: string Модификатор тарифа для расчета комиссии. Определяет, какой тариф будет применяться при расчете комиссии за обработку позиции в корзине. Enum: Example: |
Example
{
"pointsDisabled": false,
"tariffModifier": "VERY_LOW"
}
Measurements
|
Name |
Description |
|
height |
Type: number Высота, в метрах |
|
length |
Type: number Длина, в метрах |
|
weight |
Type: number Вес, в килограммах |
|
width |
Type: number Ширина, в метрах |
Example
{
"height": 0.5,
"length": 0.5,
"weight": 0.5,
"width": 0.5
}
ItemQuantity
|
Name |
Description |
|
count |
Type: string<double> Количество товара в заказе Example: |
|
available |
Type: string<double> Максимально доступное количество товара Example: |
Example
{
"available": "123.45",
"count": "123.45"
}
PaymentsOperator
|
Name |
Description |
|
phones |
Type: string[] Example
|
Example
{
"phones": [
"example"
]
}
TransferOperator
|
Name |
Description |
|
address |
Type: string Example: |
|
inn |
Type: string Example: |
|
name |
Type: string Example: |
|
phones |
Type: string[] Example
|
Example
{
"address": "example",
"inn": "example",
"name": "example",
"phones": [
"example"
]
}
Agent
|
Name |
Description |
|
agentType |
Type: integer Признак агента по предмету расчёта. См. значения Enum: |
|
operation |
Type: string Example: |
|
paymentsOperator |
Type: PaymentsOperator Example
|
|
phones |
Type: string[] Example
|
|
transferOperator |
Type: TransferOperator Example
|
Example
{
"agentType": 1,
"operation": "example",
"paymentsOperator": {
"phones": [
"example"
]
},
"phones": [
"example"
],
"transferOperator": {
"address": "example",
"inn": "example",
"name": "example",
"phones": [
"example"
]
}
}
MarkQuantity
|
Name |
Description |
|
denominator |
Type: integer |
|
numerator |
Type: integer |
Example
{
"denominator": 0,
"numerator": 0
}
Supplier
|
Name |
Description |
|
inn |
Type: string Example: |
|
name |
Type: string Example: |
|
phones |
Type: string[] Example
|
Example
{
"inn": "example",
"name": "example",
"phones": [
"example"
]
}
ItemReceipt
|
Name |
Description |
|
tax |
Type: integer Описание значений: Ссылка Enum: |
|
agent |
Type: Agent Example
|
|
excise |
Type: string<double> Не должно содержать больше двух знаков после запятой. Например: 1.12, 5.1, 10, 11.00 . Example: |
|
markQuantity |
Type: MarkQuantity Example
|
|
measure |
Type: integer Описание значений: Ссылка Enum: |
|
paymentMethodType |
Type: integer Описание значений: Ссылка Enum: |
|
paymentSubjectType |
Type: integer Описание значений: Ссылка Enum: |
|
productCode |
Type: string<base64> Код товара (base64 кодированный массив от 1 до 32 байт) Example: |
|
supplier |
Type: Supplier Example
|
|
title |
Type: string Example: |
Example
{
"agent": {
"agentType": 1,
"operation": "example",
"paymentsOperator": {
"phones": [
"example"
]
},
"phones": [
"example"
],
"transferOperator": {
"address": "example",
"inn": "example",
"name": "example",
"phones": [
"example"
]
}
},
"excise": "123.45",
"markQuantity": {
"denominator": 0,
"numerator": 0
},
"measure": 0,
"paymentMethodType": 1,
"paymentSubjectType": 1,
"productCode": "example",
"supplier": {
"inn": "example",
"name": "example",
"phones": [
"example"
]
},
"tax": 1,
"title": "example"
}
CartItemWithoutFinalPrice
|
Name |
Description |
|
productId |
Type: string Id товара в системе продавца. В параметрах запроса каждый идентификатор товара Example: |
|
quantity |
All of 1 type
Количество товара в заказе Example
|
|
description |
Type: string Описание товара Example: |
|
discountedUnitPrice |
Type: string<double> Цена за единицу товара с учётом скидок на позицию Example: |
|
features |
All of 1 type
Промо параметры товара Example
|
|
measurements |
All of 1 type
Размеры и вес товара. Обязательно для товара типа Example
|
|
receipt |
All of 1 type
Данные для формирования чека Example
|
|
skuId |
Type: string Уникальный id, который описывает единицу ассортимента. Необходим для применения индивидуального тарифа. Example: |
|
subtotal |
Type: string<double> Суммарная цена за позицию без учета скидок Example: |
|
title |
Type: string Наименование товара Example: |
|
total |
Type: string<double> Суммарная цена за позицию с учётом скидок на позицию Example: |
|
type |
Type: string Тип товара. Важен для интеграции с доставками Default: Enum: |
|
unitPrice |
Type: string<double> Полная цена за единицу товара без учетка скидки Example: |
Example
{
"description": "example",
"discountedUnitPrice": "123.45",
"features": {
"pointsDisabled": false,
"tariffModifier": "VERY_LOW"
},
"measurements": {
"height": 0.5,
"length": 0.5,
"weight": 0.5,
"width": 0.5
},
"productId": "example",
"quantity": {
"available": "123.45",
"count": "123.45"
},
"receipt": {
"agent": {
"agentType": 1,
"operation": "example",
"paymentsOperator": {
"phones": [
null
]
},
"phones": [
"example"
],
"transferOperator": {
"address": "example",
"inn": "example",
"name": "example",
"phones": [
null
]
}
},
"excise": "123.45",
"markQuantity": {
"denominator": 0,
"numerator": 0
},
"measure": 0,
"paymentMethodType": 1,
"paymentSubjectType": 1,
"productCode": "example",
"supplier": {
"inn": "example",
"name": "example",
"phones": [
"example"
]
},
"tax": 1,
"title": "example"
},
"skuId": "example",
"subtotal": "123.45",
"title": "example",
"total": "123.45",
"type": "UNSPECIFIED",
"unitPrice": "123.45"
}
CartTotal
|
Name |
Description |
|
amount |
Type: string<double> Стоимость корзины с учетом всех скидок. Example: |
|
externalAmount |
Type: string<double> Сумма внешнего покрытия (сертификаты, подарочные карты). Example: |
Example
{
"amount": "123.45",
"externalAmount": "123.45"
}
CartWithoutFinalPrice
|
Name |
Description |
|
cartId |
Type: string Внутренний идентификатор корзины Яндекс Пэй. Бэкенд магазина должен использовать этот параметр как идентификатор корзины покупателя и как ключ идемпотентности для запроса Example: |
|
coupons |
Type: Coupon[] Купоны, применённые к корзине Example
|
|
discounts |
Type: Discount[] Скидки, применённые к корзине Example
|
|
externalId |
Type: string Переданный продавцом идентификатор корзины Example: |
|
items |
Type: CartItemWithoutFinalPrice[] Example
|
|
measurements |
Type: Measurements Example
|
|
total |
All of 1 type
Итоговая стоимость корзины, которая пойдет в оплату Default: |
Example
{
"cartId": "example",
"coupons": [
{
"description": "example",
"status": "VALID",
"value": "example"
}
],
"discounts": [
{
"amount": "123.45",
"description": "example",
"discountId": "example"
}
],
"externalId": "example",
"items": [
{
"description": "example",
"discountedUnitPrice": "123.45",
"features": {
"pointsDisabled": false,
"tariffModifier": "VERY_LOW"
},
"measurements": {
"height": 0.5,
"length": 0.5,
"weight": 0.5,
"width": 0.5
},
"productId": "example",
"quantity": {
"available": "123.45",
"count": "123.45"
},
"receipt": {
"agent": {},
"excise": "123.45",
"markQuantity": {},
"measure": 0,
"paymentMethodType": 1,
"paymentSubjectType": 1,
"productCode": "example",
"supplier": {},
"tax": 1,
"title": "example"
},
"skuId": "example",
"subtotal": "123.45",
"title": "example",
"total": "123.45",
"type": "UNSPECIFIED",
"unitPrice": "123.45"
}
],
"measurements": null,
"total": null
}
Responses
200 OK
Вебхук успешно получен и обработан.
Тело ответа может быть любым, рекомендуем отправить {"status": "success"}.
При получении 200 Яндекс Пэй прекращает отправку повторных вебхуков.
Body
application/json
{
"data": {
"pickupOptions": [
{
"address": "example",
"allowedPaymentMethods": [
"CARD"
],
"amount": "123.45",
"description": "example",
"fromDate": "2025-01-01",
"location": {
"latitude": 0.5,
"longitude": 0.5
},
"phones": [
"example"
],
"pickupPointId": "example",
"provider": "YANDEX_MARKET",
"receipt": {
"agent": {},
"excise": "123.45",
"markQuantity": {},
"measure": 0,
"paymentMethodType": 1,
"paymentSubjectType": 1,
"productCode": "example",
"supplier": {},
"tax": 1,
"title": "example"
},
"schedule": [
{}
],
"storagePeriod": 0,
"title": "example",
"toDate": "2025-01-01"
}
]
},
"status": "example"
}
|
Name |
Description |
|
data |
Type: MerchantPickupOptionsResponseData Example
|
|
status |
Type: string Example: |
CartItemWithoutFinalPrice
|
Name |
Description |
|
productId |
Type: string Id товара в системе продавца. В параметрах запроса каждый идентификатор товара Example: |
|
quantity |
All of 1 type
Количество товара в заказе Example
|
|
description |
Type: string Описание товара Example: |
|
discountedUnitPrice |
Type: string<double> Цена за единицу товара с учётом скидок на позицию Example: |
|
features |
All of 1 type
Промо параметры товара Example
|
|
measurements |
All of 1 type
Размеры и вес товара. Обязательно для товара типа Example
|
|
pointsAmount |
Type: string<double> Количество баллов Плюса Поле только для чтения. Переданные значения будут проигнорированы. Example: |
|
receipt |
All of 1 type
Данные для формирования чека Example
|
|
skuId |
Type: string Уникальный id, который описывает единицу ассортимента. Необходим для применения индивидуального тарифа. Example: |
|
subtotal |
Type: string<double> Суммарная цена за позицию без учета скидок Example: |
|
title |
Type: string Наименование товара Example: |
|
total |
Type: string<double> Суммарная цена за позицию с учётом скидок на позицию Example: |
|
type |
Type: string Тип товара. Важен для интеграции с доставками Default: Enum: |
|
unitPrice |
Type: string<double> Полная цена за единицу товара без учетка скидки Example: |
Example
{
"description": "example",
"discountedUnitPrice": "123.45",
"features": {
"pointsDisabled": false,
"tariffModifier": "VERY_LOW"
},
"measurements": {
"height": 0.5,
"length": 0.5,
"weight": 0.5,
"width": 0.5
},
"pointsAmount": "123.45",
"productId": "example",
"quantity": {
"available": "123.45",
"count": "123.45"
},
"receipt": {
"agent": {
"agentType": 1,
"operation": "example",
"paymentsOperator": {
"phones": [
null
]
},
"phones": [
"example"
],
"transferOperator": {
"address": "example",
"inn": "example",
"name": "example",
"phones": [
null
]
}
},
"excise": "123.45",
"markQuantity": {
"denominator": 0,
"numerator": 0
},
"measure": 0,
"paymentMethodType": 1,
"paymentSubjectType": 1,
"productCode": "example",
"supplier": {
"inn": "example",
"name": "example",
"phones": [
"example"
]
},
"tax": 1,
"title": "example"
},
"skuId": "example",
"subtotal": "123.45",
"title": "example",
"total": "123.45",
"type": "UNSPECIFIED",
"unitPrice": "123.45"
}
CartTotal
|
Name |
Description |
|
amount |
Type: string<double> Стоимость корзины с учетом всех скидок. Example: |
|
externalAmount |
Type: string<double> Сумма внешнего покрытия (сертификаты, подарочные карты). Example: |
|
pointsAmount |
Type: string<double> Количество баллов Плюса Поле только для чтения. Переданные значения будут проигнорированы. Example: |
Example
{
"amount": "123.45",
"externalAmount": "123.45",
"pointsAmount": "123.45"
}
CartWithoutFinalPrice
|
Name |
Description |
|
cartId |
Type: string Внутренний идентификатор корзины Яндекс Пэй. Бэкенд магазина должен использовать этот параметр как идентификатор корзины покупателя и как ключ идемпотентности для запроса Example: |
|
coupons |
Type: Coupon[] Купоны, применённые к корзине Example
|
|
discounts |
Type: Discount[] Скидки, применённые к корзине Example
|
|
externalId |
Type: string Переданный продавцом идентификатор корзины Example: |
|
items |
Type: CartItemWithoutFinalPrice[] Example
|
|
measurements |
Type: Measurements Example
|
|
total |
All of 1 type
Итоговая стоимость корзины, которая пойдет в оплату Default: |
Example
{
"cartId": "example",
"coupons": [
{
"description": "example",
"status": "VALID",
"value": "example"
}
],
"discounts": [
{
"amount": "123.45",
"description": "example",
"discountId": "example"
}
],
"externalId": "example",
"items": [
{
"description": "example",
"discountedUnitPrice": "123.45",
"features": {
"pointsDisabled": false,
"tariffModifier": "VERY_LOW"
},
"measurements": {
"height": 0.5,
"length": 0.5,
"weight": 0.5,
"width": 0.5
},
"pointsAmount": "123.45",
"productId": "example",
"quantity": {
"available": "123.45",
"count": "123.45"
},
"receipt": {
"agent": {},
"excise": "123.45",
"markQuantity": {},
"measure": 0,
"paymentMethodType": 1,
"paymentSubjectType": 1,
"productCode": "example",
"supplier": {},
"tax": 1,
"title": "example"
},
"skuId": "example",
"subtotal": "123.45",
"title": "example",
"total": "123.45",
"type": "UNSPECIFIED",
"unitPrice": "123.45"
}
],
"measurements": null,
"total": null
}
PickupSchedule
|
Name |
Description |
|
fromTime |
Type: string HH:mm, "08:00" Example: |
|
label |
Type: string Например, "пн-пт" Example: |
|
toTime |
Type: string HH:mm, "20:00" Example: |
Example
{
"fromTime": "example",
"label": "example",
"toTime": "example"
}
PickupOption
|
Name |
Description |
|
address |
Type: string Адрес в виде строки Example: |
|
location |
Type: Location Example
|
|
pickupPointId |
Type: string Уникальный id точки самовывоза в системе продавца Example: |
|
title |
Type: string Название точки самовывоза Example: |
|
allowedPaymentMethods |
Type: string[] Индивидуальные методы оплаты для выбранного способа самовывоза. Доступные методы оплаты заказа при выбранном способе самовывоза. Этот параметр нужно использовать, если нужно ограничить методы оплаты, указанные в Example
|
|
amount |
Type: string<double> Стоимость доставки в точку Example: |
|
description |
Type: string Дополнительное описание Example: |
|
fromDate |
Type: string<date> YYYY-MM-DD. Ближайшая возможная дата доставки Example: |
|
phones |
Type: string[] Телефоны для связи Example
|
|
provider |
Type: string Тип точки вывоза. Enum: |
|
receipt |
Type: ItemReceipt Example
|
|
schedule |
Type: PickupSchedule[] График работы точки Example
|
|
storagePeriod |
Type: integer Опционально. Срок хранения товара в точке самовывоза в днях |
|
toDate |
Type: string<date> YYYY-MM-DD. Самая поздняя дата доставки Example: |
Example
{
"address": "example",
"allowedPaymentMethods": [
"CARD"
],
"amount": "123.45",
"description": "example",
"fromDate": "2025-01-01",
"location": {
"latitude": 0.5,
"longitude": 0.5
},
"phones": [
"example"
],
"pickupPointId": "example",
"provider": "YANDEX_MARKET",
"receipt": {
"agent": {
"agentType": 1,
"operation": "example",
"paymentsOperator": {
"phones": [
"example"
]
},
"phones": [
"example"
],
"transferOperator": {
"address": "example",
"inn": "example",
"name": "example",
"phones": [
"example"
]
}
},
"excise": "123.45",
"markQuantity": {
"denominator": 0,
"numerator": 0
},
"measure": 0,
"paymentMethodType": 1,
"paymentSubjectType": 1,
"productCode": "example",
"supplier": {
"inn": "example",
"name": "example",
"phones": [
"example"
]
},
"tax": 1,
"title": "example"
},
"schedule": [
{
"fromTime": "example",
"label": "example",
"toTime": "example"
}
],
"storagePeriod": 0,
"title": "example",
"toDate": "2025-01-01"
}
MerchantPickupOptionsResponseData
|
Name |
Description |
|
pickupOptions |
Type: PickupOption[] Example
|
Example
{
"pickupOptions": [
{
"address": "example",
"allowedPaymentMethods": [
"CARD"
],
"amount": "123.45",
"description": "example",
"fromDate": "2025-01-01",
"location": {
"latitude": 0.5,
"longitude": 0.5
},
"phones": [
"example"
],
"pickupPointId": "example",
"provider": "YANDEX_MARKET",
"receipt": {
"agent": {
"agentType": 1,
"operation": "example",
"paymentsOperator": {},
"phones": [
null
],
"transferOperator": {}
},
"excise": "123.45",
"markQuantity": {
"denominator": 0,
"numerator": 0
},
"measure": 0,
"paymentMethodType": 1,
"paymentSubjectType": 1,
"productCode": "example",
"supplier": {
"inn": "example",
"name": "example",
"phones": [
null
]
},
"tax": 1,
"title": "example"
},
"schedule": [
{
"fromTime": "example",
"label": "example",
"toTime": "example"
}
],
"storagePeriod": 0,
"title": "example",
"toDate": "2025-01-01"
}
]
}
400 Bad Request
Ошибка обработки вебхука.
При отсутствии ответа или любом статусе кроме 200 Яндекс Пэй генерирует новый JWT-токен и повторяет отправку вебхука:
- первые 10 раз через 5 мс;
- далее с экспоненциально возрастающим интервалом до 15 минут;
- затем каждые 15 минут в течение 24 часов. Общее время повторных отправок — 24 часа. После этого вебхук считается недоставленным.
Body
application/json
{
"reason": "example",
"reasonCode": "FORBIDDEN",
"status": "fail"
}
|
Name |
Description |
|
reasonCode |
Type: string Код ошибки:
Enum: |
|
reason |
Type: string Описание причины ошибки. Example: |
|
status |
Type: string Default: |
No longer supported, please use an alternative and newer version.