Skip to main content

Payment Failure Handling (Dunning)

When a customer's payment fails during billing, Zubs automatically attempts to recover the payment through a configurable retry system called "dunning." This guide explains how payment failures are handled and how to optimize your recovery settings.

Overview​

Dunning is the automated process of retrying failed payments and communicating with customers to resolve billing issues. A well-configured dunning strategy:

  • Maximizes payment recovery rates
  • Reduces involuntary churn
  • Minimizes customer frustration
  • Decreases support burden

Without dunning, a single payment failure results in immediate cancellation and lost revenue.

tip

For faster recovery, consider pairing email dunning with the Zubs Mobile App, which can send push reminders and make it easier for customers to update payment details.


How Payment Failures Happen​

Common Causes​

Card Issues:

  • Expired credit card
  • Insufficient funds
  • Card reported lost/stolen
  • Card declined by issuer
  • Card details changed

Bank/Processor Issues:

  • Bank fraud prevention triggered
  • Temporary processor outage
  • Transaction limit exceeded
  • Geographic restrictions

Customer Actions:

  • Customer cancelled card deliberately
  • Customer updated card but didn't update subscription
  • Customer disputed previous charge

Dunning Process Flow​

Step 1: Initial Failure​

  1. Billing day arrives
  2. Payment attempt made
  3. Payment fails (card declined, expired, etc.)
  4. Order creation blocked (no inventory allocated)
  5. Customer notification sent immediately ("Payment Failed" email)
  6. Retry schedule begins

At this point, the subscription is NOT cancelled - it enters the retry cycle.

Step 2: Retry Cycle​

Example with default settings (3 attempts, 7 days between):

Day 0: Initial Failure

  • First payment attempt fails
  • Customer email sent
  • Next retry scheduled for Day 7

Day 7: First Retry

  • Second payment attempt
  • If successful: Order created, customer charged, cycle ends ✅
  • If fails: Customer email sent, next retry scheduled for Day 14

Day 14: Second Retry

  • Third payment attempt
  • If successful: Order created, customer charged, cycle ends ✅
  • If fails: Customer email sent, next retry scheduled for Day 21

Day 21: Third Retry (Final)

  • Fourth payment attempt (1 initial + 3 retries)
  • If successful: Order created, customer charged, cycle ends ✅
  • If fails: All attempts exhausted, "on failure" action triggered

Step 3: Final Action​

After all retry attempts fail, one of three actions occurs based on your configuration:

Action 1: Skip

  • Current billing cycle is skipped
  • Subscription remains active
  • Next billing cycle proceeds as normal
  • Customer is notified

Action 2: Cancel

  • Subscription is permanently cancelled
  • Customer loses access
  • Must resubscribe to continue
  • Customer is notified

Action 3: Pause

  • Subscription is paused
  • No future billing until customer updates payment
  • Customer can unpause when ready
  • Customer is notified

Configuration Settings​

All payment failure settings are located in: Settings → General Settings → Billing Failure Settings → Payment Method Failure

Number of Retry Attempts​

Range: 0-10 attempts
Default: 3 attempts
Recommended: 3-5 attempts for most businesses

Higher retry attempts increase recovery rates but also increase email volume to customers.

Days Between Retry Attempts​

Range: 1-14 days
Default: 7 days
Recommended: 2-3 days for most businesses

Shorter intervals recover payments faster but may feel pushy. Longer intervals give customers more time but slow down revenue recovery. Consider your billing frequency when choosing.

Action When All Retry Attempts Have Failed​

Choose what happens when all retries are exhausted:

Skip Subscription (Recommended)

  • Most customer-friendly option
  • Skips current billing cycle, subscription remains active
  • Best for retention and flexible programs

Cancel Subscription

  • Permanently ends subscription
  • Best when payment is critical for continued service
  • Highest churn but clearest accountability

Pause Subscription

  • Pauses until customer updates payment
  • Balance between skip and cancel
  • Customer must manually unpause

Inventory Failures​

When products are out of stock at billing time, separate retry settings apply.

Location: Settings → General Settings → Billing Failure Settings → Not Enough Inventory

Recommended Settings:

  • Retry attempts: 1-3 (fewer than payment failures)
  • Days between: 1-2 days (shorter intervals)
  • On failure action: Skip (recommended - it's your fault, not the customer's)

Inventory either restocks quickly or doesn't restock at all, so fewer retries with shorter intervals work best.

Customers are kept in the loop here too. They get an email on each retry — letting them know the order couldn't be fulfilled yet, that no action is needed, and when the next automatic retry happens — and a final email when retries run out, worded to match your on-failure action (skip, cancel, or pause). These are controlled by the Inventory Failure toggle in Settings → Notification Settings. Staff notifications for inventory failures follow the same Notify staff about billing failures setting described below.


Customer Communication​

Notification Emails​

For payment failures, customers receive an email at each stage:

  • An initial failure notification with a link to update payment
  • A reminder after each retry
  • A final notification when retries are exhausted, worded to match the action you chose (skip, cancel, or pause)

Enable these with the Payment Failed toggle in Settings → Notification Settings. Inventory failures have their own Inventory Failure toggle covering the same stages.

Staff Notifications​

You can also be notified when a billing attempt fails, so you can reach out to the customer before the subscription reaches its final action. One setting covers both payment and inventory failures.

Location: Settings → General Settings → Billing Failure Settings → Staff notifications, field Notify staff about billing failures.

Choose one of three options:

  • Every failed attempt — you're emailed on every failed attempt, from the first through the final one. Best when you want to intervene early.
  • Only when all retries are exhausted (default) — you're emailed once, when the final action (skip, cancel, or pause) runs. Lowest volume.
  • Never — no staff emails for billing failures. Customers are still notified either way.

The per-attempt email tells you which subscription failed, confirms it's still active with more retries to come, and links back to this setting so you can adjust the volume.


Monitoring and Optimization​

Track your payment failure and recovery rates regularly. Adjust your retry settings based on what you observe in your actual data.

To dig into a single failure, open the subscription and use View details on the failed row in Past Orders — it shows the error code the processor returned, the amount that was attempted, and what the order would have contained.


Best Practices​

Recommended Starting Configuration:

  • 3-5 retry attempts
  • 2-3 days between retries
  • Skip on failure
  • Enable payment failure notifications
  • Staff notifications set to Only when all retries are exhausted (switch to Every failed attempt if you want to catch failures early)

Common Scenarios​

Expired Card: Payment fails, retries occur over several days, customer updates card, next retry succeeds.

Insufficient Funds: Payment fails, customer gets paid, next retry succeeds quickly.

Complete Failure: All retries fail, subscription is skipped/paused/cancelled based on your settings, customer receives notification.

Proactive Customer: Customer sees failure notification immediately, updates payment within hours, next retry succeeds.


Troubleshooting​

High Failure Rates:

  • Check if fraud prevention is too aggressive
  • Consider proactive card expiration reminders

Low Recovery Rates:

  • Reduce days between retries
  • Increase number of retry attempts
  • Make payment updates easier for customers

Too Many Email Complaints:

  • Increase days between retries
  • Reduce total number of retry attempts