Documentation

Everything you need to set up, configure, and get the most out of ChurnShield. Recover failed Stripe subscription payments with smart retries, dunning emails, and real-time analytics.

Quick Start Guide

Get up and running with ChurnShield in under 2 minutes. No code changes required.

Sign Up & Choose a Plan

Create your account at getchurnshield.com. Pick a plan that fits your subscription volume. The Starter plan includes a 14-day free trial with no credit card required.

Connect Your Stripe Account

Use our one-click Stripe OAuth flow to securely connect your Stripe account. ChurnShield will automatically receive webhook events for failed payments. No API keys to copy, no code to deploy.

Start Recovering Revenue

That's it. ChurnShield immediately begins monitoring your subscription payments. When a payment fails, smart retries and dunning emails kick in automatically. Watch your recovered revenue climb on the dashboard.

What Happens After You Connect

Once your Stripe account is connected, ChurnShield does the following automatically:

Understanding Your Dashboard

Your ChurnShield dashboard (/dashboard.html) is the command center for all payment recovery activity. Here is what you will find:

Smart Retry Engine

The Smart Retry Engine is the core of ChurnShield. Instead of retrying failed payments at arbitrary intervals (like Stripe's built-in retry logic), ChurnShield uses an optimized schedule that maximizes recovery rates while avoiding fraud flags.

How It Works

  1. A subscription payment fails and Stripe sends a webhook to ChurnShield.
  2. ChurnShield classifies the decline code. Only soft declines (temporary issues like insufficient funds, bank timeouts, processing errors) are retried.
  3. Retries are scheduled at statistically optimal intervals. The default schedule is 24 hours, then 72 hours, then 144 hours after the initial failure.
  4. Each retry calls the Stripe API to re-attempt the invoice payment.
  5. If a retry succeeds, the payment is marked as recovered and you are notified.
  6. If all retries are exhausted, the failure moves into the dunning sequence.
Failed
24h retry
72h retry
144h retry

What Gets Retried

ChurnShield retries soft decline codes including: insufficient_funds, processing_error, generic_decline (when issuer metadata suggests temporary), try_again_later, issuer_not_available, and others. See the FAQ for a full list of retried vs. dunned decline codes.

Custom Schedules

On the Growth plan and above, you can customize the retry schedule from Settings. Set the interval (in hours) for each retry attempt, and choose between 1-5 maximum retries.

Dunning Emails

When a payment cannot be recovered through retries (hard declines, or soft declines that exhaust all retry attempts), ChurnShield sends a 3-email dunning sequence to the customer asking them to update their payment method.

The 3-Email Sequence

  1. Email #1: Friendly Reminder -- Sent immediately when dunning begins. A polite, empathetic message letting the customer know their payment failed and providing a link to update their card.
  2. Email #2: Urgent Reminder -- Sent 3 days later. Slightly more urgent tone, reminding them their access may be affected if not resolved.
  3. Email #3: Final Notice -- Sent 7 days after the first failure. Last chance notification before their subscription may be canceled.

Customization

Enable or disable dunning emails from Settings. On Starter plans and above, the dunning sequence is available.

White-Label Options

On the Growth plan and above, you can white-label all dunning emails with your own company name, logo, and brand color. Customers see your brand, not ChurnShield. Configure this in Settings > White-Label Emails.

SMS Dunning

Available on Growth plans and above. When enabled, ChurnShield sends SMS reminders alongside each dunning email, increasing recovery rates for customers who may miss emails.

How to Enable

  1. Go to Settings and find the SMS Dunning section.
  2. Toggle Enable SMS Dunning on.
  3. SMS is sent via Twilio. Your Twilio credentials (TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN, TWILIO_PHONE_NUMBER) must be configured as environment variables in your Netlify dashboard.

What Messages Are Sent

SMS messages mirror the dunning email sequence with concise, action-oriented text. Each message includes a short link to the payment update portal. Messages are only sent to customers who have a phone number on their Stripe profile.

Note: Standard SMS carrier rates may apply to your customers. SMS messages are sent from your configured Twilio phone number.

Slack Alerts

Available on Growth plans and above. Get real-time Slack notifications when payments fail, are recovered, or are abandoned.

How to Set Up

  1. Create an Incoming Webhook in your Slack workspace.
  2. Copy the webhook URL (starts with https://hooks.slack.com/services/...).
  3. Go to Settings > Slack Alerts.
  4. Toggle Enable Slack Alerts on and paste your webhook URL.
  5. Click Send Test Message to verify the connection.

Events That Trigger Alerts

Email Alerts

Available on all plans. Receive email notifications for payment events.

Configure which alerts you receive and the destination email address from Settings > Alert Notifications. You can also send a test alert to verify delivery.

Recovery Dashboard

The Recovery Dashboard provides a real-time view of your payment recovery performance.

Charts & Metrics

CSV Export Reports

Available on all plans. Export your payment data for use in spreadsheets, accounting software, or custom reporting.

Available Report Types

How to Download

On the Dashboard, click the Export CSV button in the top-right area. Select the report type you need from the dropdown menu, and the CSV file will download immediately.

Payment Update Portal

When a dunning email is sent to your customer, it includes a secure link to the Payment Update Portal. This is a hosted page where your customer can enter a new credit card or payment method, powered by Stripe Checkout.

Event Log

The Event Log (found at the bottom of the Dashboard) shows a chronological feed of every webhook event processed by ChurnShield.

Each event shows the event type, customer email, related amount, and timestamp. Use the event log to audit recovery activity and troubleshoot issues.

Retry Configuration

Manage smart retry behavior from Settings > Smart Retries.

Tip: We recommend keeping the default 3-retry schedule for most accounts. The 24h / 72h / 144h timing is optimized for the highest recovery rate on soft declines.

Dunning Configuration

Manage dunning email behavior from Settings > Dunning Emails.

Alert Notifications

Configure email alerts from Settings > Alert Notifications.

SMS Settings

Manage SMS dunning from Settings > SMS Dunning. Available on Growth plans and above.

White-Label Email Customization

Available on Growth plans and above. Customize dunning emails so customers see your brand. Configure in Settings > White-Label Emails.

API Key Management

Available on the Scale plan. Generate and manage API keys from Settings > API Access.

API Reference

The ChurnShield Public API lets you integrate recovery data into your own applications, dashboards, and workflows. The API is available on the Scale plan.

Full API documentation with endpoint details, request/response examples, authentication, rate limits, and error handling is available at:

/api-docs.html → View Full API Documentation

Available Endpoints

Authentication

All API requests require a Bearer token via the Authorization header. Generate keys from Settings.

Authorization: Bearer cs_live_your_api_key_here

Billing & Plans

ChurnShield offers four plans to fit your subscription volume and feature needs.

Feature Lite ($29/mo) Starter ($49/mo) Growth ($99/mo) Scale ($199/mo)
Subscriptions Up to 100 Up to 500 Up to 2,000 Unlimited
Smart Retry Engine
Recovery Dashboard ✓ + Analytics ✓ + Analytics ✓ + Analytics
Email Alerts
CSV Export Reports
3-Email Dunning Sequence
SMS Dunning
Slack Alerts
Custom Retry Schedules
White-Label Emails
API Access
Priority Support
Custom SLA

Free Trial

The Starter plan includes a 14-day free trial with no credit card required. During the trial, you get full access to all Starter features. At the end of the trial, you can choose to subscribe or your account will be paused.

Start your free trial: Sign up for the Starter plan and connect your Stripe account to begin recovering revenue immediately.

Upgrading / Downgrading

You can change your plan at any time from your account settings or by contacting support at support@getchurnshield.com.

Cancellation

All plans are month-to-month with no long-term contracts. You can cancel anytime from your dashboard.

Troubleshooting & FAQ

Check the following:

  • Make sure Smart Retries are enabled in Settings.
  • Only soft declines are retried. Hard declines (expired card, stolen card) go directly to dunning. Check the decline code on the dashboard.
  • Ensure your Stripe account is still connected. Visit the Settings page to confirm the connection status.
  • Retries are scheduled, not instant. The first retry happens 24 hours after the failure by default. Check the "Next Retry" column on your dashboard.

Troubleshoot with these steps:

  • Confirm Dunning Emails are enabled in Settings.
  • Dunning is only available on Starter plans and above. The Lite plan does not include dunning.
  • Dunning begins after retries are exhausted (for soft declines) or immediately (for hard declines). If retries are still in progress, dunning has not started yet.
  • Check the Event Log on the dashboard for dunning_sent or dunning_scheduled events.
  • Verify the customer has an email address on their Stripe profile.

The Stripe OAuth connection requires:

  • An active Stripe account in good standing.
  • You must be the account owner or have admin permissions on the Stripe account.
  • Pop-ups must be allowed in your browser for the OAuth window to open.
  • If the connection fails, try clearing your browser cache and cookies, then attempt again.
  • If you continue to have issues, contact support at support@getchurnshield.com.

ChurnShield automatically registers its webhook endpoint with your Stripe account during the OAuth connection process. You do not need to manually configure a webhook URL.

If you need to verify the webhook is active, go to your Stripe Dashboard > Developers > Webhooks and look for an endpoint from getchurnshield.com.

For Slack webhook URLs, see the Slack Alerts section above.

After connecting your Stripe account:

  • Check the Dashboard. If you have any existing failed payments, they should appear within a few minutes.
  • In Stripe's test mode, you can create a test subscription with a decline test card (e.g., 4000000000000341) to simulate a failure.
  • Use the Send Test Alert button in Settings to verify email and Slack notifications are working.
  • Check the Event Log on the dashboard for incoming webhook events.

Retried (soft declines):

  • insufficient_funds -- Card has insufficient balance (temporary).
  • processing_error -- A processing error occurred.
  • generic_decline -- When issuer metadata suggests a temporary issue.
  • try_again_later -- Issuer is temporarily unavailable.
  • issuer_not_available -- Issuer system is down.
  • reenter_transaction -- Issuer requests re-submission.
  • approve_with_id -- May succeed on retry with updated auth.

Dunned (hard declines):

  • expired_card -- Card has expired.
  • card_declined -- Generic permanent decline.
  • stolen_card / lost_card -- Card reported compromised.
  • do_not_honor -- Bank will not process the charge.
  • pickup_card -- Bank has flagged the card.

Blocked (fraud):

  • fraudulent -- Suspected fraud by Stripe Radar or issuer.

Yes. ChurnShield takes security seriously:

  • 256-bit encryption for all data in transit and at rest.
  • No credit card numbers stored -- All payment data stays within Stripe. ChurnShield never sees or stores card numbers.
  • Stripe OAuth -- We use Stripe's official OAuth flow, not API keys, for the most secure connection possible.
  • SOC 2 roadmap -- We follow industry best practices and are on the SOC 2 compliance roadmap.
  • Data isolation -- Each account's data is fully isolated. No cross-account access is possible.

Still need help? Contact our support team at support@getchurnshield.com and we'll get back to you within 24 hours.