This changelog starts on 2026-08-28. Changes made before that date are not
listed individually; the OpenAPI specs are
the authoritative record of the current surface.
Reseller webhooks
Added — reseller webhooksResellers can now register webhook endpoints and receive order events for the
orders their team placed, at
See Reseller webhooks for the full guide.
POST /reseller/webhooks
and the usual list/get/update/delete/deliveries operations alongside it.The contract is identical to the provider side — same four subscribable event
types (order.created, order.item.created, order.item.status_changed,
order.cancelled), same X-Offergrid-Signature scheme, same { id, type, version, data } envelope, same at-least-once delivery and delivery log. What
differs is scoping: a provider receives events for items built on its own
offers, a reseller for orders its own team placed.A hybrid team’s single webhook now covers both roles and receives each
event exactly once, rather than twice.This is additive. Existing provider webhooks are unaffected: no provider
endpoint, payload, or subscription changes, and no provider begins receiving
an event type it did not subscribe to.
Documentation and specification accuracy
Fixed — webhook signature verification docs were wrongThe provider webhooks guide described an
x-offergrid-timestamp request header
that the API has never sent. The timestamp is carried in the t= component of
X-Offergrid-Signature. Any verifier written against the old documentation
would have rejected every delivery. The verification examples
are now tested against the signing implementation.The same page also corrected the webhook envelope (the event type field is
type, not event; there is a version field and no top-level timestamp),
the subscribable event list, and the delivery timeout (10 seconds, not 5).Fixed — reseller webhooks were documented but did not existThe reseller webhooks page described a registration flow and four event types
that had no implementation at the time. The page was corrected to describe
polling instead — and reseller webhooks then shipped the same day (see the
entry above), so the page now documents the real
endpoints.Fixed — rate limits were documented but not enforcedThe authentication guide published a burst limit, a sustained limit, and
X-RateLimit-* response headers, none of which the API implements. See
Rate limits for what is genuinely enforced: the
two public /shop write endpoints, per IP.Changed — OpenAPI specs now document error responsesEvery operation in the published specs now declares 401, 403, and 500
alongside its documented error cases, and every 4xx/5xx response carries a
schema rather than a bare description. Two new component schemas, ErrorResponse
and ValidationErrorResponse, model the shapes described on the
Errors page. Five operations that documented only a
404 now declare their success response as well.Removed — http://localhost:3000 from the published specsThe specs listed a local development server that a generated client or agent
could select. Production is now the only server entry; local development is
described in prose on the Introduction page.Added — new documentation pagesErrors, Rate limits,
API conventions,
Versioning, this changelog, and per-role reference
indexes for the Provider,
Reseller, and Public APIs.