#_obo_

1 messages · Page 1 of 1 (latest)

latent ospreyBOT
sweet brook
#

Hello there

#

So in this case you would want to set payment_method_options[card][mandate_options][amount_type] to maximum

#

Then the payment can still go through but 3DS will need to be completed

vocal grove
#

okay, so in this case, if we set that to maximum and set that payment method as the default invoicing method, stripe "should" automatically take care of the 3DS stuff for us?

#

In other words, do we need to actively be monitoring webhook events / checking mandates, etc

#

or is simply saving a payment method for off-session payments good enough

sweet brook
#

Then, if the customer does need to complete 3DS they should receive one of these emails.

vocal grove
#

got it

#

and if they ignore this?

sweet brook
#

Well the payment is going to fail initially and they should receive the email which will prompt them to pay for the Invoice using our online Hosted Invoice Page which will handle 3DS. If the customer never does that then the Subscription will go through your retry settings and then do whatever you have set to happen if "all retries fail".

vocal grove
#

got it

#

I was noticing that we had some attempts that ended up in the "expired" status for the invoice

sweet brook
#

Hmm expired isn't a status for Invoices

vocal grove
#

for the subscription I meant

sweet brook
#

Do you mean incomplete_expired?

vocal grove
#

(I'm assuming you have access to see that, but let me know if you dont)

sweet brook
#

Yep looking

#

Ah okay yeah so expired in the Dashboard corresponds with incomplete_expired in the API

#

This is relevant for the initail Invoice of a Subscription which must be paid within 24 hours

vocal grove
#

okay, got it

#

is there an account level setting that I can apply that keeps auto retrying invoices each month instead of putting them into a draft state?

#

or is that only possible by monitoring these drafts via webhooks and automatically advancing them

sweet brook
#

So you are correct that you would want to monitor with Webhooks if you want to finalize these programmatically

vocal grove
#

hmm okay, is there any way to do this via the API in a one "swoop" type of fassion? we have churnbuster enabled now so we're now auto cancelling accounts that end up in this state because the initial failed payment is caught by churnbuster

#

however these old accounts in this state, got grandfathered in to this weird state

#

in other words: they started getting into this draft state before churnbuster was turned on, so churnbuster never sees a "failed payment" from that account so therefore never starts the recovery attempt / account cancellation process

sweet brook
vocal grove
#

got it, thank you

#

that should be all, appreciate the help

sweet brook
#

Happy to help

vocal grove
#

actually @sweet brook one last question, rather than the subscription expiration state we talked about earlier, is it possible to put the customer into a failed payment state?

#

the issue I'm seeing with the expired state, is we get the webhook, and then would immediately want to act on it

sweet brook
#

Once a Subscription has expired it can't be mutated.

vocal grove
#

typically we give our customers 30 days to fix their payment setup. And I would hate for somebody to upgrade their account, then have a payment 3ds failure, and get downgraded to free within 24 hours

#

is it posisble to move the subscription into a failed state instead of an expired state?

sweet brook
#

This shouldn't be relevant for updates.

#

incomplete_expired is only for new Subscriptions

vocal grove
#

the one I shared earlier

#

we sucessfully subscribed to a plan that was $100

#

then because the $500 one is above the 15000 indian limit, that payment needed further 3ds

#

but then that 3ds failed, and now the customer is essentially left with no subscription

sweet brook
#

Looking

#

That Customer has 4 subscriptions

#

Which one are you talking about specifically?

#

Can you give me the Subscription ID?

vocal grove
#

yes of course

sweet brook
#

Hmm I'm a bit confused

#

When you "update" are you actually just canceling the Subscription and creating a new one?

vocal grove
#

yes

sweet brook
#

Okay yeah that's going to be your issue then

#

Not deleting and recreating

vocal grove
#

yes, unfortunately you're right

#

i'm working off some legacy code

#

looks like we may need to rewrite more than we want, but it's good to know the root of th eissues

#

thanks for the insight