Skip to content

FastBound Integration Suite

Complete firearms compliance management for Odoo 18, powered by the FastBound electronic A&D book platform.


What Is FastBound?

FastBound is a cloud-based electronic Acquisition & Disposition (A&D) book for Federal Firearms Licensees (FFLs). It replaces paper-based bound books with a digital system that tracks every firearm from the moment it enters your inventory until it leaves.

The Longhorn Web Solutions FastBound Integration connects your Odoo ERP directly to FastBound so that purchase receipts, sales orders, POS transactions, and inventory counts stay in sync with your compliance records -- automatically.

Key Benefits

  • Eliminate double entry -- acquisitions and dispositions flow from Odoo to FastBound without re-keying data.
  • Real-time compliance -- serial numbers, 4473 forms, and NTN numbers are tracked inside your normal Odoo workflows.
  • 75% fewer API calls -- optimized CreateAndCommit patterns keep things fast even on large batches.
  • Bidirectional sync -- webhooks push FastBound changes back into Odoo automatically.

Module Architecture

The integration is split into four focused modules that build on each other:

graph TD
    A[fastbound_core] --> B[fastbound_acquisition]
    A --> C[fastbound_disposition]
    B --> C
    A --> D[fastbound_reporting]
    B --> D
    C --> D
Module Category Purpose
FastBound Core Inventory / Compliance API client, configuration, contacts, SmartLists, webhooks
FastBound Acquisition Inventory / Compliance Inbound workflows -- PO receipts, transfers, trade-ins, direct buys
FastBound Disposition Sales / Compliance Outbound workflows -- sales, POS, 4473 forms, NFA transfers
FastBound Reporting Inventory / Compliance Stock comparison, product inventory, serial audit, bound book

Dependency Chain

Install modules in order: Core first, then Acquisition, then Disposition, and finally Reporting. The Reporting module depends on all three preceding modules.


Installation

Prerequisites

  • Odoo 18 Community or Enterprise
  • A FastBound cloud account with API access
  • Python packages: requests, pytz (typically included with Odoo)
  • The Product Addons module (provides SKU field on products)

Steps

  1. Copy modules -- place all four fastbound_* folders into your Odoo custom addons path.
  2. Update Apps List -- in Odoo, navigate to Apps and click Update Apps List.
  3. Install FastBound Core -- search for "FastBound Core" and install it. This creates the configuration menu and base models.
  4. Install remaining modules -- install Acquisition, Disposition, and Reporting in that order (or install Reporting last and Odoo will pull in its dependencies automatically).

Initial Setup

After installing the Core module, complete these one-time configuration steps.

1. Enter API Credentials

Navigate to FastBound > Configuration and create a new configuration record.

Field Description
Name A friendly label (e.g., "FastBound Production")
Account ID Your FastBound account number
API Key Your FastBound API key
Audit User Email address recorded in FastBound audit logs
API URL https://cloud.fastbound.com (default)
Company The Odoo company this account belongs to
Warehouse Default warehouse for inventory operations

Multi-Company Support

Each Odoo company can have its own FastBound configuration with a separate Account ID and API Key. Record rules enforce company-level data isolation.

2. Test the Connection

Click the Test Connection button. A success notification confirms that Odoo can reach the FastBound API. The account timezone is automatically imported.

3. Activate the Configuration

Click Activate to move the configuration from Draft to Active. Only active configurations are used for acquisitions, dispositions, and reporting.

4. Sync SmartLists

Click Sync SmartLists to pull reference data from FastBound:

SmartList Odoo Model Examples
Manufacturer acquisition.manufacturer Glock, Smith & Wesson, Ruger
Caliber acquisition.caliber 9mm, .45 ACP, 5.56 NATO
ItemType product.type Pistol, Rifle, Shotgun, Frame
Condition item.condition New, Used, Refurbished
Importer acquisition.importer Century Arms, IWI US
AcquireType acquire.type Purchase, Consignment
DisposeType general.dispose.type Sale, Transfer
TheftLossType disposition.sub.type Stolen, Lost
LicenseType license.type FFL, SOT

SmartLists sync automatically on a scheduled basis once the configuration is active.

5. Configure Webhooks

Click Setup Standard Webhooks to create the full set of bidirectional sync hooks with one click:

Webhook Endpoint Events
odoo-contacts /fastbound/contact contact.created, contact.edited, contact.deleted
odoo-items /fastbound/item item.acquired, item.disposed, item.deleted, item.edited
odoo-acquisitions /fastbound/acquisition acquisition.committed, acquisition.deleted
odoo-dispositions /fastbound/disposition disposition.committed, disposition.deleted
odoo-4473 /fastbound/4473_form_complete form4473.completed

Then click Sync Webhooks to register them with FastBound.

HTTPS Required

FastBound requires an HTTPS callback URL. Set the Webhook Base URL field to your public HTTPS domain. If your web.base.url system parameter uses HTTP, the module automatically upgrades it to HTTPS.


Security Groups

The Core module defines role-based access:

Group Access Level
FastBound User View configurations, create/edit contacts and transactions
FastBound Admin Full access including API key management, webhook configuration, and SmartList sync

API keys and authorization tokens are restricted to the Admin group for security.


Scheduled Actions

The following cron jobs run automatically once the integration is active:

Job Default Interval Module Purpose
SmartList Sync Weekly Core Refreshes reference data from FastBound
FFL Expiration Check Daily Core Creates activities for FFLs expiring within 30 days
Process Pending Webhooks Every 5 minutes Core Processes queued webhook events
Retry Failed Webhooks Every 15 minutes Core Retries failed webhook events (up to 3 attempts)
Daily Stock Report Daily Reporting Generates Odoo-vs-FastBound comparison report
Audit Reminder Weekly Reporting Reminds admin if no serial audit in 30 days

What's Next?

  • :material-cog:{ .lg .middle } Core Module


    API configuration, contact sync, SmartLists, and webhook infrastructure.

  • :material-package-down:{ .lg .middle } Acquisitions


    PO receipts, dealer transfers, trade-ins, direct buys, and label printing.

  • :material-package-up:{ .lg .middle } Dispositions


    Sales, POS integration, 4473 forms, NFA transfers, and theft/loss reporting.

  • :material-chart-bar:{ .lg .middle } Reporting


    Stock comparison, product inventory, serial audit, and bound book download.