Changelog & versioning
Release history and versioning policy for the SUQO TypeScript SDK.
Versioning policy
The SDK follows strict SemVer: MAJOR.MINOR.PATCH.
- MAJOR — bumped on either trigger: the API's path version changes (
/api/v1/→/api/v2/), or the SDK introduces its own breaking change with no API change at all (a renamed export, a changed return shape). - MINOR — additive, backward-compatible: a new resource, a new optional parameter, a new non-breaking field.
- PATCH — fixes only, no contract change of any kind.
Anything removed is deprecated one minor ahead with a documented warning, removed only at the next major — no feature is ever removed in a minor or patch release.
Compatibility table
| SDK Version | Supported API Version | Change Type | Status |
|---|---|---|---|
1.0.0 | v1 | Initial release | Shipped |
1.0.0 - 2026-09-11
Added
SuqoClient— environment (sandbox/live) inferred automatically from the API key prefix, withSuqoConfigErrorthrown before any request on a malformed key or a conflictingbaseUrloverride.products.list()/.autoPaging()— browse the seller's product catalog. Works before KYC.subscriptions.list()/.create()/.cancel()/.updateBillingCycle()/.resume()/.autoPaging()— full subscription lifecycle, including create-time reuse of an inactive/expired subscription for the same buyer + product + billing period.customers.list()/.retrieve()— read-only access to the seller's customer records.webhooks.verify()— HMAC-SHA256 signature verification for inbound webhook deliveries, with replay protection via a configurable timestamp tolerance. Makes no network call.- Automatic retries with exponential backoff and jitter for read operations, on
NetworkError,429, and5xx— honoring aRetry-Afterheader when present. Writes are never auto-retried (no idempotency-key support yet on the backend — see Idempotency). - Full
SuqoErrorhierarchy (SuqoConfigError,AuthenticationError,KycRequiredError,ValidationError,NotFoundError,RateLimitError,ServerError,NetworkError) — every documented failure mode normalized to a class, never a wire-shape check. - Dual ESM + CommonJS build with bundled
.d.ts, zero runtime dependencies.
Fixed
- Corrected the sandbox base URL (
test.be.suqo.ai, which did not resolve) to the real sandbox host,test-be.suqo.ai.