Skip to main content

Get Inventory Discrepancies

GET 

/api/veracore/integration-instances/:integration_instance/inventory/discrepancies

Mapped products whose SKU.io quantity disagrees with the Veracore balance for the same warehouse.

Not yet available to API tokens

This endpoint currently requires session authentication; Personal Access Token scope support is in progress.

discrepancy is veracore_inventory minus sku_inventory, so a negative number is the dangerous direction: SKU.io believes it holds more than the warehouse does and will keep selling stock that is not there. discrepancy_value is the absolute gap priced at unit cost.

Rows are Veracore Offers, not SKU.io products. A multi-product offer reports the minimum balance across its components, so it is one row here and several products in SKU.io — those rows are excluded from the report and from stock take creation because the two sides are not comparable.

The feed is paginated (page, per_page, default 15) and filtered server-side. veracore_product_row_id is the Veracore catalogue record behind the offer so the row can be followed through to the item; it is null when no catalogue record was ever stored for it.

Totals over the same filtered set — item count, cost impact, shortfall and surplus counts — come from the companion discrepancy-stats endpoint, which is what to call for headline figures rather than summing a page.

Search filter[search] runs a fuzzy LIKE across sku, product_name, veracore_product_id and veracore_title.

Filters Every filterable column takes an operator suffix, e.g. filter[sku.contains]=WID. The bare form (filter[sku]=WID-BLU-12) is equivalent to .is.

  • Text operators: is, is_not, contains, does_not_contain, is_one_of, is_not_one_of, starts_with, does_not_start_with, ends_with, does_not_end_with, is_empty, is_not_empty.
  • Numeric operators: is, is_not, is_one_of, is_not_one_of, greater_than, less_than, greater_than_or_equal, less_than_or_equal, between, is_empty, is_not_empty.
  • Datetime operators: is, is_not, before, after, on_or_before, on_or_after, between, is_empty, is_not_empty, plus the relative operators today, yesterday, tomorrow, past_week, past_month, past_year, next_week, next_month, next_year.

Advanced filter groups Instead of flat keys, clients may send a base64-encoded filter_groups tree, nesting AND/OR groups over the same columns. Unregistered columns inside the tree are silently ignored.

  • Text columns: sku, product_name, type, veracore_product_id, veracore_title, sku_warehouse_name, veracore_warehouse_id, veracore_warehouse_name.
  • Numeric columns: unit_cost, sku_inventory, veracore_inventory, discrepancy, discrepancy_value, component_count.
  • Datetime columns: last_synced_at.
  • filter[direction] takes shortfall or surplus.
  • filter[sku_warehouse_id] takes one id or a comma-separated list.

Sorting sort accepts sku, product_name, type, unit_cost, veracore_product_id, veracore_title, sku_warehouse_name, veracore_warehouse_name, last_synced_at, sku_inventory, veracore_inventory, discrepancy, discrepancy_value, component_count (prefix with - for descending). Default sort is sku.

Errors

  • 404 when the integration instance does not exist or is not a Veracore instance.

Authentication: Requires Bearer token.

Request

Responses

OK

Response Headers
    Content-Type