Flxpoint Help Center
All DocsContact support

Kroll as a Source

July 2, 2026

Summary

Kroll is a wholesale distributor of tactical, outdoor, and law enforcement products. The integration uses two separate connections created inside one Kroll source: an FTP (Basic Auth) connection for inventory operations (Get Inventory Primary and Secondary) and a Kroll API connection for order operations (Send Orders and Get Shipments). Your FTP Username doubles as the Account Number used by the API connection, so keep it handy when setting up both.

Get Inventory (Primary)
Imports the full Kroll catalog, quantities and images from the FTP feed into the Global Inventory Pool
Get Inventory (Secondary)
Reuses the same FTP connection to refresh variant-level Cost, MAP, MSRP, Quantity, weight and dimensions
Send Fulfillment Requests
Sends Fulfillment Requests to Kroll as Purchase Orders over the SOAP API
Get Shipments
Pulls carrier, tracking and item-level shipped quantities back into Flxpoint via the API

Inside your Kroll source, open Integrations → Get Inventory [Primary], click Start Creating Integrations and choose Kroll. In New Kroll Connection pick a Connection Type, fill the fields with the credentials Kroll provided, then click Test Connection → Save Connection. Create both connection types if you use both inventory and order operations.

Connection TypeSetting
Kroll supports two types: FTP (Basic Auth) for inventory operations and Kroll API for order operations. Create them one at a time.
FTP powers Get Inventory Primary and Secondary; Kroll API powers Send Fulfillment Requests and Get Shipments.
Connection NameRequired
A friendly label for the connection so you can identify it later.
Applies to both the FTP and the API connection.
FTP UsernameRequired
The FTP login for the FTP (Basic Auth) connection. This same value also serves as your Account Number for the Kroll API connection.
Provided by Kroll. Keep it handy for the API connection.
FTP PasswordRequired
The password paired with your FTP Username, used by the FTP (Basic Auth) connection.
Provided by Kroll.
Account NumberRequired
Entered on the Kroll API connection. This is the same value as your FTP Username – copy it directly if you already created the FTP connection.
Same value as the FTP Username.
API UsernameRequired
The API login for the Kroll API connection, used by Send Fulfillment Requests and Get Shipments.
Provided by Kroll.
API PasswordRequired
The password paired with your API Username on the Kroll API connection.
Provided by Kroll.
Don't see Kroll in the connector gallery? Use Not Listed? → Request a custom integration. If Test Connection fails, re-enter the credentials Kroll provided and try again – and remember inventory operations need the FTP connection while order operations need the API connection.

Two separate connections are required – FTP for inventory, API for orders

Unlike integrations that use one connection for everything, Kroll uses two distinct types. FTP (Basic Auth) powers Get Inventory Primary and Secondary; Kroll API powers Send Fulfillment Requests and Get Shipments. When configuring each operation, select the correct connection type – inventory operations fail if given the API connection and vice versa.

FTP Username = Account Number – use the same value for both connections

The FTP Username you enter for the FTP connection is the same value as the Account Number required for the Kroll API connection. If you already created an FTP connection, copy that username directly into the Account Number field when setting up the API connection.

Only SKUs with QTY_Available = 0 in the discontinued file are treated as discontinued

Kroll's FTP feed includes a discontinued stock file (Kroll_Stock_Disco_CSO.txt). A SKU appearing in that file is not automatically archived unless its QTY_Available value is 0. SKUs in the discontinued file with quantity > 0 continue to import as active, so check QTY_Available before assuming a SKU is discontinued.

Send Fulfillment Requests requires a valid ShipVia code and Payment Method – missing either rejects the order

Kroll's SOAP API validates both on every order. Payment Method must be either CreditCard or AccountTerms, and ShipVia must use a valid Kroll shipping code (see FAQs for the full list). FFL requirements also apply – ammunition orders fail with an FFL error if a valid FFL is not on file with Kroll.


