Flxpoint Help Center
All DocsContact support

Chattanooga as a Source

July 2, 2026

Summary

Chattanooga Shooting Supply (CSS) connects to Flxpoint over their API using a SID and TOKEN issued by your CSS representative, sent as a Basic auth header (with optional MD5 hashing of the token). It supports full catalog import, a delta-based secondary inventory refresh, dropship purchase-order submission with automatic order-number confirmation, and order-level shipment tracking.

Get Inventory (Primary)
Pulls the full Chattanooga catalog over the API - SKU, quantity, pricing and attributes - in batches, creating and updating inventory records
Get Inventory (Secondary)
Delta feed that returns only SKUs updated since the last run (plus a ~2-hour buffer) to keep cost and quantity fresh without a full pull
Send Fulfillment Requests
Submits purchase orders to Chattanooga, supporting dropship (ship-to-customer) via drop_ship_flag and returning an order number on success
Get Shipments
Retrieves order-level shipment tracking from Chattanooga and marks orders shipped in Flxpoint

In Flxpoint go to Connections > Fulfillment Sources, click +Add Source and name it, then select FLX Supplier Directory and choose Chattanooga Shooting Supply. In the New Connection form enter your SID and TOKEN, then click Test ConnectionSave Connection.

FieldWhat to enter
SIDRequired
Your Chattanooga Shooting Supply account identifier. Entered in the New Connection form and combined with your TOKEN into a Basic auth header.
Provided by Chattanooga Shooting Supply - contact your CSS representative if you don't have it.
TOKENRequired
The API token paired with your SID. If your account requires MD5 authorization, the token is hashed before it is sent.
Provided by Chattanooga Shooting Supply.
Don't have your SID/TOKEN? Contact your CSS sales or account representative to request API credentials. If your account requires MD5 authorization, generate the MD5 hash of your TOKEN with a tool like md5hashgenerator.com and format the header as Basic (Your SID):(MD5 hash of TOKEN).

Do not enable Archive on Get Inventory Secondary

Enable Archive only on Get Inventory Primary if you need it.

SKUs longer than 24 characters won't return data from the CSS API

The Chattanooga API does not reliably return inventory data for SKUs exceeding 24 characters. If items with longer SKUs show empty cost or zero quantity, verify and trim those SKUs - this is a hard constraint on the CSS side.

Partial shipments are not supported - all items on an order are marked shipped

The Get Shipments feed returns data at the purchase-order level, not the item level. When CSS indicates an order has shipped, Flxpoint marks every item on that order as shipped, and only a single tracking number is returned even if CSS ships the order in multiple packages.

insurance_flag and adult_signature_flag are invalid when drop_ship_flag = 0

These order fields only apply to drop-ship orders. If you map insurance_flag or adult_signature_flag and any order routes to CSS as non-dropship, it fails with a data-validation error. Only send these flags when drop_ship_flag = 1.

Requires FFL flag now available

The Requires FFL (Federal Firearms License) flag is now exposed in the inventory data layer. This backend field indicates compliance requirements for specific items and is included in the default mapping templates to help automate firearms-specific workflows.

Mixed drop-ship flags on a single order

If a fulfillment request contains multiple items with conflicting Drop Ship Flag values, Flxpoint sets the outbound drop_ship_flag to 0 (False) if any single item in the request is set to 0. This ensures special orders or items requiring business delivery are not incorrectly routed as dropshipments.

Adult signature and serialized items

For firearm or serialized orders, the adult_signature_flag is automatically set to 1 when the drop_ship_flag is 1. You can control this behavior by adding an optional serialized_flag column to your product feed CSV, which helps Flxpoint identify items requiring these specific outbound flags.


Pulls the full Chattanooga catalog over the API - SKU, quantity, pricing and attributes - in batches, creating and updating inventory records

Chattanooga FieldMaps To - Notes
Chattanooga SKUInternal SKU. Primary product identifier / linking key.
Product NameInternal Product Title.
Barcode / UPCInternal Barcode. Use for channel listings and de-duplication.
Available QuantityInventory Count. On-hand units from Chattanooga.
Cost PriceInternal Cost.
Selling PriceInternal Price.

Delta feed that returns only SKUs updated since the last run (plus a ~2-hour buffer) to keep cost and quantity fresh without a full pull

Delta feed - returns only SKUs updated since the last successful run (plus about a 2-hour buffer) via https://api.chattanoogashooting.com/v4/items?qas_last_updated_after=..., so unchanged items won't appear in the file. Map Cost from Drop Ship Price, Custom Price or Retail Price as needed; Quantity from the Inventory field; and MAP / Retail Price to your variant fields. Note that SKUs longer than 24 characters may not return data. Run Get Inventory Primary for full catalog refreshes.

Submits purchase orders to Chattanooga, supporting dropship (ship-to-customer) via drop_ship_flag and returning an order number on success

