Skip to content

The moment it happens

Get an email when a subscription payment fails

Each failed charge, and each one that runs out of retries, reaches you with the customer and amount so you can follow up.

Runs
The moment it happens
Apps
Recharge
AI
Not needed
Access
Webhooks read+write, Charges read

Send this to your assistant

Create a ClickRuntime automation: when a Recharge charge fails or reaches its final retry, email me the customer's name and email, the amount and which retry it was.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

Recurring revenue depends on cards that work every month, and cards fail constantly: expired dates, insufficient funds, a bank flagging the charge as suspicious. In Recharge a failed charge enters a retry cycle, and if nobody contacts the customer, the subscription may lapse by itself after a few attempts. The customer never decided to leave, and you lose them anyway.

The moment Recharge reports that a charge has failed, ClickRuntime sends you an alert with the customer, the amount, the error reason and the retry status. You get it right when it happens, so you can reach out by email or text before the next automatic attempt and help the customer fix whatever went wrong.

Stores with higher-priced subscriptions, where each failed renewal is a meaningful amount, benefit most from reacting quickly.

What you get out of it

  • Accidental churn is reduced

    A large share of subscription loss comes from payment failures, not from dissatisfaction. A friendly note asking a customer to update their card recovers revenue from people who still want the product.

  • You can reach out before retries run out

    Recharge retries on a schedule and then stops. Contacting the customer inside that window gives them time to fix the problem without any interruption to shipments. That window is usually only a few days, so every hour counts.

  • Error reasons guide the message

    An expired card calls for a simple update link, while a bank decline may suggest the customer contact their issuer. Knowing which one you face lets you write something that actually helps. Customers respond better when the note is specific to their situation.

  • Revenue forecasts become more realistic

    Seeing failures as they occur shows how much of the expected month is at risk. Finance can adjust forecasts, instead of finding out at month end that renewals came in lower.

  • High-value accounts are not missed

    A failed renewal on your biggest plan is worth a personal call. In a stream of daily charges it is hard to notice by chance, but an alert puts it in front of you.

How it works

What happens, step by step

  1. When a subscription charge fails in Recharge, or runs out of retries, Recharge tells ClickRuntime straight away.

  2. ClickRuntime picks out the customer's name and email, the amount, the attempt number and the error.

  3. You get an email with those details, marked as the final retry when Recharge has given up, so you can follow up.

Before it runs live

  • Connect Recharge
  • Paste your automation's link into the other app's webhook settings

What you get

RunsThe moment it happens
Get an email when a subscription payment failsjust nowSucceeded
Email · Charge failedRecharge charge failed: Jamie Fox Amount: 39.00 USD · Attempt: 2 · Error: card_declined

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • Your own rules

    Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.

  • Any number of apps

    One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.

  • AI where it helps

    Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.

  • On a schedule or on each event

    Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.

Changes you can ask for

  • Act only on the items that match your own rules, and skip the rest
  • Add an AI step, for example to summarize, sort or draft a reply
  • Add another app, for example also send it to Slack
  • Combine it with other Recharge steps into one automation

Under the hood

The code that runs this automation

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
failed_charge_alert.pyexample
from clickruntime import on_event, notify

@on_event
def handle(event):
    topic = event.header("X-Recharge-Topic")
    if topic not in ("charge/failed", "charge/max_retries_reached"):
        return {"skipped": topic}
    c = event.json["charge"]
    name = f"{c['billing_address'].get('first_name', '')} {c['billing_address'].get('last_name', '')}".strip()
    final = " (final retry)" if topic == "charge/max_retries_reached" else ""
    notify.email_me(f"Recharge charge failed{final}: {name}",
                    f"Customer: {name} <{c['customer']['email']}>\nAmount: {c['total_price']} {c.get('currency', '')}\n"
                    f"Attempt: {c.get('charge_attempts', '?')}{final}\nError: {c.get('error', '')}")
    return {"charge": c["id"]}

FAQ

Common questions

What causes a charge to fail in Recharge?
Common reasons are expired cards, insufficient funds, bank declines and cards reported lost. Recharge records the error from the payment processor, and the alert shows it. The exact wording depends on whether you use Shopify Payments, Stripe or another gateway.
Will I get an alert for every retry or only the first failure?
Recharge sends a separate event for each failed attempt. The alert can note the attempt number, or limit itself to the first failure and the final one, so your inbox is not full of repeats for a single customer.
Can the customer be notified automatically as well?
Yes. Recharge has its own customer emails for failed payments, and a personal message can be added on top. Many merchants send a plain-text note from the founder for high-value plans, since it gets more replies than a template.
What permissions does it need?
Webhooks read+write, Charges read. Nothing else in your accounts is used.
Does it need AI?
No. It runs without AI, so it doesn't use your plan's AI allowance.
How many runs does it use?
One run for each event the app sends.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “Get an email when a subscription payment fails” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.