Kroll is a wholesale distributor and software provider for the pharmacy industry, supplying independent pharmacies with prescription, over-the-counter, and front-end retail products. As a source in Flxpoint, Kroll provides reliable catalog imports, pricing and inventory sync, fulfillment-request submission, and shipment tracking — with configurable lookback windows so you can backfill older shipments when needed.
How To Connect
- FTP Username — often the same value as your Kroll Account Number
- FTP Password
- Account Number — typically the same value as your FTP Username
- API Username
- API Password
- Verify all five credentials are entered correctly (no leading/trailing spaces).
- If FTP-side fails but API-side passes, double-check your FTP Username/Password with Kroll.
- If API-side fails but FTP-side passes, confirm with Kroll that API access is enabled on your account.
Product Operations
The primary operation handles the bulk of your inventory management needs, while the secondary operation allows for more detailed control, such as focusing on specific products or updates
Get Inventory and Pricing & Quantity
- Import the full Kroll catalog with core details (brand, title/description, categories, images, weight).
- Update dealer pricing and MSRP/Retail when available to your account.
- Keep on-hand quantities current by warehouse; sum when multiple locations are selected.
- 1Choose Connection — FTP (Basic Auth) or Kroll API Token.
-
2Retrieve Data —
FTP: Reads the latest CSV from your provider’s FTP (you supply folder + file pattern). API: Requests product, price, and qty using Group Code / User ID / Password.When API is connected, API price/qty is used; otherwise, FTP is used per your configuration.
- 3Map Fields — Match incoming columns to your Mapping Template.
- 4Persist — Values are saved to the Global Inventory Pool and flow to channels after your next push.
-
Quantity (On-hand) FTP —
ftp.sprich.com| useronhand| passonhand| filesprfull.ezoh(typically quantity-only). -
Pricing FTP (Customer-Specific) — Credentials and filename are provided by KRL per customer (name varies, e.g.,
JPR.x12_832_0724.csv) and include your dealer pricing columns.
-
1Connect an Integration — Choose Kroll, then create a connection.
Connection Type
-
FTP (Basic Auth)
Fields: Connection Name, FTP Host/Port, FTP User, FTP Password.
Advanced: File Transfer Mode (Binary), Maintain Constant Connection, Use Unbuffered Private Data Channel (FTPS 534 policy only).
Tip: Use Test Connection to validate credentials and folder visibility. -
Kroll API Token
Fields: Connection Name, Group Code, User ID, Password.
Use When: You need dealer pricing and direct price/qty from the API.
-
FTP (Basic Auth)
-
2Configure Settings
-
Remote File Name Pattern (FTP) — e.g.,
*.csvor an exact filename. -
Inbound Remote File Folder (FTP) — e.g.,
/incoming/products. - File Action — set to Read for this job.
- Warehouses — choose All or specific locations. Selected warehouses are summed for Available Quantity.
- Archive/Un-Archive Inventory — Optionally archive SKUs missing from the feed and auto-restore when they reappear.
Recommendation: Avoid enabling Archive on both this job and any secondary import for the same source. -
Remote File Name Pattern (FTP) — e.g.,
- 3Create a Mapping Template — Start with the recommended fields below and adjust as needed.
- 4Save & Schedule — Run manually or set a schedule (jobs run in UTC).
-
Quantity (On-hand) FTP —
ftp.sprich.com| useronhand| passonhand| filesprfull.ezoh.
This file is typically quantity-only. -
Pricing FTP (Customer-Specific) — Provided by KRL per customer; filename varies.
Sample:JPR.x12_832_0724.csv| Specs: Price File Header List & Descriptions.xlsx.
| Flxpoint Target | KRL Column | Description |
|---|---|---|
| Wholesale Cost | CI — “Promo Level 1 Dealer Cost” | Dealer/contract cost used as item cost. |
| MSRP | AF — “Current Retail Price” | Retail/MSRP reference. |
| Field | Kroll Field | Notes |
|---|---|---|
| SKU |
Sku / Catalog Sku
|
Unique identifier. |
| Title |
Description 1 (fallback Description 2/3) |
Readable product name. |
| Brand |
Brand Name / Manufacturer Name
|
Normalize as needed. |
| Quantity | Quantity |
Summed across selected warehouses. |
| Client Price | Dealer Price |
Account-specific dealer pricing (when present). |
| Cost | CI — “Promo Level 1 Dealer Cost” | Map from pricing FTP/API. |
| MSRP | AF — “Current Retail Price” | Map from pricing FTP/API. |
| Category 1 | Department Name |
Top-level category. |
| Category 2 | Class/Subclass Name |
Second-level category. |
| Weight | Weight |
Pounds. |
| UPC | Upc |
Barcode when present. |
| Attributes |
Specifications / Marketing Text … |
Map as custom fields. |
| Images | (Image URL fields) | Single primary image; extras as custom fields if desired. |
| Price Source | API or FTP | API takes precedence when connected. |
| Currency | USD | Values imported as provided by Kroll. |
| Rounding | NONE | Imported raw; apply pricing rules downstream if desired. |
| Quantity Logic | SUM | Sum of selected warehouses. |
| Variations | NOT SUPPORTED | Simple products only. |
| Delta vs Full | FULL FEED | Processes full catalog. |
| Archive | SUPPORTED | Missing SKUs archived; re-appear when present. |
| Custom Fields | SUPPORTED | Extra attributes saved at variant level. |
-
Costs are empty:
- Confirm you have a pricing FTP from KRL (customer-specific credentials) or use the API. The onhand FTP (
ftp.sprich.com/onhand/onhand) is typically quantity-only. - Verify you’re pulling the correct pricing file (name varies; example
JPR.x12_832_0724.csv) and mapping CI → Cost, AF → MSRP per “Price File Header List & Descriptions.xlsx”. - If KRL confirms the FTP file no longer carries pricing, request API credentials (Group Code, User ID, Password) and switch the connection to API.
- Confirm you have a pricing FTP from KRL (customer-specific credentials) or use the API. The onhand FTP (
- FTP auth errors: Re-check host/port/user/pass; try Test Connection. For FTPS 534, toggle “Use Unbuffered Private Data Channel.”
- API credential errors: Confirm Group Code, User ID, Password and endpoint access.
-
Missing qty: Ensure the same warehouse selection is used consistently and that the source returns non-zero
Quantity. - Items missing post-run: If Archive is enabled, SKUs absent from the feed are archived until they reappear.
Order Operations
It submits orders to vendors for fulfillment and subsequently imports the shipment details, ensuring an integration between order processing and shipment tracking.
Send Orders
- Create one supplier-ready XML order per eligible Fulfillment Request.
- Deliver the XML to Kroll via FTP using your outbound folder path.
- Control timing with Hold for X hours and Only Send During Business Hours.
- 1Build XML — The job assembles an order XML using your Mapping Template (header + lines).
- 2Upload — The file is posted to your configured Outbound Remote File Folder on Kroll’s FTP.
- 3Mark Sent — If the upload returns no error, the order is marked as sent/processed.
#PO-78431 → XML to /outbound/orders/. No upload errors ⇒ marked sent.- 1Connect an Integration — Choose Kroll and select your FTP (Basic Auth) connection.
-
2Configure Settings
- Outbound Remote File Folder * — Remote path where order XML files will be written.
- Ship To Account Number * — Required header value used by Kroll to route the shipment.
-
Advanced
- Hold for X hours — Delay sending for X hours to allow review or edits.
- Only Send During Business Hours — Restrict transmissions to business hours.
- 3Select a Mapping Template — Pick an existing template (e.g., Send Orders 1) or create a new one.
- 4Save & Schedule — Run now or schedule (jobs run in UTC).
Enable scheduling so orders go out automatically. The status page will show Connected, Configured, and Mapped (e.g., template Send Orders 1). Schedules run in UTC.
| Field | Purpose | Status |
|---|---|---|
CustomerPONo |
Unique order/FR number sent to Kroll. | Enable |
ShipToAccount |
Ship-to account number associated with your Kroll account. | Enable |
ShipToName |
Customer name shown on the shipping label. | Enable / Disable |
ShipToAddress1, Address2, City, State, PostalCode, Country
|
Destination address details. | Enable / Disable |
Email, Phone
|
Buyer contact info for carrier notifications (if supported). | Enable / Disable |
ParcelZone / Carrier fields |
Pass a requested shipping method/carrier code to supplier. | Enable / Disable |
Notes / Reference
|
Free-text notes or internal reference for the supplier. | Enable / Disable |
| Field | Purpose | Status |
|---|---|---|
SKU |
Supplier-recognized SKU for the item. | Enable |
Quantity |
Units to fulfill for this SKU. | Enable |
UnitPrice |
Dealer price per unit (if required by supplier). | Enable / Disable |
LineNotes |
Optional notes per line. | Enable / Disable |
CustomerPONo, ShipToAccount, SKU, and Quantity set to Enable. Disable optional fields you don’t want to transmit.
| Transport | FTP | Uploads to your configured outbound folder. |
| Payload | XML | Supplier-defined XML schema. |
| Acknowledgement | Not expected | Upload success (no error) marks order as sent. |
| Shipping Method UI | Not supported | Pass method via mapped fields (e.g., ParcelZone). |
| Attachments | Not supported | Only the XML order is transmitted. |
- Upload failed? Re-check FTP host/port/user/pass and the outbound path; re-run after fixing.
- Supplier rejected? Validate required fields (PO number, ShipToAccount, SKU, Quantity) are Enabled and present.
- Missing lines? Ensure each item maps an SKU and Quantity and that they’re Enabled.
-
Wrong shipping method? Map and Enable the supplier shipping method field (e.g.,
ParcelZone).
Get Shipments
Get Shipments has a Shipments from Last X Days setting in the integration's configuration area that controls how far back Kroll's API is queried for shipment data. The default is 7 days.
- For ongoing, real-time tracking updates, the default of 7 days is usually sufficient.
- If you have older unimported shipments (e.g., from FRs sent more than a week ago), increase this value to cover the date range you need to retrieve.
- Example: Set to
30to pull all shipments from the last 30 days during an initial backfill.
Note: This setting controls the shipment date window queried from Kroll's API. It is separate from the FR Lookback Period (Advanced Settings), which controls which Fulfillment Requests are eligible for shipment retrieval. For shipments to import, both windows must cover the relevant dates.
- Fetch shipment XMLs from the supplier’s FTP inbound folder.
- Update orders with carrier, shipping method, tracking ID, and ship date.
- Associate shipped items by SKU and support partial shipments.
- 1Pull XML — Reads files matching your Remote File Name Pattern from the configured Inbound Remote File Folder.
- 2Parse — Extracts carrier, method, tracking, carton/BOL, and line items (SKU & shipped qty) into your mapping template.
- 3Apply Lookback — Only Fulfillment Requests created within the FR Lookback Period are considered (default 90 days).
- 4Save — Posts shipment data back to the order; supports partials.
- 1Connect an Integration — Choose Kroll and select your FTP (Basic Auth) connection.
-
2Configure Settings
-
Remote File Name Pattern * — Mask for shipment XML files (e.g.,
krl_shipments_*.xml). - Inbound Remote File Folder * — FTP directory to read shipment files from.
- File Action — Read (leave files) or other actions per your policy.
- Advanced → FR Lookback Period for Get Shipments — Maximum age of FRs to match (default 90 days).
-
Remote File Name Pattern * — Mask for shipment XML files (e.g.,
- 3Define a Mapping Template — Use the recommended fields below.
- 4Save & Schedule — Run manually or schedule (UTC).
- Files are fetched over your configured FTP connection.
- Format is .xml; a sample file is referenced in internal docs.
- If tracking is absent, use Carton ID or BOL and map accordingly.
Enable scheduling to pull shipments automatically. The status page will show Connected, Configured, and Mapped (e.g., template Get Shipments 2). Schedules run in UTC.
Toggle each field to control what is saved to the shipment record. Only fields set to Enable will be imported.
| Field | Kroll Field | Notes | Status |
|---|---|---|---|
| Carrier | Carrier |
Header text value. | Enable / Disable |
| Shipping Method | Shipping Method |
Supplier method string. | Enable / Disable |
| Tracking ID | Tracking ID |
May be blank on LTL. | Enable / Disable |
| Carton ID | Carton Id |
Use when tracking is missing. | Enable / Disable |
| BOL | BOL |
Bill of Lading for freight/LTL. | Enable / Disable |
| Shipped At | Ship Date |
Maps to shipment timestamp. | Enable |
| PO / FR Number | Purchase Order Number |
Links XML to FR/Order. | Enable |
| Total Weight | Actual/Estimated Weight |
If provided. | Enable / Disable |
| Field | Kroll Field | Notes | Status |
|---|---|---|---|
| SKU | SKU |
Line association key. | Enable |
| Shipped Quantity | Shipped Quantity |
Supports partials. | Enable |
| UOM | UOM |
Optional; reporting. | Enable / Disable |
| Line Weight | Weight |
If present per line. | Enable / Disable |
PO / FR Number, Shipped At, SKU, and Shipped Quantity set to Enable. Add Carton ID and BOL as fallbacks when Tracking ID is missing.
| Carrier & Method | SUPPORTED | Available in XML header. |
| Shipment Item Association | SUPPORTED | By SKU. |
| Partial Shipments | SUPPORTED | Multiple files/lines can complete fulfillment. |
| Invoice Information | NOT SUPPORTED | Not included in this feed. |
| Custom Fields | NOT SUPPORTED | Standard shipment fields only. |
- No shipments found? Confirm file pattern/folder and Lookback window cover targeted FRs.
- Missing tracking? Map Carton ID or BOL as alternates and surface them for customer notifications if needed.
- Lines didn’t attach? Ensure each line includes a mapped SKU and that it’s Enabled.
Troubleshooting
Common issues for the Kroll integration. Expand each item to learn more.
What's happening
The Kroll connection isn't authenticating or Test Connection returns an error.
- API credentials (Account Number, API Username, API Password) may be incorrect or rotated.
- Your Kroll account may not yet have API access enabled.
How to fix it
- Open the Kroll source and click Test Connection. Re-enter credentials if it fails.
- Contact your Kroll rep to confirm API access is enabled and credentials are current.
What's happening
Get Inventory isn't importing data, or pricing/quantity looks off.
- Schedule may not be active or mapping template isn't selected.
- Kroll feed may not have refreshed since the last run.
How to fix it
- Run the integration manually and check the run log.
- Confirm the mapping template is attached to the integration.
- Verify with Kroll that the feed has been generated for the current cycle.
What's happening
Send Orders fails to submit orders to Kroll, or specific orders are rejected.
- Required Ship To fields, SKU, or Quantity may not be mapped correctly.
- Kroll may have flagged the order for review.
How to fix it
- Re-check Ship To mapping (Line 1, City, State, Postal, Country).
- Confirm SKU + Quantity in the Send Orders template match Kroll's expected fields.
- For held orders, contact Kroll with the PO number to clear the hold.
What's happening
Get Shipments runs but tracking isn't appearing, or older shipments are missing.
- The order may not have shipped yet on Kroll's side.
- The 'Shipments from Last X Days' window may be too short to cover older shipments.
- Tracking Number / Carrier / Order Number may not be mapped.
How to fix it
- Check the 'Shipments from Last X Days' setting in Get Shipments configuration. The default is 7 days. If your shipment is older than this window, increase the value to cover the date range of the missing shipments and re-run the job. Note: the FR Lookback Period (Advanced Settings) must also cover the FR date for the shipment to be eligible.
- Confirm the order has actually shipped in Kroll's portal.
- Open the Get Shipments mapping template and confirm Tracking Number, Carrier, and Order Number are mapped.
What's happening
The Get Inventory or Get Shipments mapping template doesn't show expected fields.
- The mapping template may not be saved or attached to the integration.
- Field labels may differ between Kroll's API schema and what you expect.
How to fix it
- Confirm the mapping template name (e.g., 'Kroll – Get Shipments') is selected on the integration.
- Refresh the integration page and re-open the mapping template to load fresh field options.