> For the complete documentation index, see [llms.txt](https://docs.notionapps.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.notionapps.com/screens-and-components/barcode-qr-code-scanner.md).

# Barcode / QR code scanner

Canonical page for scan on lists and on fields. Product help in the builder points here (not `/customize-app/barcode-qr-code-scanner`).

## What this is / when to use it

Scan lets a user point the camera at a code and jump to a row or fill a field.

| Scan type | Enum      | Use when                 |
| --------- | --------- | ------------------------ |
| Barcode   | `BARCODE` | 1D product / asset codes |
| QR        | `QR`      | 2D codes you generate    |
| Multi     | `MULTI`   | Either, in one control   |

Use scan on a **list** to find and open (or select) the matching row. Use scan on a **text field** to fill the value.

When **not** to use it: the property is not the literal code. Scan matches the scanned string to a field value; it does not OCR a photo of a page.

## Before you start

1. A text (or unique id-as-text) property stores the code exactly as the barcode encodes it.
2. Users will scan from a phone with a camera. Desktop support is limited.
3. The list or field is on a published screen.

## Build it

1. On a list: open screen settings → Scan → `BARCODE` / `QR` / `MULTI` and pick the match property.
2. On a text input: enable scan on that component and pick the same type.
3. Publish. In the live app, tap the scan icon, grant camera permission, scan a known code.

## Every control

| Control        | Options                    | What it does             |
| -------------- | -------------------------- | ------------------------ |
| Scan type      | `BARCODE` / `QR` / `MULTI` | What the camera accepts. |
| Match property | Text-like field            | List jump target.        |
| Field scan     | On / off                   | Fills that input.        |

## What users see

A scan icon. First use asks for camera permission. A match highlights or opens the row, or fills the field. No match shows an empty / not-found state.

## Limits and plans

* Camera permission is a browser/OS prompt. Denied permission means no scan.
* Unique id chips are display; bind scan to the underlying text mapping.
* `MULTI` is slightly slower to lock. Prefer `QR` when you control the labels.

## Example

Warehouse Update List: scan `MULTI` on SKU. Clerk scans, the row highlights, they toggle Received.

## Fix problems

| Symptom       | Likely cause                  | What to do                     |
| ------------- | ----------------------------- | ------------------------------ |
| No camera     | Desktop, or permission denied | Use a phone. Re-enable camera. |
| No match      | Extra spaces, wrong property  | Store the exact code. Sync.    |
| Help link 404 | Old customize-app URL         | This page is current.          |

## Related

Lists: [List (View Items)](https://docs.notionapps.com/screens-and-components/types-of-screens/list-view-items), [Update Items](https://docs.notionapps.com/screens-and-components/types-of-screens/update-items-form).
