For the complete documentation index, see llms.txt. This page is also available as Markdown.

Вебхуки

Вебхуки для уведомлений о событиях.

Настройка:

  1. Перейдите в Панель автора → Настройки (меню с тремя точками) → раздел API-ключи

  2. Сгенерируйте API-ключ, если ещё не сделали

  3. Укажите URL вашего вебхука в настройках

Проверка подписи: Каждый запрос содержит заголовок trbt-signature с HMAC-SHA256 подписью тела запроса, подписанной вашим API-ключом.

Повторные попытки: При ошибке доставки система повторяет отправку с экспоненциальной задержкой в течение ~24 часов: 5мин, 15мин, 30мин, 1ч, 2ч, 4ч, 8ч, 8ч.

Заказ в магазине

Уведомление об оплате заказа в магазине

Payload
namestring · enumRequiredExample: shop_orderPossible values:
created_atstring · date-timeRequired

Время создания события

Example: 2025-03-20T01:15:58.33246Z
sent_atstring · date-timeRequired

Время отправки события

Example: 2025-03-20T01:15:58.542279448Z
Responses
200

Вебхук успешно обработан

application/json
statusstringOptionalExample: ok

Payload

Ошибка списания по заказу магазина

Уведомление об ошибке списания по рекуррентному заказу магазина. Отправляется после каждой неудачной попытки списания. Система делает до 3 попыток (1 исходная + 2 повторных) в течение ~8 часов, после чего рекуррентный заказ отменяется.

Отправляется только для рекуррентных оплат картой. Подписки, оплаченные напрямую Telegram Stars (без привязанной карты), продлеваются самим Telegram — если Telegram не продлевает подписку, она отменяется с cancelReason="stars_subscription_expired" через shop_order_cancelled, без предшествующих событий shop_order_charge_failed. То же касается OnlyStars-подписок «карта → Stars», когда покупатель отменил подписку на стороне Telegram: предварительное списание с карты пропускается, а подписка отменяется с cancelReason="stars_subscription_expired" (без shop_order_charge_failed).

Время списания относительно memberExpiresAt:

  • Оплата картой: списание происходит строго после memberExpiresAt, обычно в течение нескольких минут.
  • OnlyStars (карта → Stars): списание происходит до 72 часов до memberExpiresAt для предварительной покупки Stars для продления через Telegram.
Payload
namestring · enumRequiredExample: shop_order_charge_failedPossible values:
created_atstring · date-timeRequired

Время создания события

Example: 2025-03-20T01:15:58.33246Z
sent_atstring · date-timeRequired

Время отправки события

Example: 2025-03-20T01:15:58.542279448Z
Responses
200

Вебхук успешно обработан

application/json
statusstringOptionalExample: ok

Payload

Успешное списание по заказу магазина

Уведомление об успешном списании по рекуррентному заказу магазина.

Payload
namestring · enumRequiredExample: shop_order_charge_successPossible values:
created_atstring · date-timeRequired

Время создания события

Example: 2025-03-20T01:15:58.33246Z
sent_atstring · date-timeRequired

Время отправки события

Example: 2025-03-20T01:15:58.542279448Z
Responses
200

Вебхук успешно обработан

application/json
statusstringOptionalExample: ok

Payload

Отмена заказа магазина

Уведомление об отмене рекуррентной подписки на заказ магазина. Триггер указан в поле cancelReason payload:

  • cancelled_by_seller — явная отмена через Mini App / публичный API (POST /api/v1/shop/orders/{orderUuid}/cancel).
  • charge_failed — рекуррентное списание не удалось после всех повторов.
  • payment_method_expired — сохранённая карта больше непригодна.
  • stars_subscription_expired — подписка Telegram Stars перестала продлеваться на стороне Telegram. Покрывает как подписки чистыми Stars (без привязанной карты; продление — на стороне Telegram), так и OnlyStars-подписки «карта → Stars», у которых покупатель отменил подписку на стороне Telegram (предварительное списание с карты тогда прекращается).
  • seller_unavailable — продавец больше не может принимать платежи.
  • last_charge_refunded — была возвращена последняя по времени создания транзакция покупателя по заказу магазина (через любой канал: банковский chargeback, возврат Telegram Stars, ручной возврат продавцом). Возврат более старой транзакции при наличии более новой подписку НЕ отменяет. Это событие отправляется в дополнение к shop_order_refunded для той же транзакции.
