Sending one code to several destinations
Rules that pick a destination from who scanned, in what order they are read, and what each condition can and cannot know.
How the rules are read
From the top. A scan takes the first rule whose conditions all hold, and stops looking — so a rule for Germany above a rule for Europe means a German scanner never reaches the second one. Moving a rule up or down is the only thing that changes which one wins.
Every condition inside a single rule has to hold together. "Germany and mobile" is one rule with two conditions, not two rules; two rules would send German desktops to the first one.
The fallback
Not optional, and it cannot be deleted. It is where a scan goes when no rule matches — and a set of rules that can match nothing is a printed code that resolves to nothing, which is the worst thing that can happen to a code already out in the world.
Switching routing on fills it in from wherever the code already points, so turning it on can never break a working code.
Link previews always get the fallback
Anything that is not a person — a Slack or WhatsApp preview, a search engine, an email security scanner — skips the rules entirely.
This matters more than it sounds. A scanner that checks links inside email fetches them from a data centre, on a desktop, often with no language set, and usually in a different country from the person who was sent the message. Evaluated against the rules it would match the wrong ones, and the preview card would show a destination no human was ever going to get. Most tools in this category do not do this; we think they should.
What each condition really knows
**Country, region and city** come from the network address. Good at country level, rougher at city level, and a VPN reports wherever the VPN is.
**Language** is the language the device is set to, which is not the same as the language somebody reads — people living abroad often keep their phone in their first language. A rule for `pt` matches a phone set to Brazilian Portuguese. Use country for anything that matters.
**Time of day and day of week** use the scanner's own clock, worked out from their network, and can be an hour out near a border. Times are inclusive at both ends, and a window like 22:00 to 02:00 works as you would expect across midnight.
**Number of scans** is checked against a count that lags by up to a minute, so a threshold changes over about that long rather than on one exact scan.
Distance from a point
The one condition that works differently. Network location is nowhere near accurate enough for a radius, so a rule using one asks the scanner's device for its real position — which means a short page and a permission prompt before they go anywhere.
Anyone who declines, or whose device cannot answer within three seconds, gets the fallback. Use it where the precision is worth the extra step, and country or city where it is not.
If your plan changes
Rules go on working. Only editing them needs the plan — a code printed on something nobody can reissue should not change where it points because of a billing event.