Skip to main content
The OEM Partner API is versioned by a single dated string surfaced on every response:

Additive changes ship anytime

We add — without a version bump — new endpoints, new optional request fields, new response fields, new enum values, and new webhook event types. Integrations MUST be tolerant of these:
  • Ignore unknown response fields rather than failing.
  • Do not assume the response shape is exhaustive.
  • Treat unknown webhook X-VisIQ-Event-Type values as no-ops.

Breaking changes get a new version

A breaking change — removing or renaming a field, changing a type or a default, tightening validation, or changing an endpoint’s semantics — ships under a new dated version. The previous version continues to function for a 12-month deprecation window from the announcement, after which it is retired. During a deprecation window:
  • Both versions are served; the version header reflects the one in effect.
  • Deprecated fields/endpoints are documented as such with the sunset date.
  • We notify partner accounts ahead of retirement.

Stability guarantees

  • Money is always integer cents.
  • Key formats are stable: provisioning keys are vqp_…; minted sub-tenant harness keys are vq_prod_….
  • X-VisIQ-Event-Id is a stable idempotency handle — always dedupe on it.
  • The webhook signature scheme (t=<ts>,v1=<hmac-sha256(t + "." + body)>) is a versioned contract; any change ships as a new signature version, never a silent swap.