checkscanner
Check scanner server for Magtek and RDM check readers. It connects to the devices, extracts MICR data and check images, and serves them through a web interface and a JWT-authenticated REST API.
Requirements
- Python 3.6+
- pip 21.3.1+ (required on Python 3.6 to resolve pre-built wheels)
- GNU screen (optional, for
checkscanner screen)
Installation
Update pip, then install the package:
pip install --upgrade pip
pip install checkscanner
To upgrade an existing install:
pip install --upgrade checkscanner
Setup
Pick a directory to run the server from. Config files and the database are created there, so always run checkscanner from the same directory.
mkdir checkscanner && cd checkscanner
checkscanner setup # add -i to edit the config interactively first
Setup creates anything that is missing:
| File | Description |
|---|---|
config/config.toml |
Server host, port, debug mode |
config/auth.toml |
JWT signing key, FTP credentials |
server.db |
SQLite database |
admin_credentials.txt |
Generated admin username and password — delete after noting |
Setup also runs automatically before the server and admin console start.
Usage
Start the server, then open the web interface at http://localhost:8000/:
checkscanner
Server options can be passed directly, e.g. checkscanner --port 9000. Run checkscanner server --help for the full list.
Open the interactive admin console:
checkscanner-cli
The admin console is an arrow-key menu for viewing server status, managing users and scanner profiles, editing config, regenerating auth keys, getting a bearer token, and starting the server (optionally restarting it when it stops).
Commands
Every admin console action is also available as a checkscanner subcommand. Run checkscanner --help or checkscanner <command> --help for details.
checkscanner server [options] # Start the server (same as no arguments)
checkscanner setup [-i] # Create missing config/, server.db and admin user (-i: edit config first)
checkscanner status # Show config, database and connection status
checkscanner admin # Open the admin console (same as checkscanner-cli)
checkscanner user list|add|passwd|delete
checkscanner profile list|add|delete
checkscanner config show|edit|rotate-keys
checkscanner screen ls|start|attach|logs|stop|restart
checkscanner token <username>[:<password>] # or -u <username> [-p <password>]
Running in screen
To keep the server running after you log out, start it in a detached GNU screen session:
checkscanner screen # Start a session named "checkscanner"
checkscanner screen front --port 9000 # Start a session named "front" with server options
checkscanner screen ls # List running sessions, their state and directory
checkscanner screen logs front [-n 100] # Show recent output without attaching
checkscanner screen attach front # Attach (detach again with Ctrl+A D)
checkscanner screen restart front # Restart with the same options and directory
checkscanner screen stop front # Stop a session (--all stops every session)
The session name defaults to checkscanner for every subcommand. Sessions show as checkscanner-<name> in screen -ls.
Scanning checks
- Log in to the web interface with the admin credentials from
admin_credentials.txt. - Add a scanner profile (web interface or
checkscanner profile add) with the device's host and type. - Connect to the scanner and scan checks. Only one user can be connected to a given scanner at a time.
Supported devices:
| Type | Protocol |
|---|---|
| Magtek | Telnet + FTP |
| RDM | HTTPS (XML) |
API
Swagger UI is available at http://localhost:8000/docs while the server is running. Authenticate with POST /token (or checkscanner token <username>) and send the returned JWT as Authorization: Bearer <token>.
Metadata
Release files for checkscanner 0.1.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| checkscanner-0.1.7.tar.gz | 5.5 MB | Without provenance | Details for checkscanner-0.1.7.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| checkscanner-0.1.7-py3-none-any.whl | Python 3 | none | any | Details for checkscanner-0.1.7-py3-none-any.whl |
Total release size: 11.1 MB
Release files / checkscanner-0.1.7.tar.gz
| Download URL | checkscanner-0.1.7.tar.gz |
|---|---|
| Size | 5.5 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
47fd693516bd4a65effdf4b5a62ae5d2ac78df647e7e4c1d666691e79f7740d2
|
|
BLAKE2b-256 checksum How to use checksums |
34908b70d8fb832fe7d4b4a1897bbd00ebb02a5f8131658d17e0bd93128f72f2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.16
|
Release files / checkscanner-0.1.7-py3-none-any.whl
| Download URL | checkscanner-0.1.7-py3-none-any.whl |
|---|---|
| Size | 5.6 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4388f2de056bea2e35141fd699c095a9332dacaac3acba83a8d2e0572f964a86
|
|
BLAKE2b-256 checksum How to use checksums |
c945b1b0af0b084d4a93801e8fe08000139ce53d85ac1fa9178c46aaa46aa2b5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.16
|
Security for checkscanner 0.1.7
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.