Docs · How to

Put your codes on your own domain

By default your codes resolve on the shared short domain (https://tap2u.link). Connecting a subdomain you own puts them on qr.your-brand.com instead, so the address under the symbol is yours. It is one DNS record and a verification check. Read the next box before you do anything else.

Read this before you create codes you care about

Which host a code lives on is decided when the code is created, and it cannot be changed afterwards. There is no move button, and there is no migration. A code made on the shared domain stays on the shared domain for its whole life.

This catches people because of the order things happen in. The getting-started checklist on your home screen puts "Create your first dynamic code" at step one and "Connect your own domain · optional" at step five. Anyone who works down that list, or who reads the word optional and skips it, has already made the codes that matter on the shared host.

It is also invisible while it is happening: the domain picker in the create dialog only appears once your workspace actually has a connected domain. Until then the choice is made for you without a control on screen.

So: if you intend to use your own domain, connect it first. Codes made before it are not wasted · they keep working forever on the shared host. They just will not carry your name, and reprinting is the only way to change that.

Connect the domain

You need a subdomain you control, like qr.your-brand.com, and the ability to add a DNS record for it. Your website is untouched throughout.

  1. Open Domains and press Add domain. A panel opens titled Add a custom domain.
  2. Type the hostname in the Domain field. The hint tells you the shape: "A subdomain you control, like qr.your-brand.com." You can press Check domain first · that is a read-only look at your DNS which creates nothing and costs nothing.
  3. Press Add domain. You will see "Domain added. Create the DNS record, then press Check DNS."
  4. At your DNS provider, create the record shown under Create this DNS record. It is laid out as CNAME · the name to use · the target to point at, with a copy button on it. Copy rather than retype: the name is the part in front of your registrable domain, which is not always the first label.
  5. Come back and press Check DNS. DNS changes can take a few minutes to propagate, so a first check that finds nothing is normal.
  6. Wait for the row to read Live · secured with HTTPS. The certificate is issued and renewed for you, with nothing to configure.

What the status row is telling you

  • Awaiting your DNS record · the hostname is claimed and we are waiting on you. Nothing is wrong.
  • No DNS record found yet · the check ran and found nothing at that name. Either it has not propagated, or the record name is not the one the panel asked for.
  • CNAME points to the wrong target · the record exists but points somewhere else. The message names what it found and what it expected, so compare the two rather than retyping from memory.
  • DNS verified · issuing your SSL certificate · you are done. This one resolves itself; the certificate takes a moment.
  • Live · secured with HTTPS · codes created on this domain now resolve on it.
  • Paused: top up to reconnect · the hostname is being held for you, not released. Leave your DNS record exactly as it is, top up, and press Check DNS to bring it straight back.

Then create codes on it

Once a domain is live, the create dialog grows a domain selector listing the shared host and each of your domains. Pick yours before you save, because that is the decision that cannot be revisited.

Slugs are unique per domain, so /menu can exist separately on every brand you run. Existing codes on the shared host carry on resolving as they always did.

What it costs

Prices

  • Your first domain · included with any credit pack. Growth and up include one outright. Until you hold a pack the page shows a card headed "Custom domains need a credit pack" with a See credit packs link, rather than an empty list.
  • Each extra domain · 40,000 credits, once. A slot you buy once and keep, not a yearly rental.
  • How many you may hold at once is set by your pack, and the count is worked out across your whole billing tree · so an agency's clients draw on the agency's allowance.
  • No white-label fee, ever. The comparable feature is rented back at $420–2000 per domain per year elsewhere, and theirs recurs.

A workspace with no credit pack sees a card explaining the requirement instead of an empty list. See credits and billing for how packs work.

Things worth knowing first

  • Use a subdomain, not a root domain · if you enter your-brand.com the panel warns you, because most DNS providers cannot put a CNAME on a root and a CNAME is the only proof we accept. In practice a root domain is a dead end · use qr.your-brand.com.
  • Removing a domain deletes the codes on it · this is the one genuinely destructive control on the screen. The confirmation spells out the consequence: "Every link and QR published on this hostname stops resolving." Those link records are deleted outright, not parked, so anything printed on that domain does not come back. That is why View links sits beside Delete · look at what you are about to take with it.
  • Verification comes before provisioning · a hostname that does not point at us is never set up on our edge, so you cannot accidentally claim a name you do not control. A pending row that never verifies is tidied away by a daily sweep.
  • Owners and admins only · other members see the list with a note reading "Only an owner or admin can connect or remove a domain."
  • Exactly what DNS says · hostnames are ASCII and are stored as written, because the same string is a routing key on our edge. Type it, do not paste it out of a design file.