Overview
The Inventory Delta Export Feed is a Kibo-managed automated export that periodically queries your inventory for recently changed records and delivers a compressed CSV file to a destination of your choice. It is designed for scenarios where you need to keep a downstream system (e.g., a warehouse management system, an external marketplace, or a third-party platform) in sync with your Kibo inventory without pulling a full inventory snapshot each time.
Looking to push inventory changes into Kibo on a recurring basis instead? The Inventory Import File supports incremental update files (sometimes called a delta import feed) that apply quantity adjustments throughout the day.
How to Get Started
To set up an Inventory Delta Export Feed for your tenant, open a support ticket at help.kibocommerce.com with the following information:
| Item | Details |
|---|
| Tenant ID | Your Kibo tenant ID |
| Delivery destination | Where you want the files sent (see options below) |
| Delivery credentials | Access credentials for your chosen destination |
Delivery Destination Options
Choose one of the following delivery methods and provide the corresponding details:
Option 1 — Amazon S3
- S3 bucket name (and optional key prefix/folder path)
- AWS region
- IAM role or policy granting Kibo write access to the bucket
Option 2 — Google Cloud Storage (GCS)
- GCS bucket name (and optional folder path)
- A service account or Workload Identity Federation configuration with write access to the bucket
Option 3 — SFTP
- SFTP hostname and port
- Username and password (or SSH key)
- Remote directory path where files should be deposited
How It Works
Once configured, the feed runs automatically on a schedule. On each run, Kibo:
- Identifies all inventory records that were updated since the last successful run
- Exports those records to a CSV file
- Compresses the CSV into a ZIP file
- Uploads the ZIP to your configured destination
If no inventory records changed during a given interval, no file is uploaded for that interval.
Timing Window
- By default, each run captures changes from the last 30 minutes.
- The timing window is tracked automatically — you do not need to manage state on your end.
- If a run is delayed or missed, the system will not exceed a 4-hour catch-up window to prevent unexpectedly large exports.
Each delivery is a ZIP archive containing a single file named inventory.csv.
ZIP File Naming
{tenantId}_{YYYYMMDDHHmmss}.zip
Example: 100041_20240815143000.zip
CSV Structure
The CSV includes a header row. The base columns are:
| Column | Description |
|---|
location_code | The location identifier where inventory is held |
upc | The product’s UPC/SKU |
onHand | On-hand quantity, net of safety stock |
rawOnHand | Raw on-hand quantity (before safety stock deduction) |
available | Available quantity, net of safety stock and pending allocations |
condition | Product condition (e.g., new, used) |
lot_code | Lot code, if applicable |
date | Inventory date |
serial_number | Serial number, if applicable |
attributes | Legacy attribute value, if configured |
Optional Columns
The following columns can be enabled on request:
| Column | Description | How to Enable |
|---|
inventory_locator_name | Planogram or bin locator name for the product | Request in your setup ticket |
| Custom extensible attributes | One column per custom inventory attribute you have defined (e.g., Color, Size) | Request in your setup ticket; multi-value attributes are pipe-delimited (e.g., Red|Blue) |
Example CSV
location_code,upc,onHand,rawOnHand,available,condition,lot_code,date,serial_number,attributes
WAREHOUSE-A,012345678901,48,50,45,new,,,,
WAREHOUSE-B,098765432100,0,2,-1,new,,,,
Frequently Asked Questions
What if no inventory changed during an interval?
No file is uploaded for that interval. Your destination will simply have no new file for that run.
What time zone are timestamps in?
All timestamps are in UTC.
Can I receive files more or less frequently than every 30 minutes?
This setting is fixed at 30 minutes and does not support customization.
Can I receive files to more than one destination?
Yes — include all destination details in your support ticket.
What does available represent exactly?
available = raw on-hand quantity - safety stock - pending allocations. onHand = raw on-hand - safety stock only. Use rawOnHand if you need the unmodified quantity.
What if an extensible attribute has multiple values?
Multi-value attributes are serialized as a pipe-delimited string in a single column. For example, a Color attribute with values Red and Blue would appear as Red|Blue.