Security

Private media delivery for a public QR experience.

Velop is designed so recipients get a simple scan-to-play flow while merchant data and media remain tenant-scoped. For operational fixes, see QR gift message troubleshooting.

API keys are hashed

Plain merchant API keys are shown once and stored only as HMAC-SHA256 hashes.

Signed media URLs

Media files are private by default and served through short-lived signed URLs.

Tenant isolation

Every message, scan event, billing event, and rollup is scoped to merchant ID.

Auto expiry

Messages expire by retention policy and storage lifecycle cleanup removes media.

Protected data rules

Direct writes are denied for message, scan, billing, and analytics collections.

Viewer token gate

Public pages resolve only active, unexpired tokens and return expired states otherwise.

Operational controls

Built for stores that ship real gifts.

GiftNote links are designed for physical fulfilment workflows: customers create a message, store teams print a QR card, and recipients open a private viewer without installing an app. The same workflow is covered in the message lifecycle docs.

QR links stay scoped

Viewer pages resolve only active tokens, so a printed card can open the intended message while expired or invalid tokens return a controlled state.

Media is not public by default

Uploaded voice, video, and file messages are served through short-lived signed URLs instead of permanent public storage paths.

Retention is predictable

Messages follow the merchant retention window, giving recipients time to scan while keeping long-term media storage controlled.