A failed payment is often a rescuable sale. The card was declined, the customer meant to buy, and a quick nudge can win it back. But that only works if you find out fast. Here's how to make failed payments impossible to miss, from a free Gmail tweak up to full monitoring.
Out of the box, WooCommerce marks a payment that doesn't go through as a Failed order and sends you one email. You can see the setting under WooCommerce → Settings → Emails → Failed order. First, confirm two things there: the email is enabled, and the "Recipient(s)" field has an address you actually read. It defaults to your admin email, which for a lot of owners is a catch-all nobody watches.
Even when it's set correctly, that email is easy to miss. It looks like every other automated store email, so Gmail and Outlook often file it under Promotions or Updates, away from your main inbox. It arrives at all hours. And if your store's outgoing email is itself broken (a common problem), the alert never sends at all. So the default is a real alert, just not a reliable one. Everything below makes it reliable.
If you use Gmail or Google Workspace, a filter pulls failed-order emails out of the Promotions tab and puts them front and center. Here's the recipe.
wordpress@yourstore.com, or whatever your receipts come from). If you're not sure, open a past order email and copy the exact From address.subject:(failed OR "payment failed" OR "order failed") to catch the ones that matter most.Now a failed-order email skips Promotions, lands in Primary, and stands out. On your phone, add a Gmail notification rule so starred or important mail buzzes even when general notifications are off. This costs nothing and takes two minutes.
The official WooCommerce app (iOS and Android) can send a push notification for new orders, which is handy for keeping a finger on the pulse from your phone. It's worth having.
Be honest about what it does, though. Its push notifications are built around new and processing orders, not reliably around failed ones, and the depth of alerting depends on your store being connected through Jetpack. It's a good way to feel your store's rhythm and glance at recent orders, but on its own it isn't a dependable failed-payment alarm. Treat it as one signal, not your only one.
If your team lives in Slack, routing store alerts to a channel means a failure gets seen by whoever's around, not just whoever owns the inbox. Two ways to set it up:
The quick way, with an automation tool. Zapier and Make both have WooCommerce triggers. Create a Zap that fires on a new order with status "Failed" and posts a message to a Slack channel with the order number and amount. No code, though these tools poll on a delay and the free tiers have limits.
The direct way, with an Incoming Webhook. In Slack, create an Incoming Webhook for the channel you want (Slack's app directory walks you through it and gives you a URL). Then hook WooCommerce's woocommerce_order_status_failed action to POST a short JSON message to that URL. A few lines in a small custom plugin does it, and the alert is close to instant because it fires the moment the status changes. If you're comfortable with a snippet, this is the most direct route and it doesn't depend on a third-party service staying up.
Filters and webhooks all share one weakness: they depend on your store being healthy enough to send the alert in the first place. If the whole site is down, or its email is broken, nothing fires. An outside monitoring service watches from its own servers, so it can still reach you when your store can't reach anyone.
A couple of honest options:
Different tools fit different stores. Pick the one that matches how you already work, and make sure at least one alert reaches a place you check often.
You don't need all of these. A solid, low-effort baseline: confirm the Failed order email is on and pointed at an address you read, add the Gmail filter so it can't hide in Promotions, and layer one outside watcher on top so you're covered when the store itself goes quiet. That combination catches the failure whether the problem is a single declined card or the whole site being down.
Want to know your checkout is loading right now? Run the free checkout checker, no signup. And if you'd like failed payments and stopped orders to reach you within minutes without any setup on your side, Store Guardian is free while it's in beta.
WooCommerce orders suddenly stopped? Work through these 7 checks
WooCommerce checkout not working: find the cause in 15 minutes
Stop failed WooCommerce orders from cluttering your dashboard