Payload
namestring · enumRequiredExample: shop_order_cancelledPossible values:
created_atstring · date-timeRequired

Время создания события

Example: 2025-03-20T01:15:58.33246Z
sent_atstring · date-timeRequired

Время отправки события

Example: 2025-03-20T01:15:58.542279448Z
Responses
200

Вебхук успешно обработан

application/json
statusstringOptionalExample: ok

Payload

Возврат по заказу магазина

Уведомление о возврате средств по транзакции заказа магазина. Срабатывает для разовых и рекуррентных заказов, независимо от триггера возврата (банковский chargeback, возврат Telegram Stars, ручной возврат продавцом).

Жизненный цикл. Ручной возврат, инициированный продавцом, сначала отправляет событие со status=initiated, затем — второе со status=completed, когда провайдер подтвердит операцию. Банковские chargeback'и и возвраты Telegram Stars пропускают шаг initiated и сразу отправляют status=completed. Получатели должны идемпотентно обрабатывать два события с одинаковым transactionId (по одному на каждый статус).

Рекуррентные заказы — отмена при возврате последней транзакции. Если возвращаемая transactionId — это последняя по времени создания транзакция покупателя по рекуррентной подписке, после этого события отправляется shop_order_cancelled с cancelReason="last_charge_refunded". Возврат более старой транзакции (когда более новое рекуррентное списание ещё существует) НЕ отменяет подписку.

Payload
namestring · enumRequiredExample: shop_order_refundedPossible values:
created_atstring · date-timeRequired

Время создания события

Example: 2025-03-20T01:15:58.33246Z
sent_atstring · date-timeRequired

Время отправки события

Example: 2025-03-20T01:15:58.542279448Z
Responses
200

Вебхук успешно обработан

application/json
statusstringOptionalExample: ok

Payload

Ошибка оплаты заказа магазина

Уведомление об ошибке первичной оплаты заказа магазина (CIT) (например, карта отклонена, недостаточно средств). Отправляется для разовых платежей и для первого списания рекуррентного заказа. Сумма, которую попытались списать, указана в минимальных единицах валюты — firstPeriodAmount, если у рекуррентного заказа задано переопределение первого периода, иначе amount.

Payload
namestring · enumRequiredExample: shop_order_payment_failedPossible values:
created_atstring · date-timeRequired

Время создания события

Example: 2025-03-20T01:15:58.33246Z
sent_atstring · date-timeRequired

Время отправки события

Example: 2025-03-20T01:15:58.542279448Z
Responses
200

Вебхук успешно обработан

application/json
statusstringOptionalExample: ok

Payload

Покупатель оплатил инвойс

Покупатель оплатил инвойс. Событие приходит сразу после оплаты, до вебхука shop_order.

Это промежуточный сигнал: деньги продавцу ещё не зачислены и оплата может не завершиться. Не выдавайте товар и не считайте заказ оплаченным — финальный статус приходит вебхуком shop_order.

Payload
namestring · enumRequiredExample: shop_order_payment_receivedPossible values:
created_atstring · date-timeRequired

Время создания события

Example: 2025-03-20T01:15:58.33246Z
sent_atstring · date-timeRequired

Время отправки события

Example: 2025-03-20T01:15:58.542279448Z
Responses
200

Вебхук успешно обработан

application/json
statusstringOptionalExample: ok

Payload

Last updated