Skip to main content

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

  1. Log in to the web interface with the admin credentials from admin_credentials.txt.
  2. Add a scanner profile (web interface or checkscanner profile add) with the device's host and type.
  3. 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.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for checkscanner 0.1.5
File Size Uploaded Provenance Actions
checkscanner-0.1.5.tar.gz 5.5 MB Without provenance Details for checkscanner-0.1.5.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for checkscanner 0.1.5
File Interpreter ABI Platform Actions
checkscanner-0.1.5-py3-none-any.whl Python 3 none any Details for checkscanner-0.1.5-py3-none-any.whl

Total release size: 11.1 MB

Release files / checkscanner-0.1.5.tar.gz

Download URL checkscanner-0.1.5.tar.gz
Size 5.5 MB
Tags Source
SHA-256 checksum
How to use checksums
8df8e4106e8452030eddcc99cc373c3bb6ac56dd5a516c49ff0d00bad241f6d8
BLAKE2b-256 checksum
How to use checksums
eb50577b885e3b88ee0f9629706b96bf91329b7fb147e53dff60d3f94258d5dc
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.5-py3-none-any.whl

Download URL checkscanner-0.1.5-py3-none-any.whl
Size 5.6 MB
Tags Python 3
SHA-256 checksum
How to use checksums
7b9af54d39870429b31e63dd98bbb4dbe94a480fe8df0735b7e8c763882588e9
BLAKE2b-256 checksum
How to use checksums
2d26da2b471ccf0f01fd57a4c90222122281d6ba2e2b02ddcd66c59c48aa8116
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.5

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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page