Skip to content

FastBound

FastBound holds the electronic bound book. This system writes to it whenever a gun is received or leaves, and reads back from it when a Form 4473 completes. A manager owns the settings; counter staff meet it through failure messages.

FastBound Settings

The connection form. Enable FastBound is the switch the three buttons depend on.

What syncs

Out of this system, automatically:

Event What goes to FastBound
A firearm is received One acquisition per gun, with the source contact
A gun ships to another licensee A disposition of type Dealer Transfer, FFL Transfer or Return
A gun is destroyed A disposition of type Scrap or Destroyed, with both witnesses
A record is cancelled A delete for the matching FastBound record
Firearm details are edited on a gun in the book An in-place edit, after you confirm
A serial is corrected An in-place serial edit, in the same transaction

Each acquisition carries the date, the acquisition type, a note naming the receive source, the source contact and one item. The item carries manufacturer, model, serial, caliber and type, plus SKU, UPC, MPN, importer and cost. The serial's own values win over the item's, and importer comes from the serial only. A blank in any of the five required fields is sent as the literal Unknown, which is why Receive Goods makes you confirm them.

Into this system, from FastBound:

A retail sale's disposition is never pushed. It comes back the other way. When a 4473 completes, FastBound calls the webhook, and the system stamps the held order with the 4473 status and the NICS outcome, mints the bound-book disposition for each covered gun, and unlocks the till. See Form 4473 and NICS.

Retail Sale, Sale, Private Party Transfer, Donation, Gunsmithing and NFA are never pushed automatically.

Settings and buttons

FFL Settings and FastBound Settings are separate. The FastBound Settings form carries the connection.

Enable FastBound is the master switch. Its description: "Off: A&D records are kept locally only, and firearm sales need FFL Settings → Paper 4473 Mode (reload open tills)." With it off, the three buttons below do not appear at all.

The rest of the form is the account number, the API key, the base URL, the audit user and the webhook secret, with the last import and the cached type lists on its Status tab. Integration settings covers every field.

Test Connection

Confirms the credentials work. On success a green message reads "FastBound connection OK. Account: ". A failure names the reason, for example FastBound is not configured: ... or FastBound API error: ....

Run it after changing the account number, the key or the base URL.

Sync FastBound Lists

Refreshes the acquisition-type and disposition-type dropdowns from your FastBound account, so the choices on FFL Acquisition and FFL Disposition match what your account actually offers. On success: "Synced N acquisition + M disposition type(s) from FastBound." It also runs on its own once a day.

Run it after adding a custom type in FastBound.

Import Bound Book

A one-off migration. It pulls every item from your FastBound bound book and mirrors them into this system as items, acquisitions and stock receipts. Items already imported, matched by their FastBound id, are skipped, so running it twice is safe.

Save the form first, or you are told to. The dialog offers:

  • Aggregate By, either auto or model. auto groups by SKU, then UPC, then MPN, then manufacturer and model. model ignores SKU, UPC and MPN and always groups by manufacturer, model and caliber. Pick model when your distributor SKUs are noisy.
  • Page Size, how many items to fetch per request. Default 100.
  • Dry Run, which counts what would be imported and writes nothing.

Click Start Import. A large book takes several minutes. The importer commits after every successful item, so a crash part way through does not lose work. The result dialog reports Fetched, Created (or Would create), Skipped (already imported) and Errors.

Do a dry run first.

The webhook

FastBound calls a URL on this site when something happens there. Register it in FastBound under Settings → Webhooks, for the events form4473.completed and disposition.committed. The URL is shown on the FastBound Settings form itself, under Webhook URL.

Deliveries are signed, and the Webhook secret must match the one FastBound shows. A wrong or missing signature is refused.

form4473.completed stamps the held order with the 4473 result and the NICS outcome, unlocks the till, books the disposition for each gun, and emails the buyer when a previously delayed check has proceeded.

disposition.committed confirms the disposition, and also catches a gun disposed directly in FastBound's own screen with no sale here. Such a gun is issued out of stock automatically, except when it is on an open order, out on consignment, or part of a 4473, which raise an alert and hold the gun instead.

Failed pushes and stuck records

A push failure does not lose the record. It parks it.

