Why would square create a new Active subscription (that does not have a trial period) if the initial payment failed to process? This makes no sense to me whatsoever… I understand the subscription being instantiated, but shouldn’t it be inactive or on hold until the payment is successful or the invoice is paid? Under what circumstances would you want the subscription to start and be active if the customer used a fake card or bogus payment method? I’m struggling to understand why this is the flow that the devs decided to go with.
Do you have the
subscription_ids so we can look into this?
Sure. Take for example: `2b9a1a39-f439-4e96-932c-483927a90d15’
After much research and time spent, I realize I am not the only one that expected the Subscription object from the Subscriptions API to have useful information related to the subscription. For example: Whether the subscription has been paid for during the current billing period. To my surprise, I found that people instead have been having to pull the most recent invoice to determine whether or not that invoice has been paid.
This just seems very clunky to me… and a lot of wasted api calls on both ends. Why wouldn’t pulling the subscription object return whether or not the subscription is an active, paid subscription. I suppose I’m not the only one that was deceived by the variable naming:
subscription.status: (ACTIVE) // This sounds to me like this would mean the subscription is active
subscription.chargedThroughDate: 2021-11-19 // this sounds to me like it was successfully charged
It appears that this is still the way it works, which is really poor.
It is still the behavior of the subscription but with the invoice.scheduled_charge_failed webhook your application will be notified when a scheduled payment fails.
Confirmed this is still the case, unfortunately - invoice.scheduled_charge_failed webhook does NOT send on the very first declined payment (only on subsequent scheduled failed payments, I am guessing anyway…).
- very first payment gets declined,
- Subscription still gets set to ACTIVE
- NO invoice.scheduled_charge_failed WEBHOOK is sent because it isn’t a scheduled charge yet
What is the process of handling failed initial payments ?