Hoppa till innehållet

Items

Items/products including stock availability, price calculation, units, attributes and assets. Addressed by itemNumber.

10 calls GET POST PATCH Base URL https://api.erp.fluit.cloud/preview

Authentication, error codes, rate limits, idempotency and pagination apply to every call and are documented once under Getting started.

GET /inventory/availability

List stock availability for many items

Returns stock availability for every stocked item, paginated, with the same per-warehouse breakdown as GET /preview/items/{itemNumber}/availability — including whether movements in that warehouse require serial or batch numbers.

Show the full description

Use this instead of calling the per-item endpoint in a loop: a catalogue of a few thousand SKUs otherwise consumes the entire rate limit budget on every sync cycle. Items with no stock record in any active warehouse are omitted. Pagination is over items, never over warehouse rows, so an item's totals are always complete.

Query parameters

Field Type Description
itemNumbers string Comma-separated item numbers to limit the result to. Max 200 values.
warehouseCode string Restricts the breakdown to one warehouse, in which case the totals cover that warehouse only.
modifiedSince string(date-time) Returns only items whose stock records were created or changed at or after this instant (ISO 8601 UTC datetime). This is what makes a recurring poll cheap.
page integer Page to return, 1-based. Default 1.
pageSize integer Number of records per page. Default 50, max 200.

Responses

200 PagedResult_PublicItemAvailabilityResponse

Paginated response: the fields below sit in items[], wrapped in totalCount, page, pageSize, totalPages, hasPreviousPage and hasNextPage. Paginated

Field Type Description
itemNumber string · nullable Item number of the item.
totalAllocatedQuantity decimal Total quantity reserved for orders across all warehouses. Serialised as a decimal string.
totalAvailableQuantity decimal Total quantity available for new orders (on hand − allocated). Serialised as a decimal string.
totalQuantityOnHand decimal Total physical quantity on hand across all warehouses. Serialised as a decimal string.
warehouses WarehouseAvailability[] · nullable Per-warehouse breakdown. Empty list if the item is not stocked in any warehouse.
400 ProblemDetails itemNumbers held more than 200 values.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable

Standard errors: 401 403 Errors

Examples

curl
curl "https://api.erp.fluit.cloud/preview/inventory/availability" \
  -H "X-Api-Key: fluit_live_sk_..."
Response 200
{
  "hasNextPage": true,
  "hasPreviousPage": true,
  "items": [
    {
      "itemNumber": "WIDGET-A",
      "totalAllocatedQuantity": "10",
      "totalAvailableQuantity": "10",
      "totalQuantityOnHand": "10",
      "warehouses": [
        {
          "allocatedQuantity": "10",
          "availableQuantity": "10",
          "quantityOnHand": "10",
          "replenishmentType": "Purchase",
          "requiresBatch": true,
          "requiresSerial": true,
          "trackingType": "None",
          "warehouseCode": "MAIN",
          "warehouseName": "Main warehouse"
        }
      ]
    }
  ],
  "page": 1,
  "pageSize": 50,
  "totalCount": 137,
  "totalPages": 3
}

Base URL https://api.erp.fluit.cloud/preview. The response example is generated from the schema: the shape is right, the values are made up.

GET /items

List items

Returns a paginated list of items for the authenticated tenant. Sorted by item number. Filters combine with AND. Enum filters are matched case-insensitively and an unknown value returns 400.

Show the full description

Delta sync: ?modifiedSince= (ISO 8601 UTC datetime) returns records created or changed at or after that instant, and is the intended way to run an incremental sync. A change anywhere inside the record counts: editing a line moves the parent's modifiedDate too, so no change can hide below the resource level. Newly created items are included even though they have no modifiedDate yet. Deletions are not visible here: a deleted record is really gone, so it simply stops appearing, which is indistinguishable from "unchanged". Poll GET /preview/deletions?deletedSince= alongside this endpoint to learn what was removed.

Query parameters

Field Type Description
search string Matches item number, name and description, case-insensitively and on partial words.
status enum Filters on the item's lifecycle status. Draft PendingApproval Active PhasingOut Discontinued Archived
modifiedSince string(date-time) Returns only records created or changed at or after this instant (ISO 8601 UTC datetime). A change anywhere inside the record counts, including on its lines.
reference string Looks the value up as an identifier: first the item number, then the item's own barcode, then barcodes on alternative units (case, pallet) and finally cross-references such as manufacturer (MPN) and OEM numbers. The identifier that matched is reported per row in matchedOn. Barcodes are not guaranteed unique, so this returns a list rather than one item.
referenceType enum Restricts ?reference= to one cross-reference type instead of searching every identifier. Manufacturer Oem IndustryStandard Superseded Competitor Barcode Custom
itemNumbers string Comma-separated item numbers to fetch in one call, so a change notification covering many items costs one request instead of one each. Max 200 values.
itemType enum Filters on what kind of item it is. StockItem NonStockItem Service Work Kit Phantom Charge VariantMaster
grade enum Filters on the item's quality grade. A B C D
publishOnWeb boolean Filters on whether the item is published to the web channel.
isSellable boolean Filters on whether the item may be sold.
isConfigurable boolean True returns only made-to-order items that have a configuration schema at GET /preview/items/{itemNumber}/configuration; false returns only the plain catalogue items.
isVariant boolean True returns only variants, false only non-variants.
categoryCode string Filters on the stable category code, counting only active and non-deleted assignments. Subcategories are not included — expand the tree client-side. This is also how you build the picker for an ItemSelection feature, by passing its selectableItemCategoryCode.
brandCode string Filters on the brand code.
parentItemNumber string Returns the variants of one variant master, given by its item number.
page integer Page to return, 1-based. Default 1.
pageSize integer Number of records per page. Default 50, max 200.

Responses

200 PagedResult_PublicItemResponse

Paginated response: the fields below sit in items[], wrapped in totalCount, page, pageSize, totalPages, hasPreviousPage and hasNextPage. Paginated

