#AndreyI - Automated Billing
1 messages ยท Page 1 of 1 (latest)
Hi ๐ Reading
You can actually do this with the payment_behavior="allow_incomplete" for subscriptions:
https://stripe.com/docs/billing/subscriptions/webhooks#state-changes
This will allow you to go ahead and create the subscription even if the initial invoice cannot be paid right away.
And that behaves differently from default_incomplete? I believe we tried allow_incomplete and the payment got retried after 23 hours and then the subscription moved to incomplete_expired. I'm double checking.
Let me check with the biz team. Thank you for the responses, by the way.
Always happy to help ๐
Is it possible to allow the invoice to stay unpaid indefinitely?
Have you tried adjusting the retry logic for subscription payments in your dashboard? Take a look here and see if you can find what you're looking for: https://dashboard.stripe.com/settings/billing/automatic
I'm not seeing a smoking gun in the dashboard, all of our settings are either "leave the subscription as-is" or "leave the invoice as-is".
In regards to payment_behaviour="allow_incomplete", we tried that for some subscriptions, and they show up Expired after 23 hours in the Stripe UI, and the created invoice is set as Void (hover over help shows it is because the subscription expired). This is what we are trying to avoid. Any ideas?
๐ Just hopping in since @tribal wing has to head out soon
Something you could look into is creating Subscriptions with a very brief trial - that way, the first invoice will be $0 for the trial and will always be successful, bypassing the incomplete_expired state you get into if a subscription's first payment hasn't been paid for in the first 23 hours
Alternatively, you could create the subscription using a Subscription Schedule, which I believe doesn't have the same 23 hours restriction
Thank you. I'll look into Subscription Schedules.
Just to confirm, it sounds like there is not a native way to do what we'd like, and a very brief trial or Subscription Schedules are two workarounds we can use to get the type of subscription we'd like. Is that right?
It depends on what you mean by a workaround, but to be specific - you are correct that there is no way to create a Subscription that starts immediately and needs a non-zero payment up front. So yes, they are workarounds but they should be fairly easy to use and will work perfectly for your use case
When you say "starts", we're not talking about an Active subscription, right? Just one that would continue accruing a balance and automatically charge when there is a valid payment method?
When I say "starts" I mean that's the start date of the subscription and when the first invoice is created
"Just one that would continue accruing a balance and automatically charge when there is a valid payment method?"
I just want to dig in on this - what specifically do you mean by "accruing a balance"?
Basically we'd like the unpaid invoices to not get voided so that they can still be collected upon. We allow a grace period (that varies by size of customer) for access to the product even with an unpaid subscription, but would like to collect for the grace period once there is a valid payment method.
Gotcha! Thanks for clarifying - I was worried that your expectation would be that these unpaid invoices would somehow go into some customer balance, and I wanted to clarify that in case you were relying on it
I think we actually do want those invoices to be paid, not sure if that means they'd need to go into the customer's balance. I'll double check.
When they add in a valid Payment Method you'd likely want to go to each Invoice and make a request to then attempt payment.
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
Just hear back. We do not want the unpaid invoices to go into the customer's balance, but we would like for the invoice to stay open (and unpaid) until it is paid. Sounds like that should not be a problem.
We are okay going to each invoice to request payment after a valid Payment Method is added.
๐ perfect!
Looking at Subscription Schedules' default_settings, I see default_payment_method. Just wanted to confirm that we can omit this parameter, the Customer's default payment method will be tried, and the resultant Subscription will not be in a terminal state (and invoices will remain open) if the first payment fails. Is that right?
Yup! There's no need to set default_payment_method on the Subscription (or schedule) if you don't want to - if one isn't set there, we'll pull from the Customer's default. As long as the Subscription Schedule is created to start a few seconds in advance the resulting Subscription will not expire
I see, so the Subscription Schedule should not be back dated, or start immediately, but set to start in the future?
And once the Subscription Schedule starts and creates the Subscription, do we want the Schedule to release the Subscription more or less right away (just so we don't have another thing to worry about)?
The first example (Starting a subscription in the future) in this guide seems to be what we want, is that right? https://stripe.com/docs/billing/subscriptions/subscription-schedules/use-cases
I'm not 100% sure on the behavior of backdating (you could try this out and see what happens), but it will definitely behave as described when you start it in the future. And yes, if you don't want to continue working with the schedules you can release them as soon as the subscription has been created or just let them automatically release
Got it, thank you!