---
title: Scanning Barcodes
description: Scanning a product onto a receipt line in Essential Budget.
  Photograph the front of the package, check the name and size the app read off
  it, then scan the barcode to save it. The barcode is read on your own device,
  a package photo uses AI credits, and product photos are never shared.
subtitle: Tell a receipt line exactly which product it was, with a picture and a name.
sidebar:
  order: 15
  label: Scanning barcodes
  section: Receipts
canonical_html_url: https://eb.app/learn/scanning-barcodes/
---

# Scanning Barcodes

Registers print short, abbreviated product names, so a receipt line often does not say which product you actually bought. Scanning the package settles it. You photograph the front of the package, and the app reads the product's name, size, and pack count off the photo for you to check. Then you scan the barcode, which saves it all onto the line you choose. From then on the line shows the product's real name and a small picture of it. Every later receipt that prints the same shorthand at that store shows the same name. Scanning is optional: every receipt is read, filed, and reported without it.

<!-- SCREENSHOT: The Receipt Line Items card in its reading state after a scan: a product row showing a 48px photo thumbnail, the product's name with the "Scanned" mark, and its size ("12 fl oz") on the second line, above two unscanned rows with the outlined placeholder image. -->

The barcode is read on your device: nothing is uploaded to read it. The photo of the package front is sent to be read, and the reading is what tells the app the name.

## Scanning a product

Open a receipt and tap **Scan a product** in the toolbar, between Save and Delete receipt. You do not have to be editing the receipt: reading a package changes nothing until it is attached to a line you chose. The camera opens and walks through three steps for each package.

**Photograph the front.** The camera says "Photograph the front of the package." Hold the package so its front fills the frame and tap the camera button. The photo appears over the preview with "Use this photo, or take it again." and two buttons, **Retake** and **Use photo**. Tap **Use photo** when the front is readable.

**Check what was read.** The camera says "Reading the package." for a moment, then a panel titled **Check the package details** appears with three fields filled in from the photo: **Name**, **Size** (a quantity and a unit you pick from a list, such as oz, fl oz, or lb), and **Pack** (how many items the package holds, for a multi-pack). The unit list holds weights and volumes only: how many items are inside belongs in Pack, not in Size. The line above the fields says "This is what was read off the front. Fix anything that is wrong, then scan the barcode." Correct anything the app misread, or add what it missed, then tap **Next**. If nothing on the front could be read, the panel says so ("Nothing could be read off the front. Type what you can see, or leave it blank, then scan the barcode."), and you can type the details yourself or leave them blank. **Retake** goes back to the first step.

The fields are checked before you move on, and a problem is explained under them. A name that includes a size ("Coke 12 oz") is refused with "The name carries a size: put the quantity, unit and pack count in the size fields, so one product keeps one name". A size needs both its number and its unit ("A quantity and its unit are both or neither: a bare number is not a size, and a unit alone measures nothing"). A pack count is a whole number of 2 or more; for a single item, leave it blank.

<!-- SCREENSHOT: The camera's "Check the package details" panel over the live preview: the package photo at the top, the Name, Size (with the unit picker showing "fl oz") and Pack fields filled from the read, and the Retake and Next buttons. -->

**Scan the barcode.** The camera says "Now scan the barcode." (or "Getting the scanner ready." for a moment the first time). Turn the package to its barcode. As soon as the code is read, the package is saved: the camera says "Package captured. Scan the next one, or finish." and the counter at the top moves from "No packages yet" to "1 package captured". Tap **Next package** to scan another, or **Done** to finish. Before anything has been captured, that button reads **Cancel**. While the camera is looking for the barcode, **Retake** goes back to the first step.

> **Why the photo first, and the barcode last?** The barcode is what saves the package, so it comes after you have seen and checked what the app read. Nothing is recorded until you have looked at the name, and a stray tap can never save a picture of the wrong side of the box.

The camera stays open through all three steps and from one package to the next; a second package never asks for the camera again. Closing the camera with the X in the corner keeps every package you finished and drops only the one in progress.

### Barcode only

For a product you have already scanned before, tap **Barcode only** on the first step instead of taking a photo. The camera goes straight to "Now scan the barcode." and records the barcode alone: no photo, no reading, and no AI credits. The line still gets the product's name and picture, because they are already on record for that barcode. **Back** returns to the first step.

### If the package could not be read

