How to Send Slack Alerts for New Stripe Charges and Refunds with Zapier
Get instant Slack notifications for Stripe payments and refunds with Zapier — two separate Zaps, plus the filter that keeps failed-payment noise out of your main channel.
Quick answer
Two separate Zaps, not one: Stripe → New Charge feeding Slack → Send Channel Message for successful payments, and Stripe → New Refund feeding a second Slack message for refunds. Keeping them separate (rather than one Zap trying to handle both) makes the message templates and any filtering logic cleaner for each event type.
Why two Zaps instead of one
Stripe exposes charges and refunds as distinct trigger events in Zapier — there's no single "any payment activity" trigger that covers both. Trying to force one Zap to branch internally between "this is a charge" and "this is a refund" adds a Paths step for no real benefit when two independent Zaps do the same job more simply and fail independently of each other (a broken refund Zap doesn't take down your charge notifications).
What you'll need
- A Zapier account
- A Stripe account with at least one processed payment to test against
- A Slack workspace where you can add apps to a channel
Step-by-step: charge notifications
1. Create the Zap and add the Stripe trigger
- New Zap → search Stripe
- Choose the trigger event: New Charge
- Connect your Stripe account (this uses a Stripe API key, entered directly rather than an OAuth login popup — see what an API key actually is if that distinction is unfamiliar)
- Test the trigger against a real past charge to see the available fields
2. Add the Slack action
- Add a step → Slack → Send Channel Message
- Pick the channel
- Build the message from the Stripe trigger's fields — commonly used ones: amount, currency, customer email, payment description
Example template:
💰 New charge: {{Amount}} {{Currency}}
Customer: {{Customer Email}}
Description: {{Description}}
3. Turn it on
Publish the Zap. Process a real (or Stripe test-mode) charge to confirm the message lands correctly.
Step-by-step: refund notifications
Repeat the same shape with a different trigger:
- New Zap → Stripe → trigger event New Refund (this fires on both full and partial refunds — Stripe doesn't split those into separate trigger events, so check the refund amount in the message if the distinction matters to your team)
- Slack → Send Channel Message, ideally to a different channel than charge notifications, or at least visually distinguished in the message (an emoji prefix, a different tone) so refunds don't get glanced past as if they were sales
Common mistakes
Routing both charges and refunds into the same channel with identical formatting. A refund reads like good news at a glance if it's formatted exactly like a charge notification — teams that skim Slack notifications quickly have actually mistaken a refund alert for a sale because of this. Make the two visually distinct.
Not filtering out test-mode events once the Zap is live. Stripe test-mode charges and live charges both fire the same trigger if the connected API key has access to both, depending on account setup — add a Filter by Zapier step checking the Livemode field if test transactions are polluting a production notification channel.
Assuming "New Charge" only fires on successful payments. Zapier's Stripe integration also exposes a separate Failed Payment trigger specifically for declined/failed charges — if the goal is only celebrating successful sales, don't rely on New Charge alone to filter that out; use Failed Payment as its own dedicated Zap (with its own, more urgent-toned Slack message) rather than trying to infer success/failure from New Charge's output.
Forgetting partial refunds look identical to full refunds in a basic setup. Since New Refund doesn't distinguish full vs. partial in its trigger name, include the actual refund amount in the Slack message rather than just "a refund happened" — otherwise finance has to open Stripe anyway to check how much.
FAQ
Can I also track failed payments, not just successful charges and refunds?
Yes — Stripe's Zapier integration has a dedicated Failed Payment trigger separate from New Charge. Build it as its own Zap with its own Slack message, since a failed payment usually needs faster, more visible attention than a routine successful charge.
Should this go to a Slack channel or a direct message?
For a small team, a shared channel (Send Channel Message) keeps everyone aware without singling anyone out. For a solo founder or a very small operation, Send Direct Message to yourself works the same way with one less step of channel management.
What happens if Zapier or Slack has an outage when a charge comes in?
The payment itself isn't affected — Stripe processes it regardless of whether the notification succeeds. Zapier's own retry behavior handles transient failures on the notification side; if you need to guarantee zero missed notifications for compliance reasons, that's a different, more heavyweight requirement than what a standard Zap setup provides.
Is this the same underlying pattern as the Shopify order notification setup?
Yes — same general shape (an e-commerce/payments trigger feeding a Slack message action), different app pair. If you've already built Shopify order notifications in Slack, the trigger-to-action wiring here will look familiar even though Stripe and Shopify are different apps with different trigger fields.
Last fact-checked: August 28, 2026. Trigger names verified against Zapier's official Stripe integrations page — confirm current trigger availability there before building, since Stripe's own API surface changes over time.