# Mirrored QR codes

> Good decoders tolerate a mirrored QR code (the standard's reference decode process allows retrying the transposed image), so a mirror-imaged print often still scans. It remains a production bug, usually introduced by flipped transfer film or reversed artwork. Spot it by the empty corner, which belongs at bottom-right.

Source: https://useqr.app/docs/spec/mirrored-qr-codes · Last reviewed 2026-08-21 · UseQR is free forever, no signup.

---

## What mirroring is

A mirrored QR code is the symbol flipped about an axis: what you would see holding the
print up to a mirror, or looking at a window sticker from the wrong side. Geometrically,
a horizontal or vertical flip of a QR code is equivalent to a **transpose** of the module
grid (combined with one of the four rotations the decoder already handles), so the data is
all still there, just addressed back to front.

Mirroring is not the same as [colour inversion](/docs/spec/qr-code-color-inversion-and-polarity):
one reverses geometry, the other reverses dark and light. A code can suffer either, or
both at once.

## Decoders mostly cope, by design

The QR standard's reference decode process explicitly accommodates mirror imaging: a
decoder that fails to make sense of the module grid may transpose it and try again. In
practice, mature decoders (ZXing and its descendants included) attempt the mirrored
interpretation as part of their retry strategy, which is why a mirrored code often scans
with nothing more than a moment's extra hesitation.

"Mostly" is the load-bearing word. Tolerating mirrors is permitted, not required, and the
same long tail that fails on inverted codes (single-pass embedded scanners, older apps,
minimal firmware decoders) fails on mirrored ones. A mirrored print converts "scans
instantly on everything" into "scans on most things, eventually", silently, with no visual
alarm to a casual glance.

## How mirrored prints happen

Nobody mirrors a QR code on purpose. It arrives through production paths where reversal is
a *feature*:

- **Transfer processes.** Iron-on and vinyl transfers are printed reversed so they read
  correctly after application, and the QR code gets reversed along with the text unless
  it is excluded. The same applies to [t-shirt printing](/docs/how-to/how-to-put-a-qr-code-on-a-t-shirt).
- **Inside-glass window graphics**, printed to be read from the street through the pane.
- **Screen-printing and plate-making film**, which is emulsion-side-down reversed at one
  stage; a QR placed at the wrong stage flips.
- **Design tools.** A reflected group, a flipped symmetry copy, or a "mirror" effect
  applied to a layout that happens to contain the code, the case dissected in
  [QR code mirrored by a design tool](/docs/troubleshooting/qr-code-mirrored-by-a-design-tool).

## How to spot a mirrored code in one look

Use the [finder patterns](/docs/spec/finder-patterns). In a correctly oriented code the
three finder squares occupy top-left, top-right and bottom-left, leaving the **empty
corner at bottom-right**. Each finder square is symmetric, so the squares themselves look
identical mirrored: the tell is the layout:

| You see the empty corner at… | The code is… |
|---|---|
| bottom-right | correct (or rotated: rotate until it is) |
| any corner, in no rotation ending bottom-right | impossible: check again |
| bottom-left after mentally rotating finders upright | **mirrored** |

Quickest field method: rotate the print (or your head) until two finders sit along the
top edge. If the third finder is then at bottom-*right* instead of bottom-left, the code
is mirrored.

## What to do about one

Before a print run: proof the artwork by scanning it: [/scan](/scan) reads image files,
and [/validate](/validate) confirms the decoded string matches the intended payload.
After a run: test the actual objects with the oldest scanner available. If a mirrored
batch scans acceptably on your audience's devices you may get away with it, but treat that
as luck to stop relying on, not a property to design for, reprint at the next
opportunity.

## FAQ

### Does a mirrored QR code still scan?
Often, yes: the standard lets decoders retry the transposed grid, and mature scanners do. But support is optional, so simple or embedded decoders fail on mirrored codes. Treat a mirrored print as a defect that happens to be partially survivable.

### How can I tell if a QR code is mirrored?
Rotate it until two finder squares sit along the top edge. The third square should then be at bottom-left, leaving the empty corner bottom-right. If the third square lands bottom-right instead, the code is mirrored.

### Why did my iron-on QR code come out backwards?
Transfer printing reverses the whole design so it reads correctly after pressing. If the artwork was already correct before reversal (or the code was added after the flip step) the transfer un-reverses everything except your intention. Supply the code pre-flipped or exclude it from the mirror step.

### Is a mirrored QR code the same as an inverted one?
No. Mirroring flips the geometry left-for-right; inversion swaps dark and light modules. Decoders handle the two with different retry strategies, and a code can be both mirrored and inverted, which very few scanners survive.

## Try it

- https://useqr.app/scan
- https://useqr.app/validate
- https://useqr.app/url
