upgrade-stripe▌
stripe/ai · updated Apr 8, 2026
Comprehensive guide for upgrading Stripe API versions across all SDK types and platforms.
- ›Covers server-side SDKs (dynamically-typed languages like Python, Node.js, Ruby allow per-request or global version overrides; strongly-typed languages like Java, Go, .NET require SDK updates instead)
- ›Stripe.js uses an evergreen model with biannual major releases (Acacia, Basil, Clover) that automatically pair with corresponding API versions; v3 continues to be supported indefinitely
- ›Mobile SDKs
The latest Stripe API version is 2026-03-25.dahlia - use this version when upgrading unless the user specifies a different target version.
Upgrading Stripe Versions
This guide covers upgrading Stripe API versions, server-side SDKs, Stripe.js, and mobile SDKs.
Understanding Stripe API Versioning
Stripe uses date-based API versions (e.g., 2026-03-25.dahlia, 2025-08-27.basil, 2024-12-18.acacia). Your account’s API version determines request/response behavior.
Types of Changes
Backward-Compatible Changes (don’t require code updates):
- New API resources
- New optional request parameters
- New properties in existing responses
- Changes to opaque string lengths (e.g., object IDs)
- New webhook event types
Breaking Changes (require code updates):
- Field renames or removals
- Behavioral modifications
- Removed endpoints or parameters
Review the API Changelog for all changes between versions.
Server-Side SDK Versioning
See SDK Version Management for details.
Dynamically-Typed Languages (Ruby, Python, PHP, Node.js)
These SDKs offer flexible version control:
Global Configuration:
import stripe
stripe.api_version = '2026-03-25.dahlia'
Stripe.api_version = '2026-03-25.dahlia'
const stripe = require('stripe')('sk_test_xxx', {
apiVersion: '2026-03-25.dahlia'
});
Per-Request Override:
stripe.Customer.create(
email="customer@example.com",
stripe_version='2026-03-25.dahlia'
)
Strongly-Typed Languages (Java, Go, .NET)
These use a fixed API version matching the SDK release date. Don’t set a different API version for strongly-typed languages because response objects might not match the strong types in the SDK. Instead, update the SDK to target a new API version.
Best Practice
Always specify the API version you’re integrating against in your code instead of relying on your account’s default API version:
// Good: Explicit version
const stripe = require('stripe')('sk_test_xxx', {
apiVersion: '2026-03-25.dahlia'
});
// Avoid: Relying on account default
const stripe = require('stripe')('sk_test_xxx');
Stripe.js Versioning
See Stripe.js Versioning for details.
Stripe.js uses an evergreen model with major releases (Acacia, Basil, Clover, Dahlia) on a biannual basis.
Loading Versioned Stripe.js
Via Script Tag:
<script src="https://js.stripe.com/dahlia/stripe.js"></script>
Via npm:
npm install @stripe/stripe-js
Major npm versions correspond to specific Stripe.js versions.
API Version Pairing
Each Stripe.js version automatically pairs with its corresponding API version. For instance:
- Dahlia Stripe.js uses
2026-03-25.dahliaAPI - Acacia Stripe.js uses
2024-12-18.acaciaAPI
You can’t override this association.
Migrating from v3
- Identify your current API version in code
- Review the changelog for relevant changes
- Consider gradually updating your API version before switching Stripe.js versions
- Stripe continues supporting v3 indefinitely
Mobile SDK Versioning
See Mobile SDK Versioning for details.
iOS and Android SDKs
Both platforms follow semantic versioning (MAJOR.MINOR.PATCH):
- MAJOR: Breaking API changes
- MINOR: New functionality (backward-compatible)
- PATCH: Bug fixes (backward-compatible)
New features and fixes release only on the latest major version. Upgrade regularly to access improvements.
React Native SDK
Uses a different model (0.x.y schema):
- Minor version changes (x): Breaking changes AND new features
- Patch updates (y): Critical bug fixes only
Backend Compatibility
All mobile SDKs work with any Stripe API version you use on your backend unless documentation specifies otherwise.
Upgrade Checklist
- Review the API Changelog for changes between your current and target versions
- Check Upgrades Guide for migration guidance
- Update server-side SDK package version (e.g.,
npm update stripe,pip install --upgrade stripe) - Update the
apiVersionparameter in your Stripe client initialization - Test your integration against the new API version using the
Stripe-Versionheader - Update webhook handlers to handle new event structures
- Update Stripe.js script tag or npm package version if needed
- Update mobile SDK versions in your package manager if needed
- Store Stripe object IDs in databases that accommodate up to 255 characters (case-sensitive collation)
Testing API Version Changes
Use the Stripe-Version header to test your code against a new version without changing your default:
curl https://api.stripe.com/v1/customers \
-u sk_test_xxx: \
-H "Stripe-Version: 2026-03-25.dahlia"
Or in code:
const stripe = require('stripe')('sk_test_xxx', {
apiVersion: '2026-03-25.dahlia' // Test with new version
});
Important Notes
- Your webhook listener should handle unfamiliar event types gracefully
- Test webhooks with the new version structure before upgrading
- Breaking changes are tagged by affected product areas (Payments, Billing, Connect, etc.)
- Multiple API versions coexist simultaneously, enabling staged adoption
Discussion
Product Hunt–style comments (not star reviews)- No comments yet — start the thread.
Ratings
4.6★★★★★58 reviews- ★★★★★Kabir Khanna· Dec 24, 2024
Solid pick for teams standardizing on skills: upgrade-stripe is focused, and the summary matches what you get after install.
- ★★★★★Aditi Rao· Dec 24, 2024
We added upgrade-stripe from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
- ★★★★★Kaira Bansal· Dec 16, 2024
I recommend upgrade-stripe for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
- ★★★★★Kaira Garcia· Dec 4, 2024
Keeps context tight: upgrade-stripe is the kind of skill you can hand to a new teammate without a long onboarding doc.
- ★★★★★Kaira Haddad· Nov 23, 2024
upgrade-stripe is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
- ★★★★★Aditi Patel· Nov 15, 2024
upgrade-stripe reduced setup friction for our internal harness; good balance of opinion and flexibility.
- ★★★★★Isabella Abbas· Nov 15, 2024
Registry listing for upgrade-stripe matched our evaluation — installs cleanly and behaves as described in the markdown.
- ★★★★★Aditi Gill· Nov 15, 2024
upgrade-stripe fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
- ★★★★★Aarav Martin· Oct 14, 2024
Useful defaults in upgrade-stripe — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
- ★★★★★Luis Jain· Oct 6, 2024
I recommend upgrade-stripe for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
showing 1-10 of 58