> For the complete documentation index, see [llms.txt](https://sandbox-docs.verifone.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sandbox-docs.verifone.com/home/psdk-peripherals-snapshot/product-overview/scanner.md).

# Scanner

The barcode scanner reads 1D and 2D barcodes using the device camera.

## Capabilities

* **Formats:** EAN-8/13, UPC-A/E, Code 39/93/128, GS1-128, Codabar, ITF, QR, Data Matrix, PDF417, Aztec, MaxiCode, GS1 DataBar (plus Limited and Expanded), Code 11, MSI, Standard 2 of 5, and Codablock-F. Choose which of these to decode; only the formats you choose are decoded.
* **Decoding engine:** choose between two decoding engines (Honeywell or ZXing); which of the formats above decode depends on that choice. See the symbology support table in the [developer guide](/home/psdk-peripherals-snapshot/developer-guide/scanner.md).
* **Scan styles:**
  * *Full-screen* — a built-in scanning screen.
  * *Embedded preview* — a camera preview you place inside your own screen.
  * *No-preview* — scanning without any camera preview on screen.
* **Single or continuous** — stop after the first read, or keep reading until you stop.
* **Audible feedback** — an optional beep on each successful read.
* **Center window** — optionally read only barcodes near the middle of the image, so a terminal aimed at several barcodes can pick one.
* **Aimer button** — choose whether pressing the device's physical scan button lights the red aimer (where the platform supports it; see Requirements).
* **Red light filter** — suppress the device's red illumination in the image the scanner reads, for barcodes the red light washes out. Off by default; see Requirements for its limits.
* **Warm camera** — keep the camera ready between scans so a scan spends less time getting it going. Off by default; see Requirements for the trade-offs.

## Requirements

* A Verifone terminal with a camera, running VA/OS 6.x, 7.x, or 8.x.
* Camera permission granted by the app.
* Changing the aimer-button behavior is a device-wide setting that depends on platform support — available from VA/OS 6.14.1 or newer, 7.14.1 or newer, or 8.14.1 or newer; where it is unsupported the call is rejected, so treat it as optional and handle rejection gracefully.
* The red light filter applies to every scan style, on both decoding engines. It cannot recover a barcode the light has washed out completely, and because the filtered image is dimmer, leaving it off is the better choice in poor light without red glare.
* Keeping the camera ready holds it for as long as the scanner is open, so it is not normally available to other applications, and it suspends the host application's own camera use for that same time; it draws more power while it is on, since the camera stays open and actively running between scans rather than only while a scan is in progress — weigh this against the speed benefit on battery-powered terminals. The scan is noticeably faster with it on: an already-open camera removes most of the time a scan would otherwise spend getting ready to deliver frames. The trade for it is that preparing the scanner takes longer, because that is when the camera is opened instead. It recovers on its own: if the camera is taken away between scans, the next scan simply opens it again, and a camera taken while a scan is already running recovers the same way — though on a preview path, recovery can take long enough that it may look like the scan will not recover at all, even though it eventually does, and less predictably than when there is none. It does not change the aimer illumination, which is controlled by the physical scan button.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://sandbox-docs.verifone.com/home/psdk-peripherals-snapshot/product-overview/scanner.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
