Why is my Stripe payment failing on Coachful?
A failed Stripe payment is one of the most frustrating moments in a coaching business — whether you're a coach watching a new client's enrollment fall through, or a client who just wants to get started and can't. The good news: most Stripe payment failures follow predictable patterns, and almost every one has a clear fix. This guide walks you through the most common reasons Stripe payments fail on Coachful, how to diagnose the problem fast, and exactly what to do next.
TL;DR — Quick answers
- Card declined? The client should contact their bank or try a different card. Coachful surfaces the exact Stripe decline code in the payment record.
- Stripe account not connected? Go to Coach → Settings → Billing → Connect Stripe and complete the Stripe Connect onboarding flow.
- Payment shows "pending" forever? This usually resolves within 24 hours; if not, check your Stripe Dashboard for a dispute or bank hold.
- Client never got a receipt? Stripe sends receipts automatically — check spam folders and verify the email address on the offer.
- Coupon or payment plan not applying? Make sure the offer is published and the coupon is active with remaining redemptions.
Step 1 — Identify the exact failure type
Before you start troubleshooting, find the failure message. Coachful logs every payment attempt and surfaces the Stripe decline reason directly in your dashboard. Here's how to find it:
- Sign in to your Coachful workspace at app.coachful.co/sign-in.
- Navigate to Coach → Billing → Transactions.
- Find the failed transaction and click it to expand the detail panel.
- Look for the Decline Code or Failure Reason field — this maps directly to Stripe's error vocabulary.
- Cross-reference the code in the Stripe decline codes reference for a plain-English explanation.
With that code in hand, every section below becomes a targeted checklist rather than guesswork.
Common Stripe decline codes and how to fix them
insufficient_funds
This is the most common decline reason. The client's card simply doesn't have enough available credit or balance. The fix is always on the client's side: they need to use a different payment method, top up their account, or contact their bank to free up a hold. As a coach, you can resend the payment link from Coach → Clients → [Client Name] → Resend Payment Link once they're ready to retry.
card_declined (generic)
A generic card_declined code means Stripe received a decline from the issuing bank but wasn't given a specific reason. This often happens with prepaid cards, virtual cards, or cards flagged for unusual activity. Ask your client to call the number on the back of their card and ask their bank to authorize the charge, then retry. Alternatively, they can try a completely different card.
incorrect_cvc / incorrect_number / expired_card
These are data-entry errors. The client entered the wrong CVC, a typo in the card number, or the card has lapsed. These are simple fixes — the client just needs to re-enter their details carefully. Coachful's checkout form validates card numbers in real time, so a typo should be caught before submission in most cases.
do_not_honor
This is a blanket refusal from the issuing bank — often triggered by international transactions, a new card that hasn't been activated, or a fraud filter. The client needs to call their bank directly. No amount of retrying on your end will resolve this until the bank lifts the flag.
fraudulent / stolen_card
If Stripe flags a payment as fraudulent or stolen_card, do not attempt to override or retry. Stripe's Radar fraud detection has flagged this transaction for a reason. Contact Stripe Support if you believe the flag is in error and you have a legitimate relationship with the client.
processing_error
A processing_error is a temporary infrastructure hiccup between Stripe and the card network. It's rare and usually resolves itself within minutes. Simply retry the payment. If it persists beyond two or three attempts, check the Stripe Status Page for any active incidents.
Pro tip: Coachful's billing is built on Stripe Connect, which means your clients pay directly through your connected Stripe account — no middleman, no extra delay. If your Stripe account is in good standing and charges are still failing, the issue is almost always card-side, not platform-side.
Stripe Connect setup issues (coach-side problems)
If every payment attempt is failing — not just one client's — the problem is likely with your Stripe Connect configuration rather than any individual card. Here's a checklist:
Your Stripe account is not fully onboarded
Stripe requires coaches to complete identity verification and provide banking details before they can accept live payments. If you skipped any step, Stripe puts your account in a restricted state and declines charges silently. To check:
- Go to Coach → Settings → Billing.
- If you see a yellow "Action required" banner, click it — this takes you directly into the Stripe Connect onboarding flow.
- Complete any outstanding verification steps (government ID, business details, bank account).
- Return to Coachful and run a test transaction using a Stripe test card in sandbox mode.
Your Stripe account is in a restricted country or category
Stripe Connect is available in most countries but not all. If you recently relocated or changed your business address to a country not supported by Stripe, charges will fail. Check Stripe's global availability page and contact the Coachful support team if you need to update your account region.
Payouts are paused but charges still fail
Paused payouts don't stop charges from succeeding — but a fully restricted account does. If Stripe sent you an email about a compliance review or added risk flag, your account may be in a state where it cannot process charges at all. In this case, you must resolve the Stripe-side issue first before any client payments will go through.
Not yet on Coachful? If you're evaluating coaching platforms, Coachful's built-in Stripe Connect billing means you get paid directly — no platform taking a cut of your revenue. Start your free trial and connect Stripe in minutes.
Payment plan and coupon failures
Coachful supports flexible billing: one-time payments, recurring subscriptions, multi-tier offers, payment plans, and coupons. Each has its own failure mode.
Payment plan installment declined
When a client enrolls on a payment plan, Stripe schedules future charges automatically. If a subsequent installment fails (e.g., the card expired between month 1 and month 2), Coachful sends the client an automatic dunning email with a link to update their payment method. As a coach, you'll also see a Payment failed notification in your dashboard. You can manually resend the update-payment link from Coach → Clients → [Client Name] → Billing.
Coupon not applying at checkout
If a client reports the coupon isn't working, check three things:
- Is the coupon active? Go to Coach → Offers → Coupons and confirm the status is "Active."
- Has the redemption limit been reached? If you set a maximum number of uses, the coupon stops working once that number is hit. Increase the limit or create a new code.
- Is the coupon scoped to the right offer? Some coupons are offer-specific. Make sure the client is checking out on the correct offer page.
Offer not published
A common mistake: the offer is in "Draft" mode, which means the checkout page exists but Stripe will refuse to create a payment intent for it. Go to Coach → Offers → [Offer Name] and confirm the status is Published before sharing the link.
Client-side troubleshooting steps (share this with your clients)
Sometimes the fastest fix is empowering your client to self-serve. Here's a short checklist you can paste into a message:
- Double-check your card number, expiry date, and CVC — small typos cause most "card declined" errors.
- Make sure your billing address matches what your bank has on file.
- If you're outside the US, ask your bank to enable international transactions.
- Try a different browser or disable browser extensions — some ad blockers interfere with Stripe's payment iframe.
- Try a different card or a PayPal-linked card if available.
- Check with your bank that there are no spending limits or travel blocks active on your account.
Troubleshooting checklist for coaches
Mistake 1 — Retrying the same card repeatedly
Stripe's fraud systems treat repeated failed attempts as a signal of suspicious activity and may rate-limit or block the card further. If a card fails twice, stop retrying and switch to a different payment method or contact the bank first.
Mistake 2 — Confusing "pending" with "failed"
A payment in "pending" status in Coachful is not a failure — it means Stripe is waiting on bank confirmation (common with ACH/bank debit payments, which can take 3–5 business days). Only act if the status transitions explicitly to "Failed" or "Declined."
Mistake 3 — Not checking Stripe Dashboard independently
Coachful surfaces the most important payment data, but the Stripe Dashboard gives you deeper granularity — raw event logs, webhook logs, and dispute timelines. If you can't find an answer in Coachful, log in to dashboard.stripe.com and search by the client's email or the charge ID shown in Coachful.
Mistake 4 — Forgetting to update the webhook endpoint
If you recently reconnected your Stripe account or changed environments (test → live), the Stripe webhook endpoint may need to be refreshed. Contact the Coachful support team via the in-app chat — this is a backend fix and takes less than 5 minutes.
Mistake 5 — Using test-mode keys in a live environment
If you're seeing payments that look successful but no money is moving, double-check whether your Stripe account is still in test mode. In your Stripe Dashboard, the toggle in the top-right corner should read Live mode. Coachful's settings page will also display a warning if it detects test-mode credentials connected to a live workspace.
When to contact support
Reach out to the Coachful support team (via the chat bubble inside your dashboard, or at help.coachful.co) if:
- All payments are failing and your Stripe account appears fully verified.
- A payment shows "succeeded" in Stripe but "failed" in Coachful (webhook sync issue).
- A client was charged but did not get access to the program or squad.
- You need to issue a refund but the refund button is greyed out.
- You're receiving fraud disputes you believe are illegitimate.
When you contact support, include the Coachful transaction ID and the Stripe charge ID (format: ch_xxxxxxxxxxxxxxxx) — this cuts resolution time significantly.
Ready to get your billing running smoothly?
Most Stripe payment failures on Coachful resolve in minutes once you know which decline code you're dealing with. The platform surfaces all the critical information you need — decline codes, billing history, client payment links — so you spend less time chasing payments and more time coaching.
If you haven't connected Stripe yet, or you're considering switching to a platform where billing is built in rather than bolted on, start your free Coachful trial and have your first offer live in under an hour. Already a member? Sign in to your workspace and head to Coach → Billing to review any outstanding payment issues right now. For more billing guides, browse the full Coachful help center.