Flxpoint FieldKroll Field – Notes
SKUInventory: SKU. Required – the product identifier.
TitleInventory → Product: Title. Required – the display title.
Description / Long DescriptionInventory → Product: Description / Long Description. Optional short and detailed copy.
Manufacturer / MPNInventory: Manufacturer / MPN. Optional brand and manufacturer part number.
UPCInventory: UPC. Optional barcode used for channel matching.
Cost / MSRPInventory: Cost / MSRP. Optional cost and retail price.
QuantityInventory: Quantity. On-hand stock read from Kroll's FTP file KrollDealer_Inventory_Export2K-TXT.
Weight / Weight UnitInventory: Weight / Weight Unit. Units may be pound, ounce, gram, kilogram (or lb, oz).
Height / Length / WidthInventory: Height / Length / Width. Optional shipping dimensions.
ImageInventory: Image. Retrieved via FTP download or Source Image Grabber depending on your Image Handling setting.
Primary Category / Sub CategoryInventory → Product: Primary Category / Sub Category. Two-level category support.
Parent SKUInventory → Product: Parent SKU. Optional – links variants to a parent.
Country of OriginInventory: Country of Origin. Optional.
Flxpoint FieldKroll Field – Notes
SKUInventory Variant: SKU. Required – the variant match key. Reuses the same FTP (Basic Auth) connection as Primary.
CostInventory Variant: Cost. Refreshed cost price.
MAP / MSRPInventory Variant: MAP / MSRP. Minimum advertised and retail price.
QuantityInventory Variant: Quantity. Updated on-hand stock.
UPC / GTINInventory Variant: UPC / GTIN. Barcode and global trade item number.
Weight / Weight UnitInventory Variant: Weight / Weight Unit. Variant weight for shipping calculations.
Height / Length / Width / Dimension UnitInventory Variant: Height / Length / Width / Dimension Unit. Variant dimensions (e.g. inch).
Shipping CostInventory Variant: Shipping Cost. Optional per-variant shipping cost.
Source List PriceInventory Variant: List Price. Optional list price.
Flxpoint FieldKroll Field – Notes
Full NameShip To Name. Required recipient name.
Address Line 1Ship To Address1. Required. Lines 2 and 3 map to Ship To Address2 / Address3 (optional).
CityShip To City. Required.
StateShip To State Province. Required.
Postal CodeShip To Postal Code. Required.
Country CodeShip To Country Code. Required (e.g. US).
PhoneShip To Telephone. Optional.
MethodShip Via. Required – must be a valid Kroll ShipVia code (see FAQs for the full list).
SKUSku. Required line-item product SKU.
QuantityQuantity Ordered. Required order quantity.
Signature Required / Bypass Address ValidationSignature Required / Bypass Address Validation. Optional Source Shipping Method flags.
Fulfillment Request NumberExternal PO. Optional external PO reference.
Flxpoint FieldKroll Field – Notes
Order Confirmation NumberShipment: FR Number. Required – links the shipment back to its Fulfillment Request.
Shipped Via (carrier)Shipment: Carrier. Required (e.g. UPS). Shipping method maps from Shipment: Method (optional).
Shipment DateShipment: Shipped At. Required ship date.
Tracking NumbersShipment: Tracking Number. Required – without it, shipments are not created in Flxpoint. Tracking URL maps from Shipment: Tracking URL (optional).
Freight AmountShipment: Shipping Cost. Optional freight cost.
NoteShipment: Note. Optional shipment note.
SkuShipment Item: Sku. Required – associates shipped items by SKU. Partial shipments are supported.
Quantity ShippedShipment Item: Quantity. Required shipped quantity.

