# QR Code Vehicle Tags with Masked Calling: How to Build Them (2026)

> How QR vehicle tags with masked calling work: a passer-by scans the tag, the phone dials a masked number with the owner's code, and the owner is reached without either side seeing a real number. Setup, printing and costs.

Source: https://edesy.in/blog/qr-code-vehicle-tag-masked-calling-2026

**A QR vehicle tag with masked calling lets anyone reach a vehicle's owner without seeing their number. The QR
holds a `tel:` link with a shared masked number and the owner's code; scanning it dials the number and sends the
code, and the call connects to the owner. Both sides see only the masked number. On Edesy this runs on
extension-code masking.**

> **Build masked vehicle tags:** [Open the Edesy masking portal](https://masking.edesy.in/?utm_source=edesy.in&utm_medium=blog&utm_campaign=qr-code-vehicle-tag-masked-calling-2026). Switch a number to extension routing and generate codes and QRs.

## Why masked tags

People leave their phone number on the dashboard so others can reach them about a blocked gate or headlights left
on. A printed number is visible to everyone who walks past, forever. A masked tag keeps the useful part (anyone
can call the owner) and removes the risky part (anyone can copy the number).

## How it works

```
Passer-by scans QR  ->  phone dials +91 80XX XXX XXX,,482193#  ->  owner's phone rings
```

1. The tag carries a QR code with the masked number and the owner's code.
2. A passer-by scans it; their phone dials the masked number.
3. After a short pause (the `,,` in the link), the phone sends the code and `#`.
4. Edesy looks up the code and rings the owner. The owner sees the masked number, not the caller's.
5. They talk. The caller never sees the owner's real number either.

If the caller's phone doesn't send the code, they hear the prompt and type the code printed on the tag.

## Who builds these

| Builder | How they use it |
|---|---|
| Tag and sticker sellers | Sell pre-printed tags, activated on purchase |
| Housing societies | Tags for residents' vehicles in shared parking |
| Fleet and rental operators | One code per vehicle, pointed at the current driver or a desk |
| Parking operators | Reach owners of blocking vehicles |
| Corporate campuses | Employee vehicle tags in office parking |

## Setting it up

1. **Get a number.** Buy an Indian number in the Edesy voice portal after KYC and enroll it in masking.
2. **Switch it to extension routing** in the portal or with `PATCH /v1/masking/numbers/{id}/routing`
   (`"routing_mode": "extension"`).
3. **Create a code per tag.** For pre-printed stock, create inactive extensions with your tag ID as `reference`:

```http
POST https://voice-api.edesy.in/v1/masking/extensions
{ "status": "inactive", "reference": "tag_000124" }
```

4. **Print the tags** using each extension's `dial_links[].tel_uri` as the QR content, and print the number and
   code as text.
5. **Activate on sale.** When a customer registers their tag, set their number and status:

```http
PATCH https://voice-api.edesy.in/v1/masking/extensions/{id}
{ "target_number": "9876543210", "label": "MH12AB1234", "status": "active" }
```

6. **Let owners update their number** through your app; the change applies to the next call. The printed tag
   stays the same.

## Designing the tag

| Element | Why |
|---|---|
| QR code with the `tel:` link | One scan to call |
| Masked number and code as text | Fallback when the phone doesn't send the code |
| A short instruction ("Scan to call the owner") | People don't guess what a QR does |
| Your brand or society name | Builds trust that the call is safe |
| No owner name or flat number | Defeats the purpose of masking |

Use random codes (Edesy generates 6 random digits by default). Sequential codes let people guess other tags.

**Plan for the long term.** A QR with a `tel:` link prints the masked number permanently, so keep that number
active for as long as the tags are in use. If you might change numbers later, point the QR at a page on your own
site that shows the current `tel:` link from the API, instead of the `tel:` link itself.

## Handling misuse

- **Prank or repeated calls:** set the extension inactive, or change its status while the owner decides.
- **Lost or sold vehicles:** deactivate the old code and issue a new tag.
- **Invalid codes:** callers get three attempts, then the call ends. Invalid attempts don't create events.

## What owners and you can see

Each answered call fires `call.connected` and `call.ended` to your event webhook with the `extension_code` and
your `reference`. Calls the owner doesn't answer fire `call.missed`. Use these to show owners a call history in
your app, or to alert them by your own channels. Call logs in the portal can be filtered by code.

## Costs

| Item | Price (excl. 18% GST) |
|---|---|
| Masked call | Rs 1.50/min, 60-second pulse, 1-minute minimum |
| What is billed | Only the time after the owner answers |
| Prompt and ringing | Not billed |
| Unanswered calls | No charge |
| Number rental | Rs 499/month (mobile or 92-series) |

Worked example: a 3-minute answered call costs 3 x Rs 1.50 = Rs 4.50 before GST. One masked number can serve
every tag you sell, though you can add numbers for capacity; any extension-mode number in your account accepts
any of your codes.

## Limits to know

- One owner number per code. There's no fallback number if the owner doesn't answer.
- The owner can't call the scanner back through the tag; they see only the masked number.
- A tag is not an emergency service. Say so on the tag or in your app: in an emergency, call 112.

For the general mechanics, read [extension code number masking](https://edesy.in/blog/extension-code-number-masking-2026). See
the [extension codes feature page](https://edesy.in/number-masking/features/extension-codes), the [number masking hub](https://edesy.in/number-masking),
[number masking pricing](https://edesy.in/number-masking/pricing) and the [number masking docs](https://edesy.in/docs/number-masking).

## Frequently Asked Questions

### How does a QR vehicle tag with masked calling work?

The QR code holds a tel: link with a masked number and the owner's code, like tel:+9180XXXXXXXX,,482193#. When someone scans it, their phone dials the masked number, pauses, sends the code, and the call connects to the owner. Both see only the masked number.

### Does the person scanning need an app?

No. A phone camera that opens tel: links is enough, and the call goes over the normal phone network. If the phone doesn't send the code automatically, the caller hears a prompt and types the code printed on the tag.

### What should be printed on the tag?

The QR code, plus the masked number and the code as text, for example 'Call +91 80XX XXX XXX, code 482193'. The text is the fallback for phones that don't send the code and for people who'd rather dial.

### Can I sell tags before they are linked to an owner?

Yes. Create extensions as inactive with your tag ID as the reference and no target number. When a tag is sold, set the owner's number and mark it active. Until then, callers hear that the code isn't active.

### What does each call cost?

Rs 1.50 per minute on a 60-second pulse with a 1-minute minimum, billed only on the time after the owner answers. A 3-minute answered call is Rs 4.50 before GST. Number rental is extra. Prices exclude 18% GST.

### Is a vehicle tag a substitute for emergency services?

No. A tag helps people reach the owner about parking, lights left on or a minor incident. In an emergency, people should call 112 or the relevant emergency service first.
