For teams moving a Stripe integration to a new API version
Stripe Pin DeskapiVersion, stripe_version, Stripe-Version, webhook endpoints, Stripe.js. Each pin in the file found and compared with the target here; the upgrade gets a review.
Paste one Stripe integration file - Node.js, Python, Ruby, PHP, Java, Go, .NET, a curl script or a checkout page - and, if you like, its package manifest. Your browser finds the API version pins in the file: the client configuration, per-request overrides, Stripe-Version headers, webhook endpoints, typed-SDK overrides and the Stripe.js release. Stale pins are bumped to the target and a client created without a version gets one - but a pin is never moved to an older version, or a stable pin to a preview. What needs a decision is listed: a webhook endpoint moves by replacement, with both signing secrets during cutover; Java, Go and .NET take the version from the SDK; and the breaking major releases between each pin and the target are named.
The integration file free
Keys never belong here: the page reads code, not secrets - keep them in STRIPE_SECRET_KEY, and run every test it hands you with a test-mode key (sk_test_...) in a sandbox. A run is refused while the pasted text holds a literal key. Without a target, the page uses the skill's bundled fallback (2026-10-28.endive, a snapshot from 2026-11-03) and marks it unverified - check the current version on Stripe's API versioning page.
The scan free
Every pin in the file
What the scan found
The skill's upgrade rules
The upgraded copy and the steps free
What the page changed itself - stale pins bumped to the target, an explicit version where a client is created without one, the Stripe-Version header on curl tests, an older Stripe.js release moved, short Stripe id columns widened to 255 - and the upgrade steps in the skill's order. Webhook endpoints, typed-SDK overrides, newer and preview pins and the breaking releases need a decision and are left as they were.
stripe.ts
stripe-upgrade-steps.md
The review metered
Pricing as soon as the session is ready...
Sign inThe reply could not be read. Here it is as it came back:
Caveats
Caveats
The page's check of this reply
Saved reviews
How it works - and what it cannot see
The scan masks comments the way each language writes them and keeps strings, where pins live. Each version literal is sorted by what sets it - the Stripe constructor's options, a per-request options object, stripe.api_version, setApiVersion, a StripeClient's stripe_version, a Stripe-Version header, a webhook endpoint's api_version, a typed SDK's override, a Stripe.js option - and compared with the target by date and release name. Every change is a small edit that never overlaps another, so the upgraded copy keeps every other line as you wrote it.
It cannot read the changelog, so it names the major releases between a pin and the target, not what they renamed; it cannot see endpoints configured in the Dashboard or the file that creates a client elsewhere. That is the review, which decides each finding and writes the tests with the Stripe-Version header. The page re-scans the upgraded file, so a pin left behind - or a version neither pasted nor the target - is flagged rather than trusted.