---
title: "Import QR codes from CSV: fix partial failures and avoid duplicates — qr3.app Blog"
description: "Import QR codes from CSV or XLSX, check partial results and avoid duplicate codes when correcting failed rows."
canonical: "https://qr3.app/en/blog/qr-codes-csv-import-teilfehler-dubletten-vermeiden/"
lang: "en"
robots: "index,follow,max-image-preview:large,max-snippet:-1"
---

# Import QR codes from CSV: fix partial failures and avoid duplicates — qr3.app Blog

> Import QR codes from CSV or XLSX, check partial results and avoid duplicate codes when correcting failed rows.

Canonical: <https://qr3.app/en/blog/qr-codes-csv-import-teilfehler-dubletten-vermeiden/>

[← Blog](/en/blog/) [Tutorials](/en/blog/category/tutorials/)

October 23, 2026 3 min read [Tutorials](/en/blog/category/tutorials/) [qr-code](/en/blog/tag/qr-code/)[csv-import](/en/blog/tag/csv-import/)[data-quality](/en/blog/tag/data-quality/)

# Import QR codes from CSV: fix partial failures and avoid duplicates

Import QR codes from CSV or XLSX, check partial results and avoid duplicate codes when correcting failed rows.

by **QR3 Redaktion**

![Import QR codes from CSV: fix partial failures and avoid duplicates](https://qr3-blog-agent.meistern.workers.dev/cdn/blog/qr-codes-csv-import-teilfehler-dubletten-vermeiden/hero.png)

Moving 180 product URLs into QR codes one at a time is slow and makes mismatches easy. qr3.app accepts CSV and XLSX files for this job: one table row creates one code. The useful part is not merely uploading a spreadsheet. If you separate input preparation, result checking and follow-up, you can still tell which code belongs to which product afterward.

## Start with a small, unambiguous table

In the dashboard, open **Codes → Import** and download the CSV or XLSX template. For an ordinary URL code, enter a valid HTTP or HTTPS address in `url` for each row. You can leave `type` blank; it defaults to `url`. Add a clear `title`, ideally an internal item identifier together with the product name. `tags` and `notes` are optional. Tags in the import file may be separated with commas or semicolons.

A short preparation table could look like this:

| type | title | url | tags | notes |
| --- | --- | --- | --- | --- |
| url | Model A17 – product page | [https://example.com/products/a17](https://example.com/products/a17) | model-a17;series-a | Approved 2026-10 |
| url | Model A18 – product page | [https://example.com/products/a18](https://example.com/products/a18) | model-a18;series-a | Approved 2026-10 |

These addresses represent a fictional catalogue. Before importing, check carefully that each target URL matches its item identifier. A syntactically valid URL can still point to the wrong variant. Keep your own mapping of item identifier, target URL and, later, the qr3 short code.

The import also supports `wifi` and `vcard`, but these types need additional columns: `wifi_ssid` for Wi-Fi, or `vcard_first_name` or `vcard_last_name` for a contact card. The usual URL codes from the template are created as dynamic codes. You can change their destination later while keeping the printed code. Wi-Fi and vCard codes are not dynamic URL redirects. If you plan to mix types, check that every row supplies the fields its type requires.

## Check limits before uploading

An import file may contain at most **1,000 data rows** and be at most **5 MB**. Your plan's dynamic-code limit also applies. When the remaining capacity is reached, qr3 reports the affected rows as errors instead of creating more dynamic codes. Divide larger lists into manageable batches and check the available capacity first.

Try a small group of real, non-sensitive entries in your workspace before processing the whole list. This is a real import, not a preview: successfully processed codes exist afterward. Check their titles, types and destinations, then include only the still-missing rows in the main batch. That keeps the mapping traceable.

## Read partial results correctly

After **Start import**, the dashboard shows the numbers of imported and skipped rows. If there are errors, it previews the row number and reason. The downloadable error report contains the affected original columns and the error text. You can use it to correct a malformed URL or a missing required Wi-Fi or vCard field.

The next upload needs care: **do not resend the original full file after a partial success.** The current importer generates a new ID and short code for every valid row. It does not match rows against existing codes by title or destination URL. Therefore, correct and re-import only the rows that were skipped. You may remove the report's `row` and `error` columns or leave them as extra columns. What matters is that the file contains only the previously failed records.

Then compare your source list with the codes actually created. Each planned item identifier should have exactly the intended code. Manually checking a few records near the beginning, middle and end can reveal spreadsheet shifts that an “imported” total alone cannot.

## Distribute only after checking the mapping

Download approved codes for their intended use. qr3 offers PNG, SVG, PDF and EPS per code; the vector formats work well for scalable print artwork. Before a large print run, test the actual code on the intended material and check the destination without signing in. The import result confirms that a record was created. It cannot confirm that every valid URL leads to the right product variant.

Start with a small batch, keep the import result and work through errors using only the error report. This turns a quick spreadsheet upload into a verifiable mapping between product, QR code and destination.

## Sources

- [qr3: Import codes (CSV/XLSX)](https://docs.qr3.app/en/guides/import-codes/)

- [qr3: Download formats](https://docs.qr3.app/en/guides/download-formats/)

- [qr3: QR Codes API](https://docs.qr3.app/en/api/codes/)

Product behaviour and documentation checked on 23 October 2026. The model numbers and destination URLs are illustrative examples.

## Related posts

- [![](https://qr3-blog-agent.meistern.workers.dev/cdn/blog/qr-code-anleitungen-datenblaetter-ohne-neudruck/hero.png) Tutorials One QR code for manuals and datasheets: update documents without reprinting Maintain manuals and datasheets behind one QR code: set up a landing page, replace files and check the complete scan journey before printing.](/en/blog/qr-code-anleitungen-datenblaetter-ohne-neudruck/)
- [![](https://qr3-blog-agent.meistern.workers.dev/cdn/blog/eu-garan-qr-code-online-display-2026/hero.png) QR Code Tech EU GARAN from 27 September 2026: Implement the QR Code and Online Shop Correctly EU rules for the legal-guarantee notice and GARAN label apply from 27 September 2026. Keep QR codes, online display and product mapping correct.](/en/blog/eu-garan-qr-code-online-display-2026/)
- [![](https://qr3-blog-agent.meistern.workers.dev/cdn/blog/clp-digital-label-access-tracking-outage-2026/hero.png) Regulation CLP Digital Labels Since July 2026: Access, Tracking and Outage Rules for QR Destinations CLP digital-labelling rules have applied since 1 July 2026. Learn how QR destinations must handle tracking, languages, availability, retention and outages.](/en/blog/clp-digital-label-access-tracking-outage-2026/)
- [![](https://qr3-blog-agent.meistern.workers.dev/cdn/blog/ai-act-article-50-qr-code-marking/hero.png) QR Code Tech AI Act from 2 August: Why a QR Code Does Not Replace AI Marking Separate machine-readable marking, perceptible disclosure and QR-based provenance under Article 50 with a practical four-layer model.](/en/blog/ai-act-article-50-qr-code-marking/)

[← All articles](/en/blog/) [Start for free](https://app.qr3.app/sign-up)
