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.7

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.7
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)

Table of built distributions (wheels) for checkscanner 0.1.7
File Interpreter ABI Platform Actions
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.

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