tabpayДокументация
Разделы документации

Документация/API

Отмена платежа

POST /v1/payments//cancel - отмена до начала оплаты

POST/api/v1/payments/{id}/cancel

Описание

Отменяет платёж, оплата которого ещё не началась (статус CREATED): покупатель отказался от заказа - ссылка payUrl сразу перестаёт принимать оплату и показывает экран «Счёт отменён». Ответ - тот же объект платежа в статусе CANCELED, о переходе прилетит вебхук.

Повторная отмена уже отменённого платежа безопасна: снова 200 с тем же объектом, без второго вебхука - можно смело ретраить.

Когда отмена невозможна

Как только покупатель начал оплату (статус PENDING - показан QR по СБП или отправлены реквизиты карты), счёт уже выставлен и отозвать его нельзя - придёт 409. Дождитесь финального статуса: не оплатит - платёж сам станет EXPIRED, оплатит - SUCCESS, и тогда вопрос решается возвратом через поддержку.

409 на отмену - это сигнал «оплата ещё может пройти»: не выдавайте и не списывайте заказ, пока не придёт финальный вебхук.

orderId после отмены

Номер заказа отменённого платежа остаётся занятым - повторное создание с тем же orderId вернёт 409 (это защита от дублей). Если заказ снова стал актуален, создайте платёж с новым orderId, например с суффиксом попытки: «order-1001-2».

Запрос
curl -X POST https://tabpay.org/api/v1/payments/6b9d2c88-4b1a-4f0e-9c37-1f2ab34cd561/cancel \
  -H "X-Api-Key: tp_ваш_ключ"
{
  "id": "6b9d2c88-4b1a-4f0e-9c37-1f2ab34cd561",
  "orderId": "order-1001",
  "status": "CANCELED",
  "amountKopecks": 19900,
  "commissionKopecks": 1393,
  "description": "Подписка на месяц",
  "method": null,
  "telegramId": null,
  "metadata": null,
  "successUrl": null,
  "failUrl": null,
  "payUrl": "https://tabpay.org/pay/6b9d2c88-4b1a-4f0e-9c37-1f2ab34cd561",
  "isTest": false,
  "paidAt": null,
  "createdAt": "2026-07-30T09:12:00.000Z"
}