FAILED PAYMENTSMAXIO

How to handle expiring cards in Maxio

What Maxio does about expiring cards: card expiration emails, the expiring_card webhook, account updater support by gateway, and getting a new card in time.

Published 5 min read

An expiring card is the most predictable failed payment there is: you know the month it will stop working before it happens. Maxio Advanced Billing (formerly Chargify) gives you three tools for it: automatic card expiration emails, an expiring_card webhook, and account updater support on some gateways. This guide explains what each one does, where they leave gaps, and how to combine them so renewals do not fail for a reason you could see coming.

It sticks to Maxio’s own documentation: configure email settings, email templates, webhook events, payload examples, compare gateway features, managing payment methods, update a customer’s payment information and the Advanced Billing glossary (all accessed November 2026). Where Maxio’s pages disagree, we say so. For what happens once a renewal has already failed, see how to reduce involuntary churn in Maxio.

Step 1: let the account updater do what it can

Card networks run account updater services: when a bank reissues a card, the new number or expiry date can reach the merchant without the customer doing anything. In Maxio, support depends on your gateway:

Gateway Account updater in Advanced Billing
Stripe, BlueSnap, Cybersource, Forte (Beta), Maxio Payments Fully supported: Maxio receives the updates and keeps stored card data current
Other gateways The gateway’s updater generally still works through its token, so charges can succeed, but the new card details may not appear in Advanced Billing

Some gateways need setup. For BlueSnap, Maxio’s setup guide asks you to configure BlueSnap webhooks and tick “Send Account Updater”. For Forte, the updater must be enabled in the Forte account first. On Stripe, Maxio’s docs tie the automatic updater to the Stripe Connect integration.

Two limits from Maxio’s docs:

  • Not every issuer takes part. An updater only works when the card issuer participates, so some cards will expire with no update.
  • An updater can disable a profile. When an updater cannot find an account, it may remove the record, leaving the subscriber’s payment profile disabled. Maxio’s payment methods page says that, at the time of writing, this had only happened to Authorize.Net merchants using the updater.

The second point matters for the first: if your gateway updates the card silently and Maxio does not show it, Maxio may still believe the card is about to expire and email the customer about it. Know which case you are in before you write the email.

Step 2: card expiration emails

Maxio can send Card Expiration Emails to customers whose card on file is about to expire (email templates). The template can include the number of days until expiration and an update link, {{update_url}}, which is the self-service URL for the subscription, so the customer enters the new card themselves and you never handle card data.

When they are sent: two versions in Maxio’s docs

Maxio’s pages give two schedules:

  • The current email settings page says the emails go out three times during the month the card expires: on the 1st, on the 15th, and one week before the end of the month (so the third date moves with the month’s length).
  • The glossary and the email templates page mention the 1st, 15th and 23rd, and the glossary refers to the month before the card expires.

The email settings page is the more specific and appears to be the newer one, but check a real send on your site before you build anything that depends on the exact dates.

Make the email useful

The default template is a starting point. A good expiring card email:

  1. Says which card (brand and last four digits) and which subscription.
  2. Gives the date the next renewal will be charged, if it falls after the expiry.
  3. Has one button to the update link, working on a phone, with no password to remember.
  4. Comes from your brand and a real reply address.

Step 3: the expiring_card webhook

Maxio also sends an expiring_card webhook. Per its webhook events page, it is periodic: sent on the 1st, on the 15th and 7 days before the end of the month, and it identifies all cards expiring in the current month. The payload carries the subscription object, with the customer, product and card details.

Note what that means: the webhook arrives in the month of expiry, not weeks before. For a monthly plan billed early in the month, that is fine. For a customer whose renewal is on the 2nd and whose card expires at the end of that month, it is also fine. But for an annual plan renewing next spring, an “expiring this month” alert today is not the problem; the card that will be on file at renewal is. Use the webhook as a trigger, and decide what to do with your own logic:

  • Renewal before expiry: no action needed now; the next renewal will succeed.
  • Renewal after expiry, monthly plan: ask for a new card now.
  • Annual plan: look at the card’s expiry date against the renewal date yourself, ahead of time, rather than waiting for the webhook.

Step 4: other ways to get a new card

When the email does not work, Maxio offers manual and bulk options (update a customer’s payment information):

  • From the subscription. On the Payment Details tab, “Email Customer to Request Payment Update” sends the customer a link to their self-service page. Maxio recommends this over entering new card details for the customer.
  • In bulk. A prewritten “Request Payment Method Update” bulk email sends a secure update link to a group of subscribers.
  • In the Billing Portal. Customers add a card under Payment, or use Update Payment Method on a specific subscription.
  • Maxio Core. If you use Maxio Core rather than Advanced Billing, the docs describe copying a link from the customer’s e-Bill billing profile page and sending it.

Add a message inside your own product too: a banner for the account owner when their card expires this month reaches people who ignore email.

A checklist

  • You know whether your gateway’s account updater is fully supported in Advanced Billing.
  • Gateway-side updater settings are enabled where needed.
  • Card Expiration Emails are on, with your branding and a working update link.
  • You checked on a real send which schedule Maxio uses on your site.
  • expiring_card is handled, with logic for monthly vs annual plans.
  • Annual plans are checked for expiry against the renewal date well in advance.
  • An in-app banner shows when the card on file is about to expire.
  • Dunning is set up for the cards you could not catch in time.

Doing this with NoChurn

NoChurn reads Maxio subscriptions and each payment profile’s type and expiry date, and uses them in the customer’s 0–100 churn score. When a renewal does fail, NoChurn sends recovery emails written by AI and reviewed by you, alongside your Maxio dunning, with a link to update the payment profile. Card data, the charge and the account updater stay with Maxio and your gateway. NoChurn is free under $300 MRR, with every feature on every plan. 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