Skip to content
MB
MemBuild
Fix · failed payments

A card fails. What happens next decides your revenue.

Every membership has cards that fail. The leak is what your site does afterwards: members who keep everything for months without paying, loyal members locked out on the first bounce, or a renewal list someone on your team keeps by hand. None of it needs a new platform.

How owners describe it

“Member cancels and still gets billed; purchase doesn’t grant access; dashboard number doesn’t match Stripe — revenue leaks silently through broken automations.”

membership owner, hiring post

“Failed payments are often the unspoken bane of the membership site owner’s life… The first time it happens you can be a bit blindsided.”

membership industry article

“We have to manually manage request to member for renew or disable account for old members.”

WordPress.org support forum

“Needs to reprice every active subscriber at next renewal without double-charging anyone or missing a page of records.”

membership owner, hiring post
verbatim from public posts and comments, names left out.
Keep your tools.
Stripe or PayPal already retries the card. Your membership plugin already knows who is in. We add the wiring between them, not a new platform.
One policy, written down.
How many days of grace, how many retries, what the member hears on each day. One paragraph you approve, then the site enforces it.
You see the number.
How many members have access right now and have not paid. Most owners have never seen it. You will, in week one.
What it looks like from your side

A card fails. Three clocks start. Only one of them is wired to anything.

The retry lives in your payment processor. Access lives in your site. The message to the member lives in your email tool. On most memberships only the first one does anything, so what happens next depends on which failure mode your setup defaulted to, years ago, without anyone choosing.

1
They keep everything, for free
The processor gives up after its retries and marks the subscription unpaid. Your site never hears. The member keeps the courses, the community and the calls, sometimes for months. This is the quiet version, and the expensive one.
2
They lose everything on the first bounce
The opposite wiring: one declined charge and a loyal member is locked out before they have seen an email. They write to you angry, or they do not write at all.
3
Someone is doing it by hand
An expiry date in a profile field. A spreadsheet of who is due. A weekly pass to switch people off and a copied-and-pasted “update your card” link. It works until the week it is skipped.
4
Your numbers do not match
Your dashboard says one thing, Stripe says another. The gap is real people: paying without access, or accessing without paying. Nobody owns the list, so nobody fixes it.
What we do first

We follow one failed card all the way through.

On the Audit we use a test card that declines on purpose, then watch what every tool does with it. The gaps show up in an afternoon, and you get them in writing.

What your site does, and when, after the card fails: nothing, lock out at once, or a grace period it actually enforces.
What the member hears: whether an email goes out by itself, and whether the “update your card” link in it works on the first click, logged out, on a phone.
What happens when they fix the card: does access come back without a human touching it?
What happens on cancel and refund: does access close on the right date, and does billing stop?
Your two numbers, side by side: active members on your site against active subscriptions in Stripe or PayPal, and the names in the gap.
If a price change is coming: how to do it at renewal, once, without double-charging anyone.
What the fix looks like

One paragraph of policy, four events wired, one list a month.

None of this needs a new platform. It needs a decision you approve, the wiring to enforce it, and a monthly list so the gap never grows back. Here is what it looks like from your side.

  1. 1
    You approve the grace policy
    Days, retries, and what the member sees on each day. We draft it, you say yes. It becomes the rule the site follows.
  2. 2
    The site starts following it
    Payment failed, payment recovered, cancelled, refunded: each one changes the member’s status and sends the right message, without anyone in your team touching it.
  3. 3
    The update-card email writes itself
    The link to fix a card goes out automatically, works logged-out, and lands on a page that takes the new card in one step.
  4. 4
    The spreadsheet retires
    Expiry dates and manual renewals move into the subscription your processor already keeps. The weekly switch-off pass stops.
  5. 5
    You get the list every month
    Site actives against processor actives. Every name in the gap gets fixed, with the reason written down so the same gap does not reopen.
the number that matters: how many members have access right now and have not paid. most owners have never seen it.
“Grew to become my top technical lead.”
In the six years she worked with me, she was my go-to team member. We still occasionally outsource work to her and her team. Expect nothing but top results.
Jorge Lazaro Diaz · Larry Jacob Internet Marketing
The technical version, for your developer

Send this to whoever looks after the site. Four subscription events need to reach WordPress and change the record that the access rule reads; the processor’s hosted update-card link should be merged into the dunning email; and site actives need reconciling against processor actives monthly.

  1. Wire the four events. invoice.payment_failed, invoice.paid (recovery), customer.subscription.deleted (cancel), charge.refunded. Memberium, MemberPress, WP Fusion and WooCommerce Subscriptions all expose equivalents; each should set a status or tag and fire the CRM automation.
  2. Enforce the grace period on the site. Access should revoke when the grace window closes, not on the first failed attempt and not never. Make the window a setting, not a habit.
  3. Automate the update-card link. Use the processor’s customer-portal or hosted update link as a merge field in the failed-payment email. Test it logged out.
  4. Retire manual expiry fields. Move expiry to subscription status; delete the profile field and the weekly pass that reads it.
  5. Reconcile monthly. Export site actives and processor actives, diff by email, fix every name in the gap, log the cause. Repricing: one scripted pass at next renewal with a log of every subscriber touched.
Tools named here
some tool links pay us a commission. it never changes what we recommend.
Watch it done
For your developer: where the subscription events live (successful purchase, failed purchase, cancel request, cancel). Each one can change a member’s status, and that status is what should move access. Most sites only wire the first one.
Questions owners ask
Does this mean changing my payment processor or my membership plugin?

Almost never. Stripe or PayPal already retries the card and already knows who is unpaid. What is missing is the wiring between that and your site, and the message to the member. We add the wiring; you keep the tools.

How many days of grace should I give a failed card?

Most memberships settle on seven to fourteen days with three retries. Shorter loses good members whose card simply expired; longer gives free months to people who stopped paying. We help you pick a number, write it down, and make the site enforce it so nobody has to remember.

My dashboard and Stripe show different member counts. Which is right?

Stripe is right about money. Your site is right about access. The gap between them is the list of people who have access without paying, or are paying without access. We produce that list on the Audit and reconcile it monthly if we stay on.

We are raising prices next month. How do we avoid double-charging anyone?

Reprice at each member’s next renewal date, never mid-cycle, in one scripted pass that logs every subscriber it touched. Doing it by hand across pages of records is how the double charges and the angry emails happen.

Can I just get the list and give it to my own developer?

Yes. The Roadmap is yours. If you would rather not think about it again, the $1,500 counts toward us fixing it and staying on.

Want the number, and the fix?

The Audit runs the failed-card test on your site, reconciles your actives against your processor, and hands you the gap list with the fix order. You keep the Roadmap whether we do the fixing or not.

Strategy Audit: $1,500, two weeks, a written Membership Operations Roadmap you own. Refundable in week one if we can’t help. The $1,500 counts toward a fix or Support Block started within 30 days.

Book the Strategy Audit