onpack platform
Build onpack into your product stack.
Every onpack code is a programmable touchpoint. The product passport behind a GS1 Digital Link, and the scans, collectors, promotions and rewards behind a unit code, surface to your systems through a REST API and signed webhooks — so your catalogue stays in step with the pack, and your backend can react the instant a customer picks one up.
Quickstart →
Call your first endpoint and receive your first webhook in under five minutes.
Authentication →
Named bearer tokens with per-product read/write scopes, optionally pinned to one brand. Issue and revoke from the dashboard.
REST API →
Manage SKUs, passports and their revisions; query scans, collectors, redemptions, batches; register webhook endpoints. Plus an unauthenticated passport feed by GTIN.
Webhooks →
Signed POST events for passport publications, expiring certificates, scans, promotion outcomes, rewards and batches.
How the pieces fit
Pack Identity — a brand writes a product's passport
(over the API, from the editor, or by import) and publishes it. The revision
is frozen, a passport.published webhook says what changed, and
the page at /01/{GTIN} — and its machine-readable twin at
/api/public/v1/01/{GTIN} — serve that revision until the next.
Pack Experience — a shopper scans a unit code.
onpack resolves the unit, evaluates any live promotions, records the scan,
and — if the scanner is signed in — enters them into an instant win, a
collect-all bundle, or simply awards points. Within milliseconds one
scan.processed webhook carries the full story, or you pull the
same shape from GET /api/v1/brands/:slug/scans/:id.
Two surfaces, one data model
The REST API is pull-based — great for reconciliation, reporting, and bulk reads. Webhooks are push-based — great for real-time CRM updates, fraud checks, and low-latency fulfilment. Both speak the exact same outcome shape, so whatever you build against one works unchanged against the other.
Settings → API or
Settings → Webhooks to create them. Webhook endpoints can
also be managed over the API.