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.

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.


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 - 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.
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.
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.

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.
© 2026 Flxpoint. All rights reserved.