Invendor Items API
The Items API from Invendor — 25 operation(s) for items.
The Items API from Invendor — 25 operation(s) for items.
openapi: 3.0.1
info:
title: IO.Common Accounts Items API
version: '1.0'
security:
- OAuth2: []
tags:
- name: Items
paths:
/v1/Items:
get:
tags:
- Items
summary: Get all items
operationId: GetItems
parameters:
- name: Name
in: query
schema:
type: string
- name: Code
in: query
schema:
type: string
- name: Vendor
in: query
schema:
type: string
- name: Barcode
in: query
schema:
type: string
- name: flag
in: query
schema:
type: array
items:
type: integer
format: int32
- name: Page
in: query
schema:
type: integer
format: int32
- name: PageSize
in: query
schema:
type: integer
format: int32
- name: SortColumn
in: query
schema:
type: string
- name: SortOrder
in: query
schema:
type: string
- name: Account
in: query
description: Account
schema:
title: Account
type: int
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ItemResponsePagedResult'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'401':
description: Unauthorized
'403':
description: Forbidden
security:
- OAuth2:
- io.common
post:
tags:
- Items
summary: Create new item
operationId: CreateItem
parameters:
- name: serviceId
in: query
description: Service id of the item.
schema:
type: string
format: uuid
- name: Account
in: query
description: Account
schema:
title: Account
type: int
requestBody:
description: Create item request data
content:
application/json-patch+json; x-api-version=1.0:
schema:
$ref: '#/components/schemas/CreateItemRequest'
application/json; x-api-version=1.0:
schema:
$ref: '#/components/schemas/CreateItemRequest'
text/json; x-api-version=1.0:
schema:
$ref: '#/components/schemas/CreateItemRequest'
application/*+json; x-api-version=1.0:
schema:
$ref: '#/components/schemas/CreateItemRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
type: integer
format: int32
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'401':
description: Unauthorized
'403':
description: Forbidden
security:
- OAuth2:
- io.common
/v1/Items/{serviceId}/items:
get:
tags:
- Items
summary: Get all service items
operationId: GetServiceItems
parameters:
- name: serviceId
in: path
description: Service id
required: true
schema:
type: string
format: uuid
- name: Name
in: query
schema:
type: string
- name: Code
in: query
schema:
type: string
- name: Vendor
in: query
schema:
type: string
- name: Barcode
in: query
schema:
type: string
- name: flag
in: query
schema:
type: array
items:
type: integer
format: int32
- name: Page
in: query
schema:
type: integer
format: int32
- name: PageSize
in: query
schema:
type: integer
format: int32
- name: SortColumn
in: query
schema:
type: string
- name: SortOrder
in: query
schema:
type: string
- name: Account
in: query
description: Account
schema:
title: Account
type: int
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ItemResponsePagedResult'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'401':
description: Unauthorized
'403':
description: Forbidden
security:
- OAuth2:
- io.common
/v1/Items/{itemId}:
get:
tags:
- Items
summary: Get item details
operationId: GetItemDetails
parameters:
- name: itemId
in: path
description: ''
required: true
schema:
type: integer
format: int32
- name: Account
in: query
description: Account
schema:
title: Account
type: int
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ItemDetailsResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'401':
description: Unauthorized
'403':
description: Forbidden
security:
- OAuth2:
- io.common
put:
tags:
- Items
summary: Update existing item
operationId: UpdateItem
parameters:
- name: itemId
in: path
description: Item to update
required: true
schema:
type: integer
format: int32
- name: Account
in: query
description: Account
schema:
title: Account
type: int
requestBody:
description: Update DTO
content:
application/json-patch+json; x-api-version=1.0:
schema:
$ref: '#/components/schemas/UpdateItemRequest'
application/json; x-api-version=1.0:
schema:
$ref: '#/components/schemas/UpdateItemRequest'
text/json; x-api-version=1.0:
schema:
$ref: '#/components/schemas/UpdateItemRequest'
application/*+json; x-api-version=1.0:
schema:
$ref: '#/components/schemas/UpdateItemRequest'
responses:
'200':
description: Success
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'401':
description: Unauthorized
'403':
description: Forbidden
security:
- OAuth2:
- io.common
delete:
tags:
- Items
summary: Delete item
operationId: DeleteItem
parameters:
- name: itemId
in: path
description: Item id to delete
required: true
schema:
type: integer
format: int32
- name: Account
in: query
description: Account
schema:
title: Account
type: int
responses:
'200':
description: Success
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'401':
description: Unauthorized
'403':
description: Forbidden
security:
- OAuth2:
- io.common
/v1/Items/{itemId}/conversions:
get:
tags:
- Items
summary: Get item unit conversions
operationId: GetItemUnitConversions
parameters:
- name: itemId
in: path
description: ''
required: true
schema:
type: integer
format: int32
- name: Filter
in: query
schema:
type: string
- name: Page
in: query
schema:
type: integer
format: int32
- name: PageSize
in: query
schema:
type: integer
format: int32
- name: SortColumn
in: query
schema:
type: string
- name: SortOrder
in: query
schema:
type: string
- name: Account
in: query
description: Account
schema:
title: Account
type: int
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/UnitConversionPagedResult'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'401':
description: Unauthorized
'403':
description: Forbidden
security:
- OAuth2:
- io.common
/v1/Items/{itemId}/altitems:
get:
tags:
- Items
summary: Get item alternative items
operationId: GetItemAltItems
parameters:
- name: itemId
in: path
description: ''
required: true
schema:
type: integer
format: int32
- name: Filter
in: query
schema:
type: string
- name: Page
in: query
schema:
type: integer
format: int32
- name: PageSize
in: query
schema:
type: integer
format: int32
- name: SortColumn
in: query
schema:
type: string
- name: SortOrder
in: query
schema:
type: string
- name: Account
in: query
description: Account
schema:
title: Account
type: int
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AltItemResponsePagedResult'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'401':
description: Unauthorized
'403':
description: Forbidden
security:
- OAuth2:
- io.common
post:
tags:
- Items
summary: Create item alternative item
operationId: CreateItemAltItem
parameters:
- name: itemId
in: path
description: Item id
required: true
schema:
type: integer
format: int32
- name: Account
in: query
description: Account
schema:
title: Account
type: int
requestBody:
description: Create alternative item request
content:
application/json-patch+json; x-api-version=1.0:
schema:
$ref: '#/components/schemas/CreateAltItemRequest'
application/json; x-api-version=1.0:
schema:
$ref: '#/components/schemas/CreateAltItemRequest'
text/json; x-api-version=1.0:
schema:
$ref: '#/components/schemas/CreateAltItemRequest'
application/*+json; x-api-version=1.0:
schema:
$ref: '#/components/schemas/CreateAltItemRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
type: integer
format: int32
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'401':
description: Unauthorized
'403':
description: Forbidden
security:
- OAuth2:
- io.common
put:
tags:
- Items
summary: Update item alternative item based on orig. itemId and account
operationId: UpdateItemAltItemByItemId
parameters:
- name: itemId
in: path
description: ''
required: true
schema:
type: integer
format: int32
- name: Account
in: query
description: Account
schema:
title: Account
type: int
requestBody:
description: Update alternative item request
content:
application/json-patch+json; x-api-version=1.0:
schema:
$ref: '#/components/schemas/UpdateAltItemRequest'
application/json; x-api-version=1.0:
schema:
$ref: '#/components/schemas/UpdateAltItemRequest'
text/json; x-api-version=1.0:
schema:
$ref: '#/components/schemas/UpdateAltItemRequest'
application/*+json; x-api-version=1.0:
schema:
$ref: '#/components/schemas/UpdateAltItemRequest'
responses:
'200':
description: Success
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'401':
description: Unauthorized
'403':
description: Forbidden
security:
- OAuth2:
- io.common
delete:
tags:
- Items
summary: Delete item alternative item by itemId and account Id
operationId: DeleteItemAltItemByItemId
parameters:
- name: itemId
in: path
description: Item id
required: true
schema:
type: integer
format: int32
- name: Account
in: query
description: Account
schema:
title: Account
type: int
responses:
'200':
description: Success
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'401':
description: Unauthorized
'403':
description: Forbidden
security:
- OAuth2:
- io.common
/v1/Items/altitems/{altItemId}:
put:
tags:
- Items
summary: Update item alternative item based on alt item id
operationId: UpdateItemAltItemById
parameters:
- name: altItemId
in: path
description: ID of the alt item record
required: true
schema:
type: integer
format: int32
- name: Account
in: query
description: Account
schema:
title: Account
type: int
requestBody:
description: Update alternative item request
content:
application/json-patch+json; x-api-version=1.0:
schema:
$ref: '#/components/schemas/UpdateAltItemRequest'
application/json; x-api-version=1.0:
schema:
$ref: '#/components/schemas/UpdateAltItemRequest'
text/json; x-api-version=1.0:
schema:
$ref: '#/components/schemas/UpdateAltItemRequest'
application/*+json; x-api-version=1.0:
schema:
$ref: '#/components/schemas/UpdateAltItemRequest'
responses:
'200':
description: Success
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'401':
description: Unauthorized
'403':
description: Forbidden
security:
- OAuth2:
- io.common
delete:
tags:
- Items
summary: Delete item alternative item by alt item id
operationId: DeleteItemAltItemById
parameters:
- name: altItemId
in: path
description: Alternative item id
required: true
schema:
type: integer
format: int32
- name: Account
in: query
description: Account
schema:
title: Account
type: int
responses:
'200':
description: Success
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'401':
description: Unauthorized
'403':
description: Forbidden
security:
- OAuth2:
- io.common
/v1/Items/altitems/bulk:
post:
tags:
- Items
summary: Bulk upsert alternative items for multiple items
operationId: BulkUpsertAltItems
parameters:
- name: Account
in: query
description: Account
schema:
title: Account
type: int
requestBody:
description: List of alternative item requests
content:
application/json-patch+json; x-api-version=1.0:
schema:
type: array
items:
$ref: '#/components/schemas/BulkUpsertAltItemRequest'
application/json; x-api-version=1.0:
schema:
type: array
items:
$ref: '#/components/schemas/BulkUpsertAltItemRequest'
text/json; x-api-version=1.0:
schema:
type: array
items:
$ref: '#/components/schemas/BulkUpsertAltItemRequest'
application/*+json; x-api-version=1.0:
schema:
type: array
items:
$ref: '#/components/schemas/BulkUpsertAltItemRequest'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/BulkUpsertAltItemsResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'401':
description: Unauthorized
'403':
description: Forbidden
security:
- OAuth2:
- io.common
/v1/Items/properties:
get:
tags:
- Items
summary: Get the list of all the properties added to items
operationId: GetAllUsedItemProperties
parameters:
- name: Account
in: query
description: Account
schema:
title: Account
type: int
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
type: string
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'401':
description: Unauthorized
'403':
description: Forbidden
security:
- OAuth2:
- io.common
/v1/Items/definedProperties:
get:
tags:
- Items
summary: Get the defined properties for items
operationId: Get defined properties for items
parameters:
- name: Account
in: query
description: Account
schema:
title: Account
type: int
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/GetDefinedPropertyParametersResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'401':
description: Unauthorized
'403':
description: Forbidden
security:
- OAuth2:
- io.common
post:
tags:
- Items
summary: Create new item property with parameters
operationId: Create item defined property with parameters
parameters:
- name: Account
in: query
description: Account
schema:
title: Account
type: int
requestBody:
description: ''
content:
application/json-patch+json; x-api-version=1.0:
schema:
$ref: '#/components/schemas/CreateDefinedPropertyParametersRequest'
application/json; x-api-version=1.0:
schema:
$ref: '#/components/schemas/CreateDefinedPropertyParametersRequest'
text/json; x-api-version=1.0:
schema:
$ref: '#/components/schemas/CreateDefinedPropertyParametersRequest'
application/*+json; x-api-version=1.0:
schema:
$ref: '#/components/schemas/CreateDefinedPropertyParametersRequest'
responses:
'201':
description: Created
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'401':
description: Unauthorized
'403':
description: Forbidden
security:
- OAuth2:
- io.common
/v1/Items/definedProperties/{id}:
put:
tags:
- Items
summary: Update existing item property with parameters
operationId: Update item defined property with parameters
parameters:
- name: id
in: path
description: Property parameter Id
required: true
schema:
type: integer
format: int32
- name: Account
in: query
description: Account
schema:
title: Account
type: int
requestBody:
description: ''
content:
application/json-patch+json; x-api-version=1.0:
schema:
$ref: '#/components/schemas/UpdateDefinedPropertyParametersRequest'
application/json; x-api-version=1.0:
schema:
$ref: '#/components/schemas/UpdateDefinedPropertyParametersRequest'
text/json; x-api-version=1.0:
schema:
$ref: '#/components/schemas/UpdateDefinedPropertyParametersRequest'
application/*+json; x-api-version=1.0:
schema:
$ref: '#/components/schemas/UpdateDefinedPropertyParametersRequest'
responses:
'200':
description: Success
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'401':
description: Unauthorized
'403':
description: Forbidden
security:
- OAuth2:
- io.common
delete:
tags:
- Items
summary: Delete existing item property with parameters
operationId: Delete item defined propety with parameters
parameters:
- name: id
in: path
description: Property parameter Id
required: true
schema:
type: integer
format: int32
- name: Account
in: query
description: Account
schema:
title: Account
type: int
responses:
'200':
description: Success
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'401':
description: Unauthorized
'403':
description: Forbidden
security:
- OAuth2:
- io.common
/v1/Items/definedProperties/bulk:
post:
tags:
- Items
summary: Bulk upsert/delete item properties with parameters
operationId: Create or update item defined propeties with parameters
parameters:
- name: Account
in: query
description: Account
schema:
title: Account
type: int
requestBody:
description: ''
content:
application/json-patch+json; x-api-version=1.0:
schema:
type: array
items:
$ref: '#/components/schemas/BulkUpsertDefinedPropertyParametersRequest'
application/json; x-api-version=1.0:
schema:
type: array
items:
$ref: '#/components/schemas/BulkUpsertDefinedPropertyParametersRequest'
text/json; x-api-version=1.0:
schema:
type: array
items:
$ref: '#/components/schemas/BulkUpsertDefinedPropertyParametersRequest'
application/*+json; x-api-version=1.0:
schema:
type: array
items:
$ref: '#/components/schemas/BulkUpsertDefinedPropertyParametersRequest'
responses:
'200':
description: Success
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'401':
description: Unauthorized
'403':
description: Forbidden
security:
- OAuth2:
- io.common
/v1/Items/bulk:
post:
tags:
- Items
summary: "Bulk upsert items masterdata.\r\nAccepts a JSON array of items. Items are matched by `code` — existing items are updated, new ones are created.\r\nItems missing `code` or `name` are silently skipped; validate your payload before sending.\r\nUnit identifiers (`inventUnitId`, barcode `unit`) are normalised to lowercase and auto-created if they do not exist.\r\nThe server processes large arrays in internal batches of 5 000 items. Endpoint timeout is 5 minutes."
description: "NEVER call this endpoint concurrently for the same tenant.\r\nConcurrent calls will interfere with each other and produce incorrect results.\r\nAll requests must be strictly sequential — wait for a 200 OK before sending the next batch."
operationId: BulkUpsertItem
parameters:
- name: serviceId
in: query
description: Optional service context. Omit if items are not scoped to a specific service.
schema:
type: string
format: uuid
- name: forceOverwriteOwner
in: query
schema:
type: boolean
- name: Account
in: query
description: Account
schema:
title: Account
type: int
requestBody:
description: Array of items to upsert. Send at most 5 000 items per request.
content:
application/json-patch+json; x-api-version=1.0:
schema:
type: array
items:
$ref: '#/components/schemas/CreateItemBulkRequest'
application/json; x-api-version=1.0:
schema:
type: array
items:
$ref: '#/components/schemas/CreateItemBulkRequest'
text/json; x-api-version=1.0:
schema:
type: array
items:
$ref: '#/components/schemas/CreateItemBulkRequest'
application/*+json; x-api-version=1.0:
schema:
type: array
items:
$ref: '#/components/schemas/CreateItemBulkRequest'
responses:
'200':
description: Success
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'401':
description: Unauthorized
'403':
description: Forbidden
security:
- OAuth2:
- io.common
/v1/Items/download/xlsx:
get:
tags:
- Items
summary: Get all items
operationId: GetItemsExcel
parameters:
- name: serviceId
in: query
description: Service uuid
schema:
type: string
format: uuid
- name: Name
in: query
schema:
type: string
- name: Code
in: query
schema:
type: string
- name: Vendor
in: query
schema:
type: string
- name: Barcode
in: query
schema:
type: string
- name: flag
in: query
schema:
type: array
items:
type: integer
format: int32
- name: Account
in: query
description: Account
schema:
title: Account
type: int
responses:
'200':
description: Success
content:
application/json:
schema:
type: string
format: binary
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/schemas/BulkJobQueuedResponse'
'204':
description: No Content
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'401':
description: Unauthorized
'403':
description: Forbidden
security:
- OAuth2:
- io.common
/v1/Items/sendToTenant:
post:
tags:
- Items
summary: Send item(s) to another tenant
operationId: SendToTenant
parameters:
- name: tenantId
in: query
description: Receiver tenant id
schema:
type: string
format: uuid
- name: accountId
in: query
description: Receiver account id in sender tenant
schema:
type: integer
format: int32
requestBody:
description: List of items
content:
application/json-patch+json; x-api-version=1.0:
schema:
type: array
items:
type: integer
format: int32
application/json; x-api-version=1.0:
schema:
type: array
items:
type: integer
format: int32
text/json; x-api-version=1.0:
schema:
type: array
items:
type: integer
format: int32
application/*+json; x-api-version=1.0:
schema:
type: array
items:
type: integer
format: int32
responses:
'200':
description: Success
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'401':
description: Unauthorized
'403':
description: Forbidden
security:
- OAuth2:
- io.common
/v1/Items/{itemId}/barcodes:
get:
tags:
- Items
summary: Get item barcodes
operationId: GetItemBarcodes
parameters:
- name: itemId
in: path
description: ''
required: true
schema:
type: integer
format: int32
- name: Filter
in: query
schema:
type: string
- name: Page
in: query
schema:
type: integer
format: int32
- name: PageSize
in: query
schema:
type: integer
format: int32
- name: SortColumn
in: query
schema:
type: string
- name: SortOrder
in: query
schema:
type: string
# --- truncated at 32 KB (79 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/invendor/refs/heads/main/openapi/invendor-items-api-openapi.yml