Breaking changes
Renames Checkout initialization method Breaking changes
What’s new
Renames the stripe.initCheckout() method for Stripe.js to stripe.initCheckoutElementsSdk(). It accepts the same options and returns the same Checkout object as initCheckout().
Additionally, introduces stripe.initCheckoutFormSdk() as a new entry point for Checkout form integrations. Use initCheckoutFormSdk() instead of initCheckoutElementsSdk() when your integration uses ui_mode: "form".
Why is this a breaking change?
stripe.initCheckout() has been renamed, so calling it throws an IntegrationError. If your integration uses Elements with the Checkout Sessions API and calls initCheckout(), you need to update your code to instead call initCheckoutElementsSdk().
The update depends on whether you use HTML+JS or React:
Replace stripe.initCheckout() with stripe.initCheckoutElementsSdk():
const checkout = stripe.initCheckout({clientSecret});
const checkout = stripe.initCheckoutElementsSdk({clientSecret});
If you use the Payment Form Element, use a Checkout form. The update depends on whether you use HTML+JS or React:
Replace stripe.initCheckout() with stripe.initCheckoutFormSdk() and use createForm() from the returned Checkout form SDK:
const checkout = stripe.initCheckout({clientSecret});
const paymentForm = checkout.createPaymentFormElement();
const checkoutFormSdk = stripe.initCheckoutFormSdk({clientSecret});
const checkoutForm = checkoutFormSdk.createForm();
Impact
The rename from initCheckout to initCheckoutElementsSdk clarifies the method’s purpose as the entry point for Elements with Checkout Sessions integrations, where you compose individual Elements (Payment Element, Address Element, and so on) on your checkout page.
The new initCheckoutFormSdk() method provides a dedicated entry point for Checkout form integrations, corresponding to ui_mode: "form".
Related changes
- Changes the Address Element state field to default to Latin-formatted characters
- Updates the elements.update() method to return a Promise
- Removes support for boolean values in options.layout.radios
- Removes deprecated Payment Intents, Setup Intents, and Sources methods from Stripe.js
- Renames Embedded Checkout initialization method