Field Type Description
barcode string · nullable EAN / GTIN barcode or other scanning code. Null if not set.
baseUnitCode string · nullable Code of the item's base unit of measure, e.g. `st`, `kg`. Null if not set.
brandCode string · nullable Stable brand code, usable to correlate against your own brand register. Null if not set.
brandName string · nullable Brand name. Null if not set.
categoryCode string · nullable Stable code of the item's primary-hierarchy category, e.g. `TOOLS-HAND` — the value to pass to `?categoryCode=` and the one a feature's `selectableItemCategoryCode` refers to. Null if not categorised.
categoryName string · nullable Name of the item's primary-hierarchy category. Null if not categorised.
countryOfOrigin string · nullable ISO 3166-1 alpha-2 country of manufacture, e.g. `SE`, `CN`. Null if not set.
createdDate string(date-time) UTC timestamp when the item was created.
decimalPlaces integer Number of decimals allowed on quantities for this item (0–6). Quantities with more decimals are rejected.
depth decimal · nullable Depth in centimetres. Serialised as a decimal string. Null if not set.
description string · nullable Long-form description, e.g. for a product page. Null if not set.
grade enum Item condition grade (A/B/C-stock) exposed via the Public API. Mirrors `Domain.Items.Grade`. A B C D
height decimal · nullable Height in centimetres. Serialised as a decimal string. Null if not set.
hsCode string · nullable Harmonized System (HS / KN) customs tariff code. Null if not set.
id string(uuid) Internal unique identifier (UUID v7).
isActive boolean Whether the item is active. Inactive items cannot be placed on new orders.
isConfigurable boolean Whether the item is made to order from configurable features (measurements, fabrics, add-ons). True means GET /preview/items/{itemNumber}/configuration returns a configuration schema and the item is ordered through /preview/configurations rather than as a plain order line.
isSellable boolean Whether the item can be sold. False for component-only items.
isStockable boolean Whether the item is held in inventory. False for services, charges and drop-shipped items. Derived from `itemType` — use this rather than matching on the type yourself, so a new item type does not silently change how your integration classifies the item.
itemNumber string · nullable Unique item number — business key, e.g. `WIDGET-PRO`.
itemType enum Item type exposed via the Public API. Mirrors `Domain.Items.ItemType`. StockItem NonStockItem Service Work Kit Phantom Charge VariantMaster
links Links Hypermedia links for a public API resource. Exposed as a computed `links` property on the public response DTOs so that create and read responses carry the same self-reference — the canonical URL is derived from the business key already present on the DTO and can never drift from the route it points at.
matchedOn string · nullable Which identifier the `?reference=` lookup matched on: `ItemNumber`, `Barcode` (the item's own), `PackBarcode` (a barcode on an alternative unit such as a box) or `CrossReference` (manufacturer/OEM number). Null unless `?reference=` was used. A scanner uses this to tell a single unit from a case: a `PackBarcode` match means the scanned code represents several base units, so read `units[]` on the item detail for the conversion factor before booking a quantity.
modifiedDate string(date-time) · nullable UTC timestamp of the last modification. Null if never modified after creation.
name string · nullable Display name / product name.
netWeight decimal · nullable Net weight in kilograms. Serialised as a decimal string to avoid IEEE 754 precision loss. Null if not set.
parentItemNumber string · nullable Item number of the variant master this item belongs to. Null unless the item is a variant.
publishOnWeb boolean Whether the item is published on the webshop.
salesEndDate string(date) · nullable Date until which the item can be sold (ISO 8601 date). Null if unrestricted.
salesPrice decimal · nullable Default sales price in the tenant default currency. Serialised as a decimal string. Null if not set.
salesStartDate string(date) · nullable Date from which the item can be sold (ISO 8601 date). Null if unrestricted.
status enum Item status exposed via the Public API. Mirrors `Domain.Items.ItemStatus`. Draft PendingApproval Active PhasingOut Discontinued Archived
taxClassCode string · nullable Code of the tax class governing VAT for this item, e.g. `STANDARD`. Null if not set, in which case the tenant default applies. Look the rate up via GET /preview/reference/tax-classes — the rate depends on country and date and is therefore not a property of the item.
thumbnailUrl string · nullable URL to the item's thumbnail image. Null if no image is set.
width decimal · nullable Width in centimetres. Serialised as a decimal string. Null if not set.
400 ProblemDetails An enum filter (status, referenceType, itemType, grade) got a value outside its list, or itemNumbers held more than 200 values.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable

Standard errors: 401 403 Errors

Examples

curl
curl "https://api.erp.fluit.cloud/preview/items" \
  -H "X-Api-Key: fluit_live_sk_..."
Response 200
{
  "hasNextPage": true,
  "hasPreviousPage": true,
  "items": [
    {
      "barcode": "string",
      "baseUnitCode": "st",
      "brandCode": "STD",
      "brandName": "Fluit",
      "categoryCode": "STD",
      "categoryName": "Hand tools",
      "countryOfOrigin": "string",
      "createdDate": "2026-06-11T09:24:13.418",
      "decimalPlaces": 2,
      "depth": "299.00",
      "description": "string",
      "grade": "A",
      "height": "299.00",
      "hsCode": "STD",
      "id": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
      "isActive": true,
      "isConfigurable": true,
      "isSellable": true,
      "isStockable": true,
      "itemNumber": "WIDGET-A",
      "itemType": "StockItem",
      "links": {
        "self": "string"
      },
      "matchedOn": "string",
      "modifiedDate": "2026-06-11T09:24:13.418",
      "name": "Widget A",
      "netWeight": "1.250",
      "parentItemNumber": "ABC-001",
      "publishOnWeb": true,
      "salesEndDate": "2026-06-11",
      "salesPrice": "299.00",
      "salesStartDate": "2026-06-11",
      "status": "Draft",
      "taxClassCode": "STD",
      "thumbnailUrl": "https://cdn.fluit.cloud/assets/widget-a-front-thumb.jpg",
      "width": "299.00"
    }
  ],
  "page": 1,
  "pageSize": 50,
  "totalCount": 137,
  "totalPages": 3
}

Base URL https://api.erp.fluit.cloud/preview. The response example is generated from the schema: the shape is right, the values are made up.

POST /items

Create an item

Creates a new item for the authenticated tenant. Item number is auto-generated if not provided. The response body is the same representation as GET /preview/items/{itemNumber}; the canonical URL is returned in the Location header and in links.self.

Body required

Field Type Description
barcode string · nullable EAN / GTIN barcode or other scanning code.
costPrice decimal · nullable Purchase / cost price in the tenant default currency.
countryOfOrigin string · nullable ISO 3166-1 alpha-2 country of manufacture, e.g. `SE`, `CN`.
description string · nullable Long-form description, e.g. for a webshop product page.
hsCode string · nullable Harmonized System (HS / KN) customs tariff code.
itemNumber string · nullable Unique item number. Only uppercase letters, digits, hyphens and underscores are allowed. Auto-generated if omitted.
name Required string Display name / product name.
netWeight decimal · nullable Net weight in kilograms.
salesPrice decimal · nullable Default sales price in the tenant default currency.

Responses

201 PublicItemDetailResponse
  • Location — URL of the newly created resource.
Field Type Description
allowBackorder boolean Whether customers can back-order the item when it is out of stock.
allowPreOrder boolean Whether customers can pre-order the item before it is in stock.
attributes ItemAttribute[] · nullable Specification attributes (Material, Energy class, …) as name/value pairs. Empty if none.
barcode string · nullable EAN / GTIN barcode of the base unit. Null if not set.
baseUnitCode string · nullable Code of the item's base unit of measure, e.g. `st`, `kg`. Null if not set.
brandCode string · nullable Stable brand code, usable to correlate against your own brand register. Null if not set.
brandName string · nullable Brand name. Null if not set.
categories ItemCategoryAssignment[] · nullable Category assignments for this item, each with its code, name and whether it belongs to the primary hierarchy. Empty if uncategorised.
costPrice decimal · nullable Purchase / cost price in the tenant default currency. Serialised as a decimal string. Null if not set.
costPriceMethod enum How `costPrice` is maintained. Mirrors `Domain.Items.CostPriceMethod`. Anything other than PublicApi.Preview.Items.Queries.PublicCostPriceMethod.Manual means the ERP recalculates the cost price on stock and supplier price changes — a value written through the API will not necessarily stay put. Manual WeightedAverage LastPurchasePrice PrimarySupplier
countryOfOrigin string · nullable ISO 3166-1 alpha-2 country of manufacture, e.g. `SE`, `CN`. Null if not set.
createdDate string(date-time) UTC timestamp when the item was created.
crossReferences ItemCrossReference[] · nullable Alternative identifiers (manufacturer part numbers, OEM numbers, extra barcodes, …). Empty if none.
decimalPlaces integer Number of decimals allowed on quantities for this item (0–6). Quantities with more decimals are rejected.
defaultReplenishmentType enum How an item is replenished. Mirrors `Domain.Items.ReplenishmentType`. Can be overridden per warehouse. Purchase Manufacture Transfer Assembly
depth decimal · nullable Depth in centimetres. Serialised as a decimal string. Null if not set.
description string · nullable Long-form description, e.g. for a product page. Null if not set.
grade enum Item condition grade (A/B/C-stock) exposed via the Public API. Mirrors `Domain.Items.Grade`. A B C D
height decimal · nullable Height in centimetres. Serialised as a decimal string. Null if not set.
hsCode string · nullable Harmonized System (HS / KN) customs tariff code. Null if not set.
id string(uuid) Internal unique identifier (UUID v7).
isActive boolean Whether the item is active. Inactive items cannot be placed on new orders.
isConfigurable boolean Whether the item is made to order from configurable features (measurements, fabrics, add-ons). True means GET /preview/items/{itemNumber}/configuration returns a configuration schema and the item is ordered through /preview/configurations rather than as a plain order line.
isSellable boolean Whether the item can be sold. False for component-only items.
isStockable boolean Whether the item is held in inventory. False for services, charges and drop-shipped items. Derived from `itemType` — use this rather than matching on the type yourself, so a new item type does not silently change how your integration classifies the item.
itemNumber string · nullable Unique item number — business key, e.g. `WIDGET-PRO`.
itemType enum Item type exposed via the Public API. Mirrors `Domain.Items.ItemType`. StockItem NonStockItem Service Work Kit Phantom Charge VariantMaster
legacyItemNumber string · nullable Item number in the system this item was migrated from. Null if not migrated.
links Links Hypermedia links for a public API resource. Exposed as a computed `links` property on the public response DTOs so that create and read responses carry the same self-reference — the canonical URL is derived from the business key already present on the DTO and can never drift from the route it points at.
modifiedDate string(date-time) · nullable UTC timestamp of the last modification. Null if never modified after creation.
name string · nullable Display name / product name.
netWeight decimal · nullable Net weight in kilograms. Serialised as a decimal string. Null if not set.
parentItemNumber string · nullable Item number of the variant master this item belongs to. Null unless the item is a variant.
publishOnWeb boolean Whether the item is published on the webshop.
salesEndDate string(date) · nullable Date until which the item can be sold (ISO 8601 date). Null if unrestricted.
salesPrice decimal · nullable Default sales price in the tenant default currency. Serialised as a decimal string. Null if not set.
salesStartDate string(date) · nullable Date from which the item can be sold (ISO 8601 date). Null if unrestricted.
status enum Item status exposed via the Public API. Mirrors `Domain.Items.ItemStatus`. Draft PendingApproval Active PhasingOut Discontinued Archived
taxClassCode string · nullable Code of the tax class governing VAT for this item, e.g. `STANDARD`. Null if not set, in which case the tenant default applies. Look the rate up via GET /preview/reference/tax-classes.
thumbnailUrl string · nullable URL to the item's thumbnail image. Null if no image is set.
units ItemUnit[] · nullable All orderable units: the base unit first (factor 1), then alternative units (box, pallet, …) with their conversion factors and barcodes.
variantAttributes ItemVariantAttribute[] · nullable The variant's own attribute values (e.g. Colour=Red, Size=M). Empty unless the item is a variant.
variantAxes ItemVariantAxis[] · nullable The axes this variant master varies on, with the values available on each (e.g. Colour = [Red, Blue], Size = [S, M, L]). Empty unless the item is a variant master. This is the master's side of the relationship — `variantAttributes` above is a single variant's values. Use GET /preview/items/{itemNumber}/variants to enumerate the variants themselves.
volume decimal · nullable Volume in <b>cubic metres</b>, computed from width × height × depth — which are in <b>centimetres</b>. Serialised as a decimal string. Null unless all three dimensions are set.
width decimal · nullable Width in centimetres. Serialised as a decimal string. Null if not set.
400 ProblemDetails A field failed validation, for example an item number containing characters outside A-Z, 0-9, hyphen and underscore.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable

Standard errors: 401 403 Errors

Examples

curl
curl -X POST "https://api.erp.fluit.cloud/preview/items" \
  -H "X-Api-Key: fluit_live_sk_..." \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d @body.json
Full item with pricing and customs
{
  "barcode": "7350100500001",
  "costPrice": "120.00",
  "countryOfOrigin": "SE",
  "description": "High-quality widget for professional use.",
  "hsCode": "84795000",
  "itemNumber": "WIDGET-PRO",
  "name": "Widget Pro 3000",
  "salesPrice": "299.00"
}
Minimal — name only
{
  "name": "Widget Pro 3000"
}
Response 201
{
  "allowBackorder": true,
  "allowPreOrder": true,
  "attributes": [
    {
      "code": "string",
      "dataType": "Text",
      "name": "Widget A",
      "unit": "st",
      "value": "string"
    }
  ],
  "barcode": "string",
  "baseUnitCode": "st",
  "brandCode": "STD",
  "brandName": "Fluit",
  "categories": [
    {
      "code": "string",
      "isPrimary": true,
      "name": "Hand tools"
    }
  ],
  "costPrice": "299.00",
  "costPriceMethod": "Manual",
  "countryOfOrigin": "string",
  "createdDate": "2026-06-11T09:24:13.418",
  "crossReferences": [
    {
      "isPrimary": true,
      "referenceNumber": "ABC-001",
      "source": "string",
      "type": "Manufacturer"
    }
  ],
  "decimalPlaces": 2,
  "defaultReplenishmentType": "Purchase",
  "depth": "299.00",
  "description": "string",
  "grade": "A",
  "height": "299.00",
  "hsCode": "STD",
  "id": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
  "isActive": true,
  "isConfigurable": true,
  "isSellable": true,
  "isStockable": true,
  "itemNumber": "WIDGET-A",
  "itemType": "StockItem",
  "legacyItemNumber": "ABC-001",
  "links": {
    "self": "string"
  },
  "modifiedDate": "2026-06-11T09:24:13.418",
  "name": "Widget A",
  "netWeight": "1.250",
  "parentItemNumber": "ABC-001",
  "publishOnWeb": true,
  "salesEndDate": "2026-06-11",
  "salesPrice": "299.00",
  "salesStartDate": "2026-06-11",
  "status": "Draft",
  "taxClassCode": "STD",
  "thumbnailUrl": "https://cdn.fluit.cloud/assets/widget-a-front-thumb.jpg",
  "units": [
    {
      "barcode": "string",
      "conversionFactor": "299.00",
      "isPurchaseUnit": true,
      "isSalesUnit": true,
      "unitCode": "st"
    }
  ],
  "variantAttributes": [
    {
      "name": "Widget A",
      "value": "string"
    }
  ],
  "variantAxes": [
    {
      "name": "Widget A",
      "values": [
        "string"
      ]
    }
  ],
  "volume": "299.00",
  "width": "299.00"
}

Base URL https://api.erp.fluit.cloud/preview. The response example is generated from the schema: the shape is right, the values are made up.

GET /items/{itemNumber}

Get an item by item number

Returns the full details of an item by its unique item number: all orderable units with barcodes and conversion factors (base unit first), specification attributes, category assignments, cross-references (MPN/OEM/extra barcodes) and, for variants, the parent item and variant attribute values.

Show the full description

The list endpoint returns a leaner representation without these collections. Responses carry a weak ETag; pass it back in If-None-Match to get 304 Not Modified while the record is unchanged. The validator follows the whole record, so a change to a nested part invalidates it too.

items:read Supports ETag

Path parameters

Field Type Description
itemNumber Required string Item number of the item to read.

Responses

200 PublicItemDetailResponse
  • ETag — Weak validator for this representation. Pass it back in If-None-Match to get 304 Not Modified while the record is unchanged.
Field Type Description
allowBackorder boolean Whether customers can back-order the item when it is out of stock.
allowPreOrder boolean Whether customers can pre-order the item before it is in stock.
attributes ItemAttribute[] · nullable Specification attributes (Material, Energy class, …) as name/value pairs. Empty if none.
barcode string · nullable EAN / GTIN barcode of the base unit. Null if not set.
baseUnitCode string · nullable Code of the item's base unit of measure, e.g. `st`, `kg`. Null if not set.
brandCode string · nullable Stable brand code, usable to correlate against your own brand register. Null if not set.
brandName string · nullable Brand name. Null if not set.
categories ItemCategoryAssignment[] · nullable Category assignments for this item, each with its code, name and whether it belongs to the primary hierarchy. Empty if uncategorised.
costPrice decimal · nullable Purchase / cost price in the tenant default currency. Serialised as a decimal string. Null if not set.
costPriceMethod enum How `costPrice` is maintained. Mirrors `Domain.Items.CostPriceMethod`. Anything other than PublicApi.Preview.Items.Queries.PublicCostPriceMethod.Manual means the ERP recalculates the cost price on stock and supplier price changes — a value written through the API will not necessarily stay put. Manual WeightedAverage LastPurchasePrice PrimarySupplier
countryOfOrigin string · nullable ISO 3166-1 alpha-2 country of manufacture, e.g. `SE`, `CN`. Null if not set.
createdDate string(date-time) UTC timestamp when the item was created.
crossReferences ItemCrossReference[] · nullable Alternative identifiers (manufacturer part numbers, OEM numbers, extra barcodes, …). Empty if none.
decimalPlaces integer Number of decimals allowed on quantities for this item (0–6). Quantities with more decimals are rejected.
defaultReplenishmentType enum How an item is replenished. Mirrors `Domain.Items.ReplenishmentType`. Can be overridden per warehouse. Purchase Manufacture Transfer Assembly
depth decimal · nullable Depth in centimetres. Serialised as a decimal string. Null if not set.
description string · nullable Long-form description, e.g. for a product page. Null if not set.
grade enum Item condition grade (A/B/C-stock) exposed via the Public API. Mirrors `Domain.Items.Grade`. A B C D
height decimal · nullable Height in centimetres. Serialised as a decimal string. Null if not set.
hsCode string · nullable Harmonized System (HS / KN) customs tariff code. Null if not set.
id string(uuid) Internal unique identifier (UUID v7).
isActive boolean Whether the item is active. Inactive items cannot be placed on new orders.
isConfigurable boolean Whether the item is made to order from configurable features (measurements, fabrics, add-ons). True means GET /preview/items/{itemNumber}/configuration returns a configuration schema and the item is ordered through /preview/configurations rather than as a plain order line.
isSellable boolean Whether the item can be sold. False for component-only items.
isStockable boolean Whether the item is held in inventory. False for services, charges and drop-shipped items. Derived from `itemType` — use this rather than matching on the type yourself, so a new item type does not silently change how your integration classifies the item.
itemNumber string · nullable Unique item number — business key, e.g. `WIDGET-PRO`.
itemType enum Item type exposed via the Public API. Mirrors `Domain.Items.ItemType`. StockItem NonStockItem Service Work Kit Phantom Charge VariantMaster
legacyItemNumber string · nullable Item number in the system this item was migrated from. Null if not migrated.
links Links Hypermedia links for a public API resource. Exposed as a computed `links` property on the public response DTOs so that create and read responses carry the same self-reference — the canonical URL is derived from the business key already present on the DTO and can never drift from the route it points at.
modifiedDate string(date-time) · nullable UTC timestamp of the last modification. Null if never modified after creation.
name string · nullable Display name / product name.
netWeight decimal · nullable Net weight in kilograms. Serialised as a decimal string. Null if not set.
parentItemNumber string · nullable Item number of the variant master this item belongs to. Null unless the item is a variant.
publishOnWeb boolean Whether the item is published on the webshop.
salesEndDate string(date) · nullable Date until which the item can be sold (ISO 8601 date). Null if unrestricted.
salesPrice decimal · nullable Default sales price in the tenant default currency. Serialised as a decimal string. Null if not set.
salesStartDate string(date) · nullable Date from which the item can be sold (ISO 8601 date). Null if unrestricted.
status enum Item status exposed via the Public API. Mirrors `Domain.Items.ItemStatus`. Draft PendingApproval Active PhasingOut Discontinued Archived
taxClassCode string · nullable Code of the tax class governing VAT for this item, e.g. `STANDARD`. Null if not set, in which case the tenant default applies. Look the rate up via GET /preview/reference/tax-classes.
thumbnailUrl string · nullable URL to the item's thumbnail image. Null if no image is set.
units ItemUnit[] · nullable All orderable units: the base unit first (factor 1), then alternative units (box, pallet, …) with their conversion factors and barcodes.
variantAttributes ItemVariantAttribute[] · nullable The variant's own attribute values (e.g. Colour=Red, Size=M). Empty unless the item is a variant.
variantAxes ItemVariantAxis[] · nullable The axes this variant master varies on, with the values available on each (e.g. Colour = [Red, Blue], Size = [S, M, L]). Empty unless the item is a variant master. This is the master's side of the relationship — `variantAttributes` above is a single variant's values. Use GET /preview/items/{itemNumber}/variants to enumerate the variants themselves.
volume decimal · nullable Volume in <b>cubic metres</b>, computed from width × height × depth — which are in <b>centimetres</b>. Serialised as a decimal string. Null unless all three dimensions are set.
width decimal · nullable Width in centimetres. Serialised as a decimal string. Null if not set.
304 Empty body.
  • ETag — Weak validator for this representation. Pass it back in If-None-Match to get 304 Not Modified while the record is unchanged.
404 ProblemDetails No item with that item number.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable

Standard errors: 401 403 Errors

Examples

curl
curl "https://api.erp.fluit.cloud/preview/items/{itemNumber}" \
  -H "X-Api-Key: fluit_live_sk_..."
Response 200
{
  "allowBackorder": true,
  "allowPreOrder": true,
  "attributes": [
    {
      "code": "string",
      "dataType": "Text",
      "name": "Widget A",
      "unit": "st",
      "value": "string"
    }
  ],
  "barcode": "string",
  "baseUnitCode": "st",
  "brandCode": "STD",
  "brandName": "Fluit",
  "categories": [
    {
      "code": "string",
      "isPrimary": true,
      "name": "Hand tools"
    }
  ],
  "costPrice": "299.00",
  "costPriceMethod": "Manual",
  "countryOfOrigin": "string",
  "createdDate": "2026-06-11T09:24:13.418",
  "crossReferences": [
    {
      "isPrimary": true,
      "referenceNumber": "ABC-001",
      "source": "string",
      "type": "Manufacturer"
    }
  ],
  "decimalPlaces": 2,
  "defaultReplenishmentType": "Purchase",
  "depth": "299.00",
  "description": "string",
  "grade": "A",
  "height": "299.00",
  "hsCode": "STD",
  "id": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
  "isActive": true,
  "isConfigurable": true,
  "isSellable": true,
  "isStockable": true,
  "itemNumber": "WIDGET-A",
  "itemType": "StockItem",
  "legacyItemNumber": "ABC-001",
  "links": {
    "self": "string"
  },
  "modifiedDate": "2026-06-11T09:24:13.418",
  "name": "Widget A",
  "netWeight": "1.250",
  "parentItemNumber": "ABC-001",
  "publishOnWeb": true,
  "salesEndDate": "2026-06-11",
  "salesPrice": "299.00",
  "salesStartDate": "2026-06-11",
  "status": "Draft",
  "taxClassCode": "STD",
  "thumbnailUrl": "https://cdn.fluit.cloud/assets/widget-a-front-thumb.jpg",
  "units": [
    {
      "barcode": "string",
      "conversionFactor": "299.00",
      "isPurchaseUnit": true,
      "isSalesUnit": true,
      "unitCode": "st"
    }
  ],
  "variantAttributes": [
    {
      "name": "Widget A",
      "value": "string"
    }
  ],
  "variantAxes": [
    {
      "name": "Widget A",
      "values": [
        "string"
      ]
    }
  ],
  "volume": "299.00",
  "width": "299.00"
}

Base URL https://api.erp.fluit.cloud/preview. The response example is generated from the schema: the shape is right, the values are made up.

PATCH /items/{itemNumber}

Update an item

Partially updates an item. Only provided fields are updated (JSON Merge Patch semantics). Omitted fields are left unchanged. Pass null to clear a nullable field.

Show the full description

Unknown fields are rejected with 400, naming the field and listing the ones this endpoint accepts. itemNumber cannot be changed here — it is the resource's public key and the address external systems reference.

items:write

Path parameters

Field Type Description
itemNumber Required string Item number of the item to update.

Body required

Field Type Description
allowBackorder boolean · nullable Whether customers can back-order the item when it is out of stock.
allowPreOrder boolean · nullable Whether customers can pre-order the item before it is in stock.
barcode string · nullable EAN / GTIN barcode or other scanning code. Pass `null` to clear.
costPrice decimal · nullable Purchase / cost price in the tenant default currency. Pass `null` to clear.
countryOfOrigin string · nullable ISO 3166-1 alpha-2 country of manufacture, e.g. `SE`, `CN`. Pass `null` to clear.
depth decimal · nullable Depth in centimetres. Pass `null` to clear.
description string · nullable Long-form description, e.g. for a webshop product page. Pass `null` to clear.
height decimal · nullable Height in centimetres. Pass `null` to clear.
hsCode string · nullable Harmonized System (HS / KN) customs tariff code. Pass `null` to clear.
itemType enum Item type exposed via the Public API. Mirrors `Domain.Items.ItemType`. StockItem NonStockItem Service Work Kit Phantom Charge VariantMaster
name string · nullable Display name / product name.
netWeight decimal · nullable Net weight in kilograms. Pass `null` to clear.
publishOnWeb boolean · nullable Whether the item is published on the webshop.
salesEndDate string(date) · nullable Date until which the item can be sold. Pass `null` to clear.
salesPrice decimal · nullable Default sales price in the tenant default currency. Pass `null` to clear.
salesStartDate string(date) · nullable Date from which the item can be sold. Pass `null` to clear.
status enum Item status exposed via the Public API. Mirrors `Domain.Items.ItemStatus`. Draft PendingApproval Active PhasingOut Discontinued Archived
width decimal · nullable Width in centimetres. Pass `null` to clear.

Responses

204 Empty body.
400 ProblemDetails The body is not a JSON object, contains a field this endpoint does not have, or a field present in it failed validation.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable
404 ProblemDetails No item with that item number.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable

Standard errors: 401 403 Errors

Examples

curl
curl -X PATCH "https://api.erp.fluit.cloud/preview/items/{itemNumber}" \
  -H "X-Api-Key: fluit_live_sk_..." \
  -H "Content-Type: application/json" \
  -d @body.json
Response 400
{
  "detail": "string",
  "instance": "string",
  "status": 42,
  "title": "string",
  "type": "string"
}

Base URL https://api.erp.fluit.cloud/preview. The response example is generated from the schema: the shape is right, the values are made up.

GET /items/{itemNumber}/assets

List item assets

Returns a paginated list of the item's public images and documents, primary image first and then by sort order. Only assets marked as public are included. url points either to an external location or to GET /preview/items/{itemNumber}/assets/{assetId}/download (same API key required).

Show the full description

Use languageCode to pick language-specific assets where present.

items:read Paginated

Path parameters

Field Type Description
itemNumber Required string Item number of the item whose assets to list.

Query parameters

Field Type Description
page integer Page to return, 1-based. Default 1.
pageSize integer Number of records per page. Default 50, max 200.

Responses

200 PagedResult_PublicItemAssetResponse

Paginated response: the fields below sit in items[], wrapped in totalCount, page, pageSize, totalPages, hasPreviousPage and hasNextPage. Paginated

Field Type Description
altText string · nullable Alt text for images (SEO/accessibility). Null if not set.
assetType enum Type of an item asset. Mirrors `Domain.Items.AssetType`. Image Document
category enum Category of an item asset. Mirrors `Domain.Items.AssetCategory`. MainImage GalleryImage LifestyleImage TechnicalImage VariantImage Datasheet Manual Certificate SafetySheet Warranty Brochure Installation Firmware Software Other
contentType string · nullable MIME content type, e.g. `image/jpeg`, `application/pdf`.
description string · nullable Free-text description. Null if not set.
displayName string · nullable Display name for UI listings. Null if not set.
fileName string · nullable Original file name, e.g. `widget-pro-front.jpg`.
fileSize integer File size in bytes.
height integer · nullable Image height in pixels. Null for non-images or if unknown.
id string(uuid) Internal unique identifier of the asset.
isPrimary boolean Whether this is the item's primary image (used as thumbnail in item responses).
languageCode string · nullable ISO 639-1 language code if the asset is language-specific, e.g. `sv`. Null if language-neutral.
sortOrder integer Sort order for galleries (ascending).
thumbnailUrl string · nullable URL to a thumbnail rendition. Null if no thumbnail exists.
url string · nullable URL to download the full asset. Either an external URL or a /preview download endpoint (requires the same API key).
width integer · nullable Image width in pixels. Null for non-images or if unknown.
404 ProblemDetails No item with that item number.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable

Standard errors: 401 403 Errors

Examples

curl
curl "https://api.erp.fluit.cloud/preview/items/{itemNumber}/assets" \
  -H "X-Api-Key: fluit_live_sk_..."
Response 200
{
  "hasNextPage": true,
  "hasPreviousPage": true,
  "items": [
    {
      "altText": "string",
      "assetType": "Image",
      "category": "MainImage",
      "contentType": "image/jpeg",
      "description": "string",
      "displayName": "Widget A",
      "fileName": "widget-a-front.jpg",
      "fileSize": 42,
      "height": 42,
      "id": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
      "isPrimary": true,
      "languageCode": "STD",
      "sortOrder": 42,
      "thumbnailUrl": "https://cdn.fluit.cloud/assets/widget-a-front-thumb.jpg",
      "url": "https://cdn.fluit.cloud/assets/widget-a-front.jpg",
      "width": 42
    }
  ],
  "page": 1,
  "pageSize": 50,
  "totalCount": 137,
  "totalPages": 3
}

Base URL https://api.erp.fluit.cloud/preview. The response example is generated from the schema: the shape is right, the values are made up.

GET /items/{itemNumber}/assets/{assetId}/download

Download an item asset

Streams the asset file (image or document). Externally hosted assets return a 302 redirect to the external URL. Only assets marked as public can be downloaded.

items:read

Path parameters

Field Type Description
itemNumber Required string Item number of the item the asset belongs to.
assetId Required string(uuid) Id of the asset, as returned by the asset list endpoint.

Responses

200 Empty body.
302 Empty body.
404 ProblemDetails No public asset with that id on that item — the same answer whether the item, the asset or only its public flag is missing.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable

Standard errors: 401 403 Errors

Examples

curl
curl "https://api.erp.fluit.cloud/preview/items/{itemNumber}/assets/{assetId}/download" \
  -H "X-Api-Key: fluit_live_sk_..."
Response 404
{
  "detail": "string",
  "instance": "string",
  "status": 42,
  "title": "string",
  "type": "string"
}

Base URL https://api.erp.fluit.cloud/preview. The response example is generated from the schema: the shape is right, the values are made up.

GET /items/{itemNumber}/availability

Get item stock availability

Returns the item's stock availability summed across all active warehouses and broken down per warehouse. availableQuantity is the quantity that can be promised to new orders (on hand minus reservations).

Show the full description

Items never stocked in a warehouse return an empty warehouses list with zero totals. The warehouse breakdown is bounded by the tenant's warehouse count and is not paginated.

items:read

Path parameters

Field Type Description
itemNumber Required string Item number of the item to read availability for.

Responses

200 PublicItemAvailabilityResponse
Field Type Description
itemNumber string · nullable Item number of the item.
totalAllocatedQuantity decimal Total quantity reserved for orders across all warehouses. Serialised as a decimal string.
totalAvailableQuantity decimal Total quantity available for new orders (on hand − allocated). Serialised as a decimal string.
totalQuantityOnHand decimal Total physical quantity on hand across all warehouses. Serialised as a decimal string.
warehouses WarehouseAvailability[] · nullable Per-warehouse breakdown. Empty list if the item is not stocked in any warehouse.
404 ProblemDetails No item with that item number.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable

Standard errors: 401 403 Errors

Examples

curl
curl "https://api.erp.fluit.cloud/preview/items/{itemNumber}/availability" \
  -H "X-Api-Key: fluit_live_sk_..."
Response 200
{
  "itemNumber": "WIDGET-A",
  "totalAllocatedQuantity": "10",
  "totalAvailableQuantity": "10",
  "totalQuantityOnHand": "10",
  "warehouses": [
    {
      "allocatedQuantity": "10",
      "availableQuantity": "10",
      "quantityOnHand": "10",
      "replenishmentType": "Purchase",
      "requiresBatch": true,
      "requiresSerial": true,
      "trackingType": "None",
      "warehouseCode": "MAIN",
      "warehouseName": "Main warehouse"
    }
  ]
}

Base URL https://api.erp.fluit.cloud/preview. The response example is generated from the schema: the shape is right, the values are made up.

GET /items/{itemNumber}/price

Calculate item price

Calculates the price for an item via the price engine — the same price an order line would get. quantityBreaks lists the volume price tiers of the applied price list.

items:read

Path parameters

Field Type Description
itemNumber Required string Item number of the item to price.

Query parameters

Field Type Description
customerNumber string Prices for this customer, applying their price lists, agreements and campaigns. Omit for the default price.
currencyCode string ISO 4217 currency to price in. Defaults to the customer's currency, then the tenant base currency.
quantity decimal Quantity to price, which is what activates volume pricing. Must be greater than zero. Default 1.

Responses

200 PublicItemPriceResponse
Field Type Description
currencyCode string · nullable ISO 4217 currency code of the price.
customerNumber string · nullable Customer number the price was calculated for. Null for the default price.
found boolean Whether a price was found. If false, unitPrice is 0 and the item has no configured price.
itemName string · nullable Display name of the item.
itemNumber string · nullable Item number of the priced item.
priceListName string · nullable Name of the price list used. Null if no price list applied.
priceSource string · nullable Where the price came from, e.g. `Customer`, `Campaign`, `Standard`.
quantity decimal Quantity the price was calculated for. Serialised as a decimal string.
quantityBreaks QuantityBreak[] · nullable Volume price breaks from the applied price list. Empty if none.
unit string · nullable Unit of measure code the price applies to, e.g. `st`.
unitPrice decimal Calculated net unit price. Serialised as a decimal string.
400 ProblemDetails The quantity is zero or less, or no customer has that customer number.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable
404 ProblemDetails No item with that item number.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable

Standard errors: 401 403 Errors

Examples

curl
curl "https://api.erp.fluit.cloud/preview/items/{itemNumber}/price" \
  -H "X-Api-Key: fluit_live_sk_..."
Response 200
{
  "currencyCode": "SEK",
  "customerNumber": "CUST-001",
  "found": true,
  "itemName": "Widget A",
  "itemNumber": "WIDGET-A",
  "priceListName": "Retail 2026",
  "priceSource": "string",
  "quantity": "10",
  "quantityBreaks": [
    {
      "discountPercent": "12.50",
      "minQuantity": "10",
      "unitPrice": "299.00"
    }
  ],
  "unit": "st",
  "unitPrice": "299.00"
}

Base URL https://api.erp.fluit.cloud/preview. The response example is generated from the schema: the shape is right, the values are made up.

GET /items/{itemNumber}/variants

List an item's variants

Returns the variants belonging to a variant master, e.g. every colour and size of a T-shirt. The master itself declares which axes it varies on — read variantAxes on GET /preview/items/{itemNumber} — and each variant here reports its own values in variantAttributes.

Show the full description

Returns 404 only if the item number does not exist; an item that is not a variant master returns an empty page, so a catalogue sync can call this for every item without knowing in advance which ones have variants. The status filter is matched case-insensitively and an unknown value returns 400. Sorted by item number.

items:read Paginated

Path parameters

Field Type Description
itemNumber Required string Item number of the variant master whose variants to list.

Query parameters

Field Type Description
status enum Filters on the variant's lifecycle status. Draft PendingApproval Active PhasingOut Discontinued Archived
page integer Page to return, 1-based. Default 1.
pageSize integer Number of records per page. Default 50, max 200.

Responses

200 PagedResult_PublicItemVariantResponse

Paginated response: the fields below sit in items[], wrapped in totalCount, page, pageSize, totalPages, hasPreviousPage and hasNextPage. Paginated

Field Type Description
barcode string · nullable EAN / GTIN barcode of the variant. Null if not set.
id string(uuid) Internal unique identifier (UUID v7).
isActive boolean Whether the variant is active. Inactive variants cannot be placed on new orders.
isSellable boolean Whether the variant can be sold.
itemNumber string · nullable Unique item number of the variant — use this on order lines.
links Links Hypermedia links for a public API resource. Exposed as a computed `links` property on the public response DTOs so that create and read responses carry the same self-reference — the canonical URL is derived from the business key already present on the DTO and can never drift from the route it points at.
name string · nullable Display name of the variant.
salesPrice decimal · nullable Default sales price in the tenant default currency. Serialised as a decimal string. Null if not set.
status enum Item status exposed via the Public API. Mirrors `Domain.Items.ItemStatus`. Draft PendingApproval Active PhasingOut Discontinued Archived
thumbnailUrl string · nullable URL to the variant's thumbnail image. Null if no public image is set.
variantAttributes ItemVariantAttribute[] · nullable The values that distinguish this variant, e.g. Colour=Red, Size=M. One entry per axis declared by the master in `variantAxes`.
400 ProblemDetails ?status= got a value outside its list.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable
404 ProblemDetails No item with that item number. An item that exists but is not a variant master returns an empty page instead.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable

Standard errors: 401 403 Errors

Examples

curl
curl "https://api.erp.fluit.cloud/preview/items/{itemNumber}/variants" \
  -H "X-Api-Key: fluit_live_sk_..."
Response 200
{
  "hasNextPage": true,
  "hasPreviousPage": true,
  "items": [
    {
      "barcode": "string",
      "id": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
      "isActive": true,
      "isSellable": true,
      "itemNumber": "WIDGET-A",
      "links": {
        "self": "string"
      },
      "name": "Widget A",
      "salesPrice": "299.00",
      "status": "Draft",
      "thumbnailUrl": "https://cdn.fluit.cloud/assets/widget-a-front-thumb.jpg",
      "variantAttributes": [
        {
          "name": "Widget A",
          "value": "string"
        }
      ]
    }
  ],
  "page": 1,
  "pageSize": 50,
  "totalCount": 137,
  "totalPages": 3
}

Base URL https://api.erp.fluit.cloud/preview. The response example is generated from the schema: the shape is right, the values are made up.

Schemas

The objects this group's calls refer to. The field tables above go one level deep and link here rather than repeating the same schema on every endpoint.

ItemAttribute

PublicItemAttribute

A specification attribute value on an item.

Field Type Description
code string · nullable Stable attribute code, e.g. `MATERIAL`.
dataType enum Data type of a product attribute value. Mirrors `Domain.Items.AttributeDataType`. Determines how `attributes[].value` is formatted in responses and parsed in requests. Text WholeNumber DecimalNumber Boolean Date Url Html Color
name string · nullable Display name of the attribute, e.g. `Material`.
unit string · nullable Unit of the value, e.g. `mm`, `W`. Null if not applicable.
value string · nullable The attribute value formatted as a string (numbers use invariant format, dates ISO 8601, booleans `true`/`false`).

ItemCategoryAssignment

PublicItemCategoryAssignment

A category the item is assigned to.

Field Type Description
code string · nullable Stable category code, e.g. `TOOLS-HAND`.
isPrimary boolean Whether the category belongs to the primary category type (the main product hierarchy).
name string · nullable Display name of the category.

ItemCrossReference

PublicItemCrossReference

An alternative identifier for the item.

Field Type Description
isPrimary boolean Whether this is the preferred reference of its type.
referenceNumber string · nullable The reference number/value.
source string · nullable Source of the reference, e.g. a manufacturer or system name. Null if not set.
type enum Type of an alternative item identifier. Mirrors `Domain.Items.CrossReferenceType`. Manufacturer Oem IndustryStandard Superseded Competitor Barcode Custom

ItemUnit

PublicItemUnit

An orderable unit of measure for an item.

Field Type Description
barcode string · nullable EAN / GTIN barcode for this specific unit/pack. Null if not set.
conversionFactor decimal How many base units this unit represents (1 KART = 12 st ⇒ 12). Serialised as a decimal string.
isPurchaseUnit boolean Whether the unit may be used on purchase order lines.
isSalesUnit boolean Whether the unit may be used on sales order lines.
unitCode string · nullable Unit code — usable as `unit` on order lines, e.g. `st`, `KART`.

ItemVariantAttribute

PublicItemVariantAttribute

A variant attribute value, e.g. Colour=Red.

Field Type Description
name string · nullable Attribute name, e.g. `Colour`, `Size`.
value string · nullable The variant's value, e.g. `Red`, `M`.

ItemVariantAxis

PublicItemVariantAxis

An axis a variant master varies on, with the values available along it.

Field Type Description
name string · nullable Axis name, e.g. `Colour`, `Size`.
values string[] · nullable The values defined for this axis, e.g. `Red`, `Blue`.

QuantityBreak

PublicQuantityBreak

Volume price break — the unit price that applies from a minimum quantity.

Field Type Description
discountPercent decimal · nullable Discount in percent compared to the base price. Serialised as a decimal string. Null if not applicable.
minQuantity decimal Minimum quantity for this price. Serialised as a decimal string.
unitPrice decimal Unit price at this quantity. Serialised as a decimal string.

WarehouseAvailability

PublicWarehouseAvailability

Stock availability for an item in a single warehouse.

Field Type Description
allocatedQuantity decimal Quantity reserved for orders in this warehouse. Serialised as a decimal string.
availableQuantity decimal Quantity available for new orders (on hand − allocated). Serialised as a decimal string.
quantityOnHand decimal Physical quantity on hand in this warehouse. Serialised as a decimal string.
replenishmentType enum How an item is replenished. Mirrors `Domain.Items.ReplenishmentType`. Can be overridden per warehouse. Purchase Manufacture Transfer Assembly
requiresBatch boolean Whether movements in this warehouse must carry batch/lot numbers (`trackingType` is `Batch` or `BatchOut`).
requiresSerial boolean Whether movements in this warehouse must carry serial numbers (`trackingType` is `Serial` or `SerialOut`). A receipt or shipment without them is rejected.
trackingType enum How an item is tracked in a warehouse. Mirrors `Domain.Items.TrackingType`. Tracking is configured <b>per warehouse</b>, so this value is only meaningful in the context of one warehouse — the same item can be serial-tracked in one warehouse and untracked in another. None Serial SerialOut Batch BatchOut
warehouseCode string · nullable Warehouse code — usable as `warehouseCode` in order creation.
warehouseName string · nullable Display name of the warehouse.