onpack platform
Build onpack into your product stack.
Every onpack QR is a programmable touchpoint. Scans, collectors, promotions, and rewards surface to your systems through a REST API and signed webhooks — so your backend can react the instant a customer picks up your product.
Quickstart →
Call your first endpoint and receive your first webhook in under five minutes.
Authentication →
Bearer tokens scoped to your company. Generate, rotate, and revoke from the dashboard.
REST API →
Query scans, collectors, redemptions, batches. Manage SKUs and webhook endpoints.
Webhooks →
Signed POST events for scans, promotion outcomes, rewards, and batches.
How the pieces fit
A shopper scans a printed onpack QR. 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, your backend can hear about it: one scan.processed
webhook carries the full story — who scanned what, which promotion was evaluated,
whether they won or lost, and how many points were awarded. Or pull the same
shape from GET /api/v1/brands/:slug/scans/:id whenever you like.
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 → Developers
to create them.