FTP connection failing / inventory connections returning 403 Forbidden
A 403 on Kroll's FTP usually means a security incident or temporary access issue on Kroll's side (this happened in January 2026 during a cyber-attack on Kroll's systems). Confirm directly with Kroll whether their FTP is accessible before changing anything in Flxpoint – no configuration change will fix a Kroll-side outage. You may need to temporarily set Kroll quantities to 0 or disable the source until their FTP is restored. For routine (non-outage) failures, re-enter the FTP credentials and click Test Connection.
Send Fulfillment Requests failing – "SSLHandshakeException: No appropriate protocol"
This means the TLS/SSL protocol used by Kroll's SOAP endpoint is incompatible with the current connection configuration. It is a platform-level issue – contact Flxpoint Support with the exact error and your Kroll source ID. Do not retry the order repeatedly while this error persists.
Order rejected – "Your FFL is not on file or has expired. Ammo cannot be ordered without an FFL on file."
Kroll requires an active FFL on file for any ammunition order. Contact Kroll directly to confirm, submit, or renew your license, then retry the orders using new reference numbers. Kroll's OrderRejectedSeeResponseComment – "Please contact Kroll before attempting to resubmit" – means Kroll has flagged the order; do not resubmit without contacting Kroll first.
All Kroll orders failing with no specific error ("unknown reason")
The common causes are expired or changed API credentials (Account Number, API Username, API Password), Kroll's SOAP endpoint being temporarily unavailable, or a missing required field in the mapping template (ShipVia or Payment Method). Click Test Connection on the Kroll API connection, then check the integration log for the full SOAP error and contact Kroll support if the endpoint is erroring server-side.
UPCs displaying in scientific notation (e.g., 8.50034E+112)
Some Kroll UPCs are very long numeric strings that the import process converts to scientific notation, which breaks downstream channel matching. Flxpoint cannot fix this without clean data – submit the affected SKUs and their incorrect UPCs to Kroll's support team and request corrected values in the feed.
Get Shipments not importing tracking / orders show not shipped after Kroll confirms shipment
Check that the Shipments from Last X Days setting covers the shipment date (default is 7 days – increase to 30 or 60 for older shipments and re-run). Confirm the Tracking Number field is mapped in your Get Shipments template – without it, shipments are not created even if retrieved from the API. Also verify the FR Lookback Period in Advanced Settings covers the FR's date.

What credentials do I need to set up each Kroll connection?
For the FTP (Basic Auth) connection: Connection Name, FTP Username, FTP Password. For the Kroll API connection: Connection Name, Account Number (same as FTP Username), API Username, API Password. Kroll provides all credentials directly. Click Test Connection after entering each set before saving.
What files does Get Inventory Primary download from Kroll's FTP?
GIP reads three files: ProductData/KrollDealer_Inventory_Export2K-TXT (stock levels), ProductData/Kroll_Stock_Disco_CSO.txt (discontinued/deactivated stock), and ProductData/Kroll_Complete_Catalog.txt (full catalog). Product images come from ProductImages/NCR/Large/. Image handling can be set to FTP download or Source Image Grabber in the GIP settings.
What are the valid ShipVia codes for Send Fulfillment Requests?
The ShipVia field must use one of these Kroll-approved codes exactly: FedExPriorityOvernight, CustomerPickUp, FedExExpressSaver, FedExStandardOvernight, FedExGround, FedExTwoDay, UPSNextDayAir, UPSSecondDayAir, UPSGround, UPSThreeDaySelect, UPSNextDayAirSaver, UPSNextDayAirEarlyAM, UPSSecondDayAirAM, USPSParcelPost, USPSFirstClass, LessThanLoadFreight, ExpressMail, FedExSmartPost, BestRate, and FlatRate. A code not on this list will be rejected by Kroll's API.
What does the FulfillmentMethod setting control on Send Fulfillment Requests?
It determines how Kroll handles partially available orders. SHIP_PRODUCT_THAT_IS_AVAILABLE_NOW_AND_OTHER_PRODUCT_WHEN_AVAILABLE ships available items immediately and backordered items when they arrive; REJECT_ORDER_IF_ALL_PRODUCTS_ARE_NOT_AVAILABLE cancels the entire order if any item is unavailable. You must also configure a Confirm To Email Address and Confirm To Name – both are required.
How far back does Get Shipments look by default?
The Shipments from Last X Days setting controls how far back Kroll's API is queried for shipment data; the default is 7 days, which is usually enough for routine tracking syncs. For older unimported shipments, increase it to 30 or 60 and re-run. The FR Lookback Period in Advanced Settings also controls which FRs are eligible – both windows must cover the relevant date for a shipment to import.
Does Kroll support partial shipments?
Yes. Get Shipments returns item-level data including SKU and shipped quantity, and partial shipments are fully supported – multiple API responses can incrementally complete fulfillment on the same order. Carrier, method, tracking number, ship date, and freight amount are all available in the response.
What does Kroll's Get Invoices operation return?
Get Invoices retrieves invoice data from Kroll via API – invoice number, invoice date, status (Unpaid or Paid), line-item costs (per unit and total), freight amount, tax cost, fee cost, and other costs. Invoice lines are associated to FR items by SKU. Use it for financial reconciliation and margin analysis; it uses the same Kroll API connection as Send Fulfillment Requests and Get Shipments.
© 2026 Flxpoint. All rights reserved.