Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

andcl85's avatar

Laravel Cashier (Stripe): unable to update billing address in Stripe Checkout

I am using Laravel Cashier (Stripe). I have implemented webhooks (they work), etc. and everything is working when payments are successful. I am always starting checkout sessions specifying the following options:

...
$request->user()->newSubscription('default', 'price_......")->checkout([
    'success_url' => route('subscription.edit'),
    'cancel_url' => route('subscription.edit'),
    'billing_address_collection' => 'required',  // <-- Note this
    'automatic_tax' => ['enabled' => true],      // <-- Stripe Tax enabled
]);
...

When I try to subscribe with an invalid test credit card (e.g. 4000 0000 0000 0341, see Stripe docs here) through Checkout, the invoice and the subscription are created (is it ok?), and the subscription is set to incomplete state in Laravel DB. So far so good.

Then, I have setup Stripe's automatic billing emails in my Stripe dashboard (as per docs here), because I do not want to use the dedicated payment confirmation page which is included with Cashier and let Stripe handle the payment confirmation for me.

This is also working, as I receive an email from Stripe with a Button saying "Update your payment method".

Clicking that opens a Checkout page, not the "Stripe-hosted" page they announce in their docs and there, I am unable to edit the billing address. A message saying "To change your billing address, leave this page and restart Checkout" appear next to it, which is, in turn, disabled.

What am I missing? Thanks in advance.

0 likes
1 reply
jlrdw's avatar

I believe it's normal to have to restart a checkout to change the billing address. Does it all work if you do restart?

Please or to participate in this conversation.