FieldNotes
drop_ship_flagMap using True / False with a Rule (commonly based on a Custom Field) - can't be set as a static Value. True ships directly to your end customer, False ships to your business. Controls which other fields are required.
customerRequired when drop_ship_flag = 1. Displays on the packing slip under "Customer."
delivery_optionRequired when drop_ship_flag = 1. Must be one of: fastest, economy, ground, next day air, second day air.
adult_signature_flagSet to 1 automatically for FFL drop-ship orders. Invalid when drop_ship_flag = 0.
insurance_flagOptional for drop shipments. Invalid when drop_ship_flag = 0.
ffl_numberRequired and specifically formatted for firearm orders - a blank or malformed value fails validation with a 422 error.
po_numberYour unique purchase order identifier for reference.
sku (Item Number)Identifies the product to order; mapped from Fulfillment Request Item → SKU.
QuantityNumber of units for each line item in the purchase order.
Shipping Address (Address Line 1/2, City, State / State Code, Zip)Required for drop-ship orders to ensure correct delivery.
order_numberReturned by CSS on a successful submission and recorded as the auto-acknowledgement.

Retrieves order-level shipment tracking from Chattanooga and marks orders shipped in Flxpoint

FieldNotes
CarrierNumeric or text code indicating the carrier (e.g., UPS, FedEx). Supported.
MethodNumeric or text code for the shipping method (e.g., Ground, 2-Day).
Tracking NumberA single tracking number returned per shipment - CSS returns one even if the order ships in multiple packages.
Shipped AtThe shipment date/time, when CSS provides it.
Shipping CostMap if CSS returns a cost; otherwise leave unmapped or set it to 0.

"Failed to parse Chattanooga API error response" / Get Inventory returning 0 records
Usually an upstream CSS API issue or an invalid-credentials state. Run Test Connection to confirm your SID and TOKEN are still valid. If they pass, it's most likely a temporary CSS-side API outage - check recent job history for a wider failure window. If you recently changed a Post-Mapping Workflow rule, disable it and re-run to rule out a processing failure. If the issue doesn't resolve on your end, contact support@flxpoint.com - some cases require a deeper look or a code-level fix by the Flxpoint team.
"Failed to extract Chattanooga's API Error Message" on Send Fulfillment Requests
The order failed but CSS returned a non-standard error. Common causes: a restricted or distributor-only item that can't be dropshipped; an item CSS shows in stock on their site but not available via the API at submission time; or a mapping issue sending invalid data. Check the order in your CSS dealer portal, confirm the item is dropship-eligible, and verify SKU, quantity, shipping address and drop_ship_flag are mapped correctly. If the issue doesn't resolve on your end, contact support@flxpoint.com - some cases require a deeper look or a code-level fix by the Flxpoint team.
Error Code [9000] Data validation failed - Sub-code [9001] insurance_flag / adult_signature_flag is not valid for this operation
These flags are only valid when drop_ship_flag = 1. If an order routes to CSS with drop_ship_flag = 0 and your template still sends them, CSS rejects it. Use a conditional Rule to send insurance_flag and adult_signature_flag only on drop-ship orders, or remove them from the template entirely. This can also surface when your mapping still includes adult_signature_flag or insurance_flag in the request payload alongside drop_ship_flag = 0 - the CSS API only accepts these fields when drop_ship_flag = 1, and sending them on a non-drop-ship order gets the request rejected.
422 Unprocessable Entity - ffl_number: The data entered is not formatted properly (sub-code 9005)
CSS requires FFL numbers in a specific format for firearm orders. If the FFL number is blank, malformed, or contains characters CSS rejects, the order fails. Verify the FFL data on the order is complete and correctly formatted, and confirm it's mapped to the ffl_number field in your Send Fulfillment Requests template before resubmitting.
Error Code 60202 - Order failed. Item(s) have insufficient inventory
CSS shows the item out of stock at submission time even though Flxpoint shows quantity available - a timing gap, since the CSS feed doesn't update in real time and Flxpoint reflects the last Get Inventory run. Check the item on the CSS website; if it shows in stock, resubmit. If CSS also shows it out of stock, it sold through between your last sync and the order.
Get Shipments failing with "Ping Failed"
Flxpoint couldn't reach the CSS API endpoint during the run - usually a temporary CSS availability issue or a network timeout. Confirm your credentials with Test Connection; if they pass, wait and retry, as this typically resolves once CSS availability is restored. If it persists for more than a few hours, contact Flxpoint support and include your source ID.
Cost, MSRP, or MAP values appear incorrect or identical?
Verify your pricing mappings in the Get Inventory Primary and Secondary templates. For Chattanooga, ensure CSSI MSRP and Retail Price are both mapped to the Flxpoint MSRP field to maintain consistency across feeds. If MAP values are missing or zero, implement a mapping rule to use the Retail MAP field as a fallback. Note that if Cost and MSRP appear identical, it often indicates the supplier has provided the same value for both fields in the API response for that specific SKU.

