StripeMikael MelloExplainer
How API changes flow into Stripe's developer products
Summary
Stripe describes how API changes are propagated across its developer-product suite, including SDKs in seven languages and three release channels, the CLI, Shell, API Explorer, API Reference, changelog, and internal tools. Historically, v1 workflows used OpenAPI or a Ruby-based DSL while v2 APIs used protobuf-based DSLs and an internal API specification, forcing teams to maintain parallel generators and leaving some products without v2 support. Stripe chose OpenAPI as a shared representation and built a pipeline whose generated artifacts are tailored by variant, release phase, and API version, with vendor extensions carrying Stripe-specific metadata. Automated validation, OpenAPI diffs, pre-release comparisons, versioned snapshots, and downstream publishing now connect API definition changes to documentation, code samples, SDK and CLI releases, while older v1 versions remain difficult to regenerate with newly added metadata.
Context
Stripe needed to keep a large developer-product suite synchronized with frequent API changes. The introduction of v2 created a second protobuf-based API representation alongside the OpenAPI and Ruby-based DSL workflows used for v1, requiring duplicated generators and causing products such as Stripe Shell and parts of CLI preview support to lack v2 coverage.
Approach / What changed
Stripe converged on OpenAPI as a shared representation for v1 and v2 APIs. A generator produces consumer-specific artifacts based on variant, release phase, and API version, using Stripe vendor extensions for additional metadata and behavior. Validation, diffs, pre-release review, version snapshots, and publishing workflows propagate changes to downstream products and repositories.
Takeaways
Generated OpenAPI artifacts are tailored by variant, phase, and version so public products can exclude private APIs, preview products can include appropriate release phases, and consumers can request a specific API version.
In v2, API changes are stored and reproducible from the beginning of history, allowing canonical OpenAPI descriptions to be generated for past or current versions; v1 cannot yet regenerate older versions with newly added metadata.
API changes are checked before merge for naming, types, compatibility, documentation, and product-specific constraints, then reviewed through OpenAPI diffs and enriched pre-release comparisons before downstream releases.
Source and freshness
- Source
- stripe.dev
- Published
- Added to Yomu
- Last updated
Summaries are generated from the original by a language model. Check the original before relying on it.
Keep reading
Related reading
The Good Stuff
Paid picks we use ourselves. Links carry a referral code — a subscription through one earns us a commission at no extra cost to you.
The best engineering reads, once a week
One useful email. Unsubscribe anytime.