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
CreateAndCommitpatterns 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¶
- Copy modules -- place all four
fastbound_*folders into your Odoo custom addons path. - Update Apps List -- in Odoo, navigate to Apps and click Update Apps List.
- Install FastBound Core -- search for "FastBound Core" and install it. This creates the configuration menu and base models.
- 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.