#Gizmo-subscriptions
1 messages · Page 1 of 1 (latest)
hi! why do you think you need to use a PaymentIntent for that?
PaymentIntents are for processing a payment. If you're updating a saved payment method that's not really a payment, so maybe I'm missing some context.
Hi, I've just been using PaymentIntents to display the PaymentElement. Perhaps I don't need a PaymentIntent for that. Can you please let me know what I need to do to do it on my site using the payment Element?
you can use a SetupIntent if it's just to accept a card and save it
https://stripe.com/docs/payments/save-and-reuse very similiar integration overall
Thank you, karllekko. Is the end result basically the same as the credit card being attached to the subscription as it is when you actually pay for it?
That is, it will just replace the customer's prior payment for the subscription and everything else will stay the same?
no, it just adds a new payment method to them, it doesn't replace the older one
when handling the outcome you would want to think about that and potentially detach the other payment methods and set the new one as default with either https://stripe.com/docs/api/subscriptions/update#update_subscription-default_payment_method or set https://stripe.com/docs/api/customers/update#update_customer-invoice_settings-default_payment_method
Is one better than the other, or will do they both do the same? (i.e. will updating the customer invoice setting default payment method change the payment method for all existing subscriptions?)
the way it works is if there is a subscription-level default, that overrides the customer-level one
so it depends how you set things up in your current integration. Like if you use subscription-level defaults now, setting the customer-level one wouldn't do anything. You would need to test this extensively with your existing set up
I initially had the customer pay for the subscription by passing the new subscription's latest_invoice->payment_intent, and had added 'payment_settings' => [
'save_default_payment_method' => 'on_subscription'
]. It sounds like I need to use the first method - update subscription-default_payment_method in that case since it appears the paymebt_settings parameter saves the payment method directly on the subscription?
yep
Terrific, thank you
To be sure, following this procedure will ensure the new card is billed when the subscription renews?
when the subscription renews, the invoice looks for the default_payment_method set on the Subscription and tries to charge that
so if you have that configured the way you want by the time the renewal happens it should charge that
Great, thanks for your help this morning
Is the best way to test all of this with Clocks?
yep, totally, https://stripe.com/docs/billing/testing/test-clocks?dash-or-api=api#use-cases
- create a subscription with e.g. a visa test card
- add a payment method like a mastercard to the customer and update the default_payment_method
- advance time to after the next renewal time
- confirm that the charge on the latest invoice was on the mastercard
Great, thanks for confirming
If I were to use the Stripe Billing Portal instead of facilitating subscription payment method update myself, is there a way I can change the verbiage "If you change your mind, you can renew your subscription."? My application deletes things when a subscription ends, so I don't want users to have the impression that they can just "renew" their subscription and pick back up where they left off.
I'm not really familiar with that verbiage or functionality in the portal off the top of my head, you'd need to give me a screenshot and more context on where it shows up please
So as a customer if I click through to the Stripe Billing Portal at billing.stripe.com/session/{yada}, I can manage or cancel the subscription. When I click Cancel, I see this.
as far as I know that can't be changed
it only appears if you are using the cancel-at-period-end option(settings on https://dashboard.stripe.com/test/settings/billing/portal ) , for what that's worth
if you force them to cancel the subscription immediately then the messaging doesn't have that sentence in it
Ahh, so it is referring to renewing before the current billing period ends. That makes more sense and is something my users can do. Thank you for pointing it out.
Do you know if the expiring credit card emails have links to the billing portal? I want to have Stripe send those out, but if I'm not otherwise having my customers use the billing portal I'm afraid it might confuse them if they link to the billing portal.
it doesn't by default but that's a feature request we're likely to build this year
go to https://dashboard.stripe.com/settings/billing/automatic and use the 👁️ icon to preview the email
you can add a link to your site that is included in that email
Great, thanks. Will testing with clocks send these emails as well?
that page on your site could redirect to the customer portal if you build it that way
we don't send emails in test mode
Got it. Is there a webhook or something I can use to find out about expiring payment methods so I could send emails to customers myself so they'd match all the other emails my application sends?
Also, thanks for answering in advance. My wife is going to kill me if I don't go give the kids breakfast.
there's not unfortunately, we had one for some legacy card objects, but it ended up being quite unreliable and we never rebuilt it on the current PaymentMethod APIs unfortunately so today there's no direct event for this
Hey, taking over here. Let me know if there's any follow-up Qs I can answer!