Question

Stripe payment issue leads to cancellation? And missing payment success events?

  • 15 February 2022
  • 4 replies
  • 107 views

Badge +4

Hi, I have a very similar issue to 

 

However, my issue is with Stripe, not Apple, so I created a new post.

 

This user https://app.revenuecat.com/activity/4f1862c1/event/3f78f0bd-5bed-4de8-8772-8e4be182707d had a billing issue and cancellation on 2/1.

 

While on Stripe, they had several more events and no cancellation event.

  1. payment failed on 2/1. This matches with revcat
  2. payment failed again on 2/8. Not found in revcat
  3. payment succeeded on 2/12. Not found in revcat

No cancellation event is found in Stripe.

 

Can you clarify if there was an error on Revcat’s side, or if this is intended behavior? If it’s intended, what’s the recommended way to handle this scenario?


4 replies

Userlevel 3
Badge +7

Hi @Peter :wave:

 

When we detect that the user has unsubscribed and the subscription is set to not auto-renew we will send out a cancellation webhook. This doesn’t mean that the subscription has expired. It just means that we detected a cancellation/ an unsubscribe. 

When the subscription is actually expired you will see a EXPIRATION webhook come through. 

Additionally if the user changes their status , let’s say they uncancel or re-subscribe. This won’t trigger an event until a renewal occurs. 

So since this customer doesn’t have an expiration in our timeline this user will still have access and the as you see in Stripe the payment succeeded. So on the next renewal you’ll see an event.  

Badge +4

@jazmine thanks for replying. Our subscriptions are set to auto-renew, so I don’t think it’s the same situation you’re describing.

Is there anything I can do to recover from this scenario?

Badge +5

@jazmine I have the same issue. Many of my users have billing issues (bank declined, insufficient funds, etc.) on Stripe. I send them an email to let them know so they can correct their payment information. Stripe automatically retries the charge and succeeds, but RevenueCat is sending a cancellation webhook, even though the Stripe subscription never entered a canceled state.

This is an issue for me because I send cancellation confirmation emails based on RevenueCat webhooks. So currently, users will receive the “billing error - action required” and the inaccurate “your subscription has been cancelled” emails at the same time.

In the meantime, I’ll have to change my backend to use Stripe’s webhooks directly instead of RevenueCat’s webhooks, but this is inconvenient for me because now I have two separate systems to manage webhooks for web vs. iOS/Android. I’d like to depend entirely on RevenueCat here but sending a “cancellation” event during a temporary billing issue is a bug.

Badge +3

Hi @jazmine we are having the same issue. If a User has a billing issue on Stripe which almost always then succeeds on the next attempt. RevenueCat sends a cancellation Webhook even though the Stripe subscription is valid. 

It would make sense from my point of view not to send the cancelled event until the Subscription in Stripe has ended, or send a new event type that there is a billing issue. 

Is this a known issue by the RevenueCat team? Or do you believe this is an issue with Stripe or our implementation. 

Please let us know what we can do. 


Hey @byson @peter did either of you come to a solution you would be happy to share? 

 

 

 

 

Reply