Configuring Scan2Check has always meant writing a JSON document by hand, pasting it into some generic QR generator, scanning it, and hoping. There is now a page that does it for you:
www.scan2check.com/configurator
Why it exists#
Every way of getting the settings JSON wrong fails silently on the device. Nothing is reported, nothing is logged โ the app simply does not do what you expected:
- Miss the
"app": "scan2check.com"wrapper and the app does not recognise the QR code as settings at all. It ignores it. This is by far the most common first-run mistake. - Mistype a symbol id and that symbol is quietly dropped. Mistype all of them and you get all nine.
- Set
apiTimeoutbelow 3000 and it is clamped up to 3000 without a word.
The configurator turns each of those rules into a control. The app wrapper is added automatically
and cannot be removed. Symbols are checkboxes over the nine real ids, so a typo is impossible. The
timeout field tells you about its floor. The three magic values of autoScanTimeout โ disabled,
immediate, delay โ are three radio buttons instead of one number. The sounds have a play button, so
you can hear doubleBeep2 rather than guess at it.
It also imports: paste a settings document you already use and the form fills in. So it edits an existing configuration, not just creates a new one.
Try it in sixty seconds#
There is a button that fills the form with a public mock endpoint that always answers 200. Scan the QR code it produces, then scan any barcode, and you should see the green Success screen. That proves the whole scan โ POST โ response loop works before you point the app at your own backend โ which is the moment when it is genuinely hard to tell whether the QR code, the JSON, the network or your endpoint is at fault.
It runs entirely in your browser#
No settings you type are ever sent anywhere. There is no backend, and there will not be one: the
headers field carries API keys, and the privacy policy says none of your data
reaches a server of ours. For the same reason the Copy share link button strips the headers
object out of the link โ an API key has no business sitting in browser history. The page tells you
when it has done that.
Share links are otherwise encouraged. Every example in Sample Settings now has an Open in configurator link that loads that exact configuration into the form.
Four corrections to the documentation#
Building this meant checking every field against the app source rather than against the docs, and the settings reference turned out to have drifted in four places. All four are now fixed:
| The docs said | What the app actually does |
|---|---|
autoScanTimeout is disabled by -1 | the default is -1000, and any negative value disables it |
apiTimeout is just a timeout | it has an undocumented 3000 ms floor, which is also its default |
formData takes a schema | it takes an object {schema, showOnce}; "" removes the form |
non-string headers values are dropped | numbers and booleans are kept and sent as text |
If you have been fighting a setting that did not behave the way the page described, one of these may be why.
The old generator#
The QR code generator page was a wrapper around a third-party notebook that knew nothing about the settings format. It now points at the configurator instead. The JSON format itself remains public, stable and fully supported โ the reference page documents it, and writing the document by hand still works exactly as before.