top of page

Barcode Scanning in Power Apps

Barcode scanning in Power Apps might just be one of the most underused features that delivers huge value with very little setup. Whether you’re tracking assets, managing inventory, or just trying to avoid user typos, Power Apps barcode scanning makes data entry faster and more reliable. And the best part? It does not require any fancy hardware.

In this post, you’re going to learn how to build barcode scanning experiences for both mobile and desktop users. They are totally different since with a PC you have to use a USB Scanner. You’ll see how to connect them to SharePoint or Dataverse for lookups, and even how to integrate third-party APIs for things like product information.


Since scanning barcodes is much more of a visual exercise, here is the full length YouTube video on Barcode Scanning in Power Apps.


Why Use Barcode Scanning in Power Apps?

Typing item IDs or serial numbers by hand? That’s just asking for mistakes. Scanning barcodes keeps your data clean and makes users faster. Common scenarios include:

  • Asset management: Tag office equipment or tools with barcodes to track location, quantity, and maintenance.

  • Job tracking: Have drivers or field techs scan a location barcode when they arrive or depart.

  • Inventory or product lookup: Scan UPC codes to show descriptions, pricing, or vendor info.

  • Document management: Use barcodes to tie physical paperwork to digital records in Dataverse or SharePoint.

A Power Apps mobile barcode scanner being used to scan an asset tag.
The Power Apps Barcode Scanning experience on mobile.

Example 1: Mobile Barcode Scanning

Let’s start with the built-in Power Apps barcode scanner that works on iOS and Android.

  1. Create a new Canvas App (phone layout).

  2. Go to Insert > Media > Barcode reader and drop the control on your screen.

  3. Change the button text to “Scan.”


When you tap the scan button on a phone, Power Apps uses the device’s native camera to detect barcodes. This control isn’t a Microsoft-built scanner; it’s using the same system the iPhone or Android uses. So, on a PC, it won’t work, but more on that later.


You can check out the available barcode types by selecting the control and looking at its BarcodeType property. Leave it on Auto unless you know you need a specific format like Code128, QR code, or UPC.


Understanding Scan Modes

Power Apps offers a few ways to control the scanning behavior:

  • Automatically Scan: As soon as the camera detects a barcode, it instantly captures it (great for fast workflows).

  • Select to Scan: The user must confirm the scan with a checkmark before it’s processed.

  • Scan Multiple: Lets users capture several barcodes in one session.

  • Scan Inline: This one exists, but in my experience… it doesn’t work. You’ll see it listed, but I’ve never gotten it to actually do anything useful.


Working with the Scanned Data

When you scan something, the results come back as a table of barcodes. Even if there’s only one, you still have to handle it as a table.

For a single scan, use:

First(BarcodeReader1.Barcodes).Value

That returns the actual barcode number (the “value” field).If you also want the barcode type, use:

First(BarcodeReader1.Barcodes).Type

For testing, Power Apps provides a fake barcode value like 1231412 when you run it in the studio. That’s handy for building your logic without switching to your phone every time.


If you’re doing multiple scans, you can load the entire table into a collection and display it in a Gallery. For example:

Items = BarcodeReader1.Barcodes

That’ll show all your scanned codes in a list.


Example 2: Launch a URL from a QR Code

QR codes are just as easy. You can use the same control, but this time, trigger an action after scanning.


In the OnScan property of the barcode reader, use:

Launch(Last(Self.Barcodes).Value)

If the scanned code contains a URL, Power Apps will open it automatically in a new browser window. You could just as easily use OnScan to look up data in Dataverse, patch a record, or set a variable.

A QR code being scanned using Power Apps.
The Power Apps Mobile Barcode Scanner viewing a QR code.

Example 3: Barcode Scanning on a Desktop PC

What about users who aren’t on mobile? Good news! You can still scan barcodes on a PC using a USB barcode scanner.


The secret: your USB scanner acts like a keyboard. Every time you scan, it “types” the barcode value into whatever input box has focus.


Here’s how to handle that in Power Apps:

  1. Add a Text input control.

  2. In its OnChange property, capture the scanned value:

Set(varScan, Self.Text);
Reset(Self)
  1. Display the result in a label:

Text = varScan

Now when you scan with your USB scanner, the barcode will appear in the text input, trigger the OnChange formula, and clear itself ready for the next scan.


You could easily adapt this to add each scan to a collection for batch processing or logging. We see this a lot in manufacturing or assembly type scenarios.


Tips and Tricks

  • Barcode and QR stickers are super cheap. You can get custom ones with your logo and color scheme from Amazon for about $12 for a pack of 100.

  • Power Apps can recognize most standard barcode types (Code128, QR, UPC, etc.).

  • You can even generate your own barcodes using online tools or ask Copilot or ChatGPT to create an image for you.

  • If you’re using SharePoint or Dataverse for lookups, match the barcode value to a column in your table or list for an instant record lookup. Learn how: Power Apps Asset Management Video.


Wrapping It Up

Barcode scanning is one of those Power Apps features that delivers big value with minimal effort. Whether you’re tracking assets, scanning products, or just trying to make data entry painless, it’s worth adding to your toolkit. And the best part? You can build it today — no plugins, no custom code, just Power Apps.


If you’d like help building your own barcode or QR-based apps, the PowerApps911 team builds these kinds of solutions for customers around the world every week. We’d love to help you bring your idea to life. Just hit that Contact button at the top of the page.

bottom of page