QR Code With Serial Number: How to Put a Unique Code on Every Unit
How to make a QR code with a serial number for each unit: what the code should hold, how to build the URL from a spreadsheet, and how to automate it.


A QR code with a serial number holds one of two things: the serial itself as plain text, or a link to the unit's page with the serial inside it. Choose text when a handheld scanner will read the code and type the serial into another system. Choose a link when anyone with a phone should be able to scan it, for example for warranty registration or to check that a unit is genuine. For units that stay in use for years, make the code static, so what is printed never depends on anything else.
What a serial number QR code is for
A serial number identifies one unit. Putting it in a QR code saves someone from reading and retyping a long string, and it removes typos from the process. The same code can serve several people: the person on the production line, the technician in the field, the customer who opens the box.
Those people read the code with different tools, which is why the first decision is what the code holds.
Option 1: the serial as text
A text code holds the serial and nothing else. A handheld scanner reads it and types the serial into whatever system has the cursor, such as an inventory screen or a service form.
The downside is that a phone camera shows the text and little else, so a customer who scans it learns the serial and nothing more. Use this option when the scanning is done by your own team with equipment you control.
Option 2: a link with the serial inside
A URL code holds an address that includes the serial, such as https://example.com/units/SN-10432. A phone opens it directly, and your page can show the manual, start a warranty registration or confirm that the unit is genuine. Your system can read the serial from the end of the address.
This is the more flexible option for products that reach customers, because the code works with the camera that every phone already has.
Build the URL with a spreadsheet formula
If your serials are in a spreadsheet, build the address in a column next to them instead of typing each one. With serials in column A, this formula in B2 joins a base address and the serial:
="https://example.com/units/"&A2
Fill it down the column. Check one or two results by pasting them into a browser. If a serial can contain spaces or symbols, decide how your page expects them before you build thousands of links, because every printed code will use the format you pick now.
Keep the serial visible next to the code
Print or engrave the serial in readable characters beside the code, even when the code holds it. A code can be damaged beyond reading, and a person with only the unit in front of them can still type the number. It also lets someone compare the code with the unit when a record looks wrong. Put the serial and the code in the same place on every unit, so anyone looking for it knows where to look after the first unit.
Static, because the unit lives for years
A static code holds the content itself, so a scan opens the address directly and never passes through CodeQR. That suits a unit that will be in use long after the printing run: nothing between the scan and your page can fail, expire or be turned off.
The trade-off is that a static code can't change its destination and CodeQR records no scans for it. If the page has to move, you redirect the old address on your own domain. Our guide on whether QR codes expire explains static and dynamic codes in more depth, and the pricing page shows how each plan treats them: static codes are unlimited on Pro, Business, Scale and Enterprise, and count toward the monthly limit on Free and Starter.
Error correction for engraved or worn codes
Codes on metal, plastic or a label that gets handled will pick up scratches. QR codes have four error correction levels: L, M, Q and H. Higher levels tolerate more damage, at the cost of a denser pattern. The default in CodeQR is M.
For engraved or heavily handled units, raise the level to Q or H and test the result. A denser pattern needs more room, so check that your marking method can reproduce the finer modules.
Size and quiet space
A denser code has to be printed or engraved larger to stay readable, and it needs an empty margin around it. Scan a sample from the real surface, at the distance people will use, before committing to a run. Our post on QR code size for print gives the sizing rules.
Keep serials unique with an external ID
With the API, you can store your own record ID on each code as the external ID. It is unique per project, so creating a second code with an ID that already exists returns a 409 conflict instead of a duplicate. That is a safeguard for a serial that gets submitted twice. See the help article on fixing API errors for what the status means, and the API reference for the request.
From the spreadsheet to PNG files
Every code gets a 1024-pixel PNG hosted on a CDN, and its link comes back as the image field in the API and as "Image URL" in Make. You can use that link to place the code on a label, a nameplate file or a packaging template. If you are new to the platform, you can create a free CodeQR account and make a first code by hand. To see how other tools can connect, read the guide to connecting CodeQR to Zapier, Make, n8n and IFTTT.
Use the Make template for serial numbers
For a list of serials in Google Sheets, the Make template does the work: create a serial number QR code for each Google Sheets row.
Each row has a Serial Number and a URL. The template creates a static code from the URL, names it with the serial, and writes the QR Code ID and the PNG link back to the row. The setup asks for your Google connection and spreadsheet, your CodeQR connection (sign in to CodeQR and allow Make to access the project) and the fields to map.
The Google Sheets trigger checks for new rows on the scenario's schedule, every 15 minutes in the template, so the PNG link appears after the next check, not the moment you add a row. When you turn the scenario on, Make asks where to start, and "All" processes the serials already in the sheet. Make counts each module run as an operation, so a long list needs a Make plan with enough operations.
QR code with serial number questions
Either the serial as plain text, for a handheld scanner that types it into another system, or a link to the unit's page with the serial in the address, for anyone with a phone. The link is the usual choice when customers will scan it.