✓ 100% Free ⭐ Web + Android 🔒 Multi-tenant

The POS System Built for
Lottery Ticket Retailers

Track every scratch-off book from the moment it arrives to the final ticket sold. Manage shifts, reconcile cash drawers, and keep your inventory perfectly accurate — from any browser or Android device.

Log In to Your Store
No subscription — free forever, supported by optional ads
Works in Chrome, Firefox, Edge — and natively on Android
Self-register your store in under 2 minutes
Each store's data is fully isolated and secured
ScratchOff POS — Scan Screen
Shift Open
Since 8:00 AM
Lucky 7s · $5
✓ Scanned
Game #
1234
Book #
0042815
Remaining
28 tickets
Value
$140.00
📊 Session Scans Today 47
50
US States Supported
$0
Subscription Cost
4
Role Tiers
2
Platforms (Web + Android)
Books You Can Track
The Operational Loop

Four steps. Every shift. Every day.

ScratchOff POS mirrors the real workflow of a lottery ticket retailer — from delivery to closeout. Nothing invented, nothing missing.

1
📦

Receive

Scan book barcodes on delivery. Books enter your inventory in received status instantly.

2
🟢

Activate

When a book goes to the counter, activate it. It moves to active and is ready for selling.

3
🎫

Sell

Cashier scans the last available ticket after each sale. Remaining count and value update automatically.

4
💰

Closeout

Enter lottery machine payout and count the cash drawer by denomination. Auto-reconciliation at shift end.

Everything You Need

Built for real lottery retail operations

Every feature exists because a store owner needed it. Nothing bloated. Nothing missing.

📷

Multi-Mode Barcode Scanning

Web camera, USB barcode scanner, Bluetooth scanner, or keyboard wedge all work out of the box. Android uses the native camera with a live viewfinder and torch control.

📚

Smart Book Inventory

Real-time Received and Active inventory tabs. Remaining tickets and estimated remaining value are calculated automatically from scan data for every active book.

⏱️

Shift Management

Managers open and close shifts. Scanning is locked when no shift is open, ensuring every sale is attributed correctly and nothing falls through the cracks.

🧾

Denomination Closeout

Coin-by-coin cash drawer entry — 100s through pennies — with a running total. Compare system scan sales vs. lottery machine payout vs. actual cash in the drawer.

📊

Daily Sales Reports

View tickets sold, gross sales, and books activated for any date. Per-game breakdown table. Select any date to review historical performance.

🗂️

Lottery Game Catalog

Game data — name, ticket price, and book info — sourced from all 50 state lottery websites via automated scrapers. The catalog stays current automatically.

🔐

Role-Based Access Control

Three layered store roles (Cashier, Manager, Admin) with precise permission boundaries. JWT-secured authentication with refresh tokens and email verification.

🏢

Multi-Tenant Architecture

Each store's data is completely isolated by company ID. No store can see another store's inventory, shifts, users, or any operational data — ever.

🖨️

Printable Closeout PDFs

Generate and print PDF closeout summaries directly from the browser or Android. Full denomination breakdown, reconciliation totals, and per-book sales included.

Barcode Intelligence

We speak lottery barcode fluently

Every lottery ticket barcode encodes the game, the book, and the ticket's position within that book. ScratchOff POS decodes all three fields automatically.

Ticket Barcode (scanned during sale)
1234-0042815-028
1234Game #
0042815Book #
028Ticket #
Book Barcode (scanned on delivery)
1234-0042815
1234Game #
0042815Book #

Smart Sell-Direction Detection

Tickets within a book sell in a defined direction — typically highest sequential number first, counting down to 001. ScratchOff POS auto-detects and locks the direction on a book's very first ticket scan, then accurately calculates remaining inventory from every subsequent scan.

Book: 50 total tickets
Last scanned: Ticket 022
Direction: High → Low
──────────────────────
Remaining: 22 tickets
Value @ $5 / ticket: $110.00

The total ticket count is read directly from the barcode's third field — no manual entry needed. Books that can be sold from either end (bidirectional) are supported with independent watermark tracking.

Role-Based Access

The right tools for every team member

Three store roles with layered permissions — each person sees exactly what their job requires, nothing more. The platform manages additional security groups for infrastructure-level access separately.

🏷️

Cashier

role: cashier
  • Scan individual lottery tickets during customer sales
  • View active book inventory with remaining value
  • View session scan count and scan history
  • Access shift and closeout history (read-only)
  • View and print completed closeout summaries
🧑‍💼

Manager

role: manager
  • Everything a Cashier can do
  • Open and close daily shifts
  • Receive new book shipments into inventory
  • Activate received books for sale
  • Submit end-of-day closeout with full denomination breakdown
  • View daily sales reports for any date
👑

Admin

role: admin
  • Everything a Manager can do
  • Create, edit, and deactivate company users
  • Edit the company profile and store information
  • Manage the lottery game catalog for the store's state
  • Delete books from inventory
  • Registering creates the company and first Admin in one step
🔐

Permissions are additive and layered — Admin ⊇ Manager ⊇ Cashier. The platform also manages separate infrastructure-level security groups for platform operations, fully isolated from your store.

Flexible Platform

Works where your team works

One codebase. Two platforms. The same full-featured app whether you're at a desktop register or walking the floor with a phone.

🌐

Web Browser

Runs directly in Chrome, Firefox, or Edge — no install required. Connect any USB or Bluetooth barcode scanner as a keyboard wedge. Built-in camera scanner for stores without dedicated hardware.

No Install USB / BT Scanner Camera Scan
📱

Android App

Install the APK on any Android phone or tablet. Native camera scanner with a live viewfinder and torch toggle. Full bottom-navigation bar optimized for touch interaction and one-handed use.

Native Camera Touch-Optimized UI PDF Printing
Tech Stack

Enterprise-grade, open infrastructure

Built on Flutter 3+ and Node.js / Express, backed by MySQL with full multi-tenant row-level isolation. Secured with Helmet.js, rate limiting, XSS sanitization, and JWT with refresh tokens. Deployed via Docker to Railway with NGINX reverse proxy.

Flutter 3+ Dart Riverpod Go Router Node.js Express MySQL JWT + Refresh NGINX Docker Railway Helmet.js Nodemailer mobile_scanner
Pricing

Simple pricing. Just free.

ScratchOff POS is free to use for every store, every user, forever.

$0
per month — no credit card, no trial, no catch
  • Unlimited books received, activated, and scanned
  • Unlimited users — cashiers, managers, admins
  • Full shift management and denomination closeout
  • Daily reports and per-game sales breakdowns
  • Web browser and Android app access
  • Lottery game catalog updated for all 50 states
  • Printable PDF closeout reports
  • Isolated, secured multi-tenant data storage
  • Email verification and password reset flows

ScratchOff POS is supported entirely by optional, non-intrusive ad placements. No store data is sold or shared. No subscription will ever be required.

Ready to take control of your
lottery inventory?

Register your store in under 2 minutes. Free forever. No install required to get started.

Log In to Your Store