StableOps
Concepts

App notifications

Send payment status updates to Telegram and Discord.

App notifications send concise, human-readable payment updates to an operations chat. They complement webhooks: use signed webhooks or the API as the source of truth for automated fulfillment, and use app notifications for people who need visibility.

Supported destinations

  • Telegram uses the shared StableOps bot. You can connect a private chat, a group, or a forum topic.
  • Discord uses an Incoming Webhook created in the destination channel.

Open Dashboard → Integrations → App notifications to connect and manage destinations. Destinations and their quotas are isolated between sandbox and live environments.

Default events

New destinations initially subscribe to:

  • payment.finalized
  • payment.expired
  • payment.reverted
  • payment_order.canceled

You can also enable payment_order.created, payment.detected, and payment.confirmed. Each message contains only an order summary, amount, network and asset, plus authenticated links to the order and transaction when available. Wallet addresses and order metadata are not included.

Connect Telegram

  1. Select Telegram and create a connection.
  2. Open the group or private-chat link. For a forum topic, copy the displayed /connect command into that topic.
  3. Return to the Dashboard after the chat is detected, choose a name, language, and events, then confirm.

The connection link expires after ten minutes. The bot must remain in the destination and be allowed to post messages.

Connect Discord

  1. In Discord, open the destination channel's integration settings and create an Incoming Webhook.
  2. Copy its URL, select Discord in StableOps, and paste the URL.
  3. Choose a name, language, and events, then connect.

StableOps sends a verification message before saving the destination and stores the Webhook URL with envelope encryption.

Delivery and recovery

Transient failures are retried with backoff. Rate-limit responses honor the provider's retry delay. Invalid or inaccessible destinations are automatically disabled, while failed and dead-letter deliveries can be replayed from the Dashboard after the destination is fixed.

How is this guide?

Last updated

On this page