Software for firearm retailers

FFL-POS
one system, not three.

Run your register, your online store, and your ATF-compliant bound book off one system that shares one inventory and one customer record — instead of three that drift out of sync with each other.

6
Core modules
1
Shared database
100%
Serial-tracked firearms
Browser + Windows
Runs anywhere
app.fflpos.io/admin
Dashboard
Total sales
$18,240
↑ 12.4% vs previous
Orders
47
↑ 6.1% vs previous
Guns on books
812
On hold
3
Remington 700, .308 Win — ORD-000482Bound book entry #1183 · OPEN
ON HOLD NICS # required

If you run a gun shop, you’re probably running three systems that don’t talk to each other: a register for the counter, a storefront for online orders, and a bound book kept on paper or bolted on after the fact. Stock drifts out of sync, and a serial number that matters for compliance ends up typed in three different places.

FFL-POS runs all three off one data model. A firearm is tracked by serial from the moment it’s acquired, and a regulated sale is tied to the same bound book entry whether it started at your register or on your website.

RegisterStorefrontBound bookFFL-POSone databaseone customer record

Six modules, one data model

Every module reads and writes the same product, order, and serialized-item records — nothing is synced between separate systems after the fact.

MOD.INV

Inventory & Serialized Tracking

Firearms are tracked individually by serial through six states — in stock, on hold, transfer pending, disposed, returned, lost. Ammunition and accessories are tracked by quantity across multiple store locations.

MOD.BB

Bound Book

Every firearm entering inventory opens an acquisition entry. Every disposition — a sale, a transfer, a loss — closes it. Entries stay linked to the item's full history and export for an audit.

MOD.POS

Register

In-store checkout for regulated and non-regulated items in one cart. A firearm sale goes on hold and won’t release without a recorded NICS transaction number and disposition. Split payment, cash / card / store-credit returns, printed receipts.

MOD.TRF

FFL Transfers

Tracks firearms moving to and from other dealers — inbound transfers received on a customer's behalf, and outbound transfers shipped out to complete a web sale at another FFL. Captures ID against the same forms a 4473 accepts.

MOD.WEB

Storefront & Accounts

A public storefront with an age gate, customer accounts, and order history. Firearm orders don't ship to the buyer — they route into the same FFL-transfer and hold workflow the register uses.

MOD.ADM

Admin & Reporting

Role-based access for staff, managers, and admins. Sales analytics, a fulfillment queue for web orders, and shop configuration — theme, hero images, tax and restocking-fee settings — in one place.

From acquisition to closed entry

1

Item acquired

Logged to inventory by serial; a bound book entry opens.

2

Sale started

At the register, or reserved through the storefront.

3

Held

Payment collected; the firearm stays with the dealer pending the required check.

4

Result recorded

Staff enter the NICS transaction number and disposition — release is blocked without it.

5

Released & closed

Transfer completes; disposition closes the bound book entry.

Built on a modern, boring-in-a-good-way stack

stack.manifest
web appNext.js / React
databasePostgreSQL
accessRole-based — staff / manager / admin
runs onAny browser, or installed as a Windows app
hostingCloud-hosted or on your own infrastructure
Coming soon: distributor and marketplace sync with GunBroker and Lipsey’s.

PostgreSQL-backed

One relational database behind every module — no batch syncs, no reconciliation jobs.

Role-based access

Staff, manager, and admin roles scope what each login can see and change.

Runs anywhere

Any modern browser, or installed as a standalone Windows app for the counter.

Cloud or self-hosted

Let us host it, or run it on your own infrastructure. Your data, your call.

Frequently asked

Does this replace our paper bound book?

Yes. Every acquisition opens a bound book entry automatically when a serialized firearm enters inventory, and every disposition — a sale, a transfer, a loss — closes it. Entries stay linked to the item's full history and export for an audit.

Who owns our data?

You do. Everything runs on a standard PostgreSQL database — host it yourself, or let us host it for you. There's no proprietary lock-in format; your inventory, orders, and bound book export whenever you need them.

Can staff have different levels of access?

Yes. Staff, manager, and admin roles scope what each login can see and change — from ringing up a sale to editing tax and restocking-fee settings.

Does it work without installing anything?

It runs in any modern browser. If you'd rather have a dedicated register app, it can also be installed as a standalone Windows app that opens without any browser chrome.

What about electronic Form 4473?

The compliance workflow that matters day-to-day — the NICS hold, disposition, and bound book entry — is built in today. Full electronic completion of Form 4473 follows ATF Rulings 2016-2 and 2022-01; we'll walk through exactly what that requires for your shop before you rely on it. (Not legal advice — check your approach with an FFL attorney or compliance specialist.)

Do you sync with distributors like GunBroker or Lipsey's?

Native catalog and pricing sync with GunBroker and Lipsey's is on the roadmap. Because inventory already lives in one data model, adding that sync won't change how your register, storefront, or bound book work today.

How long does onboarding take?

Typically 2-3 weeks. We handle data migration, staff training, and a soft launch at the counter before you go live on the storefront.

Do you migrate our existing data?

Yes. We handle import from Excel, older POS systems, and paper records — the goal is zero manual re-entry of your existing inventory.

What training do you offer?

Staff training (roughly 1-2 hours per person), a half-day admin walkthrough, and ongoing email support. Phone support is included on Multi-Location and Enterprise plans.

Can we start with one location and add more later?

Yes. Add locations any time — pricing scales with you, and nothing about your existing setup needs to be re-entered.

What if we need a custom integration?

We're open to it — talk to us about what you need. Common integrations are on the roadmap; less common ones we scope case by case.

What happens if we cancel?

You get 30 days to export everything — inventory, orders, bound book — in standard formats before your account is closed out.

See it running on your own inventory

We’ll walk through the register, the storefront, and the bound book with your actual product mix — no obligation, no pressure.

Typically a 20-minute walkthrough · no cost to talk