Отрасль: Платежи и финансы. Актуально на 2026-10-11.
REST API ЮKassa для приема онлайн-платежей: создание и подтверждение платежей, возвраты, чеки по 54-ФЗ, автоплатежи, счета, выплаты и Безопасная сделка. Запросы — POST, GET и DELETE по HTTPS, тело POST-запросов в JSON, ответы всегда в JSON. Аутентификация — HTTP Basic: идентификатор магазина и секретный ключ.
Есть:
Нет — смотри официальную документацию:
Покупатель платит на странице ЮKassa и возвращается на сайт. Подходит большинству интернет-магазинов.
curl https://api.yookassa.ru/v3/payments \
-X POST \
-u <Идентификатор магазина>:<Секретный ключ> \
-H 'Idempotence-Key: <Ключ идемпотентности>' \
-H 'Content-Type: application/json' \
-d '{
"amount": {"value": "1000.00", "currency": "RUB"},
"capture": true,
"confirmation": {"type": "redirect", "return_url": "https://example.ru/orders/72"},
"description": "Оплата заказа № 72",
"metadata": {"order_id": "72"}
}'
Деньги сначала холдируются на счете покупателя и списываются, когда вы подтвердите заказ.
curl https://api.yookassa.ru/v3/payments/{payment_id}/capture \
-X POST \
-u <Идентификатор магазина>:<Секретный ключ> \
-H 'Idempotence-Key: <Ключ идемпотентности>' \
-H 'Content-Type: application/json' \
-d '{"amount": {"value": "1000.00", "currency": "RUB"}}'
Полный или частичный возврат успешного платежа.
curl https://api.yookassa.ru/v3/refunds \
-X POST \
-u <Идентификатор магазина>:<Секретный ключ> \
-H 'Idempotence-Key: <Ключ идемпотентности>' \
-H 'Content-Type: application/json' \
-d '{
"amount": {
"value": "2.00",
"currency": "RUB"
},
"payment_id": "215d8da0-000f-50be-b000-0003308c89be"
}'
Для компаний и ИП, которые используют Чеки от ЮKassa или стороннюю онлайн-кассу.
curl https://api.yookassa.ru/v3/payments \
-X POST \
-u <Идентификатор магазина>:<Секретный ключ> \
-H 'Idempotence-Key: <Ключ идемпотентности>' \
-H 'Content-Type: application/json' \
-d '{
"amount": {"value": "1000.00", "currency": "RUB"},
"capture": true,
"confirmation": {"type": "redirect", "return_url": "https://example.ru/orders/72"},
"description": "Оплата заказа № 72",
"receipt": {
"customer": {"email": "user@example.ru"},
"items": [
{
"description": "Кружка",
"quantity": 1,
"amount": {"value": "1000.00", "currency": "RUB"},
"vat_code": 1,
"payment_subject": "commodity",
"payment_mode": "full_payment"
}
]
}
}'
Для подписок и повторных списаний. Сохранение способа оплаты доступно после согласования с менеджером ЮKassa.
curl https://api.yookassa.ru/v3/payments \
-X POST \
-u <Идентификатор магазина>:<Секретный ключ> \
-H 'Idempotence-Key: <Ключ идемпотентности>' \
-H 'Content-Type: application/json' \
-d '{
"amount": {"value": "2.00", "currency": "RUB"},
"capture": true,
"payment_method_id": "<Идентификатор сохраненного способа оплаты>",
"description": "Заказ №37"
}'
ЮKassa сама сообщает о смене статуса платежа или возврата, не нужно опрашивать API.
Для сверки и отчетов: список платежей с фильтром по дате и статусу.
curl 'https://api.yookassa.ru/v3/payments?created_at.gte=2026-09-01T00:00:00.000Z&created_at.lt=2026-10-01T00:00:00.000Z&status=succeeded&limit=100' \
-u <Идентификатор магазина>:<Секретный ключ>
https://api.yookassa.ru/v3Тип: Basic Auth
HTTP Basic Auth: имя пользователя — идентификатор магазина (shopId, раздел Настройки — Магазин) или шлюза для выплат (agentId, раздел Настройки выплат), пароль — секретный ключ (раздел Интеграция — Ключи API). Для тестового магазина ключ выпускается автоматически. Участники партнерской программы используют OAuth 2.0 и передают Bearer-токен. Секретный ключ и OAuth-токен нельзя публиковать.
curl https://api.yookassa.ru/v3/payments/{payment_id} \
-u <Идентификатор магазина>:<Секретный ключ>
Чтобы принять платеж, нужно создать объект платежа — Payment. Он содержит всю необходимую информацию о платеже (сумму, валюту и статус). Платеж проходит линейный жизненный цикл, последовательно переходя из статуса в статус.
Документация: https://yookassa.ru/developers/api#create_payment
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
Idempotence-Key |
header | string | да | Ключ идемпотентности. Рекомендуется использовать строку вида UUID v7 |
amount |
body | object | да | Сумма платежа. Иногда партнеры ЮKassa берут с пользователя дополнительную комиссию, которая не входит в эту сумму. Сумма указывается вместе с кодом валюты. Валюта должна совпадать с валютой субаккаунта (recipient.gateway_id), если вы разделяете потоки платежей, и с валютой аккаунта (shopId в личном кабинете), если не разделяете. |
amount.value |
body | string | да | Сумма в выбранной валюте, всегда в дробном формате. Разделитель дробной части — точка, разделителя тысяч нет. Количество знаков после точки зависит от выбранной валюты. Пример: 1000.00. |
amount.currency |
body | string (RUB, EUR, USD, KZT, BYN, UAH, UZS, TRY) | да | Трехбуквенный код валюты в формате ISO-4217. Пример: RUB. |
description |
body | string | нет | Описание транзакции (не более 128 символов), которое вы увидите в личном кабинете ЮKassa, а пользователь — при оплате. Например: «Оплата заказа № 72 для user@yoomoney.ru». |
receipt |
body | object | нет | Данные для формирования чека. Параметр передается, если вы компания или ИП и используете Чеки от ЮKassa, либо если вы компания или ИП, используете стороннюю онлайн-кассу и отправляете данные для формирования чеков по одному из сценариев: «Платеж и чек одновременно» или «Сначала чек, потом платеж». |
receipt.customer |
body | object | нет | Информация о пользователе. Необходимо указать как минимум контактные данные: для Чеков от ЮKassa — электронную почту (customer.email), в остальных случаях — электронную почту (customer.email) или номер телефона (customer.phone). |
receipt.items |
body | object[] | нет | Список товаров в заказе. Если вы используете Чеки от ЮKassa, можно передать до 80 товаров, если стороннюю онлайн-кассу — до 100 товаров. |
receipt.internet |
body | boolean | нет | Признак проведения платежа в интернете (тег в 54 ФЗ — 1125). Возможные значения: true — платеж проведен онлайн, через интернет (например, на сайте или в приложении); false — платеж проведен офлайн, при личном взаимодействии (например, в торговой точке или при встрече с курьером). По умолчанию true. Если вы принимаете платежи офлайн, передайте false. |
receipt.tax_system_code |
body | integer | нет | Система налогообложения магазина (тег в 54 ФЗ — 1055). Для сторонних онлайн-касс: обязательный параметр, если вы используете онлайн-кассу Атол Онлайн, обновленную до ФФД 1.2, или у вас несколько систем налогообложения; в остальных случаях не передается. Для Чеков от ЮKassa: параметр передавать не нужно, ЮKassa его проигнорирует. |
receipt.timezone |
body | integer | нет | Номер часовой зоны для адреса, по которому вы принимаете платежи (тег в 54 ФЗ — 1011). Указывается, только если в чеке есть товары, которые подлежат обязательной маркировке (в items.mark_code_info передается параметр gs_1m, short или fur). Перечень возможных значений: для Чеков от ЮKassa; для сторонних онлайн-касс. |
receipt.receipt_industry_details |
body | object[] | нет | Отраслевой реквизит чека (тег в 54 ФЗ — 1261). Можно передавать, если используете Чеки от ЮKassa или онлайн-кассу, обновленную до ФФД 1.2. |
receipt.receipt_operational_details |
body | object | нет | Операционный реквизит чека (тег в 54 ФЗ — 1270). Можно передавать, если используете Чеки от ЮKassa или онлайн-кассу, обновленную до ФФД 1.2. |
recipient |
body | object | нет | Получатель платежа. Нужен, если вы разделяете потоки платежей в рамках одного аккаунта или создаете платеж в адрес другого аккаунта. |
recipient.gateway_id |
body | string | нет | Идентификатор субаккаунта. Используется для разделения потоков платежей в рамках одного аккаунта. |
payment_token |
body | string | нет | Одноразовый токен для проведения оплаты, сформированный с помощью Checkout.js или мобильного SDK. |
payment_method_id |
body | string | нет | Идентификатор сохраненного способа оплаты. |
payment_method_data |
body | object | нет | |
payment_method_data.type |
body | string (bank_card, cash, sberbank, tinkoff_bank, yoo_money, mobile_balance, b2b_sberbank, sbp) | нет | |
payment_method_data.card |
body | object | нет | Данные банковской карты (необходимы, если вы собираете данные карты пользователей на своей стороне). |
payment_method_data.phone |
body | string | нет | Телефон пользователя, на который придет смс с кодом платежа (для внесения наличных). Указывается в формате ITU-T E.164, например 79000000000. Поле можно оставить пустым: пользователь сможет заполнить его при оплате на стороне ЮKassa. |
payment_method_data.payment_purpose |
body | string | нет | Назначение платежа (не больше 210 символов). |
payment_method_data.vat_data |
body | object | нет | |
payment_method_data.electronic_certificate |
body | object | нет | Данные от ФЭС НСПК для оплаты по электронному сертификату. Неоходимо передавать только при оплате со сбором данных на вашей стороне. |
payment_method_data.articles |
body | object[] | нет | Корзина покупки (в терминах НСПК) — список товаров, которые можно оплатить по сертификату. Необходимо передавать только при оплате на готовой странице ЮKassa. |
confirmation |
body | object | нет | Данные, необходимые для инициирования выбранного сценария подтверждения платежа пользователем. |
confirmation.type |
body | string (redirect, external, qr, embedded, mobile_application) | нет | Код сценария подтверждения платежа пользователем. Возможные значения: redirect — перенаправление пользователя на готовую страницу ЮKassa или страницу партнера; external — ожидание, что пользователь самостоятельно подтвердит платеж; qr — формирование QR-кода и его отображение на странице оплаты, чтобы пользователь подтвердил платеж; embedded — отображение платежного виджета ЮKassa; mobile_application — перенаправление пользователя в платежное приложение партнера. |
confirmation.locale |
body | string (ru_RU, en_US) | нет | Язык интерфейса, писем и сообщений, которые будет видеть или получать пользователь. Формат соответствует ISO/IEC 15897. Возможные значения: ru_RU, en_US. Регистр важен. |
confirmation.enforce |
body | boolean | нет | Запрос на проведение платежа с аутентификацией по 3-D Secure. Сработает, если вы по умолчанию принимаете оплату банковской картой без подтверждения платежа пользователем; в остальных случаях аутентификацией по 3-D Secure управляет ЮKassa. Чтобы принимать платежи без дополнительного подтверждения пользователем, напишите вашему менеджеру ЮKassa. |
confirmation.return_url |
body | string | нет | URL, на который вернется пользователь после подтверждения или отмены платежа на веб-странице. Не более 2048 символов. |
save_payment_method |
body | boolean | нет | Сохранение платежных данных для проведения автоплатежей. Возможные значения: * true — сохранить способ оплаты (сохранить платежные данные); * false — провести платеж без сохранения способа оплаты. Доступно только после согласования с менеджером ЮKassa. |
capture |
body | boolean | нет | Автоматический прием поступившего платежа. Возможные значения: * true — оплата списывается сразу (платеж в одну стадию); * false — оплата холдируется и списывается по вашему запросу (платеж в две стадии: https://yookassa.ru/developers/payment-acceptance/getting-started/payment-process#capture-and-cancel). По умолчанию false. |
client_ip |
body | string | нет | IPv4- или IPv6-адрес пользователя. Если не указан, используется IP-адрес TCP-подключения. |
metadata |
body | object | нет | Любые дополнительные данные, которые нужны вам для работы (например, внутренний идентификатор заказа). Передаются в виде набора пар «ключ-значение» и возвращаются в ответе ЮKassa. Ограничения: не более 16 ключей, название ключа — не больше 32 символов, значение ключа — не больше 512 символов, тип данных — строка в формате UTF-8. |
airline |
body | object | нет | Объект с данными для продажи авиабилетов. Используется только для платежей банковской картой. |
airline.ticket_number |
body | string | нет | Уникальный номер билета. Если номер билета известен при создании платежа, ticket_number — обязательный параметр; если неизвестен, передайте booking_reference вместо ticket_number. |
airline.booking_reference |
body | string | нет | Номер бронирования. Обязателен, если не указан ticket_number. |
airline.passengers |
body | object[] | нет | Список пассажиров. |
airline.legs |
body | object[] | нет | Список перелетов. |
transfers |
body | object[] | нет | Данные о распределении денег: суммы переводов и магазины, в пользу которых они совершаются. Передаются, если вы используете Сплитование платежей. |
deal |
body | object | нет | Сделка, в рамках которой проводится платеж. Передается, если вы используете Безопасную сделку. |
deal.id |
body | string | нет | Идентификатор сделки. |
deal.settlements |
body | object[] | нет | Данные о распределении денег. |
merchant_customer_id |
body | string | нет | Идентификатор покупателя в вашей системе, например адрес электронной почты или номер телефона. Не более 200 символов. Передается, если вы хотите сохранить банковскую карту и предложить ее для автоплатежей в платежном виджете ЮKassa. |
payment_order |
body | object | нет | Платежное поручение — распоряжение банку на перевод для оплаты жилищно-коммунальных услуг (ЖКУ), сведения о платеже для регистрации в ГИС ЖКХ. Нужно передавать при оплате ЖКУ. Кроме обязательных параметров, должен быть передан хотя бы один из параметров: payment_document_id, payment_document_number, account_number, unified_account_number или service_id. |
receiver |
body | object | нет | |
receiver.type |
body | string (mobile_balance, digital_wallet, bank_account) | нет | Код получателя платежа. |
receiver.phone |
body | string | нет | Номер телефона для пополнения. Максимум 15 символов. Указывается в формате ITU-T E.164. Пример: 79000000000. |
receiver.account_number |
body | string | нет | Идентификатор электронного кошелька для пополнения. Максимум 20 символов. |
receiver.bic |
body | string | нет | Банковский идентификационный код (БИК) банка, в котором открыт счет. Формат — 9 символов. |
statements |
body | object[] | нет | Данные для отправки выписок; обязательны, если пользователь должен получить выписку после платежа. Сейчас доступен один тип — выписка об оплате: информация об успешном платеже, которую ЮKassa отправляет на электронную почту пользователя. Отправляется, если платеж проведен банковской картой, через SberPay или СБП; доступна для всех сценариев интеграции. |
pos_link |
body | object | нет | Данные о кассовой ссылке для проведения платежа в офлайне. |
pos_link.id |
body | string | нет | Идентификатор кассовой ссылки в ЮKassa. |
pos_link.expires_at |
body | string | нет | Срок действия оплаты. Может составлять от 1 до 20 минут с момента создания платежа, по умолчанию 20 минут. Указывается по UTC и передается в формате ISO 8601. Пример: 2024-10-18T10:51:18.139Z |
Пример запроса:
{
"amount": {
"value": "1000.00",
"currency": "RUB"
},
"capture": true,
"confirmation": {
"type": "redirect",
"return_url": "https://example.ru/return"
},
"description": "Оплата заказа № 72"
}
Пример ответа:
{
"id": "1da5c87d-0984-50e8-a7f3-8de646dd9ec9",
"status": "succeeded",
"amount": {
"value": "1000.00",
"currency": "RUB"
},
"created_at": "2017-11-03T11:52:31.827Z",
"paid": true,
"test": false,
"refundable": true,
"recipient": {
"account_id": "123",
"gateway_id": "456"
}
}
Запрос позволяет получить список платежей. Можно запросить платежи, созданные за последние 3 года. Список можно отфильтровать по заданным критериям.
Документация: https://yookassa.ru/developers/api#get_payments_list
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
created_at.gte |
query | string | нет | Фильтр по времени создания: время должно быть больше или равно указанного значения («от указанного момента, включительно»). Указывается в формате ISO 8601. Пример: created_at.gte=2018-07-18T10:51:18.139Z |
created_at.gt |
query | string | нет | Фильтр по времени создания: время должно быть больше указанного значения («от указанного момента, не включая»). Указывается в формате ISO 8601. Пример: created_at.gt=2018-07-18T10:51:18.139Z |
created_at.lte |
query | string | нет | Фильтр по времени создания: время должно быть меньше или равно указанного значения («до указанного момента, включительно»). Указывается в формате ISO 8601. Пример: created_at.lte=2018-07-18T10:51:18.139Z |
created_at.lt |
query | string | нет | Фильтр по времени создания: время должно быть меньше указанного значения («до указанного момента, не включая»). Указывается в формате ISO 8601. Пример: created_at.lt=2018-07-18T10:51:18.139Z |
captured_at.gte |
query | string | нет | Фильтр по времени подтверждения платежа: время должно быть больше или равно указанного значения («от указанного момента, включительно»). Указывается в формате ISO 8601. Пример: captured_at.gte=2018-07-18T10:51:18.139Z |
captured_at.gt |
query | string | нет | Фильтр по времени подтверждения платежа: время должно быть больше указанного значения («от указанного момента, не включая»). Указывается в формате ISO 8601. Пример: captured_at.gt=2018-07-18T10:51:18.139Z |
captured_at.lte |
query | string | нет | Фильтр по времени подтверждения платежа: время должно быть меньше или равно указанного значения («до указанного момента, включительно»). Указывается в формате ISO 8601. Пример: captured_at.lte=2018-07-18T10:51:18.139Z |
captured_at.lt |
query | string | нет | Фильтр по времени подтверждения платежа: время должно быть меньше указанного значения («до указанного момента, не включая»). Указывается в формате ISO 8601. Пример: captured_at.lt=2018-07-18T10:51:18.139Z |
payment_method |
query | string (bank_card, cash, alfabank, webmoney, wechat, apple_pay, google_pay, qiwi) | нет | Фильтр по коду способа оплаты. Пример: payment_method=bank_card |
status |
query | string (pending, waiting_for_capture, succeeded, canceled) | нет | Фильтр по статусу платежа. Пример: status=succeeded |
limit |
query | integer | нет | Ограничение размера выдачи: количество объектов, передаваемых в ответе. Возможные значения: от 1 до 100. Пример: limit=50. Значение по умолчанию: 10 |
cursor |
query | string | нет | Указатель на следующий фрагмент списка. Пример: cursor=37a5c87d-3984-51e8-a7f3-8de646d39ec15. В качестве cursor нужно использовать значение параметра next_cursor из ответа на предыдущий запрос. Используется, если размер списка больше размера выдачи (limit) и конец выдачи не достигнут. |
Пример ответа:
{
"type": "list",
"items": [
{
"id": "1da5c87d-0984-50e8-a7f3-8de646dd9ec9",
"status": "succeeded",
"amount": {
"value": "1000.00",
"currency": "RUB"
},
"created_at": "2017-11-03T11:52:31.827Z",
"paid": true,
"test": false,
"refundable": true,
"recipient": {
"account_id": "123",
"gateway_id": "456"
}
}
]
}
Запрос позволяет получить информацию о текущем состоянии платежа по его уникальному идентификатору.
Документация: https://yookassa.ru/developers/api#get_payment
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
payment_id |
path | string | да | Идентификатор платежа. |
Пример ответа:
{
"id": "1da5c87d-0984-50e8-a7f3-8de646dd9ec9",
"status": "succeeded",
"amount": {
"value": "1000.00",
"currency": "RUB"
},
"created_at": "2017-11-03T11:52:31.827Z",
"paid": true,
"test": false,
"refundable": true,
"recipient": {
"account_id": "123",
"gateway_id": "456"
}
}
Подтверждение готовности принять платеж: статус изменится на succeeded, и можно передать пользователю товар или услугу. Подтвердить можно только платеж в статусе waiting_for_capture и только в течение ограниченного времени (зависит от способа оплаты); иначе статус изменится на canceled, а деньги вернутся пользователю.
Документация: https://yookassa.ru/developers/api#capture_payment
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
payment_id |
path | string | да | Идентификатор платежа. |
Idempotence-Key |
header | string | да | Ключ идемпотентности. Рекомендуется использовать строку вида UUID v7 |
amount |
body | object | нет | Итоговая сумма, которая будет списана с пользователя. Можно указать часть первоначальной суммы, чтобы вернуть остаток пользователю, если способ оплаты поддерживает частичное списание. Указывается вместе с кодом валюты, которая должна совпадать с валютой субаккаунта (recipient.gateway_id) при разделении потоков платежей или с валютой аккаунта (shopId в личном кабинете) без него. |
amount.value |
body | string | нет | Сумма в выбранной валюте, всегда в дробном формате. Разделитель дробной части — точка, разделителя тысяч нет. Количество знаков после точки зависит от выбранной валюты. Пример: 1000.00. |
amount.currency |
body | string (RUB, EUR, USD, KZT, BYN, UAH, UZS, TRY) | нет | Трехбуквенный код валюты в формате ISO-4217. Пример: RUB. |
receipt |
body | object | нет | Данные для формирования чека. Параметр передается, если вы компания или индивидуальный предприниматель и используете Чеки от ЮKassa, либо используете стороннюю онлайн-кассу и отправляете данные для формирования чеков по одному из сценариев: Платеж и чек одновременно или Сначала чек, потом платеж. |
receipt.customer |
body | object | нет | Информация о пользователе. Необходимо указать как минимум контактные данные: для Чеков от ЮKassa — электронную почту (customer.email), в остальных случаях — электронную почту (customer.email) или номер телефона (customer.phone). |
receipt.items |
body | object[] | нет | Список товаров в заказе. Если вы используете Чеки от ЮKassa, можно указать до 80 товаров, если стороннюю онлайн-кассу — до 100 товаров. |
receipt.internet |
body | boolean | нет | Признак проведения платежа в интернете (тег в 54 ФЗ — 1125). Возможные значения: true — оплата прошла онлайн (например, на вашем сайте или в приложении); false — оплата прошла офлайн, при личном взаимодействии (например, в торговой точке или при встрече с курьером). По умолчанию true; если вы принимаете платежи офлайн, передайте false. |
receipt.tax_system_code |
body | integer | нет | Система налогообложения магазина (тег в 54 ФЗ — 1055). Для сторонних онлайн-касс: обязательный параметр, если вы используете онлайн-кассу Атол Онлайн, обновленную до ФФД 1.2, или у вас несколько систем налогообложения, в остальных случаях не передается. Для Чеков от ЮKassa: параметр передавать не нужно, ЮKassa его проигнорирует. |
receipt.timezone |
body | integer | нет | Номер часовой зоны для адреса, по которому вы принимаете платежи (тег в 54 ФЗ — 1011). Указывается, только если в чеке есть товары, которые подлежат обязательной маркировке (в items.mark_code_info передается параметр gs_1m, short или fur). Перечень возможных значений: для Чеков от ЮKassa; для сторонних онлайн-касс. |
receipt.receipt_industry_details |
body | object[] | нет | Отраслевой реквизит чека (тег в 54 ФЗ — 1261). Можно передавать, если используете Чеки от ЮKassa или онлайн-кассу, обновленную до ФФД 1.2. |
receipt.receipt_operational_details |
body | object | нет | Операционный реквизит чека (тег в 54 ФЗ — 1270). Можно передавать, если используете Чеки от ЮKassa или онлайн-кассу, обновленную до ФФД 1.2. |
airline |
body | object | нет | Объект с данными для продажи авиабилетов. Используется только для платежей банковской картой. |
airline.ticket_number |
body | string | нет | Уникальный номер билета. Если номер билета известен при создании платежа, ticket_number обязателен. Если нет — передайте booking_reference вместо ticket_number. |
airline.booking_reference |
body | string | нет | Номер бронирования. Обязателен, если не передан ticket_number. |
airline.passengers |
body | object[] | нет | Список пассажиров. |
airline.legs |
body | object[] | нет | Список перелетов. |
transfers |
body | object[] | нет | Информация о распределении денег: суммы переводов и магазины, в пользу которых они совершаются. Передается при частичном подтверждении платежа, если вы используете Сплитование платежей. |
deal |
body | object | нет | Сделка, в рамках которой проводится платеж. Передается при частичном подтверждении платежа, если вы используете Безопасную сделку. |
deal.settlements |
body | object[] | нет | Данные о распределении денег. |
Пример запроса:
{
"amount": {
"value": "1000.00",
"currency": "RUB"
},
"receipt": {
"items": [
{
"description": "string",
"quantity": 1,
"amount": {
"value": null,
"currency": null
},
"vat_code": 0
}
]
},
"airline": {
"ticket_number": "5554916004417",
"booking_reference": "IIIKRV",
"passengers": [
{
"first_name": "SERGEI",
"last_name": "IVANOV"
}
],
"legs": [
{
"departure_airport": "LED",
"destination_airport": "AMS",
"departure_date": "2018-06-20"
}
]
},
"transfers": [
{
"account_id": "123",
"amount": {
"value": "1000.00",
"currency": "RUB"
}
}
],
"deal": {
"settlements": [
{
"type": "payout",
"amount": {
"value": null,
"currency": null
}
}
]
}
}
Пример ответа:
{
"id": "1da5c87d-0984-50e8-a7f3-8de646dd9ec9",
"status": "succeeded",
"amount": {
"value": "1000.00",
"currency": "RUB"
},
"created_at": "2017-11-03T11:52:31.827Z",
"paid": true,
"test": false,
"refundable": true,
"recipient": {
"account_id": "123",
"gateway_id": "456"
}
}
Отменяет платеж в статусе waiting_for_capture. Отмена означает, что вы не готовы выдать товар или оказать услугу пользователю; после отмены деньги начнут возвращаться на счет плательщика. Если платеж был совершен банковской картой, из кошелька ЮMoney или через SberPay, деньги вернутся сразу, если другими способами — процесс может занять до нескольких дней.
Документация: https://yookassa.ru/developers/api#cancel_payment
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
payment_id |
path | string | да | Идентификатор платежа. |
Idempotence-Key |
header | string | да | Ключ идемпотентности. Рекомендуется использовать строку вида UUID v7 |
Пример ответа:
{
"id": "1da5c87d-0984-50e8-a7f3-8de646dd9ec9",
"status": "succeeded",
"amount": {
"value": "1000.00",
"currency": "RUB"
},
"created_at": "2017-11-03T11:52:31.827Z",
"paid": true,
"test": false,
"refundable": true,
"recipient": {
"account_id": "123",
"gateway_id": "456"
}
}
Создает возврат успешного платежа на указанную сумму. Платеж можно вернуть только в течение трех лет с момента его создания. Комиссия ЮKassa за проведение платежа не возвращается.
Документация: https://yookassa.ru/developers/api#create_refund
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
Idempotence-Key |
header | string | да | Ключ идемпотентности. Рекомендуется использовать строку вида UUID v7 |
payment_id |
body | string | да | Идентификатор платежа в ЮKassa. |
amount |
body | object | да | Сумма, которую нужно вернуть пользователю. Указывается вместе с кодом валюты. Должна совпадать с валютой субаккаунта (recipient.gateway_id), если вы разделяете потоки платежей, или с валютой аккаунта (shopId в личном кабинете), если не разделяете. |
amount.value |
body | string | да | Сумма в выбранной валюте, всегда в дробном формате. Разделитель дробной части — точка, разделителя тысяч нет. Количество знаков после точки зависит от выбранной валюты. Пример: 1000.00. |
amount.currency |
body | string (RUB, EUR, USD, KZT, BYN, UAH, UZS, TRY) | да | Трехбуквенный код валюты в формате ISO-4217. Пример: RUB. |
description |
body | string | нет | Комментарий к возврату, основание для возврата денег пользователю. |
receipt |
body | object | нет | Данные для формирования чека. Параметр передается, если вы компания или индивидуальный предприниматель и используете Чеки от ЮKassa, либо используете стороннюю онлайн-кассу и отправляете данные для формирования чеков по одному из сценариев: Платеж и чек одновременно или Сначала чек, потом платеж. |
receipt.customer |
body | object | нет | Информация о пользователе. Необходимо указать как минимум контактные данные: для Чеков от ЮKassa — электронную почту (customer.email), в остальных случаях — электронную почту (customer.email) или номер телефона (customer.phone). |
receipt.items |
body | object[] | нет | Список товаров в заказе. Если вы используете Чеки от ЮKassa, можно указать до 80 товаров, если стороннюю онлайн-кассу — до 100 товаров. |
receipt.internet |
body | boolean | нет | Признак проведения платежа в интернете (тег в 54 ФЗ — 1125). Возможные значения: true — оплата прошла онлайн (например, на вашем сайте или в приложении); false — оплата прошла офлайн, при личном взаимодействии (например, в торговой точке или при встрече с курьером). По умолчанию true; если вы принимаете платежи офлайн, передайте false. |
receipt.tax_system_code |
body | integer | нет | Система налогообложения магазина (тег в 54 ФЗ — 1055). Для сторонних онлайн-касс: обязательный параметр, если вы используете онлайн-кассу Атол Онлайн, обновленную до ФФД 1.2, или у вас несколько систем налогообложения, в остальных случаях не передается. Для Чеков от ЮKassa: параметр передавать не нужно, ЮKassa его проигнорирует. |
receipt.timezone |
body | integer | нет | Номер часовой зоны для адреса, по которому вы принимаете платежи (тег в 54 ФЗ — 1011). Указывается, только если в чеке есть товары, которые подлежат обязательной маркировке (в items.mark_code_info передается параметр gs_1m, short или fur). Перечень возможных значений: для Чеков от ЮKassa; для сторонних онлайн-касс. |
receipt.receipt_industry_details |
body | object[] | нет | Отраслевой реквизит чека (тег в 54 ФЗ — 1261). Можно передавать, если используете Чеки от ЮKassa или онлайн-кассу, обновленную до ФФД 1.2. |
receipt.receipt_operational_details |
body | object | нет | Операционный реквизит чека (тег в 54 ФЗ — 1270). Можно передавать, если используете Чеки от ЮKassa или онлайн-кассу, обновленную до ФФД 1.2. |
sources |
body | object[] | нет | Данные о том, с какого магазина и какую сумму нужно удержать для проведения возврата. Необходимо передавать, если вы используете Сплитование платежей. Сейчас в этом параметре можно передать данные только одного магазина. |
deal |
body | object | нет | Данные о сделке, в составе которой проходит возврат. Необходимо передавать, если вы проводите Безопасную сделку. |
deal.refund_settlements |
body | object[] | нет | Данные о распределении денег. |
refund_method_data |
body | object | нет | Данные для возврата платежа по электронному сертификату. |
refund_method_data.type |
body | string (sbp, electronic_certificate) | нет | Код способа оплаты, который использовался при проведении платежа. |
refund_method_data.electronic_certificate |
body | object | нет | Данные от ФЭС НСПК для возврата на электронный сертификат. Неоходимо передавать только при оплате со сбором данных на вашей стороне. |
refund_method_data.articles |
body | object[] | нет | Корзина возврата (в терминах НСПК) — список возвращаемых товаров, для оплаты которых использовался электронный сертификат. Данные должны соответствовать товарам из одобренной корзины покупки (articles в объекте платежа: https://yookassa.ru/developers/api#payment_object). Необходимо передавать только при оплате на готовой странице ЮKassa. |
metadata |
body | object | нет | Любые дополнительные данные, которые нужны вам для работы (например, ваш внутренний идентификатор заказа). Передаются в виде набора пар «ключ-значение» и возвращаются в ответе от ЮKassa. Ограничения: не более 16 ключей, не более 32 символов в названии ключа, не более 512 символов в значении ключа, тип данных — строка в формате UTF-8. |
Пример запроса:
{
"payment_id": "1da5c87d-0984-50e8-a7f3-8de646dd9ec9",
"amount": {
"value": "1000.00",
"currency": "RUB"
}
}
Пример ответа:
{
"id": "1ddd77af-0bd7-500d-895b-c475c55fdefc",
"payment_id": "1da5c87d-0984-50e8-a7f3-8de646dd9ec9",
"amount": {
"value": "1000.00",
"currency": "RUB"
},
"status": "succeeded",
"created_at": "2017-11-03T11:52:31.827Z"
}
Возвращает список возвратов. Доступны возвраты, созданные за последние 3 года. Список можно фильтровать по заданным критериям.
Документация: https://yookassa.ru/developers/api#get_refunds_list
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
created_at.gte |
query | string | нет | Фильтр по времени создания: время должно быть больше указанного значения или равно ему («от момента, включительно»). Указывается в формате ISO 8601. Пример: created_at.gte=2018-07-18T10:51:18.139Z |
created_at.gt |
query | string | нет | Фильтр по времени создания: время должно быть больше указанного значения («от момента, не включая его»). Указывается в формате ISO 8601. Пример: created_at.gt=2018-07-18T10:51:18.139Z |
created_at.lte |
query | string | нет | Фильтр по времени создания: время должно быть меньше указанного значения или равно ему («до момента, включительно»). Указывается в формате ISO 8601. Пример: created_at.lte=2018-07-18T10:51:18.139Z |
created_at.lt |
query | string | нет | Фильтр по времени создания: время должно быть меньше указанного значения («до момента, не включая его»). Указывается в формате ISO 8601. Пример: created_at.lt=2018-07-18T10:51:18.139Z |
payment_id |
query | string | нет | Фильтр по идентификатору платежа (получить все возвраты по платежу). Пример: payment_id=1da5c87d-0984-50e8-a7f3-8de646dd9ec9 |
status |
query | string (pending, succeeded, canceled) | нет | Фильтр по статусу возврата. Возможные значения: pending — в обработке, succeeded — успешно выполнен, canceled — отменен. Пример: status=succeeded |
limit |
query | integer | нет | Размер выдачи результатов запроса — количество объектов, передаваемых в ответе. Возможные значения: от 1 до 100. Пример: limit=50. Значение по умолчанию: 10. |
cursor |
query | string | нет | Указатель на следующий фрагмент списка. Пример: cursor=37a5c87d-3984-51e8-a7f3-8de646d39ec15. В качестве cursor нужно использовать значение параметра next_cursor из ответа на предыдущий запрос. Используется, если размер списка больше размера выдачи (limit) и конец выдачи не достигнут. |
Пример ответа:
{
"type": "list",
"items": [
{
"id": "1ddd77af-0bd7-500d-895b-c475c55fdefc",
"payment_id": "1da5c87d-0984-50e8-a7f3-8de646dd9ec9",
"amount": {
"value": "1000.00",
"currency": "RUB"
},
"status": "succeeded",
"created_at": "2017-11-03T11:52:31.827Z"
}
]
}
Запрос позволяет получить информацию о текущем состоянии возврата по его уникальному идентификатору.
Документация: https://yookassa.ru/developers/api#get_refund
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
refund_id |
path | string | да | Идентификатор возврата. |
Пример ответа:
{
"id": "1ddd77af-0bd7-500d-895b-c475c55fdefc",
"payment_id": "1da5c87d-0984-50e8-a7f3-8de646dd9ec9",
"amount": {
"value": "1000.00",
"currency": "RUB"
},
"status": "succeeded",
"created_at": "2017-11-03T11:52:31.827Z"
}
Используйте этот запрос при оплате с соблюдением требований 54-ФЗ, чтобы создать чек зачета предоплаты. Если вы работаете по сценарию «Сначала платеж, потом чек», в запросе также нужно передавать данные для формирования чека прихода и чека возврата прихода.
Документация: https://yookassa.ru/developers/api#create_receipt
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
Idempotence-Key |
header | string | да | Ключ идемпотентности. Рекомендуется использовать строку вида UUID v7 |
type |
body | string (payment, refund) | да | Тип чека в онлайн-кассе. Возможные значения: payment (приход), refund (возврат прихода). |
payment_id |
body | string | нет | Идентификатор платежа в ЮKassa для отображения информации о чеке в личном кабинете; на платеж не влияет. Обязателен при создании чека платежа (тип чека: payment, статус платежа: waiting_for_capture или succeeded) и чека возврата для отмененных или частично подтвержденных платежей (тип чека: refund, статус платежа: canceled или succeeded). Для одного платежа можно создать до 50 чеков. |
refund_id |
body | string | нет | Идентификатор возврата в ЮKassa для отображения информации о чеке в личном кабинете. Обязателен при создании чека возврата (тип чека: refund, статус платежа: succeeded). Для одного возврата можно создать до 50 чеков. |
customer |
body | object | да | Информация о пользователе. Необходимо указать как минимум контактные данные: для Чеков от ЮKassa — электронную почту (customer.email), в остальных случаях — электронную почту (customer.email) или номер телефона (customer.phone). |
customer.full_name |
body | string | нет | Для юрлица — название организации, для ИП и физического лица — ФИО. Если у физлица отсутствует ИНН, в этом же параметре передаются паспортные данные. Не более 256 символов. Можно передавать, если используете Чеки от ЮKassa или онлайн-кассу Orange Data, Атол Онлайн. |
customer.inn |
body | string | нет | ИНН пользователя (10 или 12 цифр). Если у физического лица отсутствует ИНН, необходимо передать паспортные данные в параметре full_name. Можно передавать, если используете Чеки от ЮKassa или онлайн-кассу Orange Data, Атол Онлайн. |
customer.email |
body | string | нет | Адрес электронной почты пользователя для отправки чека. Обязательный параметр, если вы используете Чеки от ЮKassa или стороннюю онлайн-кассу и не передаете параметр phone. |
customer.phone |
body | string | нет | Телефон пользователя для отправки чека. Указывается в формате ITU-T E.164, например 79000000000. Обязательный параметр, если не передан email. |
items |
body | object[] | да | Список товаров в чеке: не более 80 позиций для Чеков от ЮKassa, не более 100 позиций для сторонних онлайн-касс. |
internet |
body | boolean | нет | Признак проведения платежа в интернете (тег в 54 ФЗ — 1125). Возможные значения: true — оплата прошла онлайн, через интернет (например, на вашем сайте или в приложении); false — оплата прошла офлайн, при личном взаимодействии (например, в торговой точке или при встрече с курьером). По умолчанию true; если вы принимаете платежи офлайн, передайте в запросе значение false. |
send |
body | boolean | да | Формирование чека в онлайн-кассе сразу после создания объекта чека. Сейчас можно передать только значение true. |
tax_system_code |
body | integer | нет | Система налогообложения магазина (тег в 54 ФЗ — 1055). Для сторонних онлайн-касс: обязательный параметр, если вы используете онлайн-кассу Атол Онлайн, обновленную до ФФД 1.2, или у вас несколько систем налогообложения, в остальных случаях не передается. Для Чеков от ЮKassa: параметр передавать не нужно, ЮKassa его проигнорирует. |
timezone |
body | integer | нет | Номер часовой зоны для адреса, по которому вы принимаете платежи (тег в 54 ФЗ — 1011). Указывается, только если в чеке есть товары, которые подлежат обязательной маркировке (в items.mark_code_info передается параметр gs_1m, short или fur). Перечень возможных значений: для Чеков от ЮKassa; для сторонних онлайн-касс. |
additional_user_props |
body | object | нет | Дополнительный реквизит пользователя (тег в 54 ФЗ — 1084). Можно передавать, если вы отправляете данные для формирования чека по сценарию Сначала платеж, потом чек |
additional_user_props.name |
body | string | нет | Наименование дополнительного реквизита пользователя (тег в 54 ФЗ — 1085). Не более 64 символов. |
additional_user_props.value |
body | string | нет | Значение дополнительного реквизита пользователя (тег в 54 ФЗ — 1086). Не более 234 символов. |
receipt_industry_details |
body | object[] | нет | Отраслевой реквизит чека (тег в 54 ФЗ — 1261). Нужно передавать, если используете ФФД 1.2. |
receipt_operational_details |
body | object | нет | Операционный реквизит чека (тег в 54 ФЗ — 1270). Нужно передавать, если используете ФФД 1.2. |
receipt_operational_details.operation_id |
body | integer | нет | Идентификатор операции (тег в 54 ФЗ — 1271). Число от 0 до 255. |
receipt_operational_details.value |
body | string | нет | Данные операции (тег в 54 ФЗ — 1272). |
receipt_operational_details.created_at |
body | string | нет | Время создания операции (тег в 54 ФЗ — 1273). Указывается по UTC и передается в формате ISO 8601. Пример: 2017-11-03T11:52:31.827Z |
settlements |
body | object[] | да | Перечень совершенных расчетов. |
on_behalf_of |
body | string | нет | Идентификатор магазина, от имени которого нужно отправить чек. Выдается ЮKassa, отображается в разделе Продавцы личного кабинета (столбец shopId). Необходимо передавать, если вы используете Сплитование платежей. |
Пример запроса:
{
"customer": {
"full_name": "Иванов Иван Иванович",
"inn": "6321341814",
"email": "user@yoomoney.ru",
"phone": "79000000000"
},
"type": "payment",
"send": true,
"settlements": [
{
"type": "cashless",
"amount": {
"value": "1000.00",
"currency": "RUB"
}
}
],
"items": [
{
"description": "string",
"quantity": 1,
"amount": {
"value": "1000.00",
"currency": "RUB"
},
"vat_code": 0
}
]
}
Пример ответа:
{
"id": "rt-1da5c87d-0984-50e8-a7f3-8de646dd9ec9",
"type": "payment",
"status": "succeeded",
"items": [
{
"description": "string",
"quantity": 1,
"amount": {
"value": "1000.00",
"currency": "RUB"
},
"vat_code": 0
}
]
}
Запрос позволяет получить список чеков, отфильтрованный по заданным критериям. Можно запросить чеки по конкретному платежу, чеки по конкретному возврату или все чеки магазина.
Документация: https://yookassa.ru/developers/api#get_receipts_list
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
created_at.gte |
query | string | нет | Фильтр по времени создания: время должно быть больше указанного значения или равно ему («от такого-то момента включительно»). Указывается в формате ISO 8601. Пример: created_at.gte=2018-07-18T10:51:18.139Z |
created_at.gt |
query | string | нет | Фильтр по времени создания: время должно быть больше указанного значения («от такого-то момента не включительно»). Указывается в формате ISO 8601. Пример: created_at.gt=2018-07-18T10:51:18.139Z |
created_at.lte |
query | string | нет | Фильтр по времени создания: время должно быть меньше указанного значения или равно ему («до такого-то момента включительно»). Указывается в формате ISO 8601. Пример: created_at.lte=2018-07-18T10:51:18.139Z |
created_at.lt |
query | string | нет | Фильтр по времени создания: время должно быть меньше указанного значения («до такого-то момента не включительно»). Указывается в формате ISO 8601. Пример: created_at.lt=2018-07-18T10:51:18.139Z |
status |
query | string (pending, succeeded, canceled) | нет | Фильтр по статусу чека. Возможные значения: pending — в обработке, succeeded — успешно зарегистрирован, canceled — отменен. Пример: status=succeeded |
payment_id |
query | string | нет | Фильтр по идентификатору платежа (получить все чеки для указанного платежа). Пример: payment_id=1da5c87d-0984-50e8-a7f3-8de646dd9ec9 В запросе можно передать только что-то одно: или идентификатор платежа, или идентификатор возврата. |
refund_id |
query | string | нет | Фильтр по идентификатору возврата (получить все чеки для указанного возврата). Пример: refund_id=1da5c87d-0984-50e8-a7f3-8de646dd9ec9 В запросе можно передать только что-то одно: или идентификатор платежа, или идентификатор возврата. |
limit |
query | integer | нет | Размер выдачи результатов запроса — количество объектов, передаваемых в ответе. Возможные значения: от 1 до 100. Пример: limit=50. Значение по умолчанию: 10 |
cursor |
query | string | нет | Указатель на следующий фрагмент списка. Пример: cursor=37a5c87d-3984-51e8-a7f3-8de646d39ec15. В качестве cursor необходимо использовать значение параметра next_cursor, полученное в ответе на предыдущий запрос. Используется, если размер списка больше размера выдачи (limit) и конец выдачи не достигнут. |
Пример ответа:
{
"type": "list",
"items": [
{
"id": "rt-1da5c87d-0984-50e8-a7f3-8de646dd9ec9",
"type": "payment",
"status": "succeeded",
"items": [
{
"description": null,
"quantity": null,
"amount": null,
"vat_code": null
}
]
}
]
}
Запрос позволяет получить информацию о текущем состоянии чека по его уникальному идентификатору.
Документация: https://yookassa.ru/developers/api#get_receipt
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
receipt_id |
path | string | да | Идентификатор чека. |
Пример ответа:
{
"id": "rt-1da5c87d-0984-50e8-a7f3-8de646dd9ec9",
"type": "payment",
"status": "succeeded",
"items": [
{
"description": "string",
"quantity": 1,
"amount": {
"value": "1000.00",
"currency": "RUB"
},
"vat_code": 0
}
]
}
С помощью этого запроса можно получить информацию о магазине или шлюзе. Для Сплитования платежей в запросе нужно передать параметр on_behalf_of с идентификатором магазина продавца и ваши данные для аутентификации (идентификатор и секретный ключ вашей платформы). Для партнеров нужно передать OAuth-токен магазина. Для выплат нужно передать ваши данные для аутентификации (идентификатор и секретный ключ вашего шлюза).
Документация: https://yookassa.ru/developers/api#get_me
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
on_behalf_of |
query | string | нет | Только для тех, кто использует Сплитование платежей. Идентификатор магазина продавца, подключенного к вашей платформе, информацию о котором нужно получить. |
Пример ответа:
{
"account_id": "123",
"test": true,
"status": "enabled"
}
С помощью этого запроса можно подписаться на уведомления о событии (например, об изменении статуса платежа на succeeded). Через вебхуки можно подписаться только на события платежей и возвратов; чтобы получать уведомления о нескольких событиях, нужно создать отдельный вебхук для каждого из них. Для каждого OAuth-токена нужен свой набор вебхуков.
Документация: https://yookassa.ru/developers/api#create_webhook
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
Idempotence-Key |
header | string | да | Ключ идемпотентности. Рекомендуется использовать строку вида UUID v7 |
event |
body | string (payment.waiting_for_capture, payment.succeeded, payment.canceled, refund.succeeded, payment_method.active) | да | Событие, которое вы хотите отслеживать. |
url |
body | string | да | URL, на который ЮKassa будет отправлять уведомления. |
Пример запроса:
{
"event": "payment.succeeded",
"url": "https://www.example.com/notification_url"
}
Пример ответа:
{
"id": "wh-e44e8088-bd73-43b1-959a-954f3a7d0c54",
"event": "payment.succeeded",
"url": "https://www.example.com/notification_url"
}
С помощью этого запроса можно проверить, какие вебхуки доступны для переданного OAuth-токена.
Документация: https://yookassa.ru/developers/api#get_webhook_list
Пример ответа:
{
"type": "list",
"items": [
{
"id": "wh-e44e8088-bd73-43b1-959a-954f3a7d0c54",
"event": "payment.succeeded",
"url": "https://www.example.com/notification_url"
}
]
}
С помощью этого запроса можно отписаться от уведомлений о событиях для переданного OAuth-токена. Чтобы удалить вебхук, укажите его идентификатор в запросе.
Документация: https://yookassa.ru/developers/api#delete_webhook
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
webhook_id |
path | string | да | Идентификатор webhook-a. |
Пример ответа:
{}
Создает в ЮKassa объект способа оплаты. В запросе передайте код способа оплаты, который хотите сохранить, и при необходимости дополнительные параметры нужной функциональности. Идентификатор созданного способа оплаты можно использовать при проведении автоплатежей или выплат.
Документация: https://yookassa.ru/developers/api#create_payment_method
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
Idempotence-Key |
header | string | да | Ключ идемпотентности. Рекомендуется использовать строку вида UUID v7 |
type |
body | string (bank_card, sbp) | да | |
holder |
body | object | нет | Данные магазина, для которого сохраняется способ оплаты. |
holder.gateway_id |
body | string | нет | Идентификатор субаккаунта. Используется для разделения потоков платежей в рамках одного аккаунта. |
client_ip |
body | string | нет | IPv4- или IPv6-адрес пользователя. Если не указан, используется IP-адрес TCP-соединения. |
confirmation |
body | object | нет | |
confirmation.type |
body | string (redirect, qr) | нет | Код сценария подтверждения пользователем привязки платежного средства к вашему магазину в ЮKassa. |
confirmation.enforce |
body | boolean | нет | Запрос на проведение привязки с аутентификацией по 3-D Secure. Сработает, если вы по умолчанию принимаете оплату банковской картой без подтверждения платежа пользователем; в остальных случаях аутентификацией по 3-D Secure управляет ЮKassa. Чтобы принимать платежи и создавать привязки без дополнительного подтверждения пользователем, напишите вашему менеджеру ЮKassa. |
confirmation.return_url |
body | string | нет | URL, на который вернется пользователь после подтверждения или отмены привязки на веб-странице. Не более 2048 символов. |
confirmation.locale |
body | string (ru_RU, en_US) | нет | Язык интерфейса, писем и смс, которые будут показаны или отправлены пользователю. Формат соответствует ISO/IEC 15897. Возможные значения: ru_RU, en_US. Регистр важен. |
metadata |
body | object | нет | Любые дополнительные данные, которые нужны вам для работы (например, ваш внутренний идентификатор заказа). Передаются в виде набора пар «ключ — значение» и возвращаются в ответе от ЮKassa. Ограничения: не более 16 ключей, имя ключа — не более 32 символов, значение ключа — не более 512 символов, тип данных — строка в формате UTF-8. |
card |
body | object | нет | Данные банковской карты (необходимы, если вы собираете данные карты пользователей на своей стороне). |
card.number |
body | string | нет | Номер банковской карты. |
card.expiry_year |
body | string | нет | Срок действия, год, YYYY. |
card.expiry_month |
body | string | нет | Срок действия, месяц, MM. |
card.cardholder |
body | string | нет | Имя владельца карты. |
card.csc |
body | string | нет | Код CVC2 или CVV2, 3 или 4 символа, печатается на обратной стороне карты. |
Пример запроса:
{
"type": "bank_card"
}
Пример ответа:
{
"id": "1da5c87d-0984-50e8-a7f3-8de646dd9ec9",
"type": "bank_card",
"saved": true,
"status": "active",
"holder": {
"account_id": "123"
}
}
Используйте этот запрос, чтобы получить информацию о текущем состоянии способа оплаты по его уникальному идентификатору.
Документация: https://yookassa.ru/developers/api#get_payment_method
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
payment_method_id |
path | string | да | Идентификатор сохраненного способа оплаты. |
Пример ответа:
{
"id": "1da5c87d-0984-50e8-a7f3-8de646dd9ec9",
"type": "bank_card",
"saved": true,
"status": "active",
"holder": {
"account_id": "123"
}
}
Создает в ЮKassa объект счета. В запросе передайте данные о заказе, которые отобразятся на странице счета, и данные для проведения платежа.
Документация: https://yookassa.ru/developers/api#create_invoice
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
Idempotence-Key |
header | string | да | Ключ идемпотентности. Рекомендуется использовать строку вида UUID v7 |
payment_data |
body | object | да | Данные для проведения платежа по выставленному счету. |
payment_data.amount |
body | object | да | Сумма платежа. Должна быть в пределах лимитов. Указывается вместе с кодом валюты. Должна совпадать с валютой субаккаунта (recipient.gateway_id), если вы разделяете потоки платежей, или с валютой аккаунта (shopId в личном кабинете), если не разделяете. |
payment_data.receipt |
body | object | нет | Данные для формирования чека. Параметр передается, если вы компания или индивидуальный предприниматель и используете Чеки от ЮKassa, либо используете стороннюю онлайн-кассу и отправляете данные для формирования чеков по одному из сценариев: Платеж и чек одновременно или Сначала чек, потом платеж. |
payment_data.recipient |
body | object | нет | Получатель платежа. Нужен, если вы разделяете потоки платежей в рамках одного аккаунта или создаете платеж в адрес другого аккаунта. |
payment_data.save_payment_method |
body | boolean | нет | Сохранение платежных данных для проведения автоплатежей. Возможные значения: * true — сохранить способ оплаты (сохранить платежные данные); * false — провести платеж без сохранения способа оплаты. Доступно только после согласования с менеджером ЮKassa. |
payment_data.capture |
body | boolean | нет | Автоматический прием поступившего платежа. Возможные значения: * true — оплата списывается сразу (платеж в одну стадию); * false — оплата холдируется и списывается по вашему запросу (платеж в две стадии: https://yookassa.ru/developers/payment-acceptance/getting-started/payment-process#capture-and-cancel). По умолчанию false. |
payment_data.client_ip |
body | string | нет | IPv4- или IPv6-адрес пользователя. Если не указан, используется IP-адрес TCP-соединения. |
payment_data.description |
body | string | нет | Описание транзакции (не более 128 символов), которое вы увидите в личном кабинете ЮKassa, а пользователь — при оплате. Например: «Оплата заказа № 72 для user@yoomoney.ru». |
payment_data.metadata |
body | object | нет | Любые дополнительные данные, которые нужны вам для работы (например, ваш внутренний идентификатор заказа). Передаются в виде набора пар «ключ — значение» и возвращаются в ответе от ЮKassa. Ограничения: не более 16 ключей, имя ключа — не более 32 символов, значение ключа — не более 512 символов, тип данных — строка в формате UTF-8. |
cart |
body | object[] | да | Корзина заказа — список товаров или услуг, который отобразится на странице счета перед оплатой. |
delivery_method_data |
body | object | нет | |
delivery_method_data.type |
body | string (self, sms, email) | нет | Код способа доставки счета. |
delivery_method_data.phone |
body | string | нет | Номер телефона, на который ЮKassa отправит смс со ссылкой на счет. Указывается в формате ITU-T E.164, например 79000000000. |
delivery_method_data.email |
body | string | нет | Адрес электронной почты, на который ЮKassa отправит письмо со ссылкой на счет. |
expires_at |
body | string | да | Срок действия счета — дата и время, до которых можно оплатить выставленный счет. Указывается по UTC и передается в формате ISO 8601. Пример: 2024-10-18T10:51:18.139Z |
locale |
body | string (ru_RU, en_US) | нет | Язык интерфейса, писем и смс, которые будут показаны или отправлены пользователю. Формат соответствует ISO/IEC 15897. Возможные значения: ru_RU, en_US. Регистр важен. |
description |
body | string | нет | Описание выставленного счета (не более 128 символов), которое вы увидите в личном кабинете ЮKassa, а пользователь на странице счета. Например: «Счет на оплату по договору 37». |
metadata |
body | object | нет | Любые дополнительные данные, которые нужны вам для работы (например, ваш внутренний идентификатор заказа). Передаются в виде набора пар «ключ — значение» и возвращаются в ответе от ЮKassa. Ограничения: не более 16 ключей, имя ключа — не более 32 символов, значение ключа — не более 512 символов, тип данных — строка в формате UTF-8. |
Пример запроса:
{
"payment_data": {
"amount": {
"value": "1000.00",
"currency": "RUB"
}
},
"cart": [
{
"description": "string",
"price": {
"value": "1000.00",
"currency": "RUB"
},
"quantity": 1
}
],
"expires_at": "2024-10-18T10:51:18.139Z"
}
Пример ответа:
{
"id": "in-e44e8088-bd73-43b1-959a-954f3a7d0c54",
"status": "succeeded",
"cart": [
{
"description": "string",
"price": {
"value": "1000.00",
"currency": "RUB"
},
"quantity": 1
}
],
"created_at": "2017-11-03T11:52:31.827Z"
}
Используйте этот запрос, чтобы получить информацию о текущем состоянии счета по его уникальному идентификатору.
Документация: https://yookassa.ru/developers/api#get_invoice
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
invoice_id |
path | string | да | Идентификатор счета в ЮKassa. |
Пример ответа:
{
"id": "in-e44e8088-bd73-43b1-959a-954f3a7d0c54",
"status": "succeeded",
"cart": [
{
"description": "string",
"price": {
"value": "1000.00",
"currency": "RUB"
},
"quantity": 1
}
],
"created_at": "2017-11-03T11:52:31.827Z"
}
Отправьте запрос, чтобы создать сделку, в рамках которой нужно принять платеж от покупателя и перевести его продавцу.
Документация: https://yookassa.ru/developers/api#create_deal
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
Idempotence-Key |
header | string | да | Ключ идемпотентности. Рекомендуется использовать строку вида UUID v7 |
type |
body | string (safe_deal) | да | Тип сделки. Фиксированное значение: safe_deal — Безопасная сделка. |
fee_moment |
body | string (payment_succeeded, deal_closed) | да | Момент, когда вам зачисляется вознаграждение маркетплейса. Возможные значения: payment_succeeded — после успешной оплаты; deal_closed — после закрытия сделки по итогам успешной выплаты. |
metadata |
body | object | нет | Любые дополнительные данные, которые нужны вам для работы (например, ваш внутренний идентификатор заказа). Передаются в виде набора пар «ключ-значение» и возвращаются в ответе от ЮKassa. Ограничения: не более 16 ключей, не более 32 символов в названии ключа, не более 512 символов в значении ключа, тип данных — строка в формате UTF-8. |
description |
body | string | нет | Описание сделки (не более 128 символов). Используется для фильтрации при получении списка сделок. |
Пример запроса:
{
"type": "safe_deal",
"fee_moment": "payment_succeeded"
}
Пример ответа:
{
"type": "safe_deal",
"id": "dl-d68d2fe4-2abb-47e5-8112-32e28f87fb52",
"balance": {
"value": "1000.00",
"currency": "RUB"
},
"payout_balance": {
"value": "1000.00",
"currency": "RUB"
},
"status": "closed",
"created_at": "2020-07-03T11:52:31.827Z",
"expires_at": "2021-01-03T18:31:22.532Z",
"test": false,
"fee_moment": "payment_succeeded"
}
Запрос позволяет получить список сделок, отфильтрованный по заданным критериям.
Документация: https://yookassa.ru/developers/api#get_deals_list
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
created_at.gte |
query | string | нет | Фильтр по времени создания: время должно быть больше указанного значения или равно ему («от такого-то момента включительно»). Указывается в формате ISO 8601. Пример: created_at.gte=2018-07-18T10:51:18.139Z |
created_at.gt |
query | string | нет | Фильтр по времени создания: время должно быть больше указанного значения («от такого-то момента не включительно»). Указывается в формате ISO 8601. Пример: created_at.gt=2018-07-18T10:51:18.139Z |
created_at.lte |
query | string | нет | Фильтр по времени создания: время должно быть меньше указанного значения или равно ему («до такого-то момента включительно»). Указывается в формате ISO 8601. Пример: created_at.lte=2018-07-18T10:51:18.139Z |
created_at.lt |
query | string | нет | Фильтр по времени создания: время должно быть меньше указанного значения («до такого-то момента не включительно»). Указывается в формате ISO 8601. Пример: created_at.lt=2018-07-18T10:51:18.139Z |
expires_at.gte |
query | string | нет | Фильтр по времени автоматического закрытия сделки: время должно быть больше указанного значения или равно ему («от такого-то момента включительно»). Указывается в формате ISO 8601. Пример: expires_at.gte=2018-07-18T10:51:18.139Z |
expires_at.gt |
query | string | нет | Фильтр по времени автоматического закрытия сделки: время должно быть больше указанного значения («от такого-то момента не включительно»). Указывается в формате ISO 8601. Пример: expires_at.gt=2018-07-18T10:51:18.139Z |
expires_at.lte |
query | string | нет | Фильтр по времени автоматического закрытия сделки: время должно быть меньше указанного значения или равно ему («до такого-то момента включительно»). Указывается в формате ISO 8601. Пример: expires_at.lte=2018-07-18T10:51:18.139Z |
expires_at.lt |
query | string | нет | Фильтр по времени автоматического закрытия сделки: время должно быть меньше указанного значения («до такого-то момента не включительно»). Указывается в формате ISO 8601. Пример: expires_at.lt=2018-07-18T10:51:18.139Z |
status |
query | string (opened, closed) | нет | Фильтр по статусу сделки. Пример: status=closed |
full_text_search |
query | string | нет | Фильтр по описанию сделки в параметре description (например, по идентификатору сделки на стороне вашего маркетплейса в ЮKassa либо по идентификатору покупателя или продавца). От 4 до 128 символов. Пример: 123554642-2432FF344R |
limit |
query | integer | нет | Размер выдачи результатов запроса — количество объектов, передаваемых в ответе. Возможные значения: от 1 до 100. Пример: limit=50. Значение по умолчанию: 10 |
cursor |
query | string | нет | Указатель на следующий фрагмент списка. Пример: cursor=37a5c87d-3984-51e8-a7f3-8de646d39ec15. В качестве cursor необходимо использовать значение параметра next_cursor, полученное в ответе на предыдущий запрос. Используется, если размер списка больше размера выдачи (limit) и конец выдачи не достигнут. |
Пример ответа:
{
"type": "list",
"items": [
{
"type": "safe_deal",
"id": "dl-d68d2fe4-2abb-47e5-8112-32e28f87fb52",
"balance": {
"value": "1000.00",
"currency": "RUB"
},
"payout_balance": {
"value": "1000.00",
"currency": "RUB"
},
"status": "closed",
"created_at": "2020-07-03T11:52:31.827Z",
"expires_at": "2021-01-03T18:31:22.532Z",
"test": false,
"fee_moment": "payment_succeeded"
}
]
}
Запрос позволяет получить информацию о текущем состоянии сделки по ее уникальному идентификатору.
Документация: https://yookassa.ru/developers/api#get_deal
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
deal_id |
path | string | да | Идентификатор сделки. |
Пример ответа:
{
"type": "safe_deal",
"id": "dl-d68d2fe4-2abb-47e5-8112-32e28f87fb52",
"balance": {
"value": "1000.00",
"currency": "RUB"
},
"payout_balance": {
"value": "1000.00",
"currency": "RUB"
},
"status": "closed",
"created_at": "2020-07-03T11:52:31.827Z",
"expires_at": "2021-01-03T18:31:22.532Z",
"test": false,
"fee_moment": "payment_succeeded"
}
Используйте этот запрос, чтобы создать в ЮKassa объект выплаты. В запросе нужно передать сумму выплаты, данные о способе получения выплаты (например, номер кошелька ЮMoney), описание выплаты и при необходимости дополнительные параметры. Параметры и данные для аутентификации зависят от платежного решения — обычные выплаты или выплаты в рамках Безопасной сделки.
Документация: https://yookassa.ru/developers/api#create_payout
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
Idempotence-Key |
header | string | да | Ключ идемпотентности. Рекомендуется использовать строку вида UUID v7 |
amount |
body | object | да | Сумма выплаты. Есть ограничения на минимальный и максимальный размер выплаты и сумму выплат за месяц. Подробнее о лимитах обычных выплат и выплат в рамках Безопасной сделки |
amount.value |
body | string | да | Сумма в выбранной валюте, всегда в дробном виде. Разделитель дробной части — точка, разделителя тысяч нет. Количество знаков после точки зависит от выбранной валюты. Пример: 1000.00. |
amount.currency |
body | string (RUB, EUR, USD, KZT, BYN, UAH, UZS, TRY) | да | Трехбуквенный код валюты в формате ISO-4217. Пример: RUB. |
payout_destination_data |
body | object | нет | |
payout_destination_data.type |
body | string (yoo_money, bank_card, sbp) | нет | Способ получения выплаты: * yoo_money — выплаты на кошелек ЮMoney; * bank_card — выплаты на банковскую карту; * sbp — выплаты через СБП на счет в банке или платежном сервисе. |
payout_destination_data.account_number |
body | string | нет | Номер кошелька ЮMoney, например 41001614575714. Длина от 11 до 33 цифр. Статус кошелька для обычных выплат — любой, для выплат в рамках Безопасной сделки — именной или идентифицированный. |
payout_destination_data.card |
body | object | нет | Данные банковской карты для выплаты. |
payout_destination_data.phone |
body | string | нет | Телефон, к которому привязан счет получателя выплаты в системе участника СБП. Указывается в формате ITU-T E.164, например 79000000000. |
payout_destination_data.bank_id |
body | string | нет | Идентификатор участника СБП — банка или платежного сервиса, подключенного к сервису. Максимум 12 символов. |
payout_token |
body | string | нет | Токенизированные данные для выплаты. Например, синоним банковской карты. Обязательный параметр, если не передан payout_destination_data или payment_method_id. |
payment_method_id |
body | string | нет | Идентификатор сохраненного способа оплаты, данные которого нужно использовать для проведения выплаты. Подробнее о выплатах с использованием идентификатора сохраненного способа оплаты Обязательный параметр, если не передан payout_destination_data или payout_token. |
description |
body | string | нет | Описание транзакции (не более 128 символов). Например: «Выплата по договору 37». |
deal |
body | object | нет | Сделка, в рамках которой нужно провести выплату. Необходимо передавать, если вы проводите Безопасную сделку |
deal.id |
body | string | нет | Идентификатор сделки. |
personal_data |
body | object[] | нет | Персональные данные получателя выплаты. Только для обычных выплат. Необходимо передавать в этих сценариях: * выплаты с проверкой получателя (только для выплат через СБП); * выплаты с передачей данных получателя для выписок из реестра. В массиве можно одновременно передать несколько идентификаторов, но только для разных типов данных. |
metadata |
body | object | нет | Любые дополнительные данные, которые нужны вам для работы (например, ваш внутренний идентификатор заказа). Передаются в виде набора пар «ключ-значение» и возвращаются в ответе от ЮKassa. Ограничения: не больше 16 ключей, имя ключа — не больше 32 символов, значение ключа — не больше 512 символов, тип данных — строка в формате UTF-8. |
Пример запроса:
{
"amount": {
"value": "1000.00",
"currency": "RUB"
}
}
Пример ответа:
{
"id": "po-27ced252-0025-5000-9000-0a682a8bab8f",
"amount": {
"value": "1000.00",
"currency": "RUB"
},
"status": "pending",
"payout_destination": {
"type": "bank_card"
},
"created_at": "2020-07-03T11:52:31.827Z",
"test": false
}
Используйте этот запрос, чтобы получить список выплат. Доступны выплаты, созданные за последние 3 года. Список можно отфильтровать по заданным критериям. Способ аутентификации запроса зависит от решения, которое вы используете: обычные выплаты или выплаты в рамках Безопасной сделки.
Документация: https://yookassa.ru/developers/api#get_payouts_list
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
created_at.gte |
query | string | нет | Фильтр по времени создания: время должно быть больше указанного значения или равно ему («от такого-то момента включительно»). Указывается в формате ISO 8601. Пример: created_at.gte=2018-07-18T10:51:18.139Z |
created_at.gt |
query | string | нет | Фильтр по времени создания: время должно быть больше указанного значения («от такого-то момента не включительно»). Указывается в формате ISO 8601. Пример: created_at.gt=2018-07-18T10:51:18.139Z |
created_at.lte |
query | string | нет | Фильтр по времени создания: время должно быть меньше указанного значения или равно ему («до такого-то момента включительно»). Указывается в формате ISO 8601. Пример: created_at.lte=2018-07-18T10:51:18.139Z |
created_at.lt |
query | string | нет | Фильтр по времени создания: время должно быть меньше указанного значения («до такого-то момента не включительно»). Указывается в формате ISO 8601. Пример: created_at.lt=2018-07-18T10:51:18.139Z |
succeeded_at.gte |
query | string | нет | Фильтр по времени успешной обработки выплаты: время должно быть больше указанного значения или равно ему («от такого-то момента включительно»). Указывается в формате ISO 8601. Пример: succeeded_at.gte=2018-07-18T10:51:18.139Z |
succeeded_at.gt |
query | string | нет | Фильтр по времени успешной обработки выплаты: время должно быть больше указанного значения («от такого-то момента не включительно»). Указывается в формате ISO 8601. Пример: succeeded_at.gt=2018-07-18T10:51:18.139Z |
succeeded_at.lte |
query | string | нет | Фильтр по времени успешного проведения выплаты: время должно быть меньше указанного значения или равно ему («до момента времени включительно»). Указывается в формате ISO 8601. Пример: succeeded_at.lte=2018-07-18T10:51:18.139Z |
succeeded_at.lt |
query | string | нет | Фильтр по времени успешного проведения выплаты: время должно быть меньше указанного значения («до момента времени исключительно»). Указывается в формате ISO 8601. Пример: succeeded_at.lt=2018-07-18T10:51:18.139Z |
payout_destination.type |
query | string (yoo_money, bank_card, sbp) | нет | Фильтр по способу получения выплаты. Пример: payout_destination.type=bank_card |
status |
query | string (pending, succeeded, canceled) | нет | Фильтр по статусу выплаты. Пример: status=succeeded |
limit |
query | integer | нет | Размер выдачи результатов запроса — количество объектов, передаваемых в ответе. Возможные значения: от 1 до 100. Пример: limit=50. Значение по умолчанию: 10. |
cursor |
query | string | нет | Указатель на следующий фрагмент списка. Пример: cursor=37a5c87d-3984-51e8-a7f3-8de646d39ec15. В качестве cursor необходимо использовать параметр next_cursor, полученный в ответе на предыдущий запрос. Используется, если размер списка больше размера выдачи (limit) и конец выдачи не достигнут. |
Пример ответа:
{
"type": "list",
"items": [
{
"id": "po-27ced252-0025-5000-9000-0a682a8bab8f",
"amount": {
"value": "1000.00",
"currency": "RUB"
},
"status": "pending",
"payout_destination": {
"type": "bank_card"
},
"created_at": "2020-07-03T11:52:31.827Z",
"test": false
}
]
}
Используйте этот запрос, чтобы найти выплаты по заданным критериям. Доступен только для выплат, созданных за последние 3 месяца; сейчас поддерживается поиск только по параметру metadata, а также можно указать дату и время создания выплаты (параметр created_at). Данные для аутентификации запросов зависят от платежного решения — обычные выплаты или выплаты в рамках Безопасной сделки.
Документация: https://yookassa.ru/developers/api#get_payouts_search
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
created_at.gte |
query | string | нет | Фильтр по дате создания: время должно быть больше указанного значения или равно ему («от момента времени включительно»). Указывается в формате ISO 8601. Пример: created_at.gte=2018-07-18T10:51:18.139Z |
created_at.gt |
query | string | нет | Фильтр по дате создания: время должно быть больше указанного значения («от момента времени исключительно»). Указывается в формате ISO 8601. Пример: created_at.gt=2018-07-18T10:51:18.139Z |
created_at.lte |
query | string | нет | Фильтр по дате создания: время должно быть меньше указанного значения или равно ему («до момента времени включительно»). Указывается в формате ISO 8601. Пример: created_at.lte=2018-07-18T10:51:18.139Z |
created_at.lt |
query | string | нет | Фильтр по дате создания: время должно быть меньше указанного значения («до момента времени исключительно»). Указывается в формате ISO 8601. Пример: created_at.lt=2018-07-18T10:51:18.139Z |
metadata |
query | object | нет | Фильтр по объекту metadata: строгий поиск по паре «ключ-значение» (возвращаются объекты с точным совпадением ключа и значения). Ограничения: не больше одной пары «ключ-значение», имя ключа — не больше 32 символов, значение ключа — не больше 512 символов, тип данных — строка в формате UTF-8 в URL-кодированном виде. Шаблон: metadata[key]=value. Пример: metadata%5Boperation_id%5D=e2ab2e1c-776d-4376-aba8-d2099243d1f6 |
limit |
query | integer | нет | Размер выдачи результатов запроса — количество объектов, передаваемых в ответе. Возможные значения: от 1 до 100. Пример: limit=50. Значение по умолчанию: 10. |
cursor |
query | string | нет | Указатель на следующий фрагмент списка. Пример: cursor=37a5c87d-3984-51e8-a7f3-8de646d39ec15. В качестве cursor необходимо использовать параметр next_cursor, полученный в ответе на предыдущий запрос. Используется, если размер списка больше размера выдачи (limit) и конец выдачи не достигнут. |
Пример ответа:
{
"type": "list",
"items": [
{
"id": "po-27ced252-0025-5000-9000-0a682a8bab8f",
"amount": {
"value": "1000.00",
"currency": "RUB"
},
"status": "pending",
"payout_destination": {
"type": "bank_card"
},
"created_at": "2020-07-03T11:52:31.827Z",
"test": false
}
]
}
Используйте этот запрос, чтобы получить информацию о текущем состоянии выплаты по ее уникальному идентификатору. Данные для аутентификации запросов зависят от платежного решения — обычные выплаты или выплаты в рамках Безопасной сделки.
Документация: https://yookassa.ru/developers/api#get_payout
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
payout_id |
path | string | да | Идентификатор выплаты. |
Пример ответа:
{
"id": "po-27ced252-0025-5000-9000-0a682a8bab8f",
"amount": {
"value": "1000.00",
"currency": "RUB"
},
"status": "pending",
"payout_destination": {
"type": "bank_card"
},
"created_at": "2020-07-03T11:52:31.827Z",
"test": false
}
С помощью этого запроса можно получить актуальный список всех участников СБП. Список необходимо показать получателю выплаты, а идентификатор выбранного участника СБП — передать в запросе на создание выплаты.
Документация: https://yookassa.ru/developers/api#get_sbp_banks_list
Пример ответа:
{
"type": "list",
"items": [
{
"bank_id": "100000000111",
"name": "Сбербанк",
"bic": "044525225"
}
]
}
Используйте этот запрос, чтобы создать в ЮKassa объект персональных данных. Укажите тип данных (цель, для которой они будут использоваться) и информацию о пользователе: имя, фамилию, отчество и другие данные в зависимости от выбранного типа. Идентификатор созданного объекта персональных данных используйте в запросе на создание выплаты.
Документация: https://yookassa.ru/developers/api#create_personal_data
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
Idempotence-Key |
header | string | да | Ключ идемпотентности. Рекомендуется использовать строку вида UUID v7 |
type |
body | string (payout_statement_recipient, sbp_payout_recipient) | да | Тип персональных данных — цель, для которой вы будете использовать данные. Возможные значения: sbp_payout_recipient — выплаты с проверкой получателя (только для выплат через СБП); payout_statement_recipient — выплаты с данными получателя для выписок из отчета о выплатах. |
metadata |
body | object | нет | Любые дополнительные данные, которые нужны вам для работы (например, ваш внутренний идентификатор заказа). Передаются в виде набора пар «ключ-значение» и возвращаются в ответе от ЮKassa. Ограничения: не больше 16 ключей, имя ключа — не больше 32 символов, значение ключа — не больше 512 символов, тип данных — строка в формате UTF-8. |
last_name |
body | string | да | Фамилия пользователя. |
first_name |
body | string | да | Имя пользователя. |
middle_name |
body | string | нет | Отчество пользователя. Обязательный параметр, если указано в паспорте. |
birthdate |
body | string | нет | Дата рождения. Указывается в формате ISO 8601. |
Пример запроса:
{
"type": "sbp_payout_recipient",
"last_name": "Иванов",
"first_name": "Иван"
}
Пример ответа:
{
"id": "pd-22e12f66-000f-5000-8000-18db351245c7",
"status": "waiting_for_operation",
"type": "sbp_payout_recipient",
"created_at": "string"
}
С помощью этого запроса можно получить информацию о текущем статусе объекта персональных данных по его уникальному идентификатору.
Документация: https://yookassa.ru/developers/api#get_personal_data
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
personal_data_id |
path | string | да | Идентификатор персональных данных, сохраненных в ЮKassa. |
Пример ответа:
{
"id": "pd-22e12f66-000f-5000-8000-18db351245c7",
"status": "waiting_for_operation",
"type": "sbp_payout_recipient",
"created_at": "string"
}
Используйте этот запрос, чтобы создать в ЮKassa объект кассовой ссылки и активировать кассовую ссылку для последующего приема платежей по платежным табличкам. В запросе необходимо передать кассовую ссылку и идентификатор торговой точки.
Документация: https://yookassa.ru/developers/api#create_pos_link
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
Idempotence-Key |
header | string | да | Ключ идемпотентности. Рекомендуется использовать строку вида UUID v7 |
recipient |
body | object | да | Идентификатор торговой точки. Например, конкретной кассы в вашем магазине. Вы получите идентификатор от менеджера ЮKassa при подключении платежей. |
recipient.gateway_id |
body | string | да | Идентификатор субаккаунта. Используется для разделения потоков платежей в рамках одного аккаунта. |
pos_link_data |
body | object | да | Данные кассовой ссылки — уникальной ссылки, зашифрованной в QR-коде и NFC-метке на платежной табличке. |
pos_link_data.link |
body | string | да | Кассовая ссылка с платежной таблички. Чтобы получить ее, отсканируйте QR-код на табличке. |
Пример запроса:
{
"recipient": {
"gateway_id": "456"
},
"pos_link_data": {
"link": "https://qr.nspk.ru/AD100003N2S98C2U48D6N60M12345678"
}
}
Пример ответа:
{
"id": "pl-1da5c87d-0984-50e8-a7f3-8de646dd9ec9",
"status": "active",
"type": "nspk",
"recipient": {
"gateway_id": "456"
}
}
Используйте этот запрос, чтобы получить информацию о текущем состоянии кассовой ссылки по ее уникальному идентификатору.
Документация: https://yookassa.ru/developers/api#get_pos_link
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
pos_link_id |
path | string | да | Идентификатор кассовой ссылки в ЮKassa. |
Пример ответа:
{
"id": "pl-1da5c87d-0984-50e8-a7f3-8de646dd9ec9",
"status": "active",
"type": "nspk",
"recipient": {
"gateway_id": "456"
}
}
Используйте этот запрос, чтобы привязать к кассовой ссылке другую торговую точку. В запросе необходимо передать идентификатор торговой точки, которую вы хотите привязать к кассовой ссылке. После привязки кассовой ссылки перенесите платежную табличку на новую торговую точку (например, если привязали к ссылке новую кассу, переместите табличку туда).
Документация: https://yookassa.ru/developers/api#recipient_pos_link
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
pos_link_id |
path | string | да | Идентификатор кассовой ссылки в ЮKassa. |
Idempotence-Key |
header | string | да | Ключ идемпотентности. Рекомендуется использовать строку вида UUID v7 |
recipient |
body | object | да | Идентификатор торговой точки, которую вы хотите привязать к кассовой ссылке. |
recipient.gateway_id |
body | string | да | Идентификатор субаккаунта. Используется для разделения потоков платежей в рамках одного аккаунта. |
Пример запроса:
{
"recipient": {
"gateway_id": "456"
}
}
Пример ответа:
{
"id": "pl-1da5c87d-0984-50e8-a7f3-8de646dd9ec9",
"status": "active",
"type": "nspk",
"recipient": {
"gateway_id": "456"
}
}
Используйте этот запрос, чтобы деактивировать кассовую ссылку и приостановить прием платежей по этой платежной табличке. В запросе передайте идентификатор кассовой ссылки, которую хотите деактивировать. При необходимости вы можете активировать ранее деактивированную кассовую ссылку.
Документация: https://yookassa.ru/developers/api#deactivate_pos_link
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
pos_link_id |
path | string | да | Идентификатор кассовой ссылки в ЮKassa. |
Пример ответа:
{
"id": "pl-1da5c87d-0984-50e8-a7f3-8de646dd9ec9",
"status": "active",
"type": "nspk",
"recipient": {
"gateway_id": "456"
}
}
Используйте этот запрос, чтобы активировать ранее деактивированную кассовую ссылку и возобновить прием платежей по этой платежной табличке. В запросе передайте идентификатор кассовой ссылки, которую вы ранее деактивировали.
Документация: https://yookassa.ru/developers/api#activate_pos_link
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
pos_link_id |
path | string | да | Идентификатор кассовой ссылки в ЮKassa. |
Пример ответа:
{
"id": "pl-1da5c87d-0984-50e8-a7f3-8de646dd9ec9",
"status": "active",
"type": "nspk",
"recipient": {
"gateway_id": "456"
}
}
curl https://api.yookassa.ru/v3/payments/{payment_id} \
-H "Authorization: Bearer <OAuth-токен>"
{
"type" : "error",
"id" : "55a02ced-be5d-462d-a6fb-0ace18881671",
"code" : "invalid_request",
"description" : "Idempotence key is too long. Send the value in accordance with the documentation",
"parameter" : "Idempotence-Key"
}
| Код | Описание |
|---|---|
400 |
invalid_request — ошибка в параметрах или логике запроса, проблемы с ключом идемпотентности. Причина — в description и parameter. Исправь запрос и повтори с новым ключом идемпотентности. |
401 |
invalid_credentials — нет заголовка Authorization, неверный идентификатор или секретный ключ, устаревший или отозванный OAuth-токен. |
403 |
forbidden — не хватает прав: функцию нужно согласовать с менеджером ЮKassa или для OAuth не запрошены нужные права. |
404 |
not_found — объект не найден: создан в другом магазине или в идентификаторе опечатка. |
405 |
Неверный HTTP-метод, например GET вместо POST для отмены платежа. Поддерживаемый метод — в заголовке Allow. |
415 |
Неверный тип контента: тело POST-запроса должно быть в JSON. |
429 |
too_many_requests — слишком много запросов. Увеличь интервалы между запросами. |
500 |
internal_server_error — результат неизвестен, в том числе если ЮKassa не смогла дать точный ответ за 30 секунд. Повтори запрос с тем же ключом идемпотентности или запроси объект через GET. Если ошибка держится больше получаса — в поддержку. |
Идемпотентность действует 24 часа после первого запроса, затем повтор обрабатывается как новый запрос. Idempotence-Key — не длиннее 64 символов.
Если за короткое время запросов слишком много, API возвращает HTTP 429. При статусе pending и ошибках 500 или 429 повторяй запрос с возрастающим интервалом.
Списки отдают не больше 100 объектов за запрос (limit), дальше — по cursor. Платежи и возвраты доступны за последние 3 года.
Если этого недостаточно — официальная документация: https://yookassa.ru/developers/api JSON: https://mcp-everything.ru/api/integrations/yookassa. MCP: https://mcp-everything.ru/mcp