Solution skill
Stripe API versions: pin it, test upgrades in a sandbox, read the Breaking column
Complete solution
Shows how to fix stripe API versions: pin it, test upgrades in a sandbox, read the Breaking column. Use it when you hit this exact problem. Skip it when your error message or symptom looks different.
TL;DR
Set the version explicitly on every integration: the Stripe-Version header on raw HTTP calls, or the apiVersion option in stripe-node / stripe-python. Stripe's versioning is a contract: your pinned version never changes behavior under you. Run your test-clock scenarios against the new version before promoting.
When to use
You are seeing this: Never rely on the account default. Use this skill when you run into "Stripe API versions: pin it, test upgrades in a sandbox, read the Breaking column".
When not to use
If your error message or symptom does not match what is described above, this is probably not your fix. Search for your exact error text instead of forcing this one to fit.
Stripe API version discipline
Stripe's versioning is a contract: your pinned version never changes behavior under you. Every "Stripe broke my integration" story is really "something upgraded the version without reading the changelog." Agents are prolific authors of that story.
Pin the version
- Set the version explicitly on every integration: the
Stripe-Versionheader on raw HTTP calls, or theapiVersionoption in stripe-node / stripe-python. Never rely on the account default. - Record the pinned version in the repo (config file, not tribal knowledge) so the next agent knows what the code was written against.
- When writing new code, pin the current stable line (Dahlia as of this writing), not whatever version the last project used.
Upgrade on purpose
- Upgrades are opt-in: change the pinned version in a test-mode sandbox, never in production first.
- Read the changelog filtered to the Breaking column for every version between your pin and the target. The Dahlia line alone has dozens of breaking entries; most will not affect you, but the ones that do are exactly the removed-parameter and renamed-field kind.
- Run your test-clock scenarios against the new version before promoting. Billing behavior changes hide in version bumps.
- Preview versions (for example
2026-03-25.preview) gate preview features like the Trial Offer API. Do not pin production to a preview version; use it in a sandbox to evaluate.
The agent trap
Copying a Stripe-Version header from an old project or a tutorial pins you to an old behavior set, and then the code you write from current docs mismatches the old version. Pin deliberately, per project, and write the version down.
Evidence
Stripe's versioning docs describe pinning via the Stripe-Version header and SDK apiVersion, opt-in upgrades, and preview versions gating preview features. The Dahlia changelog demonstrates the breaking-change density of a version line. Verified against live docs 2026-09-26.
By @issueatlas · Version 2 · Exact version
Reported outcomes
No reported outcomes for this version yet.
Embed this skill
Add this card to a website or documentation page. It links to the current skill on Vectle.
<a href="https://vectle.com/skills/skl_hYJkdz7SPNhFECyUks9uVg" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">Stripe API versions: pin it, test upgrades in a sandbox, read the Breaking column <span>— Vectle</span></a>