#redpanda-prices
1 messages · Page 1 of 1 (latest)
@cinder kernel
1/ the change happens immediately yep, at the time you call the API to update the subscription to change the Price. There may or may not be an immediate charge , it depends on the type of change(https://stripe.com/docs/billing/subscriptions/upgrade-downgrade#immediate-payment) or you can pass proration_behavior:always_invoice to force it.
is there a way so the plan will be marked for change and the charge will be executed at the current billing period end?
well you can use Schedules to do that kind of thing(https://stripe.com/docs/billing/subscriptions/subscription-schedules/use-cases#upgrading-subscriptions)
How does changing a plan behave with payment intents?
If there's a payment required, an invoice is generated and charges the customer's saved payment method and works like any other invoice. You might need the customer to authenticate the payment using 3D Secure, like any recurring payment. SetupIntents are not involved.
as for 2/ I don't really follow the question. If you want to test what happens when charges fail you could attach the 4000000000000341 card to the customer (https://stripe.com/docs/testing#cards-responses )
- Oh so I think I was confused about the term billing period. So if I change from an existing subscription with a monthly interval price to a new price with a yearly interval the charge will happen when the existing monthly period ends?
Will there be any 3ds checks when you change prices in an active subscription?
In specific for cards and gpay/apple pay
- One example I can think of would be a customer using a debit card, the initial purchase succeeds but at the next billing period he doesn't have enough funds on the card
if you switch from a monthly to a yearly price, at the time you make the API request then the yearly billing period starts and there's an invoice for that yearly amount. E.g if its' a $50/month Price from 1->31 October and you make the API call today to switch to a $500/year Price, an invoice is created for $500(minus some prorated amount for 5->31 October on the other Price) and then the next invoice is $500 on October 5th 2022.
It just (maybe, depends on the factors I described in my first reply) creates an invoice which processes as a regular payment, and it may or may not require 3D Secure, or get declined entirely, like any invoice.
sure, then you can update the customer to change their default card to that one. Then either wait for a recurring invoice, or force one by setting a small trial period(when the trial ends it generates an invoice so you can abuse that to test things) https://stripe.com/docs/billing/testing#payment-failures
So if the user is off-site and the charge fails due either requiring 3ds or being declined I would need to add some button so the customer can reexecute the payment?
yep!
But this would use payment intent again or?
I am a bit confused sorry
And the best way to test this would be to create a short trial period subscription, then change out the payment method with a test card that prompts for 3ds and wait for the period to run out?
Yes it's the same PaymentIntent(the Invoice that gets generated from performing the upgrade has a PaymentIntent in the payment_intent field, you can retrieve that and use it to attempt payments, when the PaymentIntent is complete the Invoice is paid).
yep, that's mostly the easiest way