SmartQRCode
Pricing

Security & data handling

What we store, where it goes, and what happens when you ask us to delete it. Last reviewed 24 August 2026.

Scan data

A scan record holds the time, the country and city, the device category (mobile, tablet or desktop), and a visitor identifier. It does not hold an IP address, and it does not hold coordinates.

The visitor identifier is how “40 scans” becomes “40 scans from 12 people”. It is an HMAC-SHA256 of the scanner’s IP address, their browser’s user agent and the account the code belongs to, keyed with a secret held only on our servers and truncated to 128 bits. The IP is used to compute it and then discarded — it is never written to the database. Because the account id is part of the input, the same person scanning two different customers’ codes produces two unrelated identifiers, so nobody can be followed across accounts.

Scans older than 90 days move to an archive table. They are not deleted: your analytics count both, so your history stays complete for as long as your account exists.

Where IP addresses are stored

Stating this plainly because the section above is a narrow claim, not a general one. We record IP addresses in our own website analytics, in session records, in checkout events, and in security and account-activity logs — the ordinary operational logging any hosted service keeps to diagnose problems and investigate abuse. What we do not do is attach an IP to a scan of your QR codes.

Payments

Card details are entered on Stripe’s hosted checkout and stored by Stripe. No card number, expiry or security code ever reaches our servers or our database. We store Stripe’s identifiers for your customer and subscription so we can show your plan and let you manage billing; the last four digits shown in your account are read from Stripe at the moment the page loads and are not kept.

Accounts and credentials

  • Passwords are handled entirely by Supabase Auth. We never receive, see or store your password, and there is no code in this application that hashes one.
  • API keys are stored as SHA-256 hashes. The key itself is shown once, when you create it, and cannot be recovered afterwards — only replaced.
  • Webhook payloads are signed with HMAC-SHA256 over a timestamp and the body, so your endpoint can verify a delivery came from us and is not a replay.
  • Two-factor authentication is not currently available. We would rather say so here than have you discover it after signing up.

Requests we make on your behalf

Several features fetch a URL you supply: link previews, image imports and webhook deliveries. Each one resolves the hostname first and refuses any address on a private, loopback, link-local or cloud-metadata range, re-checking after every redirect. This is what stops a URL in your account from being used to reach systems that are not on the public internet.

Infrastructure

The application runs on Vercel. Data is stored in Supabase’s managed Postgres, hosted on AWS in the United States, encrypted at rest by the provider. All traffic to and from the application uses TLS.

Who else processes your data

The complete list, and what each one receives:

  • Supabase — the database and authentication. Everything stored is stored here.
  • Stripe — payments. Your email, billing details and payment history.
  • Vercel — hosting, uploaded files (such as logos), and website performance measurement.
  • Brevo — transactional and lifecycle email. Your name, email address and plan.
  • Sentry — error reporting, which includes the request details of a failing request.
  • Google Analytics and Tag Manager — our own website analytics. These run on our hostnames only, and never on a customer’s custom domain.
  • ipapi.co — a geolocation fallback, used only when our host does not supply the country itself. It receives an IP address and returns a country and city.

If you connect your own analytics — Google Analytics 4, or a tag on your landing pages — that is an additional recipient you have chosen, and the disclosure and consent for it are yours to handle.

Deleting your account

You can delete your account yourself, from your account settings. It removes your profile, your QR codes, your scan history including the archive, your API keys, your website and session analytics, your support messages, and your Stripe customer record. Your login is removed from our authentication provider. It is immediate and it is not recoverable.

One thing is deliberately kept: records of payments and refunds, detached from your identity, because we have to be able to account for money that moved. Note that deleting your account does not stop your printed codes from being scanned — it stops them resolving, so anyone who scans one reaches a page saying the code is no longer active.

Certifications

We hold none. There is no SOC 2 report and no ISO 27001 certificate. If your procurement process requires one, we would rather you knew now.

Reporting a vulnerability

Email support@smart-qrcode.com with “Security” in the subject line. We will acknowledge it. We do not run a paid bounty programme, and we will not threaten you for telling us.

SmartQRCode

Dynamic QR codes you can edit after they are printed, with scan analytics on every one. Used by 120,000+ businesses, from a single table tent to a warehouse of asset tags.

Create a QR codeTalk about Business

QR code types

  • Website QR code
  • Menu QR code
  • WiFi QR code
  • PDF QR code
  • Business card QR code
  • WhatsApp QR code
  • Google review QR code
  • Event QR code
  • Location QR code

More QR codes

  • Text QR code
  • Image QR code
  • Video QR code
  • Social media QR code
  • App download QR code
  • Google Form QR code
  • Business profile QR code
  • Facebook QR code
  • All QR code types

Features

  • Dynamic QR codes
  • QR codes with tracking
  • QR code with logo
  • Custom QR code design
  • QR codes that never expire
  • One-time payment QR code
  • No-subscription QR codes
  • Unlimited QR codes

Business

  • QR codes for business
  • Bulk QR code creation
  • QR code API
  • QR code webhooks
  • Custom scan domains
  • White label QR codes
  • Team accounts and roles

Solutions

  • Restaurants
  • Retail
  • Events
  • Healthcare
  • Real estate
  • Hotels
  • All use cases

Resources

  • Guides
  • Compare QR generators
  • Static vs dynamic
  • QR code cost
  • Buy a QR code
  • Cheap QR codes
  • Pricing
  • Help centre
  • About us
  • Contact us
GDPR compliantSSL securedPrivacy first
Terms of servicePrivacy policySecurity·© 2026 SmartQRCode