Skip to content

Notifications

Stay informed when subscribers join, pay, or need attention. Notify your subscribers about their subscription status.

Overview

Subscriptions Manager supports four notification channels:

Email

Professional receipts and confirmations via SMTP

Telegram

Instant alerts via your custom bot

Webhook

HTTP POST to your backend for integrations

Nostr

Nostr

Decentralized DMs for privacy-focused users

Two-Level Configuration

Global Settings (Extension Level)

Configure your notification credentials in the Settings (⚙️ gear icon).

These become your defaults for all plans.

Global Settings
├── Email: ✓ (SMTP configured)
├── Telegram: ✓ (Bot configured)
├── Webhook: ✗ (not configured)
└── Nostr: ✗ (not configured)

Per-Plan Settings

Each plan can either:

  • Inherit global settings (default)
  • Override with custom channel configuration
Global: Email ✓, Telegram ✓

Plan: "Basic"
└── Uses global defaults → Email ✓, Telegram ✓

Plan: "Premium"
└── Custom override → Email ✓, Telegram ✓, Nostr ✓

Plan: "Budget"
└── Custom override → Email ✓ only

What Subscribers See at Checkout

ℹ️
Key Concept

Subscribers only see contact methods you've configured. If you haven't set up Telegram, they won't see a Telegram field at checkout.

Your ConfigurationCheckout Shows
Email onlyEmail address field
Email + TelegramEmail + Telegram Chat ID fields
Email + Telegram + NostrEmail + Telegram + Nostr NIP-05 fields
All channelsAll contact fields available

This ensures subscribers aren't confused by options you can't actually deliver.


Channel Setup Details

Email (SMTP)

Requirements:

  • SMTP server hostname
  • Port (587 for TLS, 465 for SSL)
  • Username (usually your email)
  • Password (app password recommended)
  • From address

Common providers:

ProviderServerPort
Gmailsmtp.gmail.com587
Outlooksmtp.office365.com587
ProtonMailsmtp.protonmail.ch587
Customyour-smtp.domain.com587
💡

For Gmail, use an App Password instead of your regular password.


Telegram

Requirements:

  • Bot token from @BotFather
  • Your chat ID (for merchant notifications)

Setup:

  1. Message @BotFather on Telegram
  2. Send /newbot and follow prompts
  3. Copy the bot token
  4. Start a chat with your bot
  5. Get your chat ID from api.telegram.org/bot<TOKEN>/getUpdates

For subscribers: They provide their own chat ID at checkout. They must message your bot first for notifications to work.


Webhook

Requirements:

  • URL that accepts POST requests
  • (Optional) Secret for HMAC signature verification

Payload:

json
{
  "event_type": "subscription_created",
  "message": "New subscription: Pro Plan...",
  "timestamp": 1704067200
}

Signature header: X-Subscription-Signature (HMAC-SHA256 if secret configured)

Use cases:

  • Zapier/n8n automation
  • Custom CRM integration
  • Slack/Discord notifications
  • Database logging

Nostr

Requirements:

  • Your private key (nsec or hex format)

How it works:

  • Your key sends DMs to subscribers
  • Subscribers provide their NIP-05 identifier (e.g., user@domain.com)
  • Messages are sent via public relays
⚠️

Use a dedicated Nostr key for notifications, not your main identity. The key is stored encrypted.

Create a dedicated key:


Notification Events

Merchant Notifications (You Receive)

EventTrigger
New subscriptionSubscriber completes first payment
Payment receivedAny successful payment
Payment failedPayment attempt failed
Subscription renewedAutomatic renewal succeeded
Subscription cancelledSubscriber or you cancelled
Subscription expiredGrace period ended without payment
Expiring soon(Optional) Days before expiration

Subscriber Notifications (They Receive)

EventContent
Subscription confirmedWelcome + manage link
Payment receiptAmount + transaction ID
Renewal reminderUpcoming charge notification
Payment failedAlert + grace period info
Expiring soonRenewal prompt
Subscription expiredResubscribe link
Subscription cancelledConfirmation + access end date

Event Toggle Settings

In Global Settings, enable/disable specific events:

✓ Notify on payment received
✓ Notify on payment failed
✓ Notify on subscription created
✓ Notify on subscription cancelled
✓ Notify on subscription renewed
✓ Notify on subscription expired
☐ Notify on expiring soon (optional)

How Notifications Flow

Event occurs (e.g., payment received)

    ├── Check: Is event enabled in settings?
    │     └── No → Skip notification

    ├── Get notification config
    │     ├── Plan has custom config? → Use plan config
    │     └── No custom config? → Use global settings

    ├── Send to MERCHANT via configured channels
    │     ├── Telegram (if configured)
    │     ├── Email (if configured)
    │     ├── Webhook (if configured)
    │     └── Nostr (if configured)

    └── Send to SUBSCRIBER via their chosen contact
          └── Email/Telegram/Nostr based on their preference

Troubleshooting

Test Before Relying on Real Events

Always use the Test button in Settings to verify each channel works before your first real subscriber.

Email Issues

  • Not arriving? Check spam folder
  • Auth failed? Use app password, not regular password
  • Connection refused? Verify SMTP host and port

Telegram Issues

  • Bot not responding? Subscriber must message your bot first
  • Wrong chat ID? Re-fetch from getUpdates endpoint
  • Token invalid? Regenerate from @BotFather

Nostr Issues

  • DM not delivered? Verify subscriber's NIP-05 is resolvable
  • Key error? Ensure nsec format is correct
  • Relay issues? Default relays are used if none specified

Webhook Issues

  • Timeout? Ensure your endpoint responds within 10 seconds
  • Signature mismatch? Verify secret and HMAC algorithm

Best Practices

  1. Start with Email — Most universal, works for everyone
  2. Add Telegram — Great for real-time alerts
  3. Test everything — Before going live with subscribers
  4. Use per-plan overrides — Premium plans can offer more contact options
  5. Monitor logs — Check LNbits logs for notification errors