Where do I get my SID and TOKEN for the CSS connection?
Your SID and TOKEN are provided by Chattanooga Shooting Supply directly - contact your CSS sales or account representative to request API credentials. If your account requires MD5 authorization, generate the MD5 hash of your TOKEN with a tool like md5hashgenerator.com, then format the header as Basic (Your SID):(MD5 hash of TOKEN).
What shipping methods does Chattanooga support for dropship orders?
The supported delivery_option values are fastest, economy, ground, next day air and second day air - there is no test delivery option. Some values may not be available for certain items depending on dropship eligibility. Map the delivery_option field in your Send Fulfillment Requests template using a Value or Rule that outputs one of these codes.
How do I exclude specific product categories (e.g., powder, primers, firearms) from importing?
Add a Post-Mapping Workflow rule on your Chattanooga source: match on the Category field (Category 1, Category 2, or both) and set the action to Do Not Import - Set to True. Because CSS uses several category names for similar products (e.g., Smokeless Powder, Pistol Powder, Shotshell Powder), you may need multiple "contains" or "equals" conditions to cover every variant. Products already in the catalog before the rule was added must be deleted manually - the rule prevents future imports but does not retroactively remove existing records.
Why does Get Inventory Secondary only return some of my SKUs?
Secondary uses a delta feed that only returns items updated since the last successful run (plus a ~2-hour buffer). Products with no recent price or quantity change won't appear - this is expected behavior. Use Get Inventory Primary for a full catalog refresh and rely on Secondary for frequent, faster updates to actively changing items.
How do I set the drop_ship_flag for Chattanooga orders?
In your Send Fulfillment Requests mapping template, drop_ship_flag can't be mapped as a static Value - map it using True / False and configure a Rule (commonly based on a Custom Field) so it resolves correctly per order: drop-ship orders (CSS ships directly to your customer) should resolve to True, and orders shipped to your business should resolve to False. When drop_ship_flag = 1, the customer and delivery_option fields become required and the full shipping address must be provided. When drop_ship_flag = 0, do not map insurance_flag or adult_signature_flag - they're invalid for that order type.
Why is my Chattanooga source prefixing SKUs with "CH" and separating listings?
Flxpoint can apply a source prefix (e.g., CH) to distinguish SKUs across distributors. If that prefix is causing CSS inventory to create separate products instead of linking to existing bare-SKU listings, review your Master SKU mapping in the Get Inventory Primary template. Removing or adjusting the prefix lets CSS SKUs match your existing product records - the prefix is a Flxpoint mapping choice, not a CSS-side requirement.

What it does

When sending Fulfillment Requests (FR) to Chattanooga Shooting Supplies (CSSI), specific flags control how the order is processed and shipped. The drop_ship_flag and adult_signature_flag are determined by a combination of order details and item-level attributes in your inventory.

Flag logic and requirements

Flxpoint applies specific logic to determine the status of these flags during order submission. This ensures compliance with shipping regulations, particularly for serialized items and firearms.

  • FFL Orders: If a Fulfillment Request includes a Federal Firearms License (FFL) number and the inventory variant has the Drop Ship Flag custom field set to 1, both the dropship and adult signature flags are set to 1 (true).

  • Mixed Items: If a single Fulfillment Request contains multiple items with conflicting flag values, the dropship flag will default to 0 (false) if any single item in the request has its flag set to 0.

  • Adult Signature: This flag is triggered automatically for serialized items to ensure secure delivery.

Configuring the CSV feed

To ensure adult signature requirements are correctly identified, you can include an optional column in your product feed CSV. This allows you to explicitly mark items that require special handling.

Column Name

Value

Result

serialized_flag

1

Triggers the Adult Signature flag on outbound orders.

serialized_flag

0

Standard shipping (unless overridden by other rules).

Implementation steps

  1. Update Inventory Variants: Navigate to Inventory, select a product, and open the Variant tab. Ensure the Drop Ship Flag custom field is populated correctly (1 for dropship, 0 for special orders).

  2. Configure Mapping Template: Open your CSSI mapping template under Settings. Verify that the drop_ship_flag and adult_signature_flag are mapped to pull from the corresponding inventory variant custom fields.

  3. Verify Outbound Data: Review the outbound JSON structure for your Fulfillment Requests. A standard dropship order for a serialized item should appear as follows:

"drop_ship_flag": 1,
"adult_signature_flag": 1,
"federal_firearms_license_number": "..."

Note: If you are processing special orders that should not be treated as standard dropships, ensure the drop_ship_flag is explicitly set to 0 in your mapping or inventory data to avoid incorrect routing.

© 2026 Flxpoint. All rights reserved.