Skip to content
NewSee how
Fix

Fix a failed payment without buying again

A failed payment now takes you to a secure portal to update your card and keep your existing plan, instead of forcing a second checkout.

A declined card should not mean starting your subscription over. Now it does not.

What changed

When a payment failed, whether from an expired card or a temporary decline, the recovery path used to route you back through checkout as if you were signing up fresh. That meant going through the full checkout flow again just to fix a card problem, with the risk of ending up on a duplicate subscription or a different plan than the one you already had. Checkout is designed for new purchases, not for fixing an existing subscription's payment method, so pushing a failed-payment recovery through that same flow meant the experience did not match what was actually going wrong.

Now a failed payment routes you to a secure billing portal instead. From there you can update your card details and the existing subscription continues on the same plan, without a second checkout. Recoverable failures (the kind where updating payment details should fix the problem) are kept out of the checkout flow entirely, since checkout was never the right tool for that situation to begin with.

This distinction between recoverable and non-recoverable failures matters. A temporary decline or an expired card is something you can fix directly by updating your payment method, and the portal is built for exactly that. It is a narrower, more direct fix than starting over with a new purchase.

The portal itself is the same one you would use for any other billing task, like changing your plan or reviewing past invoices, so recovering from a failed payment does not require learning a separate flow. It is simply the place you already go for billing, entered automatically when a payment needs your attention.

How to use it

If a payment fails, you will see a prompt to fix it that takes you to the billing portal rather than checkout. From the portal, update your card information and confirm. FirstSales retries the payment against your existing subscription, and your plan continues without interruption once the payment succeeds. There is no need to reselect a plan, re-enter promotional codes, or worry about accidentally starting a second, overlapping subscription.

You can also reach the billing portal proactively from your account settings if you want to update your card before a payment is due, rather than waiting for a failure. This is worth doing whenever you know a card is about to expire or has been replaced, so you avoid the failure entirely rather than needing to recover from it.

The billing portal shows your current plan and payment method clearly, so you can confirm you are updating the right subscription before you submit new card details. If you manage billing for a team account, this same portal is where you go regardless of whether you are proactively updating a card or responding to a failed payment notice.

If you were previously routed through checkout after a failed payment and are unsure whether that resulted in a duplicate subscription, check your billing history in account settings or reach out to support to review your subscription state directly. Going forward, though, a failed payment always takes you to the portal, so this should not come up again.

Why it matters

Being sent through checkout after a failed payment was confusing and risky: it looked like you were starting a new subscription, and it opened the door to accidentally paying twice or landing on a plan you did not intend. That risk was not hypothetical. A checkout flow that does not clearly indicate it is only fixing an existing subscription can easily result in someone re-entering their card details for what they believe is a fresh purchase, only to discover later that they now have two active subscriptions.

Routing failed payments to the billing portal instead means fixing a card problem stays exactly that: a card fix, not a new purchase. It also means the experience matches the actual situation you are in. If your card was declined and you just need to update it, the portal gets you there directly, with your existing plan and billing history intact, instead of asking you to walk through a purchase flow built for people who do not have a subscription yet.

This kind of billing clarity matters more than it might seem, because payment failures are already a stressful moment for a customer. Nobody wants to see a failed payment notice. Making the recovery path simple and unambiguous, rather than adding confusion on top of an already frustrating situation, is a small thing that has an outsized effect on how trustworthy your billing feels overall.

It also reduces the number of support conversations that start with someone confused about why they were being asked to check out again for a plan they already had. A recovery flow that matches the actual problem, a card that needs updating, means fewer people need to reach out just to confirm they are not being double charged.

This fix also protects against a specific worst case: a customer who does not notice they landed back in checkout, completes it thinking they are simply fixing their card, and ends up paying for two active subscriptions on the same account. That kind of mistake is expensive and awkward to unwind after the fact, requiring a refund and a manual correction on both sides. Keeping recoverable failures out of checkout entirely removes the possibility of that outcome rather than relying on customers to notice and avoid it themselves.

A subscription business runs on customers trusting that their plan and their billing stay stable in the background while they focus on using the product. A confusing recovery path after a routine card decline works against that trust in a way that is easy to avoid. Directing recoverable failures to the same portal customers already use for every other billing task keeps that experience consistent, whether they are there to fix a declined card, update an expiring one, or just check their invoice history.

Availability

This fix applies to all subscription payment failures going forward.

All updates

Outreach that keeps going after you log off.Leads, emails, follow-ups and replies, handled.

Connect unlimited mailboxes and let AI agents find leads, write each email and follow up. Or send your own templates in manual mode. From $29/mo.

$1 for 3 days · Cancel anytime · No contract

Install with AI

Your coding agent sets up the FirstSales CLI and skills for you.

Prompt for Claude Code

I'm setting up FirstSales (https://firstsales.io), an AI outbound sales platform: campaigns, contacts, a reply inbox, deliverability and lead signals. Help me get my workspace sending real, good emails end to end, from Claude Code.

Read these first so you know how FirstSales works:
- Developer docs and API: https://developer.firstsales.io
- CLI: https://www.npmjs.com/package/@firstsales.io/cli
- Skills for coding agents: https://github.com/firstsalesio/firstsales-skills (read README.md and GUIDE.md)

Setup
1. Install the CLI: npm install -g @firstsales.io/cli
2. Install the FirstSales skills:
   claude plugin marketplace add firstsalesio/firstsales-skills
   claude plugin install firstsales@firstsales
3. Ask me if I already have a FirstSales account. If not, send me to https://app.firstsales.io to sign up.
4. Ask me to create an API key under Settings → API → API Keys, with only the scopes we need.
   Never ask me to paste the key into this chat. Tell me to run this in my own terminal, so the key stays hidden:
   read -rs FS_KEY && firstsales auth login --api-key "$FS_KEY"; unset FS_KEY
5. Run `firstsales whoami` and tell me which workspace and organisation we are connected to.

Then ask me about my business: what I sell, who I sell to (roles, company size, countries), my best customers, and what I use today for outbound (tools, lists, mailboxes). Walk me through:
1. Teaching FirstSales my business: website, offer, proof points and case studies in the knowledge base, so the AI writes like someone who knows the product.
2. Connecting my sending mailboxes and checking my sending domain: SPF, DKIM, DMARC and warm-up. If anything is unhealthy, tell me the exact DNS record to add.
3. Bringing in contacts: import my CSV or CRM export into a clean list, remove duplicates and bad emails, and block domains I must never email (customers, competitors, my own).
4. Building my first campaign: the right list, senders, steps and timing. Write the sequence with me, show me the drafts, and do not launch until I say yes.
5. Setting up Signals if it fits: find people engaging with LinkedIn posts about topics my buyers care about, and turn them into leads.
6. Inviting my team and giving each person the right access.

Once campaigns run, show me how to work the reply inbox from here: which replies need an answer, draft responses in my voice, and move good conversations into deals. If I use Cal.com, connect it so follow-ups can offer my booking link (not the first email).

Throughout, as you learn about my business, proactively suggest and help create:
- Reply templates for the questions and objections my prospects are likely to raise, based on my product, site and codebase if you can see them.
- Campaign ideas and segments worth testing, with the reason for each.

Safety rules:
- Show every change as a dry run (--dry-run) first and wait for my yes. Never send emails, launch campaigns or delete anything without my yes.
- Tell me before anything that spends credits, and how many.

Be opinionated. If the docs give a sensible default, just use it. Don't make me choose between five options.