Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Guide for upgrading Stripe API versions and SDKs
.claude/skills/asymmetric-al-upgrade-stripe/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 26% | 0% |
| case-02 | ✗→✓ | ▲ Improved | -1% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 45% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 5% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 248% | 0% |
The latest Stripe API version is 2026-04-22.dahlia - use this version when upgrading unless the user specifies a different target version.
This guide covers upgrading Stripe API versions, server-side SDKs, Stripe.js, and mobile SDKs.
Stripe uses date-based API versions (e.g., 2026-04-22.dahlia, 2025-08-27.basil, 2024-12-18.acacia). Your account’s API version determines request/response behavior.
Backward-Compatible Changes (don’t require code updates):
Breaking Changes (require code updates):
Review the API Changelog for all changes between versions.
See SDK Version Management for details.
These SDKs offer flexible version control:
Global Configuration:
pythonimport stripe stripe.api_version = '2026-04-22.dahlia'
rubyStripe.api_version = '2026-04-22.dahlia'
javascriptconst stripe = require('stripe')('sk_test_xxx', { apiVersion: '2026-04-22.dahlia' });
Per-Request Override:
pythonstripe.Customer.create( email="customer@example.com", stripe_version='2026-04-22.dahlia' )
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.
Always specify the API version you’re integrating against in your code instead of relying on your account’s default API version:
javascript// Good: Explicit version const stripe = require('stripe')('sk_test_xxx', { apiVersion: '2026-04-22.dahlia' }); // Avoid: Relying on account default const stripe = require('stripe')('sk_test_xxx');
See Stripe.js Versioning for details.
Stripe.js uses an evergreen model with major releases (Acacia, Basil, Clover, Dahlia) on a biannual basis.
Via Script Tag:
html<script src="https://js.stripe.com/dahlia/stripe.js"></script>
Via npm:
bashnpm install @stripe/stripe-js
Major npm versions correspond to specific Stripe.js versions.
Each Stripe.js version automatically pairs with its corresponding API version. For instance:
2026-04-22.dahlia API2024-12-18.acacia APIYou can’t override this association.
See Mobile SDK Versioning for details.
Both platforms follow semantic versioning (MAJOR.MINOR.PATCH):
New features and fixes release only on the latest major version. Upgrade regularly to access improvements.
Uses a different model (0.x.y schema):
All mobile SDKs work with any Stripe API version you use on your backend unless documentation specifies otherwise.
npm update stripe, pip install --upgrade stripe)apiVersion parameter in your Stripe client initializationStripe-Version headerUse the Stripe-Version header to test your code against a new version without changing your default:
bashcurl https://api.stripe.com/v1/customers \ -u sk_test_xxx: \ -H "Stripe-Version: 2026-04-22.dahlia"
Or in code:
javascriptconst stripe = require('stripe')('sk_test_xxx', { apiVersion: '2026-04-22.dahlia' // Test with new version });
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 15,829 | 11,393 | -28% | 1 | 1 | 0% | 2,874 | 3,633 | +26% | 0 | 0 | — |
case-02 | fail→pass | 22,185 | 12,223 | -45% | 1 | 1 | 0% | 3,692 | 3,640 | -1% | 0 | 0 | — |
case-03 | fail→pass | 15,128 | 12,658 | -16% | 1 | 1 | 0% | 2,566 | 3,732 | +45% | 0 | 0 | — |
case-04 | pass→pass | 6,087 | 5,732 | -6% | 1 | 1 | 0% | 1,271 | 2,679 | +111% | 0 | 0 | — |
case-05 | pass→pass | 11,101 | 10,421 | -6% | 1 | 1 | 0% | 2,098 | 3,614 | +72% | 0 | 0 | — |
case-06 | pass→pass | 14,031 | 8,298 | -41% | 1 | 1 | 0% | 2,548 | 3,119 | +22% | 0 | 0 | — |
case-07 | fail→pass | 13,968 | 5,677 | -59% | 1 | 1 | 0% | 2,343 | 2,459 | +5% | 0 | 0 | — |
case-08 | fail→pass | 3,696 | 2,949 | -20% | 1 | 1 | 0% | 574 | 2,000 | +248% | 0 | 0 | — |
case-09 | pass→pass | 11,932 | 2,833 | -76% | 1 | 1 | 0% | 1,924 | 1,930 | +0% | 0 | 0 | — |
case-10 | fail→pass | 5,604 | 2,586 | -54% | 1 | 1 | 0% | 783 | 1,879 | +140% | 0 | 0 | — |
case-11 | pass→pass | 16,023 | 4,784 | -70% | 1 | 1 | 0% | 2,523 | 2,249 | -11% | 0 | 0 | — |
case-12 | pass→pass | 12,440 | 3,555 | -71% | 1 | 1 | 0% | 2,058 | 2,069 | +1% | 0 | 0 | — |
case-13 | fail→pass | 11,236 | 5,150 | -54% | 1 | 1 | 0% | 1,739 | 2,396 | +38% | 0 | 0 | — |
case-14 | pass→pass | 16,831 | 7,319 | -57% | 1 | 1 | 0% | 2,468 | 2,694 | +9% | 0 | 0 | — |
case-15 | pass→pass | 12,178 | 5,415 | -56% | 1 | 1 | 0% | 2,013 | 2,377 | +18% | 0 | 0 | — |
case-16 | pass→pass | 15,218 | 8,261 | -46% | 1 | 1 | 0% | 2,320 | 2,738 | +18% | 0 | 0 | — |
case-17 | pass→pass | 12,540 | 2,996 | -76% | 1 | 1 | 0% | 1,944 | 1,883 | -3% | 0 | 0 | — |
case-18 | fail→pass | 3,684 | 2,818 | -24% | 1 | 1 | 0% | 637 | 1,923 | +202% | 0 | 0 | — |
case-19 | fail→pass | 12,144 | 6,432 | -47% | 1 | 1 | 0% | 2,066 | 2,688 | +30% | 0 | 0 | — |
case-20 | pass→pass | 12,740 | 7,870 | -38% | 1 | 1 | 0% | 1,979 | 2,743 | +39% | 0 | 0 | — |
case-21 | fail→pass | 7,562 | 3,545 | -53% | 1 | 1 | 0% | 1,213 | 2,089 | +72% | 0 | 0 | — |
case-22 | fail→pass | 8,650 | 2,169 | -75% | 1 | 1 | 0% | 1,375 | 1,802 | +31% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +50 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.