/v1/subscriptions
Этот раздел доступен по прямой ссылке
Чтобы узнать, как происходит аутентификация и какие HTTP-заголовки нужно передавать в запросах API Яндекс Пэй, читайте в разделе Аутентификация.
Запрос на создание подписки или привязки карты к аккаунту покупателя.
Используется в рекуррентных и рекарринговых платежах.
Возвращает идентификатор подписки и ссылку на ее оформление.
Request
POST
https://pay.yandex.ru/api/merchant/v1/subscriptions
Production
POST
https://sandbox.pay.yandex.ru/api/merchant/v1/subscriptions
Sandbox
Body
application/json
{
"cart": {
"externalId": "example",
"items": [
{
"description": "example",
"discountedUnitPrice": "123.45",
"features": null,
"productId": "example",
"quantity": null,
"receipt": null,
"skuId": "example",
"subtotal": "123.45",
"title": "example",
"total": "123.45",
"unitPrice": "123.45"
}
],
"total": {
"amount": "123.45",
"externalAmount": "123.45"
}
},
"currencyCode": "RUB",
"futureWriteOffAmount": "123.45",
"intervalCount": 6,
"intervalUnit": "SECOND",
"isBinding": false,
"metadata": "example",
"orderId": "example",
"orderSource": "null",
"purpose": "example",
"redirectUrls": {
"onAbort": "example",
"onError": "example",
"onSuccess": "example"
},
"title": "example",
"trialCount": 0,
"trialEndAt": "2025-01-01T00:00:00Z",
"trialUnit": "SECOND",
"ttl": 1800
}
|
Name |
Description |
|
currencyCode |
Type: string Трехбуквенный код валюты заказа (ISO 4217) Enum: Max length: |
|
orderId |
Type: string Уникальный идентификатор заказа на стороне продавца. Используется:
Max length: Example: |
|
cart |
All of 1 type
Корзина Example
|
|
futureWriteOffAmount |
Type: string<double> Сумма, которую будет списана в будущем Example: |
|
intervalCount |
Type: integer Количество периодов подписки в единицах времени, указанных в Например, для подписки в 6 месяцев укажите: Обязательно, если не указан параметр |
|
intervalUnit |
Type: string Единица времени, в которой будет периодичность подписки. Обязательно, если не указан параметр Enum: Example: |
|
isBinding |
Type: boolean Позволяет привязать карту пользователя без сформированной корзины товаров Если во время первого списания нужна только привязка карты, передайте в запросе параметр isBinding=true. Корзину и периодичность подписки в данном сценарии передавать не нужно. Default: |
|
metadata |
Type: string Произвольные данные по заказу для внутреннего использования Max length: Example: |
|
orderSource |
Type: string Поверхность, где был инициализирован заказ. Поле используется для аналитики. Возможные значения:
Default: Enum: |
|
purpose |
Type: string Назначение платежа Max length: Example: |
|
redirectUrls |
All of 1 type
Ссылки для переадресации пользователя с формы оплаты. Обязательно для онлайн-магазинов. Example
|
|
title |
Type: string Название подписки Max length: Example: |
|
trialCount |
Type: integer Количество периодов триального периода, например "7 дней" |
|
trialEndAt |
Type: string<date-time> Дата окончания пробного периода. Взаимоисключающее с полями Example: |
|
trialUnit |
Type: string Единица времени в которой будет периодичность триального периода Enum: Example: |
|
ttl |
Type: integer Время жизни заказа (в секундах)
Default: |
CartItemFeatures1
|
Name |
Description |
|
tariffModifier |
Type: string Модификатор тарифа для расчета комиссии. Определяет, какой тариф будет применяться при расчете комиссии за обработку позиции в корзине. Enum: Example: |
Example
{
"tariffModifier": "VERY_LOW"
}
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 Max length: Example: |
|
inn |
Type: string Max length: Example: |
|
name |
Type: string Max length: Example: |
|
phones |
Type: string[] Example
|
Example
{
"address": "example",
"inn": "example",
"name": "example",
"phones": [
"example"
]
}
Agent
|
Name |
Description |
|
agentType |
Type: integer Признак агента по предмету расчета. См. значения Enum: |
|
operation |
Type: string Max length: 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 Max length: Example: |
|
name |
Type: string Max length: 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 Max length: 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"
}
RenderedCartItem1
|
Name |
Description |
|
productId |
Type: string Id товара в системе продавца. В параметрах запроса каждый идентификатор товара Max length: Example: |
|
quantity |
All of 1 type
Количество товара в заказе Example
|
|
title |
Type: string Наименование товара Max length: Example: |
|
total |
Type: string<double> Итоговая цена позиции с учетом примененных скидок. Важно Убедитесь, что цена за единицу товара ( Чтобы избежать ошибок, вынесите товары в отдельные позиции с разными ПримерПравильно:
Цена за единицу Неправильно:
Цена за единицу В таком случае разбейте на две позиции:
Example: |
|
description |
Type: string Описание товара Max length: Example: |
|
discountedUnitPrice |
Type: string<double> Цена за единицу товара с учетом скидок на позицию Example: |
|
features |
All of 1 type
Промо параметры товара Example
|
|
receipt |
All of 1 type
Данные для формирования чека. Example
|
|
skuId |
Type: string Уникальный id, который описывает единицу ассортимента. Необходим для применения индивидуального тарифа. Max length: Example: |
|
subtotal |
Type: string<double> Суммарная цена за позицию без учета скидок Example: |
|
unitPrice |
Type: string<double> Полная цена за единицу товара без учетка скидки Example: |
Example
{
"description": "example",
"discountedUnitPrice": "123.45",
"features": {
"tariffModifier": "VERY_LOW"
},
"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",
"unitPrice": "123.45"
}
CartTotal
|
Name |
Description |
|
amount |
Type: string<double> Стоимость корзины с учетом всех скидок. Example: |
|
externalAmount |
Type: string<double> Сумма внешнего покрытия (сертификаты, подарочные карты). Может быть не указана, равна 0 или больше 0. При использовании в /orders/{order_id}/capture не должна превышать значение Example: |
Example
{
"amount": "123.45",
"externalAmount": "123.45"
}
RenderedCart1
Примечание
Стоимость доставки передавайте в items как отдельный товар.
|
Name |
Description |
|
items |
Type: RenderedCartItem1[] Корзина товаров, которую оплачивает покупатель. Example
|
|
total |
All of 1 type
Итоговая информация о стоимости заказа. Example
|
|
externalId |
Type: string Идентификатор корзины на стороне продавца. Max length: Example: |
Example
{
"externalId": "example",
"items": [
{
"description": "example",
"discountedUnitPrice": "123.45",
"features": {
"tariffModifier": "VERY_LOW"
},
"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",
"unitPrice": "123.45"
}
],
"total": {
"amount": "123.45",
"externalAmount": "123.45"
}
}
MerchantRedirectUrls
Примечание
В мобильных интеграциях, использующих App Link и Universal Link, в поле redirectUrls можно указать базовый URL сайта.
|
Name |
Description |
|
onError |
Type: string Обязательное поле только для онлайн-магазинов. Ссылка для переадресации пользователя в случае возникновения ошибки во время оплаты, или если срок ссылки на оплату истек. Max length: Example: |
|
onSuccess |
Type: string Обязательное поле только для онлайн-магазинов. Ссылка для переадресации пользователя в случае успешной оплаты. Max length: Example: |
|
onAbort |
Type: string Ссылка для переадресации пользователя в случае отмены процесса оплаты. Отмену оплаты осуществляет пользователь на форме для оплаты. Max length: Example: |
Example
{
"onAbort": "example",
"onError": "example",
"onSuccess": "example"
}
Responses
200 OK
Body
application/json
{
"code": 200,
"data": {
"paymentUrl": "example",
"subscriptionId": "123e4567-e89b-12d3-a456-426614174000"
},
"status": "success"
}
|
Name |
Description |
|
data |
Type: CreateSubscriptionResponseData Example
|
|
code |
Type: unknown Default: |
|
status |
Type: string Default: Enum: |
RenderedCartItem1
|
Name |
Description |
|
productId |
Type: string Id товара в системе продавца. В параметрах запроса каждый идентификатор товара Max length: Example: |
|
quantity |
All of 1 type
Количество товара в заказе Example
|
|
title |
Type: string Наименование товара Max length: Example: |
|
total |
Type: string<double> Итоговая цена позиции с учетом примененных скидок. Важно Убедитесь, что цена за единицу товара ( Чтобы избежать ошибок, вынесите товары в отдельные позиции с разными ПримерПравильно:
Цена за единицу Неправильно:
Цена за единицу В таком случае разбейте на две позиции:
Example: |
|
description |
Type: string Описание товара Max length: Example: |
|
discountedUnitPrice |
Type: string<double> Цена за единицу товара с учетом скидок на позицию Example: |
|
features |
All of 1 type
Промо параметры товара Example
|
|
pointsAmount |
Type: string<double> Количество баллов Плюса Поле только для чтения. Переданные значения будут проигнорированы. Example: |
|
receipt |
All of 1 type
Данные для формирования чека. Example
|
|
skuId |
Type: string Уникальный id, который описывает единицу ассортимента. Необходим для применения индивидуального тарифа. Max length: Example: |
|
subtotal |
Type: string<double> Суммарная цена за позицию без учета скидок Example: |
|
unitPrice |
Type: string<double> Полная цена за единицу товара без учетка скидки Example: |
Example
{
"description": "example",
"discountedUnitPrice": "123.45",
"features": {
"tariffModifier": "VERY_LOW"
},
"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",
"unitPrice": "123.45"
}
CartTotal
|
Name |
Description |
|
amount |
Type: string<double> Стоимость корзины с учетом всех скидок. Example: |
|
externalAmount |
Type: string<double> Сумма внешнего покрытия (сертификаты, подарочные карты). Может быть не указана, равна 0 или больше 0. При использовании в /orders/{order_id}/capture не должна превышать значение Example: |
|
pointsAmount |
Type: string<double> Количество баллов Плюса Поле только для чтения. Переданные значения будут проигнорированы. Example: |
Example
{
"amount": "123.45",
"externalAmount": "123.45",
"pointsAmount": "123.45"
}
RenderedCart1
Примечание
Стоимость доставки передавайте в items как отдельный товар.
|
Name |
Description |
|
items |
Type: RenderedCartItem1[] Корзина товаров, которую оплачивает покупатель. Example
|
|
total |
All of 1 type
Итоговая информация о стоимости заказа. Example
|
|
externalId |
Type: string Идентификатор корзины на стороне продавца. Max length: Example: |
Example
{
"externalId": "example",
"items": [
{
"description": "example",
"discountedUnitPrice": "123.45",
"features": {
"tariffModifier": "VERY_LOW"
},
"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",
"unitPrice": "123.45"
}
],
"total": {
"amount": "123.45",
"externalAmount": "123.45",
"pointsAmount": "123.45"
}
}
CreateSubscriptionResponseData
|
Name |
Description |
|
paymentUrl |
Type: string Ссылка на оплату заказа Max length: Example: |
|
subscriptionId |
Type: string<uuid> Идентификатор подписки Max length: Example: |
Example
{
"paymentUrl": "example",
"subscriptionId": "123e4567-e89b-12d3-a456-426614174000"
}