Where the error shows. The FFL Acquisition or FFL Disposition carries FastBound Sync Error with the reason, in FastBound's own words. A record is waiting when it is submitted and its FastBound ID is empty. It is stuck when the sync error is not empty.

What retries on its own. A daily job re-enqueues every submitted record with no FastBound ID, and a second daily job retries deletes that failed. Both skip records whose error begins [TERMINAL], because those need a person.

Where you are told. A daily digest emails the alert recipients set in FFL Settings, or every System Manager when that is blank. The subject reads:

[POS Alert] N FastBound record(s) stuck unsynced

Each line names the record and its error, and a line beginning [needs human] marks a terminal failure that will not be retried.

Receiving is the exception. The push during Receive Goods is synchronous and atomic. There is no stuck state, because a rejection undoes the whole receive:

FastBound rejected this firearm, so nothing was received — fix the issue and
receive again.

Read the reason, correct the firearm details or the supplier's FFL, and receive again.

What to do when a push fails

  1. Open the FFL Acquisition or FFL Disposition named in the alert and read FastBound Sync Error.
  2. Fix what it names. A missing manufacturer or caliber is fixed on the gun. A rejected FFL number is fixed on the receiving dealer. See Verifying an FFL.
  3. If the error says the gun is already disposed in FastBound, do not push again. Either the transfer is already recorded there, in which case the two records need linking rather than a second push, or it is wrong and should be voided in FastBound. Both are manager work.
  4. If the error says the serial is not found in FastBound, its acquisition never landed. Fix that first.
  5. Cancel and amend the record if the details themselves were wrong. Cancelling a record whose gun is still in stock warns you: "Serial is still in stock. If this gun is leaving the books entirely, cancel its Material Receipt too; if you are amending the record, submit the amendment now."

Checking the two books agree

Both tools live on the Firearms In Stock report.

Firearms In Stock

Both comparison tools sit on this report toolbar, not on a settings page.

Check FastBound differences

Compares every in-stock gun's manufacturer, importer, model, caliber and firearm type against the bound book. It runs in the background and reports when it finishes.

If everything matches: "All in-stock firearms match FastBound."

If not, the summary is titled "FastBound Scan: N gun(s) differ" and says: "Open each gun's Serial No and use 'Sync with FastBound':" followed by each serial and the fields that disagree.

On the gun, Sync with FastBound opens Reconcile with FastBound, listing each differing field with the two values and a choice of Use FastBound or Use POS. Use FastBound corrects this system. Use POS pushes your value into the bound book. Click Apply.

A gun with no FastBound link at all offers to match it by serial number instead. A gun FastBound shows as disposed is not field-synced, because the stock mismatch has to be resolved first.

Sync Bound Book

Finds guns that are in stock here but marked disposed in FastBound, usually because a sale was recorded there and never here.

It previews first. If there is nothing to do: "In sync — no in-stock firearm is marked disposed in FastBound." Otherwise it asks: "FastBound reports these N in-stock firearm(s) as disposed. Remove them from ERPNext stock (Material Issue)?" with the list. Confirming issues exactly the guns you were shown.

Guns out on consignment at a partner dealer are never removed. They are disposed in FastBound but still the store's stock, and the message says so.

This needs Stock Manager, Sales Manager or System Manager.

Troubleshooting

Message you see What it means Fix
FastBound is not configured: ... Account number, key or base URL is missing. Fill them in on FastBound Settings, then Test Connection.
FastBound API error: ... FastBound answered with an error. Read the text. Usually the key or the account number.
[POS Alert] N FastBound record(s) stuck unsynced Records failed to push. Open each and read FastBound Sync Error.
A line beginning [needs human] in that digest A terminal failure that will not be retried. Fix it by hand. It will not clear itself.
... firearm serial '<n>' not found in FastBound — was its acquisition pushed? The gun was never acquired in the bound book. Fix the acquisition first, then retry the disposition.
... is already disposed in FastBound ... and cannot be disposed again. The bound book already records this gun leaving. Manager work. Link the records or void the FastBound entry.
FastBound rejected this firearm, so nothing was received A receive was refused and rolled back. Fix what the message names and receive again.
Buttons missing on FastBound Settings Enable FastBound is unticked. Tick it, or work in Paper 4473 Mode.