FFL Settings¶
The store's own compliance configuration: who we are, how 4473s are handled, how
other FFLs get verified, and which optional subsystems are switched on. System
Manager only. Open it at /app/ffl-settings.
These fields change how the counter behaves
Paper 4473 Mode and the two subsystem switches change what staff see on the register and on the Item form. Some take effect only after the page or the till reloads. Save once, then reload any open till.
Store¶
Our FFL Licence Number. This store's own FFL. A web order that names it as the receiving FFL is an in-store pickup rather than a shipment: the buyer collects at the counter and completes a 4473 here, so the system refuses to book a transfer to ourselves. Leave it blank and nothing changes.
Alert Recipients. Emails that receive operational alerts, separated by commas or new lines. Leave it empty and every System Manager gets them instead. This is where sync failures and stuck-record digests land. See Background jobs.
Receive Sources. One source per line. It fills the Source dropdown on Receive Goods, on the FFL Acquisition form and on Purchase Receipt. The default list is RSR, Distributor, Individual (trade-in), Manufacturer, Consignment, Other. Edits take effect the next time a form is refreshed. No restart is needed.
Receipt Footer Note. Store policy printed under every receipt, one line per line. Empty prints nothing, because a returns policy is each store's own call. Plain text only. It goes into the receipt without escaping, so angle brackets and ampersands would be read as markup.
Compliance¶
Paper 4473 Mode. Tick this when 4473s and background checks are handled outside this system, on paper and by phone or the FBI portal. This is the normal setup once FastBound is switched off. At the counter the FastBound 4473 button is replaced by Record Paper 4473. Confirming that button books this order's bound book disposition for every gun on the ticket, stamped with who ticked it and when, and the sale can then complete. The recordkeeping duty does not change: the paper 4473 must still be filled in and filed exactly as before. This setting only tells the register not to wait for FastBound. It takes effect on the next page load, so reload any till that is already open or it keeps acting on the old setting. Everything recorded this way appears on the Hand-Asserted 4473 Dispositions report.
Transfer Fee Item. The service item charged for a customer transfer-in 4473.
It is non-firearm and non-stock. The system creates that item, TRANSFER-FEE,
the first time a transfer is started, but deliberately leaves this field blank:
left empty, the register falls back to TRANSFER-FEE. Fill it in only to charge
a different item.
Default Transfer Fee. The per-firearm fee added automatically to a Transfer ticket at the register, $25 out of the box. It stays editable on the individual sale. See Customer transfers.
FFL Verification¶
This tab controls how another dealer's license gets checked against the ATF eZ Check service.
Provider. Where a live verification is looked up. Three choices:
| Provider | Behavior |
|---|---|
| ATF Form Scraper | The default. Queries the ATF eZ Check form directly. |
| OSA API | Uses the shared data service, configured in the section below. |
| Manual Only | Disables live verification entirely. |
Rate Limit (req/hr). The most ATF Form Scraper requests to make in an hour, 30 by default.
Cache TTL (minutes). How long a verification result is reused before it is looked up again, 1440 minutes by default, which is one day.
OSA API Endpoint, OSA API Client ID and OSA API Secret appear only when the provider is OSA API. The endpoint is the base URL of the shared data service. The secret is a per-client key and is stored encrypted. Never read it back out or paste it anywhere.
The Verify Our FFL button sits on the toolbar and runs the configured provider against this store's own license number. It is the form's connection test. A success shows a green message with the licensee name and the expiry date. A failure shows an orange dialog with the status or the error. The button only appears when the integrations app is installed.
See FFL verification for how other dealers get verified in day-to-day work.
Subsystems¶
Consignment Out. Sending this store's own guns to a partner FFL's rack to sell on our behalf, on by default. Untick it and the Consignment Out and Dealer Orders shortcuts leave the Gun Shop workspace, those pages and Dealer Onboarding stop opening, the partner dealer portal closes, and every consignment endpoint refuses. Nothing is deleted. Existing Consignment Out records, the Consignment Dealer role and the accounts all stay as they are, so ticking it again restores the whole subsystem. This is unrelated to a customer leaving their own gun with us to sell, which is a Serial No setting and is unaffected. The two workspace shortcut cards belong to this switch: while it is ticked, every upgrade puts them back, so deleting a card by hand does not stick. Untick this instead. See Consignment out.
Consignment Contact Email. Where a partner dealer is told to write when the portal cannot mark a gun sold or confirm receipt. That message is their only self-service way out of a failure, so leaving this empty drops the offer from those messages entirely. It is deliberately not the company's public address, because it belongs to whoever runs consignment. It appears only while Consignment Out is ticked.
Dealer Portal. The second, wholesale storefront that business dealers buy from, on by default. Untick it and the Send to Dealer Portal and Delist from Dealer Portal buttons leave the Item and Serial No forms, nothing is pushed to or pulled from that store, and any webhook it still delivers is acknowledged and ignored. It is acknowledged rather than refused so that WooCommerce does not disable the webhook, which nothing would turn back on. The retail store is unaffected. This is unrelated to selling a gun to a licensed dealer at the counter, which is also unaffected. See Dealer portal.
Both subsystem switches behave differently when changed outside this form. A change made through the interface or a tool writes the value, and the server starts honoring it immediately, but the workspace cards and the form buttons only catch up on the next save of this page or the next upgrade. Save the form once and it clears.
