Skip to content
revenue-sdk
Esc
navigateopen⌘Jpreview
On this page

v0.2.0

0.2.0 (2026-08-08)

⚠ BREAKING CHANGES

  • types: WebhookEvent payload fields require narrowing on event.type; un-narrowed access no longer compiles.
  • the provider response body moved from RevenueError.cause to a non-enumerable RevenueError.responseBody; cause now carries only the underlying JS error. Non-enumerability hides the body from console.error, util.inspect, JSON.stringify and Sentry, while error.responseBody remains a deliberate read. It is not redacted: the content is customer PII, which a secrets list cannot enumerate.

Features

  • add customers.create and customers.update (9ae21ae)
  • add license keys (#5) (5b8bb65)
  • add pay-what-you-want checkouts and a customerMetadata capability (6e57384)
  • add subscription pause and resume (#2) (775d549)
  • add the orders resource (#6) (580cdeb)
  • add usage-based billing (#4) (b77bf17)
  • add webhook event granularity, dedupe keys and checkout expiry (d675cfa)
  • support custom provider adapters (4c37444)
  • testing: add signWebhook for webhook handler tests (c4603c8)

Bug Fixes

  • client: retry rate limits without Retry-After and honor aborts (a17348f)
  • dodo-payments: redact the license key from error messages (e2992da)
  • http: preserve baseUrl path prefixes (cbe1316)
  • lemon-squeezy: dedupe first-payment webhooks, filter drafts, guard endTrial (41d6743)
  • polar: map license activation-limit 403 to validation, redact the key (9d8b8f7)
  • stripe: refuse plan changes when the subscription has no items (b0b1873)

Code Refactoring

  • types: model WebhookEvent as a discriminated union (0af4d12)

Last updated on August 8, 2026

Was this page helpful?