DUNNINGMAXIO

How to reduce involuntary churn in Maxio

How Maxio (formerly Chargify) handles failed payments: dunning schedules, retries, past due and unpaid states, Billing Portal card updates and webhooks.

Published 6 min read

Involuntary churn is the part of churn nobody chose: a renewal fails, nobody fixes the payment method, and the subscription ends. Maxio Advanced Billing (formerly Chargify) gives you most of the tools to prevent it natively: a configurable dunning schedule, per-step retries and emails, a final action, a Billing Portal where customers update their card, and webhooks for every step. This guide explains how those pieces behave and how to set them up well.

All Maxio behaviour described here comes from Maxio’s own documentation: Understanding how dunning works, Configure credit card dunning, Configure ACH dunning, Configure direct debit dunning, Update subscription payment method, Dunning email parameters and Webhook events (all accessed November 2026).

What happens when a renewal fails in Maxio

When a subscription’s period ends, Maxio attempts to charge the payment method on file. If the processor declines, the subscription moves to Past Due and Maxio starts following your dunning schedule. From there, three outcomes are possible:

  1. A retry succeeds, or the customer updates their payment method and pays, and the subscription returns to Active.
  2. The schedule runs out and the final action applies: the subscription is either Canceled (it stops accruing charges) or marked Unpaid (it keeps accruing charges).
  3. You intervene manually, for example by recording a payment.

An Unpaid subscription can return to Active: Maxio’s docs describe using Retry/Reactivate to collect payment, or Reset to $0 to waive the balance.

A few cases behave differently, per the dunning overview:

  • Prepaid subscriptions are not marked past due. They stay active while the balance lasts, then are suspended.
  • Term subscriptions whose term ends during dunning expire rather than staying past due, and are not canceled later if dunning runs out.
  • Manual remittance (invoice-billed) subscriptions get reminder emails, but dunning does not retry open invoices.
  • High-risk or fraud declines disable the payment profile instead of continuing retries.

The dunning schedule

Dunning lives under Config, then Retries & Dunning. Maxio organises it into email settings, the retry and dunning schedule, and the final step. Dunning emails are configured here, separately from your other site emails.

Limits and rules by payment method

Payment method Rule from Maxio’s docs
Credit card Up to 365 days and/or 30 steps per schedule
ACH 2 retry attempts plus 1 final action, following ACH network rules
Direct debit At least 5 days between retries; the final action cannot retry
Manual remittance Reminder emails only, no retries

You can set site-wide strategies per payment method, and product or product family strategies alongside them, so an annual enterprise plan does not have to share a schedule with a monthly self-serve plan.

Steps: retry, email, or both

Each step in the schedule has a day number and two switches:

  • Retry Payment: attempt the charge on that day. You can switch it off to send an email without retrying, except on the Day 1 step, which always retries.
  • Send Email: preset templates start with emails switched off, so you need to turn on each email you want and edit its subject and body.

How Maxio tracks the current step

Maxio calculates a subscription’s current step from how long it has been past due and your current schedule, rather than storing the step. The practical consequence, stated in the docs: editing the schedule can change which step a past due subscription appears to be on. Make schedule changes deliberately, and expect subscriptions already in dunning to follow the new schedule.

Also note: if a subscription reaches its regular renewal date while in dunning and there is no dunning step that day, the renewal still runs. If it fails, the subscription stays in dunning and continues with the next step.

Getting the customer to update their payment method

Most recovered revenue from hard declines and expired cards comes from the customer entering new details. Maxio offers several ways to get them there, according to its docs on updating the payment method and the dunning email parameters:

  • In dunning emails: an update_url variable gives the URL the customer can use to update their payment method. If you use the Billing Portal, templates can link to the portal’s management page instead.
  • From the subscription page: the Payment Details tab has an action to email the customer a link to their self-service page, and you can also copy the self-service page URL to send it yourself.
  • In the Billing Portal: customers log in, select the subscription, choose to update the payment method, pick a saved method or add a new one, and save. The portal also has a direct URL pattern for the update-payment-method page of a given subscription.

Two limits worth knowing:

  • While a payment is still pending (for example an unsettled direct debit), the payment method cannot be changed, including from the self-service page.
  • Dunning emails are only sent while a subscription is past due; they are not processed for expired or canceled subscriptions. Anything you want to send after the final action needs another channel.

Webhooks to wire into your app

Maxio’s webhook events reference lists the events you need to mirror dunning state in your product:

Event What it tells you What to do
payment_failure A payment attempt failed, including retries Show an in-app banner, log the attempt
payment_success A payment succeeded, including retries Clear the banner
dunning_step_reached The subscription reached a dunning step (payload includes current and next step) Time your own reminders or in-app notices
subscription_state_change The subscription’s state changed Re-read the state, then grant or remove access

Maxio notes that a payment that brings a past due account current generates payment_success and subscription_state_change, but not renewal_success. If your app only listens to renewal events, it will miss recoveries. Maxio attempts each webhook delivery up to six times (webhooks guide), so make your handlers idempotent.

A setup plan

  1. Match the schedule to the billing period. For monthly plans, finish dunning before the next renewal so you are not stacking unpaid periods. Annual plans can afford a longer window.
  2. Front-load retries and emails. Retry on day 1, then every few days in the first two weeks, when the customer still remembers using the product.
  3. Turn on the emails. They start disabled. Write a short first email with the update_url link, two or three reminders, and a final notice that names the date access ends.
  4. Separate strategies by product when audiences differ. Enterprise customers often need a longer window and a human touch, not more automated emails.
  5. Choose the final action on purpose. Cancel stops charges accruing; Unpaid keeps them accruing, which makes sense only if you plan to collect the balance.
  6. Respect ACH and direct debit rules. Do not design a card-style schedule for bank payments; Maxio enforces the limits anyway.
  7. Mirror state with webhooks, keyed on subscription_state_change, and show a banner inside your product while the subscription is past due.
  8. Review canceled-for-nonpayment subscriptions monthly and look for patterns: one product, one gateway, one card type.

Doing this with NoChurn

Maxio’s dunning stays in place: retries, invoicing, taxes and the charge itself remain in Maxio and your gateway. NoChurn connects with a Maxio API key, imports customers and subscriptions, follows Maxio webhooks and adds AI-written recovery emails that you review before they go out, with a link to update the payment profile. On top of dunning, it adds cancel flows with reasons, offers (a coupon or a product change on the Maxio subscription) and a one-click cancel that is always visible, win-back emails at day 30, 60 and 90 based on the cancel reason, and a churn score from 0 to 100. Disputes come from the gateway behind Maxio; with Stripe or Braintree, NoChurn gathers evidence and drafts a reply for you to review. See NoChurn + Maxio.

PROMPT

Read https://www.nochurn.sh/llms.txt,
then follow https://www.nochurn.sh/docs/quickstart/
to add NoChurn to this app. Use a test key
(nc_test_…) until I say we go live.

Stop leaking revenue.

  • Free until $300 MRR
  • No card needed
  • Live in 10 minutes
  • Never a cut of what we recover