Scanning a count into QuickBooks Online
There is no software to install and no cable. You print one page, scan it — a single barcode if your scanner has a camera — and it learns to read a line off a count sheet and put both the part and the quantity into the QuickBooks adjustment screen — one trigger pull a line, about four seconds. Here is the whole recipe, including the numbers.
What actually happens
| Step | What you do |
|---|---|
| Once | Scan the setup sheet below. On a scanner with a camera that is one barcode — which can be read off a phone screen, so nothing needs printing at all. On a laser it is 29 printed barcodes, scanned in order. Either way the scanner keeps the settings when it is unplugged. |
| Each count | Print a variance sheet — one barcode per part, carrying the part number and the counted quantity together. |
| Each line | Pull the trigger. The scanner finds the part, commits it, moves to the quantity box, and types the count. |
The two things people actually get wrong — the part number and the quantity — are never typed by anybody.
The setup sheet
The 1D version is 29 barcodes scanned in order across six pages. Miss one, or take them out of sequence, and you get a scanner that is subtly wrong rather than obviously broken — which is a bad afternoon. PDF417 and DataMatrix carry the whole configuration in one barcode, so there is no order to get wrong.
A laser scanner physically cannot read either 2D format, so if yours is a laser the 1D sheet is not a preference — it is the only one that will work. That is still 29 barcodes and no software, which is the trade worth making: the alternative is installing a configuration utility and connecting the scanner by USB, and an installer that fights your antivirus can cost an afternoon. Scanning 29 barcodes carefully takes ten minutes.
The sheet begins with Set Factory Defaults. It will wipe any other configuration that scanner is carrying — prefixes, suffixes, symbology settings, anything somebody set up for a different job. That is fine for a scanner that sits on a desk doing this. It is not fine for one that is also used in shipping or receiving. Use a scanner you can afford to reset.
| Scanner | Type | 1D sheet | 2D sheets |
|---|---|---|---|
| Zebra LS2208 | Laser | Yes — all 29, in order | No — cannot read them at all |
| Zebra DS2208 | Imager | Yes | Yes — one scan |
| Zebra DS9808 | Imager | Yes | Yes — one scan |
A laser scanner reads bars and spaces in one line. PDF417 and DataMatrix need a camera. Print the 2D sheet for a laser and it simply will not read — which looks exactly like a broken rule, so it is worth checking first.
Check you have the current sheet. Every page of it carries a Last Modified date in the header, and today it should read 28-Sep-26. If yours says something earlier, your browser has kept an old copy — reload the page with Ctrl+Shift+R and download it again. An out-of-date sheet still opens, still scans, and programs the scanner to behave differently, which is the worst combination.
Print at 100%. Not “fit to page” — that rescales the bars, and it is the usual reason a printed barcode will not read.
You do not actually need a printer
123Scan can email the programming barcode. Open the mail on a phone, hold the phone in front of the scanner, pull the trigger. The scanner is configured — nothing printed, nothing installed, nothing plugged in.
Which is more useful than it sounds, because it means whoever built the rule does not have to be in the building. Send an email; they hold up a phone.
That is the whole configuration in one barcode — every symbology setting, both rules, all seventeen actions and their pause values. Note the white margin around it in the picture: that is the quiet zone, and it is as much a part of the barcode as the pattern is.
| Getting it to read | Why |
|---|---|
| Turn the brightness up | An imager is a camera. A dim screen is a dim subject, and phones dim themselves when you are not touching them. |
| Make the image as large as the screen allows | Pinch to zoom. The bigger the cells, the more forgiving the read. |
| Keep the white border around it | That margin is the quiet zone, and a barcode cropped to its own edge will not decode. Do not zoom past it. |
| Hold it square, a few inches away | Close enough to fill the field of view, far enough to focus. |
A laser scanner cannot read a screen at all — not badly, not sometimes. It works by measuring light bounced back off a printed surface, and a screen does not bounce light back, it emits its own. If your scanner is a laser, the printed 1D sheet is the only route.
What the barcodes on your count sheet have to contain
~ is a safety catch, not decorationIt is how the scanner knows this is a count sheet and not a carton label. Without it the rule fires on any barcode — injecting an Enter and four tabs into whatever screen happens to be open. A character no real barcode starts with cannot collide with anything.
\ separates the two fieldsA comma turns up inside descriptions and a hyphen appears inside part numbers like SP-001. A backslash appears in neither, and it encodes in Code 128 without complaint.
Not the barcode on the carton, unless they are the same string. The adjustment screen matches on the product’s SKU and fills in the name and description beside it — which is also your check that it found the right part.
The sheet programs two rules. The first is a catch-all: any barcode without the leading ~ is sent as plain data followed by Enter, which is what an ordinary scanner does. So the same scanner still works in a search box, a spreadsheet, or receiving. Only count-sheet barcodes get the special treatment.
QuickBooks refuses the same part twice — “Duplicate variant found.” A part found in three places has to be one number before it goes anywhere near this screen.
In QuickBooks
Inventory → Adjust inventory. Press Add lines until there are more empty rows than lines you are about to scan. Then click into the first product box and start. Do this again after every save — saving hands you back a fresh section with two rows in it.
Do this because the bottom of that grid is where Clear all lines lives — a button that empties everything you have entered with no confirmation and no undo. With rows open below you, nothing ever reaches it. What that button does, and how we tested it →
And the sheet itself has to start somewhere: which QuickBooks report to export, and the exact columns it needs →
| Also do this | Why |
|---|---|
| Save every page — then open rows again | Saving keeps you in the same adjustment: the lines you just entered move up into a Previous adjustments section, and a fresh New adjustments section appears with two blank rows. So opening enough rows is not something you do once at the start — it is something you do after every save, which is once per page of the sheet. |
| After saving there are two Clear all lines buttons | One under each section, and neither asks before it acts. The lower one empties what you are working on now, and that work is gone. The upper one does not destroy your saved lines — as far as we can tell it clears them from the display: close without saving afterwards and the adjustment is still there, with the quantities still applied. If you press it by accident, close the screen rather than saving. |
| Set the reason to Inventory Count | Rather than Shrinkage, which is the default and is a different thing. Your accountant will read this field later. |
| Glance down the Change column | Not the quantity. If a number lands beside the pre-filled figure instead of replacing it, the change comes out an order of magnitude wrong and nothing else says so. |
The rule itself
You do not need any of this to use the sheet — it is here because a recipe you cannot inspect is a recipe you have to take on trust.
<5> is half a second. The duration is a single scanner-wide setting in the range 0.1 to 9.9, default one second — so a longer gap in one place means more pause actions, not a bigger number. Which is why the values above differ by step.
Most scanners send one by default. This one does not, and that is load-bearing: tabbing past the last row parks the cursor on Clear all lines, and a terminating Enter would press it. With no suffix, an overshoot does nothing at all — and announces itself, because the next scan visibly goes nowhere.
123Scan shows the budget as you build. Worth knowing before you add pauses: there is a ceiling, and this rule is more than half way to it.
Zebra’s guide is blunt about it: rules are stored with the most recent on top and checked from the top down, and the first matching one wins. So the general rule has to be programmed first, ending up underneath. Program them the other way round and the catch-all swallows everything — the sentinel rule is still in there, and simply never runs. The sheet does them in the right order; this is only a warning for anybody rebuilding it by hand.
Zebra's own guidance is to avoid ADF on barcodes over 60 characters — past that the scanner transmits in segments and applies the rule to each segment, so it would fire twice. In practice the printed page runs out first, at about 35 characters.
CAAABS00-007-R02, ADF v1.1, plug-in DS9808-COMMON LR MODELS-019, against QuickBooks Online on September 27 and 28, 2026. A rule that depends on a browser's tab order should say when it was last known to work, and this one does.The one thing to tell your operators
If the adjustment screen has been sitting idle — you have just opened it, or you stopped to check a figure, or the phone rang — the next scan will often land badly. The quantity does not replace the pre-filled figure the way it should, and the line below it starts in the wrong place.
It is not a first-line problem. It happens wherever you happened to pause, which can be line 37 as easily as line 1. Scan straight through and it does not happen at all.
| What to do | Detail |
|---|---|
| Wake it up first | Before you start, and after any break: click into the product box and type a letter, let the dropdown appear, then clear it. Five seconds, and the scan after it behaves. |
| Work in a run | The fault follows idleness, so a page scanned straight through is the reliable case. If you need to stop, stop — just wake it again before the next trigger pull. |
| Check the Change column | Not the quantity. This is the one habit that catches every way a line can go wrong, and it is now the important one rather than a nicety. |
| Fix it by deleting the row | Use the bin icon on that row and scan it again. That is safe — it removes one line and nothing else. It is not the Clear all lines button, which sits under the grid and empties everything. |
We have not got to the bottom of why. The scanner is not at fault — the same barcodes read perfectly into a text editor every time, including the first. It is something QuickBooks does, or stops doing, while the screen is idle.
An operator who has been warned loses fifteen seconds and a line. An operator who meets it cold, on their very first attempt, concludes the whole thing is broken — and that is the worst possible moment to lose them.
If you want to change it
You do not need it to use the sheet. You need it if you want different pauses, a different sentinel, or the same idea pointed at a different program.
123Scan is free from Zebra. It builds the rule, saves it as a file, and prints the barcode sheet — all without touching a connected scanner. One caution: in its toolbar, Print bar code sits next to Load to scanner. The first is safe. The second writes.
Being straight about it
Everything above is free, and reproducible by anybody with a Zebra scanner and an afternoon. It took two days to work out only because nobody had written it down — not because it is difficult.
The part it does not solve is the sheet. For five parts you can make those barcodes by hand in a few minutes. For sixty discrepancies across forty bins, counted by six people, where a part found in three places has to become one number before QuickBooks will accept it — that is not a barcode problem, it is a counting problem, and it happens long before anybody gets near an adjustment screen.
That is the bit we do. Scanners your people already know how to hold, counts that add up by themselves, a comparison against what the accounts expected, and a sheet at the end with one barcode a line and the expected figure printed beside it so you can check the screen as you go.