Hi HN community, we are Jake, Tzachi and Etai, co-founders of FlyCode (
https://www.flycode.com). FlyCode makes it easy for subscription-based companies to recover lost revenue due to failed payments and involuntary churn - a major hidden revenue killer for b2b & b2c SaaS merchants and dtc subscription brands.
In previous roles, we led payments teams at enterprises and startups, where we built payment recovery processes and optimized billing systems. We experienced firsthand how challenging it is to recover failed payments efficiently.
Many teams we’ve spoken to view failed payments as an unsolvable black box — a cost of doing business. But when a payment fails, it doesn’t just cost immediate revenue; it significantly impacts the customer’s lifetime value (LTV) and customer experience.
Teams are trying to handle it by (1) relying on the basic recovery of their payment provider (like Stripe basic smart recovery); (2) brute forcing or fixed-interval retry strategies, a legacy approach that ultimately reduces retry success rates and increases customer churn (3) sending too many or too few emails to customers (contact your bank..).
One of the biggest challenges is that payment providers, issuing banks, and card networks classify errors into different categories and have their own risk rules, which adds complexity and leads to many errors getting bucketed together, such as ‘Do not honor’.
To address this problem, we built decisioning models that take into account 100’s of datapoints, such as customer and payment metadata as well as internal classifiers of error codes and messages. The models determine the optimal time to retry a payment with current or backup payment methods and when to communicate with a customer. Our communications product coordinates transactional emails/sms with retries ensuring sent at an ideal local time and in the local language. With FlyCode you can recover more payments with (1) fewer payment retries (2) faster average days to recovery (3) less customer communications (4) compliant with the Card networks rules [we partnered with Visa] (5) and coordinate the communications with the retries automatically for each customer. On top of that, solutions like Card Account Updater (CAU) and Network Tokens help to automatically update card details when a new card is activated or an expired one is replaced.
Our 60+ customers range from mid-sized to large businesses. We built apps in Stripe and Shopify https://marketplace.stripe.com/apps/flycode-payments (featured in Stripe’s marketplace). Please let me know if you have more questions or feedback. We’ll do our best to answer them!
1- Notify client of failed payment 2- Activate a grace period 3- Notify of grace period. 4- Cut service after grace period. 5- Reinstate account after user corrects payment data. 6- Make sure there are no system bugs in the reinstatement.
In my personal preference, I like the system very much. It is the responsibility of the client to keep payment methods up to date, I don't think chasing a client to fix their credit issues is appropriate. But definitely not treating them like criminals and allowing them to fix the issue is due.
Going after this lost revenue is going after bad clients in a sense. Barring expired cards, usually what happens is that the client has low liquidity, high debt, or is spread too thin across multiple accounts, and is unlikely to have a high LTV.
Can say as a user that paid 12$ subscriptions on a month to month basis and was regularly late to the point of waiting until service is cut to move money around to pay it. Don't chase me, let me fix it, if at all, it's ok.