A failed payment is not the same as a student who wants to quit. Confusing the two is the most common billing mistake in martial arts schools: an instructor sees a declined charge, assumes the student is drifting away, and either does nothing or sends an awkward message that makes a fixable problem feel like a confrontation.
Most of the time, the card just expired or the bank blocked an unfamiliar charge. Fix the mechanism, investigate before you assume, and get the tone right -- in that order.
Key Takeaways
- US card payments fail 7-15% of the time each billing cycle; EU SEPA direct debits fail at 2.2% on average, as low as 1.5% for membership businesses specifically (ABC Fitness, 2026; GoCardless, 2024).
- For SEPA, insufficient funds accounts for more than half of all failures (European Payments Council) -- most SEPA failures are a timing problem, not a closed account or a dispute.
- 25% of lapsed subscriptions are purely a payment-failure problem, not a voluntary cancellation (Stripe, 2024).
- Automated retries recover most failed SEPA debits: more than 75% succeed on a second attempt (GoCardless, 2024).
- How you word the follow-up message changes whether it gets fixed in a day or ignored out of embarrassment -- see the message examples below.
This is one piece of a larger topic -- see The Full Guide to Payment Collection for Dojo Owners for pricing tiers, membership billing setup, and the broader collection workflow.
How to Investigate a Failed Payment
Before you do anything else, find out why it failed. The reason changes everything about how you respond -- an expired card needs a 30-second update; a closed account needs an actual conversation.
Where to look: every payment processor (Stripe, GoCardless, or your dojo software's billing dashboard) logs a specific decline or return code for every failed charge, not just "failed." Open the transaction, find the failed payment, and read the code before you do anything else. Guessing the reason instead of checking it is how a simple expired-card fix turns into an awkward, unnecessary conversation.
Card Decline Codes: What They Mean and What to Do
Card networks and processors don't publish a percentage breakdown of how often each decline reason occurs -- unlike SEPA below, no public source has that data, and this article won't pretend otherwise with an invented number. What does exist is the real reason taxonomy, and it tells you exactly what to do in each case:
| Decline reason | What it means | What to do |
|---|---|---|
| Insufficient funds | Most commonly cited reason across processor documentation | Retry a few days later, not immediately -- timing matters more than urgency |
| Expired card | Card on file passed its expiry date | Send a direct update link. This is the easiest fix -- no bank call needed |
| Generic decline / "do not honor" | Bank declined without giving a specific reason | The student needs to call their card issuer -- you can't diagnose this one from your side |
| Incorrect CVC or card number | Typo when the card was entered | Ask them to re-enter the card carefully -- often fixed on the first retry |
| Flagged as fraudulent / high-risk | Bank's fraud filter blocked an unfamiliar recurring merchant name | Student needs to call their bank to whitelist your organization as a trusted merchant |
| Card velocity / limit exceeded | Spending or transaction-count limit hit | Usually resolves after the billing cycle rolls over, or ask them to raise their limit |
| Lost or stolen card | Card has been reported lost/stolen with the issuer | They need to add a new card in your payment system |
Reason taxonomy per Stripe's own decline code documentation (2026) -- codes are broadly consistent across major processors, though exact naming varies.
SEPA Return Codes: What They Mean and What to Do
Unlike cards, SEPA direct debits do have a real, published failure breakdown. AM04 (insufficient funds) and its privacy-masked equivalent MS03 together account for more than half of all SEPA return codes, according to the European Payments Council's own analysis. The EPC's quantitative breakdown dates to 2016 -- the most recent public data available -- but the reason-code taxonomy itself is unchanged in the EPC's current (2024) guidance.
| Code | Meaning | What to do |
|---|---|---|
| AM04 | Insufficient funds | Wait a few days, then retry -- more than half of all SEPA failures fall in this category and most resolve on their own timing |
| MS03 | Reason not specified (bank privacy-masked, usually also a funds/timing issue) | Treat the same as AM04 -- retry after a short wait |
| MD01 | No valid mandate on file at the student's bank | The mandate needs to be re-signed -- a retry will not fix this, you need a fresh authorization |
| AC04 / AC06 | Account closed or blocked | Student needs to provide new bank details entirely |
| MD07 | Account holder deceased (rare, but a real code) | Requires a sensitive, direct conversation -- never an automated retry or message |
If You're Collecting via SEPA: What's Different
SEPA has two operational quirks that don't exist with cards, and both change how you should run your billing.
Retry timing matters more. Because AM04/insufficient-funds is the dominant SEPA failure reason, and because it's fundamentally a cash-flow timing issue rather than a card problem, retrying a SEPA debit the same week rent or a paycheck typically lands is far more likely to work than retrying the next day. GoCardless's own data shows more than 75% of retried SEPA debits succeed when the retry is timed sensibly rather than immediate.
A failed mandate is not the same as a failed payment. If the return code is MD01 (no valid mandate), retrying the same charge will fail every time -- the student needs to complete a new SEPA mandate authorization, not just update a card number. Don't treat this the same as an insufficient-funds retry.
What to Do in the First 48 Hours
Once you know the reason, here's the actual sequence:
- Let the system retry automatically first, if the reason supports it (insufficient funds, generic decline). A single manual chase message before a second attempt even runs wastes the student's goodwill on a problem the retry might solve on its own.
- Send one neutral, practical message matched to the actual reason -- not a generic "your payment failed" template. See the message examples below.
- Give a direct link to update the payment method, not instructions to call the front desk. Every extra step between "got the message" and "fixed the card" loses recoverable payments.
- Time SEPA retries a few days out, not immediately -- see the SEPA section above.
- Only escalate to a personal conversation after 2 failed retries, or immediately if the reason code is one that can't self-resolve (lost card, closed account, no valid mandate). At that point you're asking from a position of "we tried to make this easy" rather than "you missed a payment."
What this looks like in practice: a dojo running manual billing means someone has to notice the failure, look up the reason, remember to follow up, and word the message right -- every single time, for every student. That's the actual operational cost of "just handle it case by case." It works until the front desk is busy during a promotion test week and three failed payments sit untouched for two weeks.
What Not to Do
- Don't mention it in a shared group chat or in front of other students. A billing issue is private. Turning it into something visible to classmates, even accidentally, is the fastest way to make a fixable problem feel humiliating.
- Don't cut off mat access before a single retry has run. Suspending someone over what might be a 2-day-old expired card, before you've even checked the reason code, treats every failure as a worst-case scenario.
- Don't use legal or collections-agency language. "Outstanding balance," "failure to comply," "please settle your account" -- none of that fits a dojo relationship, and it reads as far more serious than "your card expired."
- Don't assume the student is avoiding payment. Most failures are mechanical (see the reason codes above), not a decision. Lead with the mechanical explanation, not suspicion.
- Don't let it sit silently for weeks. The opposite failure mode is just as real -- assuming "they'll notice on their own" leaves a recoverable payment unrecovered and a student quietly drifting toward an account that looks abandoned.
- Don't turn a billing message into a welfare check. "Is everything okay? We noticed your payment didn't go through and haven't heard from you" makes a mechanical problem feel personal and prying. Keep it about the card, not the relationship.
From my own dojo: the first time I saw a failed payment on my spreadsheet, I did the wrong thing twice. First I ignored it for three weeks, assuming it would sort itself out. Then, when I finally noticed, I sent a message that read like a warning letter -- "your payment has failed, please resolve this as soon as possible." The student, a parent of one of my youngest students, wrote back embarrassed: her card had just expired, she hadn't even gotten the bank's notification yet, and now she felt like she'd been caught doing something wrong. That's the moment I understood the actual problem isn't the failed payment. It's how you talk about it.
Message Examples: Light Touch vs. Loaded
The exact same failed payment can be recovered same-day or ignored for weeks, depending entirely on how the message reads.
Neutral and practical (use these):
- "Hi [Name] -- your card payment didn't go through for this month's membership. Update it here in 30 seconds: [link]. Let us know if you need help!"
- "Quick note: this month's payment needs a new card details (yours expired). Update here whenever you have time: [link]."
- "Heads up -- we tried to charge your card and it didn't go through. Could be an expired card or your bank flagging the charge. Please check in with your bank."
- "Your SEPA payment for [Month] didn't clear -- sometimes banks just need a retry after payday. We'll try again in a few days, but feel free to update your details here if you'd rather: [link]."
- "Hi [Name], just a heads-up that your membership payment bounced this month. Please update your payment details: [link]. See you on the mat!"
Loaded and worth avoiding:
- "We noticed you haven't paid this month. Please settle your account immediately to avoid interruption of services." (collections-agency tone for a routine expired card)
- "Your payment failed -- again. This is the second time this has happened. Please make sure this doesn't continue." (accusatory framing over a mechanical, often unrelated repeat failure)
- "Hi, are you still training with us? Your payment didn't go through and we haven't heard from you." (implies they're leaving over a billing hiccup)
- "Membership fees are due promptly. Failure to update payment information may result in suspension of your account." (legal language, disproportionate threat)
- "Just checking -- is everything okay? We noticed your card was declined and wanted to make sure nothing's wrong." (turns a billing notice into a personal check-in)
Why This Isn't the Same as a Student Wanting to Leave
Stripe's research on subscription businesses found that 25% of lapsed subscriptions are purely a payment problem, not a decision to cancel (Stripe, 2024) -- that's the number closest to what's happening at a dojo front desk. Zooming out to the whole subscription industry, involuntary churn (billing failure, not member choice) tends to run smaller as a share of total churn: Recurly's best-documented 2026 benchmark found a 2.34% voluntary versus 1.25% involuntary split, meaning involuntary failures account for about a third of total churn across its merchant base (Recurly, 2026). A wider, less rigorously sourced estimate from Paddle/ProfitWell puts involuntary churn as high as 20-40% of total churn industry-wide -- treat that upper range with caution, since Paddle doesn't disclose the sample size or methodology behind it (Paddle, n.d.).
The recovery math backs this up. When Stripe recovers a failed payment through automated retries, the subscriber sticks around for an average of 7 more months afterward, and the platform recovers roughly $9 in revenue for every $1 spent on the retry infrastructure itself (Stripe, 2024). That student was never gone. Nobody fixed their card.
This reframes a chunk of what looks like Attrition in the First 90 Days or general Retention Decline: some of it isn't a training-experience problem at all. It's an unpaid invoice nobody chased -- and nobody investigated the reason code for.
How to Prevent It From Recurring

If most of your students pay by card rather than SEPA, comparing what automated billing and reason-code-aware retries actually cost against the hours spent manually investigating and chasing declines is worth doing before assuming the manual approach is "free."
Frequently Asked Questions
How do I find out why a specific payment failed?
Open the transaction in your payment processor's dashboard (Stripe, GoCardless, or your dojo software's billing screen) -- every failed charge carries a specific decline or return code, not just a generic "failed" status. See the reason-code tables above for what each one means and how to respond.
Should I message a student the moment their payment fails?
Let the automatic retry run first, when the reason supports it. Most SEPA insufficient-funds failures resolve within a few days without any message at all (GoCardless, 2024), and a message sent before the retry has a chance to work just adds friction to something that might fix itself.
Is a failed payment a sign a student is about to quit?
Not usually. Stripe's research found 25% of lapsed subscriptions are purely payment-failure-driven, not a cancellation decision (Stripe, 2024). Treat it as a billing problem first, and only raise retention concerns separately if the pattern continues after the card is fixed.
Why do SEPA payments fail less often than card payments?
SEPA direct debits pull directly from a bank account rather than relying on a card number that can expire or trigger a fraud block, which is part of why EU schools see failure rates around 2.2%, versus 7-15% for US-style card billing (GoCardless, 2024; ABC Fitness, 2026).
What's the difference between a SEPA payment failure and a mandate problem?
A failure (like AM04, insufficient funds) can often be fixed with a well-timed retry. A mandate problem (MD01, no valid mandate on file) cannot -- the student needs to complete a new SEPA authorization before any future charge will go through, no matter how many times you retry the same one.