When the photo cannot be read, the camera says "The package could not be read." over the photo and offers **Try again** or **Continue without details**. Continue keeps the photo, opens the details panel empty ("Type what you can read on the front, or leave it blank, then scan the barcode."), and records whatever you type as typed by you. When you have run out of AI credits, or photographed 60 packages in a day, the message says that instead (see [What scanning costs](#what-scanning-costs)), and Barcode only still works.

## Where the scan lands

When you tap **Done**, each package is attached to a line of the receipt.

- A line whose printed product code matches the barcode is attached without a question. The app confirms with "Barcode attached to this line."
- Otherwise the app asks: a dialog titled **Which item did you scan?** lists the receipt's product rows, headed by the name you confirmed in the camera and the barcode ("Barcode 00012345000065 (2 left to place)" when more packages are waiting). Tap the row you were holding the package for. **Skip this barcode** moves on to the next package without attaching this one; for the last package the button reads **It is not on this receipt**. Closing the dialog leaves every remaining package unattached.

Most stores print no product code next to a line, so the question is the usual case.

<!-- SCREENSHOT: The "Which item did you scan?" dialog: the name confirmed in the camera at the top over the "Barcode ... (2 left to place)" line, the receipt's product rows with their prices below, and the "Skip this barcode" button at the bottom. -->

When the same product was rung up more than once at the same price, those lines collapse into one row carrying a quantity, such as "2 × $4.36". One scan on that row attaches to every line the row stands for, and the confirmation counts them: "Barcode attached to 2 lines." Where the printed names or prices differ, the printed lines stay listed beneath a heading, and each one is attached from its own line, never from the heading above it.

Once a package is attached, the receipt updates in place: the row shows the name you confirmed with a **Scanned** mark beside it, the package photo as a small picture on the left, and the size and pack count on the line below. If the receipt could not be re-read after the save, the app says "The scan was saved, but this receipt could not be refreshed. Reopen it to see the change."

Attaching a scan needs edit access to the budget, the same as editing a receipt does.

### When the line already has your name

If you had already renamed the line yourself, and the name you confirmed in the camera is different, the app asks before it changes anything. A dialog titled **Which name?** reads, for example, "You named this line "Cheerios". Keep it, or use the package name "Honey Nut Cheerios"?" When the two names already match, or you never renamed the line, nothing is asked.

**Keep** saves the package but leaves your name on the line. **Use package name** replaces your name with the package's, and it reaches as far as the name did. A name you give a product follows you into every budget you open (see [Names you fix are remembered](https://eb.app/learn/receipts.md#names-you-fix-are-remembered)). Choosing it therefore takes your name off this line and off your other receipts where that store printed the same shorthand, in this budget and in your other budgets alike, and the package name shows there instead. In a shared budget, the people you share it with stop seeing your name too. The one name it leaves alone is one that belongs to a different shared budget, given there by you or by someone you share it with: that budget keeps it until it is changed there. A rename you make after a scan simply wins.

## Scanning from a line

The **Receipt Line Items** card has its own way in for one line at a time. Tap **Scan an item** at the top of the card, under its title and above the product rows, and a note appears reading "Tap the line you are holding the package for." Tap that line, and the same camera opens for it, so there is no question afterwards: what you scan attaches to that line. Tap **Cancel scan** to put the scan away without using it. If you scan more than one package in that session, only the first attaches, and the card reads "Only the first barcode was attached. Scan the others from their own lines." When the line already has a scanned product, the camera opens the shorter Scan again flow for it: photograph, confirm, Save.

<!-- SCREENSHOT: The Receipt Line Items card with Scan an item armed: the button now reads "Cancel scan" and the note "Tap the line you are holding the package for." sits under it at the top of the card, with the product rows below waiting for a tap. -->

## The item details dialog

In the reading view, tap any product row, or its picture, to open **Item details**. It shows the package photo at full width when there is one, then under **Product** the facts the app holds for it: **Name**, **Size**, **Pack**, and **Barcode**, each with a word saying where it came from:

- **Scanned**: "Read from the product's own barcode or package, not from the paper."
- **Typed**: "Someone entered this by hand."
- **Remembered**: "Carried over from a product this budget had already named."
- **Guessed**: "Read off the receipt photo. Nobody has confirmed it."

Under **On this receipt** are the receipt's own facts about the line: **Bought** (the quantity and unit price, such as "2 × $4.36"), **Total**, and **Printed on the receipt as**, the line exactly as the register printed it. A line nobody has scanned still opens the dialog, showing the printed or remembered name and no photo. Nothing in the dialog can be edited; the pencil in the toolbar is where a receipt is changed.

<!-- SCREENSHOT: The Item details dialog for a scanned product: the package photo at the top, the Product rows Name, Size, Pack and Barcode each ending in "Scanned", the On this receipt rows Bought, Total and Printed on the receipt as, and the Scan again button at the bottom. -->

### Scan again

The dialog's one action is **Scan again**. It opens the camera for that product with one step fewer: photograph the front, check the name, size, and pack count that were read, then tap **Save**. There is no barcode step, because the product's barcode is already on record, and no Barcode only button. The new photo replaces the one on record, along with the values you confirm. Use it to fix a picture of the wrong side of the box or a name that was misread. Scan again is not offered on a discount line.

## When a scan records nothing

Some scans deliberately attach nothing:

- The barcode disagrees with the code printed on the line you chose. The app says "That barcode is not the code printed on this line, so nothing was attached."
- The digits do not add up. Every retail barcode ends in a check digit, and Essential Budget tests it before accepting the code, so a misread is dropped rather than recorded.
- The package carries a short EAN-8 barcode. A few very small items outside the United States use one, and Essential Budget does not record it, so the counter stays where it is. The short codes on small United States packages are UPC-E, and those do record: the scanner reads one as the full-length code it stands for, so scanning the small barcode and scanning the full one give the same result.
- The photo has gone stale. What the app read off a package photo is kept for one hour and used once. If the package is attached more than an hour after the photo was taken, the save is refused with "Failed to record the scanned product: This capture has expired or was already used. Take the photo again."

> **Why does a disagreeing barcode attach nothing?** When the scanned code and the printed code name two different products, one of them is wrong, and there is no way to tell which from the receipt. A barcode on the wrong line would be a wrong answer that looks certain, so the app records neither and says so.

If the scanner cannot start, the camera says "The scanner could not load. Check your connection and try again." and offers **Try again**. The camera stays open for the retry, so you are not asked for camera permission a second time. If the browser has not been allowed to use the camera at all, the camera screen says "We could not open the camera. Check that this site is allowed to use the camera, then try again." with a **Close** button back to the receipt.

## What scanning costs

Reading a barcode costs nothing. It is not a receipt scan: it uses none of your [free receipt scans](https://eb.app/learn/receipts.md#free-scans-and-premium), none of the read attempts that go with them, and no AI credits, on either plan. The code is read by your own device, so there is nothing to bill.

Photographing the front of a package does use AI credits, because the name, size, and pack count are read off the photo by the app's AI. Each package photo draws from the same monthly [AI credits](https://eb.app/learn/subscription.md#premium-subscriber-credits) that receipt scanning draws from; it never uses one of your free receipt scans, and it needs no Premium subscription. When the month's credits are gone, the camera tells you after you take the photo ("You've used all 500 of your monthly AI credits. Resets in 12 days."), and you can continue without details or use Barcode only. You can photograph up to 60 packages a day; past that, the camera says "Too many package photos today. Please try again tomorrow." Scanning barcodes carries no limit.

Scanning uses your browser's camera, so it works on a phone and on a computer that has one.

## Photos stay private

A package photo is stored once for you and shown for that product wherever it appears in your budgets. Scan again replaces it. It goes no further than that.

- Product photos are never part of [Community Prices](https://eb.app/learn/community-prices.md). Only prices leave a budget for the community comparison, and there is no place in that data for an image.
- The camera details a phone writes inside a photo, including any location, are not kept. Essential Budget re-encodes the picture when it saves it.
- People who share the budget are not sent copies. When one of them scans the same product with Barcode only, their line shows the picture that is already there; when you replace it with Scan again, they see the new one.

> **Why is a photo never contributed?** Community Prices exists to compare what a product costs near you, and prices are all that comparison needs. An image would give away far more than it added, so nothing in the shared data can hold one.

Deleting your account deletes your product photos. What the products are is kept: that a barcode belongs to a product with a certain name, and that a particular store prints a certain shorthand for it. Those are facts about a can and about a register rather than about you, so they stay, with every link to you removed and no one able to read them. If you shared a budget, the people you shared it with keep those product facts and lose your photos. See [Your account](https://eb.app/learn/account.md) for what else account deletion removes.

## Related pages

- [Receipts](https://eb.app/learn/receipts.md) for scanning, filing, and linking receipts themselves.
- [Community Prices](https://eb.app/learn/community-prices.md) for what does leave a budget, and how to turn it on or off.
- [Sharing](https://eb.app/learn/sharing.md) for how budget members and permissions work.

---

## About this document

This is a markdown mirror of [https://eb.app/learn/scanning-barcodes/](https://eb.app/learn/scanning-barcodes/).
The HTML version is the canonical form. This file exists so AI/LLM
tools can ingest the content without HTML parsing.
