Markio → Privacy Policy

Markio Privacy Policy

Last updated: 30 August 2026

Markio ("the app") is a Shopify app operated by Veltrio Labs LLC, a Wyoming limited liability company, 30 N Gould St, STE R, Sheridan, WY 82801, United States ("we", "us"). This policy explains what the app stores, why, for how long, and what you can ask us to do about it.

It covers the app itself. It does not cover Shopify, whose own privacy policy governs the data you hold inside your Shopify admin.

The short version

Markio prints barcode labels for your products. It reads your catalog and writes barcodes and SKUs back to it. It does not request, receive or store your customers' personal data, and it cannot: the app asks Shopify for product, inventory, location, metaobject and market access only, and never for orders or customers. There is no way to enable it later without a new permission request that you would have to approve.

What we store, and why

Data about your shop

WhatWhyWhere it comes from
Your shop's .myshopify.com domain, shop ID, plan, currency, timezone and primary localeTo identify your shop, price labels in your currency and draw dates in your timezoneShopify, at install
An offline access token for your shopTo read your catalog and write codes back when you are not looking at the appShopify OAuth
Products and variants: title, options, SKU, barcode, price, compare-at price, cost, vendor, product type, tags, image URL, metafield valuesThe label needs them to print, and the catalog audit needs them to find duplicate and broken codesShopify Admin API and product webhooks
Inventory quantities per location, and your location names"Print one label per unit in stock" and per-location print rulesShopify Admin API and inventory webhooks
Label templates, saved label stocks, printer profiles, saved condition sets and saved jobsThey are the app's own content — the things you create in itYou
Print jobs and their lines, print history, rendered label filesTo reprint what you printed, and to show who printed whatThe app
Catalog audit runs, the problems found, bulk fix batches and their before→after valuesTo show a preview before anything is written, and to undo a fix afterwardsThe app
Retired barcodes and barcode aliasesSo a code that was replaced is never silently issued to a second productThe app
Staff roles and per-location restrictions: the Shopify staff user ID and the role you gave itRoles decide who may change templates and who may only printYou
An activity log: which staff user did what, and whenSo a catalog rewrite has an authorThe app
Usage telemetry: named events, each with a number and a small JSON detail object (minutes to first label, labels in a job, issues found, which screen an event came from)To see where the app is confusing and what to fixThe app
Scan checks: the code that was scanned, what it resolved to, whether it matched, how it was scanned, and the Shopify staff user who scanned itSo "this label does not scan" can be answered with what actually happened at the shelfYou, when you use the scan check
Saved CSV column mappings and saved filter setsSo an import or a selection you built once does not have to be rebuiltYou
A short-lived record of each Shopify webhook delivery idSo a redelivered webhook is not processed twiceShopify
An email address you type in for audit alerts, if you turn them onTo send the alertYou

Data we do not store

  • No customer personal data of any kind. No names, addresses, emails, phone numbers, orders, or anything derived from them. The app does not hold the read_customers or read_orders permissions, so Shopify never sends them to us.
  • No payment details. Your subscription is billed by Shopify through Shopify's own billing, and we never see a card.
  • No label content beyond your own catalog. What a label prints comes from the product fields listed above and from text you type into a template.

Diagnostic reports

Settings → Support can assemble a plain-text diagnostic report describing your printer setup and the app's recent errors. It is placed on your clipboard for you to paste into an email — it is never sent automatically. It contains no access tokens and no print links. Read it before you send it; whatever you send us we keep with your support conversation and delete when it is closed.

Printing opens a separate browser tab on the app's own address, because Chrome no longer lets a page embedded in the Shopify admin reach a printer service on your local network. That tab's URL is a credential for that one print job: it expires, it can be revoked, and only a hash of its secret is stored on our side. Treat it as you would a password — anyone with the link can see and print that job's labels until it expires.

Who else processes this data

ProcessorWhat it doesWhere
ShopifyThe platform the data comes from and is written back toPer Shopify's terms
Fly.ioRuns the appUnited States (iad)
NeonHosts the PostgreSQL database the app stores everything above inUnited States (us-east-1)
CloudflareDNS, the marketing and documentation site, email routing, and object storage for rendered label filesGlobal edge; storage in the EU or US depending on bucket configuration
ResendSends audit alert emails, if you enable themUnited States
SentryReceives application error reports. Print-tab tokens and other secrets are stripped from URLs before they are sentUnited States

We do not sell data, and we do not share it with anyone not listed above.

How long we keep it

  • While the app is installed: as long as it is useful to you, with four ceilings that apply on their own: - rendered label files (the PDFs a print job produces) are deleted 30 days after the job was created. The print log keeps the job; the sheet itself is re-rendered from the job's own snapshot if you reprint it. - catalog audit runs and the problems they found are deleted after 180 days. - usage telemetry is deleted after 180 days. - scan checks — the row written each time a code is scanned, including which member of staff scanned it — are deleted after 90 days. The scan journal on the Pro plan reads the last 30 days of them. Print history itself stays until you delete it or uninstall.
  • When you uninstall: we immediately drop your access token and revoke every live print link, so nothing can be read with them afterwards.
  • 48 hours after uninstall, Shopify sends the shop/redact webhook and we delete everything belonging to your shop: templates, jobs, print history, the catalog mirror, audit runs, fix batches, retired codes and aliases, saved CSV mappings and filter sets, scan checks, roles, activity logs, telemetry, the webhook delivery records and the shop record itself — and the rendered label files in object storage. The database part is one transaction, and none of it is reversible.
  • Encrypted database backups taken by us are kept for 30 days and then destroyed; a deleted shop disappears from them as they age out. Our database provider also keeps its own short-term recovery snapshots under its standard terms.

GDPR and CCPA requests

Shopify's three mandatory compliance webhooks are implemented:

  • customers/data_request — we answer that we hold no customer data, because we do not.
  • customers/redact — the same: there is nothing to erase.
  • shop/redact — everything described above is deleted.

You may also write to us directly at privacy@veltriolabs.com to ask what we hold about your shop, to correct it, or to have it deleted before the 48-hour window. We answer within 30 days, and in practice within one business day Monday to Friday.

If you are in the EU or the UK, you have the right to lodge a complaint with your supervisory authority.

Security

  • All traffic is HTTPS.
  • Access tokens are stored server-side and never reach the browser.
  • A print link stores only a hash of its secret, expires, and can be revoked.
  • Images you upload for a label are validated byte by byte before they are stored, and remote image URLs are restricted to public HTTPS addresses.
  • Database backups are encrypted before they leave the machine.

No system is perfect, and we do not claim otherwise. If you find a security problem, write to privacy@veltriolabs.com and say so plainly; we would rather hear it from you than from a merchant.

Changes

If this policy changes in a way that affects what we store or who processes it, we will update the date at the top and say what changed in the app's changelog.

Contact

privacy@veltriolabs.com — privacy questions, access and deletion requests. support@veltriolabs.com — everything else.