All articles
Guideintermediate5 min read

The URL printed on your packaging is permanent. Not "hard to change" -- permanent. Once a carton is printed, that string is fixed until the next print run, and cases printed today can sit in a distribution centre for two years.

So it is worth being deliberate about whose name is in it.

What the printed URL actually contains

A GS1 Digital Link QR code encodes a URL that looks like this:

https://id.sunriseqr.com/01/00012345678905

Three parts: a hostname, the GS1 Application Identifier /01/ meaning GTIN, and the GTIN itself. The hostname is the resolver -- the service that receives the scan and decides where to send it.

That hostname is the part worth thinking about, because it is the only part you get to choose. The /01/ is fixed by the standard, and the GTIN is your product's identity.

The case for using your own

Presentation. The URL is on the pack. A shopper who reads it, a retailer reviewing your artwork, a distributor checking your compliance -- they all see whose service you are using. Some brands do not care. Others care a great deal, particularly at the premium end.

Portability, which matters more. This is the one that catches people out.

A code printed with a provider's hostname can only ever be resolved by that provider. If they raise prices, get acquired, change their terms, or shut down, your options are to accept it or reprint everything. Codes already in the field belong to their infrastructure.

A code printed with your own hostname can be pointed anywhere. Change one DNS record and the same printed code resolves through a different provider, or through a resolver you run yourself. Nothing gets reprinted. Nothing in the warehouse stops working.

That asymmetry is invisible on day one and decisive in year three.

What it does not change

Using your own domain does not make you responsible for uptime, compliance, or certificates. The resolver still runs on the provider's infrastructure. Your domain is a name pointed at it.

It also does not change the codes themselves. A GS1 Digital Link URL is derived from the GTIN, so the same product resolves on every domain you have configured, including the provider's. Adding a domain later does not invalidate anything printed earlier, and codes printed on the provider's hostname keep working forever.

How it works, mechanically

Two DNS records, both permanent:

RecordWhat it does

id.yourbrand.com CNAME

Sends scans of that hostname to the resolver

_acme-challenge.id.yourbrand.com CNAME

Lets the provider renew your HTTPS certificate automatically

The second one is not optional, and it is the one people skip.

HTTPS certificates expire every 90 days. The validation value used to renew them rotates each time. If you prove ownership once with a temporary record, your certificate issues correctly today and then quietly fails to renew about three months later -- at which point every scan of your packaging hits a certificate error. Delegating the renewal with a permanent record means setup happens once and never needs revisiting.

Why id.

Convention. GS1 resolver documentation and most existing brand resolvers use id. as the subdomain, so id.yourbrand.com is immediately recognisable as a Digital Link resolver root to anyone reading your artwork or auditing your compliance.

It also has to be a subdomain rather than your root domain, for a technical reason: a root domain cannot be pointed at another service with a CNAME record without special handling, and your root is almost certainly already serving your website.

Does your domain become a real resolver?

Yes, and this is more than cosmetic.

A GS1-conformant resolver has to serve a description file at /.well-known/gs1resolver describing the resolver at that root, and its linkset responses have to be anchored to the hostname they were requested on. Done properly, your domain satisfies both. It passes the GS1 resolver test suite in its own right, and it is your root that appears in the description file, not the provider's.

That matters if you register your resolver with your GS1 member organisation, or if a retail partner audits it.

When to set it up

Before your first significant print run, if you are going to do it at all.

There is no penalty for starting on a provider's hostname -- codes printed that way work forever, and you can add your own domain later for everything printed afterwards. But every carton printed before the switch keeps the old hostname, so the sooner you decide, the smaller the mixed estate you carry.

If you are printing a pilot batch, do not agonise. If you are printing a year of packaging, do it first.

On SunriseQR

Custom domains are part of the Retail plan. You enter a domain you already own, we set it up under id., and the dashboard shows you the two records to create and checks each one as it appears. Certificates are issued and renewed for you.

If you ever want to leave, repoint the record. Your printed codes keep working, because they were always pointing at your domain rather than ours. We would rather earn the renewal.