Phone call QR code generator
100% Private & Local — Your data never leaves your browser. These QR codes are permanent and will never expire.
Phone call settings
Design
Add a centre logo
The image is read in this page and embedded in the code as a data: URL. It is not uploaded, and it stays inside the file you download.
More design options
The dark half of the code. Keep it well below the background in lightness.
Covers the quiet zone as well as the gaps between modules. A transparent background leaves it out of the file, so nothing is drawn with it.
Contrast 11.5:1 between the modules and the background.
PNG and WebP keep an alpha channel; the SVG simply omits the background rectangle. Whatever the code is placed on becomes the light half of the contrast.
A gradient fills the dark modules only. Its lighter end sets the contrast a scanner actually gets, so both ends have to stay dark.
The second colour, used only while a gradient is selected. It is measured for contrast alongside the first.
Degrees clockwise from a left-to-right sweep. A radial gradient spreads from the centre outwards, so the angle applies to a linear one only.
Rounded shapes cover less of each cell. The centre stays covered, which is where a decoder samples, but a small print of a dense code reads more reliably as squares.
The ring of the three finder patterns.
The eye inside each finder pattern.
The blank margin around the code, measured in modules. 4 is the specified minimum.
Higher recovery survives more damage and costs capacity, so the same content produces a denser symbol.
A logo sits at the centre and holds the level at H. Its width limit follows the symbol: 14% on the smallest code, 30% on a dense one.
Live preview & export
Enter the phone number in international form.
Export
Raster, for screens
Complete the form to enable the downloads.
Export size and encoded text
- Payload
- Nothing encoded yet
- Symbol
- Not built yet
- Recovery
- Q
Waiting for input
The payload is a tel: link containing your number in international form. Phones offer to dial it; the number is encoded into the symbol, so a printed code cannot be repointed at someone else's line.
When someone scans it
A phone shows the number and offers to call it. Most desktop scanners just display the digits and do nothing further.
The tel: payload and why it needs a country code
The code contains one line and nothing else: tel: followed by the number with its separators removed. For +44 20 7946 0958 that is tel:+442079460958, seventeen bytes in total.
The leading plus is what makes it portable. RFC 3966, which defines tel:, treats a number without one as a local number that needs extra context before it can be resolved — context a printed square cannot supply. A national number may dial correctly for someone already on that country's network and fail for a visitor holding a foreign SIM, which is the exact person most likely to be scanning a code in a hotel or an airport.
Extensions are the known rough edge. tel: has a parameter for them, but handsets treat it inconsistently: some dial it, some ignore it, some reject the whole link. If callers need an extension, print it as readable text beside the symbol.
Phones dial; desktops mostly do not
On iOS and Android the camera recognises tel: and offers a call. On a laptop the same code usually shows the digits or passes them to whichever application has claimed tel: links, which on many machines is nothing at all. If the code will be scanned from a screen as often as from paper, print the number in text as well.
Nothing dials on its own. Current phone readers show the number and wait for a confirmation before placing the call, so a tel: code cannot silently ring a premium-rate line.
A short payload buys recovery for nothing
Seventeen bytes fit a version 2 symbol, 25 modules across, at recovery level M — and also at level Q, which still holds 20 bytes at that version. Level Q is the default here for that reason: it restores roughly a quarter of the symbol's codewords and costs nothing in size.
Level H would push the same number to version 3, 29 modules across. That is worth it on a door plate that will be scuffed and cleaned, and unnecessary on a business card that lives in a wallet.
This is also why a tel: code can be printed genuinely small. Twenty-five modules sit comfortably in 2 cm; a hundred-character URL in that same 2 cm will not read.
- tel:+442079460958 — 17 bytes, version 2, 25 modules across at level Q
- The same number at level H — version 3, 29 modules across
- Keep the four-module quiet zone: at this size, cropping it costs more than the recovery level gains
Questions and answers
Does scanning it call the number straight away?
No. Phone readers display the number and ask for a confirmation first. A QR code cannot place a call by itself.
Does it work on a computer?
It decodes, but usefully only if something on that machine handles tel: links — a softphone or a desktop calling client. Otherwise the scanner shows the digits and stops.
Do I have to include the country code?
Practically, yes. Without a leading plus and country code the link is a local number, and whether it dials depends on the network the caller happens to be on. International form works from anywhere.
Can I add an extension or a menu option?
Not reliably. Handsets disagree about the extension parameter and about pause characters, so the version that always works is printing the extension as text next to the code.
How a static QR code works
Every code on this site is static: the payload is written into the black and white modules themselves. Nothing is looked up when the code is read, no server of ours takes part, and no subscription holds the printed code up. The same property is the limit — once it is printed, what it contains cannot be changed.
Three things then decide whether a printed code reads: how many bytes the payload came to, which recovery level absorbs the damage, and how wide a single module ends up on paper. These guides work through each of them with the numbers.