Stripe notifications in Slack, Discord and Teams
A payment comes in, a card fails, a customer cancels: your channel says so in one readable message. Paste a webhook address, add one endpoint in Stripe, done. No account.
Loading…
What a plain forward does not do
- It checks that Stripe is the sender. Every event carries a signature. An event whose signature does not match your signing secret is refused and nothing reaches your channel.
- One payment, one message. Stripe describes a single payment with up to four events (checkout, payment intent, charge, invoice). They are recognised as the same payment and announced once.
- Nothing twice, nothing lost. Stripe repeats an event when it is unsure it arrived: repeats are dropped. If your channel is down, Stripe is asked to send the event again later.
- Only what you want to hear. Choose the kinds of events, set a minimum amount for payment messages, switch test mode off when you go live.
- A daily summary. Once a day, at the hour you choose: money received per currency, failed payments, subscription changes, refunds, disputes.
- A journal. Every event that arrived, what was done with it and why: delivered, merged, skipped by a rule, refused by the channel.
Three steps
- Paste the webhook address of your channel above, and send yourself a test message. Step by step for Slack, Discord and Teams.
- Add the endpoint in Stripe. You get an address to paste in your Stripe dashboard, under Webhooks, with the list of events worth selecting.
- Paste the signing secret Stripe shows for that endpoint. From then on, events are verified and announced.
Events that are understood
Payments (checkout.session.completed, payment_intent.succeeded, charge.succeeded, invoice.paid), failed payments (invoice.payment_failed, payment_intent.payment_failed, charge.failed), subscriptions (customer.subscription.created, .updated, .deleted, .trial_will_end), refunds (charge.refunded), disputes (charge.dispute.created, .closed, radar.early_fraud_warning.created), payouts (payout.paid, payout.failed) and new customers (customer.created). Any other type can be forwarded as a one-line message if you switch that on.
A subscription update is announced only when it means something: a cancellation scheduled or withdrawn, a trial converted, a change of plan, a status that moved. An update that only shifts a billing date is not a message.
Questions
- Is it free?
- Yes. There is no account and no payment. A connection left without any event for 90 days is deleted.
- Do you need my Stripe API key?
- No. Paybell only receives the events Stripe sends to the endpoint you add, and the signing secret of that endpoint, which can verify events and nothing else. It cannot read your Stripe account or move money.
- Which Slack address do I need?
- An Incoming Webhook address, which starts with https://hooks.slack.com/services/. In Slack, create an app from api.slack.com/apps, switch on Incoming Webhooks and add one to the channel you want.
- Does it work with Microsoft Teams?
- Yes, with the address given by a Teams workflow that starts with the trigger "When a Teams webhook request is received" and posts the card to a channel. The older Office 365 connector addresses are accepted too while Microsoft keeps them running.
- What do you store?
- Your channel address and your signing secret, encrypted. For each event: its id, its type, the title of the message, the amount and what was done with it, for 30 days. The content of the event itself, with customer details, is not stored.