Docs
Старые версии API
Помощь
Подключить ЮKassa

Проведение платежа

Перед началом приема платежей необходимо активировать кассовую ссылку.
Единственный доступный способ приема платежей по платежным табличкам — СБП (Система Быстрых Платежей ЦБ РФ). Такие платежи проходят через НСПК (Национальная Система Платежных Карт). Всё платежное взаимодействие проходит через НСПК — выбор пользователем банка или платежного сервиса, списание денег со счета, проведение возврата и т.д.
В этом разделе описано, как создать платеж через СБП, отменить его и перезаписать сумму в кассовой ссылке.
Создание платежа
Шаг 1. Когда пользователь будет готов перейти к оплате, запишите сумму в кассовую ссылку. Для этого создайте платеж: передайте в запросе данные для аутентификации запроса, ключ идемпотентности и данные для проведения платежа:
  • в объекте amount передайте сумму, которую нужно списать с пользователя;
  • в объекте pos_link передайте:
    • параметр id с идентификатором кассовой ссылки;
    • параметр expires_at с датой и временем, когда заканчивается срок действия оплаты, в формате ISO 8601 (может быть указано от 1 до 20 минут с момента создания платежа);
  • в объекте confirmation передайте тип external;
  • в параметре capture передайте значение true, чтобы платеж автоматически перешел в статус succeeded после оплаты (для платежей через СБП платежи в две стадии недоступны).
Пример запроса на создание платежа
cURL
  curl https://api.yookassa.ru/v3/payments \
    -X POST \
    -u <Идентификатор_магазина>:<Секретный_ключ> \
    -H 'Idempotence-Key: <Ключ_идемпотентности>' \
    -H 'Content-Type: application/json' \
    -d '{
            "amount": {
              "value": "100.00",
              "currency": "RUB"
            },
            "pos_link": {
              "id": "pl-1da5c87d-0984-50e8-a7f3-8de646dd9ec9",
              "expires_at": "2026-03-20T11:25:56Z"
            },
            "confirmation": {
              "type": "external"
            },
            "capture": true,
            "description": "Заказ №37"
         }'
Дождитеcь ответа ЮKassa об успешной записи суммы в кассовую ссылку: в объекте платежа вернется параметр status в значении pending.
ЮKassa может вернуть объект платежа в статусе canceled. Это значит, что в кассовую ссылку ранее была записана другая сумма, пользователь начал подтверждать платеж, но процесс пока не завершен на стороне ЮKassa или НСПК. В этом случае следует дождаться завершения прошлого платежа.
Когда сумма записана в кассовую ссылку, пользователь может переходить к оплате.
Пример созданного объекта платежа
JSON
{
	"id": "22e12f66-000f-5000-8000-18db351245c7",
	"status": "pending",
	"amount": {
		"value": "100.00",
		"currency": "RUB"
	},
	"description": "Заказ №37",
	"recipient": {
		"account_id": "123",
		"gateway_id": "456"
	},
  "payment_method": {
    "type": "sbp",
    "id": "22e12f66-000f-5000-8000-18db351245c7",
    "saved": false,
    "status": "inactive",
    "qrc_id": "AD10003FPKBK906C95IOMVOKEOMPAI78"
  },
	"created_at": "2026-03-20T11:10:04.673Z",
	"test": false,
	"paid": false,
	"refundable": false,
	"metadata": {}
}

Шаг 2. При необходимости сохраните идентификатор созданного платежа (payment.id) в связке с идентификатором кассовой ссылки (pos_link.id).
Шаг 3. Дождитесь успешного завершения платежа. Для этого подождите, когда придет уведомление от ЮKassa или периодически отправляйте запросы, чтобы получить информацию о платеже.
Пример объекта платежа в статусе succeeded
JSON
{
	"id": "22e12f66-000f-5000-8000-18db351245c7",
	"status": "succeeded",
	"amount": {
		"value": "100.00",
		"currency": "RUB"
	},
	"income_amount": {
		"value": "97.00",
		"currency": "RUB"
	},
	"description": "Заказ №37",
	"recipient": {
		"account_id": "123",
		"gateway_id": "456"
	},
	"payment_method": {
		"type": "sbp",
		"id": "22e12f66-000f-5000-8000-18db351245c7",
		"saved": false,
		"status": "inactive",
		"sbp_operation_id": "A6078205906451070G10060011720501",
		"payer_bank_details": {
			"bank_id": "100000000005",
			"bic": "044525187",
      "account": "40702810500000776777"
		},
		"qrc_id": "AD10003FPKBK906C95IOMVOKEOMPAI78"
	},
	"captured_at": "2026-03-20T11:20:08.231Z",
	"created_at": "2026-03-20T11:10:04.673Z",
	"test": false,
	"refunded_amount": {
		"value": "0.00",
		"currency": "RUB"
	},
	"paid": true,
	"refundable": true,
	"metadata": {}
}
Готово!
Перезапись суммы
Кассовая ссылка в любой момент времени может содержать только одну сумму. Если в процессе оплаты пользователь меняет состав заказа (убирает, добавляет или заменяет товары), итоговая сумма меняется. В такой ситуации необходимо перезаписать сумму в кассовой ссылке.
Чтобы перезаписать сумму платежа в кассовой ссылке, создайте еще один платеж. Передайте в новом запросе актуальную сумму платежа и дождитесь завершения оплаты.
Перезаписать сумму с помощью нового платежа можно только до того, как пользователь подтвердит старый платеж в приложении банка или платежного сервиса. Это значит, что новый платеж можно создать, пока старый платеж находится в статусе pending и пользователь не перешел к подтверждению. Если старый платеж уже в обработке (пользователь подтвердил его), новый платеж вернется в статусе canceled.
Отмена платежа
Если вы хотите отказаться от оплаты, отправьте ЮKassa запрос на отмену платежа. Платеж перейдет в статус canceled и будет отменен, деньги вернутся пользователю. В этом случае ЮKassa не будет удерживать комиссию за проведение платежа.
Вы можете отменить только платежи в статусе pending. Если платеж перешел в статус succeeded, вы можете создать возврат.
Пример запроса на отмену платежа
cURL
PHP
Python
curl https://api.yookassa.ru/v3/payments/{payment_id}/cancel \
  -X POST \
  -u <Идентификатор магазина>:<Секретный ключ> \
  -H 'Idempotence-Key: <Ключ идемпотентности>' \
  -H 'Content-Type: application/json' \
  -d '{

      }'
Неуспешные платежи
Если что-то пошло не так, платеж отменится и перейдет в статус canceled. Вы получите от ЮKassa комментарий к отмене платежа. Причины для отмены платежей в офлайне идентичны причинам отмены платежей в интернете.
Что почитать еще
© 2026, ООО НКО «ЮМани»