releases.shpreview

v22.0.0

$npx -y @buildinternet/releases show rel_lU1qBxhjnQmNUlFCgAWK4

This release uses the same pinned API version to 2026-03-25.dahlia as the last major release. The breaking changes in this release are prefixed with ⚠️ below. There's also a detailed migration guide to simplify your upgrade process.

  • #2619 Improved TypeScript support in the Node SDK
    • Moved the types from the partially manually maintained and partially generated types folder to be inline with the implementation in TypeScript files.
    • Removed top-level “stripe” ambient module. This allows import aliasing for the stripe package.
    • ⚠️ Stripe.StripeContext is no longer exported as a type. Use Stripe.StripeContextType instead.
    • ⚠️ Stripe.errors.StripeError is no longer a type. Use typeof Stripe.errors.StripeError or Stripe.ErrorType instead.
    • ⚠️ CJS entry point no longer exports .default or .Stripe as separate properties.
    • ⚠️ Stripe import is now a true ES6 class. Use new Stripe() to create a StripeClient instead of calling it:
// Before
const stripeClient = Stripe("sk_test_...");

// After
const stripeClient = new Stripe("sk_test_...");
  • #2645 ⚠️ Remove stripeMethod and standardize how function args are handled (including removing callback support)

    • ⚠️ Refactor how incoming method arguments are parsed. Type signatures for API methods should be much more accurate and reliable now
      • ⚠️ Remove support for providing callbacks to API methods. Use async / await instead
      • ⚠️ Remove support for passing a plain API key as a function arg. If supplied on a per-request basis, it should be in the RequestOptions under the apiKey property
      • ⚠️ Keys from params and options objects are no longer mixed. If present on a method, RequestParams must always come first and RequestOptions must always come second. To supply options without params, pass undefined as the first argument explicitly
      • ⚠️ Removed methods from StripeResource: createFullPath, createResourcePathWithSymbols, extend, method and _joinUrlParts. These were mostly intended for internal use and we no longer need them

    As a result, the following call patterns are no longer supported:

    stripe.customers.retrieve('cus_123', 'sk_test_123')
    stripe.customers.create({name: 'david', host: 'example.com'}, 'sk_test_123')
    stripe.customers.create({apiKey: 'sk_test_123'})
    stripe.customers.list(customers => {
      // do something with customers
    })
  • #2643 ⚠️ Removed per-request host override. To use a custom host, set it in the client configuration. All requests from that client will use that host.

    Before:

    import Stripe from 'stripe';
    const stripe = new Stripe('sk_test_...');
    
    const customer = await stripe.customers.create({
      email: 'customer@example.com',
    }, {host: 'example.com'});

    After:

    import Stripe from 'stripe';
    const stripe = new Stripe('sk_test_...', {host: 'example.com'});
    
    // goes to example.com
    const customer = await stripe.customers.create({
      email: 'customer@example.com',
    });
  • #2638 Converted V2/Amount.ts to V2/V2Amount.ts

See the changelog for more details.

Fetched April 3, 2026