// Payload Decoder

QR Payload Decoder

Upload a QR code to safely inspect its contents without executing any hidden scripts or automatically opening any links.

100%Offline Decoding
0Links Auto-Opened
6+Payload Formats
0Account Required

Drag & Drop QR Image Here

or click to browse your files

Decoded Payload

Unknown Type

Raw Extracted Data String:

Why is this safe?

Standard smartphone cameras often automatically open URLs or execute actions found in QR codes. This decoder extracts the raw text completely offline on your device and prints it to the screen without executing it, allowing you to inspect vCards, WiFi passwords, and raw links safely.

// 3-Step Inspection

How to Safely Inspect a Suspicious QR Code

No Auto-Scan
01

Take a Picture Safely

Drag or Browse
02

Upload the Image Here

Your Call
03

Analyze the Raw Data

QuickQRC
Technical Brief · No. 0002

What the QR code payload decoder extracts

The QR code payload decoder reads the raw text stored inside a QR code from an image you upload, shows it exactly as encoded, and breaks recognized formats into labeled fields, without opening a link, joining a network, or running anything.

The decode happens in your browser with the jsQR library. If the first pass fails, it retries assuming an inverted (light-on-dark) code. The image and the data it holds never leave your device.

The nine formats it parses

Every payload is shown in full in the Raw Extracted Data String box. On top of that, these prefixes trigger a Parsed Data Fields table with a Copy button on each row:

Detected typeTriggered byFields it breaks out
Web URLhttp://, https://, www.URL destination, plus a "Verify Safety in Security Scanner" button
Wi-Fi NetworkWIFI:SSID, security type, password (masked, with a Show toggle), hidden-network flag
vCard ContactBEGIN:VCARDFull name, organization, job title, phone, email, website, notes
EPC SEPA Bank TransferBCD followed by a newlineTransfer type, BIC/SWIFT, beneficiary name, IBAN, amount, reference, remittance info
SMS Messagesmsto:, sms:Phone number, pre-filled message
Email Promptmailto:To address
Geo Locationgeo:Coordinates
Cryptocurrency Paymentbitcoin:, ethereum:Wallet address
Raw Text / App Dataanything elseShown as-is in the raw box

Everything else shows as raw text

Formats without a parser (MECARD contacts, calendar events (BEGIN:VEVENT), authenticator codes (otpauth://), tel:, UPI and other payment URIs, app deep links) are still decoded and shown in full; they just don't get the field table. You see the exact string either way, which is the point.

Example: decoding a café Wi-Fi code

You photograph the Wi-Fi code taped to the counter and drop the photo into the tool. The Decoded Payload panel opens, the badge reads Wi-Fi Network, and the raw box shows:

WIFI:S:Cafe Guest;T:WPA;P:latte-2026;H:false;;

The tool strips the WIFI: prefix, splits on the semicolons, and reads each pair into the table:

FieldValue
SSID (Network Name)Cafe Guest
Security TypeWPA
Password••••••••  (press Show to reveal latte-2026)
Hidden NetworkNo

Press Copy on the Password row to paste it into a laptop or desktop that can't scan a code itself; a typical reason to decode a Wi-Fi QR rather than point a phone at it.

Using it to check a suspicious code

Say a sticker over a parking sign decodes to:

https://your-bank.example.verify-login.top/auth

The badge reads Web URL, and the parsed row prints the address as text and as a link you can choose to open; the tool never opens it for you. Read the actual host: the real domain here is verify-login.top, not your-bank.example, which sits in front of it only to look reassuring. The Verify Safety in Security Scanner button carries the URL straight to the QR Code Security Scanner for a reputation check.

Reading the payload tells you what a code contains, not whether the destination is safe. For a link, check the domain yourself, run it through the Security Scanner, and if anything looks off, don't open it. For a Wi-Fi or payment code, confirm the details match what you expected before you use them.

Who uses this

  • Anyone who spots a code that looks tampered with: a sticker over a menu, a sign, or a parking meter; inspect it before your phone acts on it.
  • People on a desktop or older laptop: no built-in camera scanner (see scanning on a laptop or desktop), but you can drop in a screenshot or photo and pull out the Wi-Fi password or link.
  • People building QR codes: decode your own generated code to confirm the payload is formatted the way a scanner expects; the right WIFI: field order, a valid BEGIN:VCARD block, the correct EPC line layout.
  • IT and helpdesk: check what a code a user received actually points to before advising them.
  • Researchers and reviewers: read the exact bytes without a scanner app deciding what to do with them.

Decoding vs. scanning

 This decoderPhone camera
InputAn image file you uploadA live view of the code
What happens on decodeThe raw text is printed; nothing runsThe OS may open a link, dial, or prompt to join a network
Good forInspecting an unknown or suspicious codeCodes you already trust
Sees the destination host before you commitYesOnly in a preview you might tap past

Tips, limits, and common mistakes

  • Give it a clear image. The code should fill a good part of the frame and be in focus. A tiny code in the corner of a wide photo often won't decode.
  • Scheme matching is lowercase. The parser looks for http://, smsto:, mailto:, geo:, and bitcoin: in lowercase. An unusual code with an uppercase scheme still decodes, it just shows as Raw Text rather than a typed table.
  • Upload a raster image, not an SVG. The decoder rasterizes the file to read it; PNG, JPG, and WebP are safe. An SVG without a fixed width and height may not draw.
  • It reads the code; it doesn't vet the link. A decoded URL is not a verdict on safety. Use the Security Scanner button and your own judgment on the domain.
  • Escaped Wi-Fi values aren't unescaped. The WIFI: standard escapes semicolons and colons inside a name or password as \; and \:. The parser splits on the raw characters, so a network name containing one may show a truncated field; check the raw string in that case.
  • Masking is visual only. A revealed Wi-Fi password sits in the page like any other text. Close the tab when you're done on a shared computer.
  • One code at a time. There's no batch mode; upload each image separately.

Photographing a code you don't trust

Open your normal camera app and take a photo from a slight angle, without holding steady long enough for the phone to read and act on the code. Then upload that photo here. Everything after that happens on your device, with nothing opened until you decide to.

// FAQ

Frequently Asked Questions

The payload is the raw text encoded in the code. People assume it is always a website link, but it can hold a Wi-Fi network and password, a contact card, a calendar event, a payment request, an SMS, or plain text. The decoder shows you which.

Scanning with a phone camera lets the operating system act on the code, opening a link, dialing a number, or prompting to join a network. Decoding shows the raw contents first, so you can inspect a code you do not fully trust before anything happens.

Web URLs, Wi-Fi (WIFI:), vCard contacts, EPC SEPA bank transfers, SMS, mailto, geo locations, and Bitcoin or Ethereum payment URIs. Anything else, such as MECARD, calendar events, otpauth codes, or app links, still decodes and displays in full, just without a field table.

Yes. Upload the Wi-Fi code's image and the password appears masked with a Show button and a Copy button, useful for a laptop or desktop that cannot scan a code itself, or to share the password without an app.

No. The image is decoded in your browser with the jsQR library. Nothing about the image or the data it contains is sent anywhere, logged, or stored.

No. The decoder shows you the exact address so you can read the real domain, but it does not judge reputation. Use the Verify Safety in Security Scanner button, and treat an unfamiliar domain with caution.

Yes, as long as the code is reasonably sharp and large in the image. Save or screenshot the code, then drag the file into the drop zone. Very small or blurry captures may not decode.