How FlyCode handles Shopify subscription failed payments
How FlyCode recovers failed Shopify subscription payments on Recharge, Skio, Stay AI and Loop: what replaces built-in dunning, retry limits, no double dunning.
By the FlyCode team. Last reviewed September 2026.
Key takeaways
FlyCode does not replace Recharge, Skio, Stay AI or Loop; it replaces only their failed-payment retry and dunning logic, and syncs recovered charges back.
Native app dunning retries on a fixed schedule with up to 8 attempts and emails at each one; FlyCode retries on model-chosen moments with up to 15 attempts a month and separates emails from retries.
Failed payments are roughly 20 to 40 percent of total churn for subscription brands at scale, and FlyCode customers on Shopify report 25 to 40 percent higher recovery, with Gardencup moving from 62 to 82 percent recovery and a 20 percent LTV increase.
Recharge acquired Skio on 30 April 2026; both platforms continue to operate and FlyCode works with both, so recovery does not depend on which app you end up on.
Why Shopify subscription payments fail
Shopify subscription renewals are merchant-initiated charges on a stored card, run in batches by the subscription app on the renewal date. The same decline reasons apply as anywhere else, but two things make Shopify DTC subscriptions harder to recover than SaaS. First, the customer mix skews to consumer debit and prepaid cards, which fail more often: FlyCode's data shows debit cards run about 11 percent involuntary churn and prepaid cards 23 percent, against 6 percent for credit cards. Second, order values are lower and more frequent, so a renewal that lands before payday is common; insufficient_funds is often 50 to 70 percent of all failures. Most of these are soft declines that succeed when retried at the right moment, which is exactly what a fixed schedule cannot do.
What the subscription apps do by default
Recharge, Skio, Stay AI and Loop each include dunning. It is rule-based: a retry schedule you set (for example day 1, 3, 5 and 7), a cap of about 8 attempts, an action when the cap is reached (cancel, skip or leave), and reminder emails or SMS at each failed attempt. It works as a floor, but it retries every customer on the same days regardless of payday, issuer or card type, it uses up card network attempt allowances on low-probability days, and it tells customers about failures that a well-timed retry would have fixed, which converts some involuntary churn into cancellations.
What changes with FlyCode
Retry timing
Fixed schedule, same for every customer
Per-merchant model picks the moment per card (payday cycle, issuer behaviour, time of day)
Attempts
Up to 8
Up to 15 per month, inside Visa and Mastercard limits
Hard declines
Retried or emailed
Not retried; backup card on file charged automatically, then outreach
Emails and SMS
Sent at every failed attempt
Held while retries have a good chance, then sent in the customer's local time from your domain
Segmentation
One flow
Tailored dunning per segment and per failure reason
Reporting
Basic
Churn baseline, recovery by decline code, retries and email funnel
Support
App support
Payments experts by phone, Slack and email
FlyCode also reads the real decline reason behind each failure using network-level signals and more than 100 data points per transaction, which is what lets it separate a customer who is short of funds this week from a card that will never work again.
How the integration works
FlyCode receives failed charge events from the subscription app, decides how to recover each one, executes the retry through the store's payment connection, and writes the result back. The app and Shopify remain the systems of record: subscription status, order history and customer records are updated where they already live. On activation FlyCode loads every charge currently in an error state and backfills the error details, so recovery starts on the existing failed book.
Guardrails. FlyCode is built to complement the app's dunning rather than collide with it. At go-live one system is chosen to own retries and one to own messaging (usually FlyCode for both). Guardrails prevent double-dunning: no email is sent after a soft decline while a retry is pending, no email is sent while a retry is in progress, and recovered charges sync back so the app does not send its own reminder for a charge that is already paid. A per-customer safeguard also caps attempts per hour.
Time to launch. About one day for Recharge and Skio; no developer work on the merchant side.
Recharge
Recharge is the largest subscription platform on Shopify, and Recharge Retain bundles referrals, rewards, cancellation prevention, win-backs and failed payment recovery. FlyCode integrates with Retain so that failed payments are routed to FlyCode for specialist recovery while everything else in Retain keeps running. Setup is an app install from the Recharge App Marketplace plus three payment settings: allow third-party integration, set max retries to 8, and set the action at max retries to "Do nothing" so Recharge does not cancel or skip while FlyCode is still recovering. Top Recharge merchants already run both. Full steps: Step-by-step: integrate FlyCode with Recharge. Partnership details: flycode.com/partners/recharge.
Skio
Skio is known for its modern subscriber portal and passwordless checkout. FlyCode has a built-in Skio integration: sign up, invite FlyCode as a Shopify collaborator with access to Skio, and FlyCode activates in Skio's marketplace and agrees a launch date with you. Skio's cancellation flows, skip and swap features and portal are untouched. Full steps: How to install FlyCode on Skio. Partnership details: flycode.com/skio.
Recharge and Skio. On 30 April 2026 Recharge announced it had acquired Skio for USD 105 million. Both platforms continue to operate and a combined roadmap is expected. For merchants this means the subscription platform question may change over the coming year, while the failed-payment problem does not: subscriptions fail for reasons independent of which app manages them. FlyCode works with Recharge, Skio and Loop, so recovery stays constant whatever the platform decision. See Recharge welcomes Skio: what it means for merchants.
Stay AI and Loop
FlyCode supports Stay AI natively and partners with Loop. Setup follows the same pattern (connect, align the app's retry and email settings, agree a launch date); contact FlyCode for the current steps for your app. FlyCode is compatible with the subscription apps in the Shopify ecosystem; if yours is not listed, ask support to confirm the connection path.
Results on Shopify
Across Shopify merchants FlyCode reports a 25 to 40 percent average improvement in recovery rate over native tools. Documented examples: Gardencup (meal delivery) went from 62 to 82 percent recovery with a 20 percent increase in customer LTV; BUBS Naturals (supplements) went from 51 to 66 percent in one month with a 71 percent peak; PlixLife (nutrition) saw a 21 percent recovery boost, a 9 percent reduction in involuntary churn and 12X ROI; Cymbiotika (supplements, USD 150M-plus revenue) saw a 22 percent revenue increase from recovery and 25 percent churn reduction; Just Meats a 62 percent increase in payment recovery and 33 percent churn reduction; Lucy a 46 percent increase in recovery and 11 percent fewer billing failures.
Setup checklist (any app)
FAQ
Do I need to change anything in Shopify? No. Checkout, theme and orders are untouched; the only settings changes are inside the subscription app.
Can I keep my app's dunning flows? You can keep the app's cancellation, skip, swap and retention features. Only one system should retry and email on failed payments; most merchants let FlyCode own both.
Does FlyCode retry charges that failed for inventory or configuration reasons? Yes on Recharge, once the underlying cause is fixed in Shopify or the app.
How is FlyCode priced for Shopify merchants? Outcome-based: a share of revenue recovered above your existing baseline, with no seats, minimums or setup fees.
Where do I see results? In FlyCode's dashboard (recovery rate, recovered revenue against baseline, decline code mix, email funnel) and in the app and Shopify, where recovered charges appear as paid.
Related
FlyCode & Shopify in the Help Center
Was this helpful?