zplCore.comzplCore.com

Barcode & EPC Scanner

Point the rear camera at a barcode. The image is decoded on this device only.

Result

No scan yet. Start the camera, choose an image or enter an EPC.

History

    Decoded on your device · Privacy · FAQ

    Need the same EPC encoding and the ^RFW command in your own software? RFID Studio and the zplCore SDK do it in .NET – get started with NuGet.

    FAQ

    How do I scan a GS1 barcode with my phone?

    Open this page on the phone, tap Start camera and point the rear camera at the barcode. The scanner reads GS1-128, GS1 DataMatrix, GS1 QR Code, GS1 DataBar, EAN/UPC and other symbologies and lists every Application Identifier with its name, value, check digit and date check. Decoding runs on the phone – the camera image never leaves it. Installed as an app (Install, or on the iPhone Share → Add to Home Screen) it also works offline.

    How do I check that an RFID tag matches the barcode on the label?

    Scan the barcode, then read the tag with a UHF RFID reader in keyboard mode (for example a Bluetooth sled) into the EPC field and press Enter. The check decodes the EPC, builds the EPC that belongs to the barcode's GTIN and serial (or SSCC, GLN, GRAI, GIAI) and compares them field by field. It also shows the ZPL ^RFW command that writes the expected EPC, and checks check digits, the SGTIN-96 serial range (numeric, no leading zero, at most 274877906943), the filter value and the company prefix length.

    Can a phone read UHF RFID (EPC Gen2) tags?

    No. Phones have NFC, which reads HF tags at 13.56 MHz. Retail and logistics tags with an EPC are UHF (860–960 MHz, EPC Gen2) and need a UHF reader – a handheld or a Bluetooth sled that types the EPC like a keyboard. On Android, this page can read NFC tags with Web NFC and pass an EPC stored in them to the check.

    What do the numbers in brackets like (01) and (21) mean?

    They are GS1 Application Identifiers: (01) is the GTIN, (21) the serial number, (10) the batch, (17) the expiry date, (00) the SSCC of a pallet or parcel. In the barcode itself the brackets are not encoded; a FNC1 / group separator character ends fields of variable length. The scanner shows it as <GS> and splits the data into its fields.

    Can I read RFID tags with my iPhone?

    Not UHF RFID tags with an EPC: the iPhone has no UHF radio, and Safari offers no Web NFC either. Pair an external UHF RFID reader via Bluetooth in keyboard (HID) mode – it types the EPC into the EPC field of this scanner, which then decodes and checks it. On Android, Chrome can additionally read NFC (HF) tags with Web NFC. Which hardware do I need?

    Privacy

    • Camera images and barcode decoding stay on your device. The decoder (zxing-cpp as WebAssembly) is part of this page; no image is uploaded.
    • Only the EPC checks use our server: the EPC and the barcode data (GTIN, serial, SSCC …) go to zplcore.com for that one check and are not stored or logged.
    • The scan history stays in this page; Remember keeps it in your browser (localStorage) – untick it to delete it. NFC tags are read only while you allow it.

    Which hardware do I need for EPC / RFID?

    The scanner reads barcodes with any camera. UHF RFID tags (EPC Gen2) need a UHF reader: it reads the tag and types the EPC into the EPC field like a keyboard.

    PlatformWhat works
    iPhone / iPad (iOS, iPadOS)No UHF and no Web NFC. Use an external UHF RFID reader paired via Bluetooth in keyboard (HID) mode – it types the EPC into the EPC field, in Safari or the home-screen app.
    Android phone / tabletThe same Bluetooth HID UHF readers. In addition, Chrome reads NFC tags (HF, 13.56 MHz) with Web NFC – but NFC is not UHF EPC Gen2.
    Android handhelds with built-in UHF RFID or a UHF sledThe EPC is typed into the field like a keyboard, e.g. Zebra handhelds with keystroke output via DataWedge.
    Desktop (Windows, macOS, Linux)A USB UHF reader in keyboard mode, or the same Bluetooth readers.

    Every reader needs: UHF EPC Gen2 (ISO/IEC 18000-63) · keyboard (HID) output of the EPC as hex · Enter as suffix (optional, then each tag is checked at once) · the radio region of your country (ETSI 865–868 MHz in the EU, FCC 902–928 MHz in the US).

    Examples of UHF readers with a keyboard (HID) mode: Zebra RFD40 Premium / Premium Plus and RFD90 (Bluetooth HID; the RFD40 Standard via USB), TSL 1128 and TSL 1166 (Bluetooth HID). Check that your model offers keyboard (HID) mode and which firmware it needs.

    Recommended hardware on zplCloud.com (opens in a new tab)

    What this scanner does

    • Symbologies – GS1-128 / Code 128, GS1 DataMatrix, QR Code, MaxiCode, PDF417, Aztec, EAN-8/13, UPC-A/E, Code 39, Code 93, ITF, Codabar, GS1 DataBar.
    • GS1 breakdown – every Application Identifier with its name, check digits of GTIN, SSCC, GLN and GRAI, dates (with the GS1 century rule) and weights or measures with their unit; raw data with <GS> and other control characters made visible.
    • EPC check – decode SGTIN, SSCC, SGLN, GRAI and GIAI (96-bit, long and "+" schemes), build the expected EPC from the barcode with the ^RFW command, compare barcode and chip.
    • Phone app – rear camera, torch, camera choice, beep and vibration, history with copy; installable, works offline.

    The same EPC logic in your .NET app

    The EPC checks of this page use the zplCore SDK. Encode and decode EPCs after the GS1 Tag Data Standard and get the ZPL RFID commands in your own code.

    dotnet add package ZplCore
    
    var epc = ZplRfid.EncodeEpc(EpcScheme.Sgtin96, "(01)09506000134352(21)6789", filter: 1, companyPrefixLength: 7);
    string zpl = "^XA" + ZplRfid.BuildCommands(epc) + "^XZ";   // ^RS8 + ^RFW,H,,,A^FD…^FS
    var back = ZplRfid.DecodeEpc(epc.Hex);                      // back.Gtin, back.Serial, back.TagUri

    Get started: NuGet and DockerRFID StudioZPL Viewer

    The barcode decoder uses zxing-cpp (Apache License 2.0) via zxing-wasm (MIT) and ZXing for JavaScript (Apache License 2.0) – licence texts in THIRD-PARTY-NOTICES.txt.