Skip to content

Security and privacy

Security you can check, in plain words.

What we keep, where it lives, and how it's protected. Everything here describes how QRiva works today — we don't claim certifications we don't have.

We keep as little as possible

QRiva is designed with GDPR's data-minimisation principle in mind.

  • The IP addresses of people who scan or visit are never stored. Country and approximate city are read from the request and the address is discarded.
  • Returning visitors are recognised with a hash that changes every month, so visits can't be joined across months.
  • Strict privacy mode switches off city-level location and the visitor hash for a workspace.
  • Rate limits identify callers only by a daily, salted hash that can't be reversed.
  • Photos are re-encoded on upload, which removes location and camera data.
  • Error logs are scrubbed of e-mail addresses, phone numbers and tokens.
  • You choose how long visit data and inactive leads are kept, and older data is deleted every night.

One exception, so you know: your own sign-in sessions record the device and IP address, so you can review them and sign out devices you don't recognise.

Your data stays in the EU

The database runs in Frankfurt (eu-central-1) and the app's servers run in the same region. The providers we rely on are listed in our privacy policy.

Workspaces are isolated — and we test it

Every table uses row-level security in the database. An automated test signs in as a stranger and tries to read, change and delete another company's data across every workspace table and function, and a check fails if a new table isn't covered.

Protected in transit and in the app

  • Every connection is encrypted with HTTPS, and browsers are told to always use it (HSTS).
  • Tokens for connected tools such as HubSpot are encrypted before they're stored.
  • The app and sign-in can't be framed by other sites, which stops clickjacking.
  • No secret keys are ever sent to the browser.
  • Uploads are checked by their content, and scriptable files are refused.

The right access for each person

  • Sign in with an e-mail link or a passkey — there's no password to reuse or leak.
  • See your signed-in devices and sign any of them out.
  • Owner, admin, editor, viewer and client roles, enforced on the server and in the database.
  • Approval before an editor's page, form or destination change goes live.
  • API keys limited to the resources they need, with lockout after repeated wrong keys.
  • Signed webhooks, with secret rotation that keeps both signatures valid for 24 hours.

Safe for the people who scan

  • Destinations are checked when they're created, when they're edited and again on a schedule.
  • Checks use Google Safe Browsing, open threat feeds, and rules for lookalike domains, hidden credentials, punycode and direct downloads.
  • Redirect loops back to our own short links are refused.
  • Unsafe destinations are blocked with a warning page, and the owner is told why.
  • Every public page has “Report this page”. Reports are reviewed by our team, and confirmed abuse is taken offline.
  • Anyone can check a link before opening it with our free QR code safety checker.

Reliable, and open about it

  • A public status page checks the service every five minutes and keeps 90 days of history.
  • If the database has a short outage, recently scanned codes keep redirecting from a cached copy.
  • Export your redirect table at any time — enough to rebuild every printed code's redirect elsewhere.

Payments by Stripe

Card payments are processed by Stripe. QRiva never sees or stores your card number.

Found a vulnerability?

Please tell us privately through Support, choosing “Something's broken”, and start the subject with “Security”. Give us reasonable time to fix it before sharing details, and don't access or change other people's data. We won't take action against research done in good faith.

What we don't claim: QRiva has not been independently certified (for example SOC 2 or ISO 27001), and this page is not legal advice. It describes our own engineering practices and checks.

Make your first code in two minutes.

Start on the Free plan. No card, no trial clock — upgrade only when you need more.