Xentral Storage Item API

Represent a storage item in a storage location

OpenAPI Specification

xentral-storage-item-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Xentral Account Storage Item API
  version: v0.1
  description: Xentral is an ERP platform.
  contact:
    name: Xentral
    url: https://xentral.com
    email: api@xentral.com
servers:
- url: https://{xentralId}.xentral.biz
  description: Your Xentral Instance
  variables:
    xentralId:
      default: xentral
- url: https://{domain}
  description: Xentral at a custom domain
  variables:
    domain:
      default: xentral.com
security:
- BearerAuth: []
tags:
- name: Storage Item
  description: Represent a storage item in a storage location
paths:
  /api/v1/warehouses/{warehouseId}/storageLocations/{storageLocationId}/items:
    get:
      tags:
      - Storage Item
      deprecated: true
      operationId: storage_item.list
      parameters:
      - name: warehouseId
        in: path
        description: ID of warehouse
        required: true
        schema:
          type: string
          pattern: \d+
          example: '17'
          description: Resource identifier.
      - name: storageLocationId
        in: path
        description: ID of storage location
        required: true
        schema:
          type: string
          pattern: \d+
          example: '17'
          description: Resource identifier.
      - name: filter
        in: query
        style: deepObject
        schema:
          type: array
          items:
            type: object
            additionalProperties: false
            properties:
              key:
                type: string
                enum:
                - productId
              op:
                type: string
                enum:
                - greaterThan
                - lessThan
                - equals
                - notEquals
                - in
                - notIn
                - lessThanOrEquals
                - greaterThanOrEquals
              value:
                oneOf:
                - type: string
                  description: Product ID value.
                  title: String
                - type: array
                  description: Used for the operations 'in', 'notIn'.
                  title: Array
                  items:
                    type: string
      summary: List storage items V1
      description: 'Returns all storage location items for the specified warehouse / location. If no Accept header is provided, or if Accept: application/json is specified, the response format is identical to version 2.'
      responses:
        '200':
          description: Operation completed successfully.
          content:
            application/vnd.xentral.default.v1-beta+json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  data:
                    description: Representation of a list of Items in storage
                    type: array
                    items:
                      type: object
                      additionalProperties: false
                      properties:
                        id:
                          type: string
                          pattern: \d+
                          example: '17'
                          description: Resource identifier.
                        product:
                          description: Information from the Product in storage
                          required:
                          - sku
                          type: object
                          properties:
                            sku:
                              type: string
                              description: SKU code of the item
                          example:
                            sku: ABC-12345-S-BL
                        quantity:
                          type: number
                          description: Quantity of the item to stock to storage location
                          example: 5
                        batches:
                          type: array
                          items:
                            type: string
                          description: Batches of the items
                          example:
                          - Batch1
                        bestBeforeDates:
                          type: array
                          items:
                            type: string
                          description: Best before dates of the items
                          example:
                          - '2023-01-01 00:00:00'
                        serialNumbers:
                          type: array
                          items:
                            type: object
                            properties:
                              number:
                                type: string
                                description: The serial number of the items
                          description: The serial number list of the items
                          example:
                          - number: '001'
                          - number: '002'
                    example:
                    - id: '1'
                      product:
                        sku: ABC-12345-S-BL
                      quantity: 3
                      batches:
                      - Batch1
                      - Batch2
                      bestBeforeDates:
                      - '2025-01-01 00:00:00'
                      serialNumbers:
                      - number: '001'
                      - number: '002'
                      - number: '003'
        '400':
          description: IETF RFC 9457 Problem API compliant response
          content:
            application/problem+json:
              schema:
                oneOf:
                - type: object
                  additionalProperties: false
                  required:
                  - type
                  - title
                  - violations
                  properties:
                    type:
                      type: string
                      enum:
                      - https://api.xentral.biz/problems/request-validation
                    title:
                      type: string
                      minLength: 1
                      example: Request payload validation failed.
                    violations:
                      oneOf:
                      - type: array
                        items:
                          type: object
                          example:
                            username:
                            - This value should not be blank.
                            email:
                            - This value is not a valid email address.
                        description: This field will be a mirrored request payload with only invalid fields and values replaced by error messages.
                      - type: object
                        example:
                          _:
                          - This value should contain at most `9` elements.
                        description: This field will be a mirrored request payload with only invalid fields and values replaced by error messages.
                - type: object
                  additionalProperties: false
                  required:
                  - type
                  - title
                  - messages
                  properties:
                    type:
                      type: string
                      enum:
                      - https://api.xentral.biz/problems/generic-validation
                    title:
                      type: string
                      minLength: 1
                    messages:
                      type: array
                      items:
                        type: string
                - type: object
                  additionalProperties: false
                  required:
                  - type
                  - title
                  - messages
                  properties:
                    type:
                      type: string
                      enum:
                      - https://api.xentral.biz/problems/conflict
                    title:
                      type: string
                      minLength: 1
                    messages:
                      type: array
                      items:
                        type: string
                - type: object
                  additionalProperties: false
                  required:
                  - type
                  - title
                  - items
                  properties:
                    type:
                      type: string
                      enum:
                      - https://api.xentral.biz/problems/conflictItems
                    title:
                      type: string
                      minLength: 1
                    items:
                      type: array
                      items:
                        type: object
                        additionalProperties: false
                        required:
                        - id
                        - title
                        - messages
                        properties:
                          id:
                            type: integer
                          title:
                            type: string
                            minLength: 1
                          messages:
                            type: array
                            items:
                              type: string
                - type: object
                  additionalProperties: false
                  required:
                  - type
                  - title
                  - scopes
                  properties:
                    type:
                      type: string
                      enum:
                      - https://developer.xentral.com/reference/problems#token-scopes
                    title:
                      type: string
                      minLength: 1
                    scopes:
                      type: array
                      items:
                        type: string
                - type: object
                  additionalProperties: false
                  required:
                  - type
                  - title
                  - messages
                  properties:
                    type:
                      type: string
                      enum:
                      - https://api.xentral.biz/problems/generic-validation
                    title:
                      type: string
                      minLength: 1
                    messages:
                      type: object
                      additionalProperties:
                        type: array
                        items:
                          type: string
        '401':
          description: Unable to authenticate the client
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Error message explaining why the request failed.
                    example: 'Missing required scopes: customer:create.'
              example:
                message: 'Missing required scopes: customer:create.'
            text/html:
              schema:
                type: string
                example: Unauthorized
        '403':
          description: IETF RFC 9457 Problem API compliant response
          content:
            application/problem+json:
              schema:
                oneOf:
                - type: object
                  additionalProperties: false
                  required:
                  - type
                  - title
                  - violations
                  properties:
                    type:
                      type: string
                      enum:
                      - https://api.xentral.biz/problems/request-validation
                    title:
                      type: string
                      minLength: 1
                      example: Request payload validation failed.
                    violations:
                      oneOf:
                      - type: array
                        items:
                          type: object
                          example:
                            username:
                            - This value should not be blank.
                            email:
                            - This value is not a valid email address.
                        description: This field will be a mirrored request payload with only invalid fields and values replaced by error messages.
                      - type: object
                        example:
                          _:
                          - This value should contain at most `9` elements.
                        description: This field will be a mirrored request payload with only invalid fields and values replaced by error messages.
                - type: object
                  additionalProperties: false
                  required:
                  - type
                  - title
                  - messages
                  properties:
                    type:
                      type: string
                      enum:
                      - https://api.xentral.biz/problems/generic-validation
                    title:
                      type: string
                      minLength: 1
                    messages:
                      type: array
                      items:
                        type: string
                - type: object
                  additionalProperties: false
                  required:
                  - type
                  - title
                  - messages
                  properties:
                    type:
                      type: string
                      enum:
                      - https://api.xentral.biz/problems/conflict
                    title:
                      type: string
                      minLength: 1
                    messages:
                      type: array
                      items:
                        type: string
                - type: object
                  additionalProperties: false
                  required:
                  - type
                  - title
                  - items
                  properties:
                    type:
                      type: string
                      enum:
                      - https://api.xentral.biz/problems/conflictItems
                    title:
                      type: string
                      minLength: 1
                    items:
                      type: array
                      items:
                        type: object
                        additionalProperties: false
                        required:
                        - id
                        - title
                        - messages
                        properties:
                          id:
                            type: integer
                          title:
                            type: string
                            minLength: 1
                          messages:
                            type: array
                            items:
                              type: string
                - type: object
                  additionalProperties: false
                  required:
                  - type
                  - title
                  - scopes
                  properties:
                    type:
                      type: string
                      enum:
                      - https://developer.xentral.com/reference/problems#token-scopes
                    title:
                      type: string
                      minLength: 1
                    scopes:
                      type: array
                      items:
                        type: string
                - type: object
                  additionalProperties: false
                  required:
                  - type
                  - title
                  - messages
                  properties:
                    type:
                      type: string
                      enum:
                      - https://api.xentral.biz/problems/generic-validation
                    title:
                      type: string
                      minLength: 1
                    messages:
                      type: object
                      additionalProperties:
                        type: array
                        items:
                          type: string
        '404':
          description: Resource was not found or not enough access privileges
        '406':
          description: Requested resource representation does not exist.
        '429':
          description: Too many API calls made.
    post:
      tags:
      - Storage Item
      operationId: warehouse.stockItem
      parameters:
      - name: warehouseId
        in: path
        description: ID of warehouse
        required: true
        schema:
          type: number
      - name: storageLocationId
        in: path
        description: ID of storage location
        required: true
        schema:
          type: number
      requestBody:
        description: Add item to Storage Location payload
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              required:
              - product
              - quantity
              properties:
                product:
                  required:
                  - sku
                  type: object
                  properties:
                    sku:
                      type: string
                      description: SKU code of the item
                quantity:
                  type: number
                  description: Quantity of the item to stock to storage location
                batch:
                  type: string
                  description: Batch to assign the stock update to
                bestBeforeDate:
                  type: string
                  format: date
                  description: Best Before Date to assign to the stock units added
                serialNumbers:
                  type: array
                  items:
                    type: object
                    properties:
                      number:
                        type: string
                        description: The serial number of the item
                reason:
                  type: string
                  description: Reason for adding to the stock
                project:
                  required:
                  - id
                  type: object
                  properties:
                    id:
                      type: string
                      pattern: \d+
                      description: Id of the project
            examples:
              Add stock to storage location:
                value:
                  product:
                    sku: '10840'
                  quantity: 1
              Add stock to storage location (batch and best before date):
                value:
                  product:
                    sku: '10038'
                  quantity: 5
                  batch: '123456'
                  bestBeforeDate: '2027-01-01'
              Add stock to storage location (serial numbers):
                value:
                  product:
                    sku: '10440'
                  quantity: 3
                  serialNumbers:
                  - number: '2000482'
                  - number: '2000483'
                  - number: '2000484'
      summary: Add item to storage location
      description: Adds stock for a given item to a specific Storage Location.
      responses:
        '200':
          description: Resource successfully created response
          headers:
            Location:
              schema:
                type: string
                example: https://example.xentral.biz/api/users/17
              description: URI of the created resource
          content:
            text/html:
              schema:
                type: string
                enum:
                - ''
                nullable: true
        '201':
          description: Resource successfully created response
          headers:
            Location:
              schema:
                type: string
                example: https://example.xentral.biz/api/users/17
              description: URI of the created resource
          content:
            text/html:
              schema:
                type: string
                enum:
                - ''
                nullable: true
        '400':
          description: IETF RFC 9457 Problem API compliant response
          content:
            application/problem+json:
              schema:
                oneOf:
                - type: object
                  additionalProperties: false
                  required:
                  - type
                  - title
                  - violations
                  properties:
                    type:
                      type: string
                      enum:
                      - https://api.xentral.biz/problems/request-validation
                    title:
                      type: string
                      minLength: 1
                      example: Request payload validation failed.
                    violations:
                      oneOf:
                      - type: array
                        items:
                          type: object
                          example:
                            username:
                            - This value should not be blank.
                            email:
                            - This value is not a valid email address.
                        description: This field will be a mirrored request payload with only invalid fields and values replaced by error messages.
                      - type: object
                        example:
                          _:
                          - This value should contain at most `9` elements.
                        description: This field will be a mirrored request payload with only invalid fields and values replaced by error messages.
                - type: object
                  additionalProperties: false
                  required:
                  - type
                  - title
                  - messages
                  properties:
                    type:
                      type: string
                      enum:
                      - https://api.xentral.biz/problems/generic-validation
                    title:
                      type: string
                      minLength: 1
                    messages:
                      type: array
                      items:
                        type: string
                - type: object
                  additionalProperties: false
                  required:
                  - type
                  - title
                  - messages
                  properties:
                    type:
                      type: string
                      enum:
                      - https://api.xentral.biz/problems/conflict
                    title:
                      type: string
                      minLength: 1
                    messages:
                      type: array
                      items:
                        type: string
                - type: object
                  additionalProperties: false
                  required:
                  - type
                  - title
                  - items
                  properties:
                    type:
                      type: string
                      enum:
                      - https://api.xentral.biz/problems/conflictItems
                    title:
                      type: string
                      minLength: 1
                    items:
                      type: array
                      items:
                        type: object
                        additionalProperties: false
                        required:
                        - id
                        - title
                        - messages
                        properties:
                          id:
                            type: integer
                          title:
                            type: string
                            minLength: 1
                          messages:
                            type: array
                            items:
                              type: string
                - type: object
                  additionalProperties: false
                  required:
                  - type
                  - title
                  - scopes
                  properties:
                    type:
                      type: string
                      enum:
                      - https://developer.xentral.com/reference/problems#token-scopes
                    title:
                      type: string
                      minLength: 1
                    scopes:
                      type: array
                      items:
                        type: string
                - type: object
                  additionalProperties: false
                  required:
                  - type
                  - title
                  - messages
                  properties:
                    type:
                      type: string
                      enum:
                      - https://api.xentral.biz/problems/generic-validation
                    title:
                      type: string
                      minLength: 1
                    messages:
                      type: object
                      additionalProperties:
                        type: array
                        items:
                          type: string
        '401':
          description: Unable to authenticate the client
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Error message explaining why the request failed.
                    example: 'Missing required scopes: customer:create.'
              example:
                message: 'Missing required scopes: customer:create.'
            text/html:
              schema:
                type: string
                example: Unauthorized
        '403':
          description: Unable to authorize the client
        '404':
          description: Resource was not found or not enough access privileges
        '415':
          description: Resource representation send in the request is not supported.
        '429':
          description: Too many API calls made.
    patch:
      tags:
      - Storage Item
      operationId: warehouse.retrieveItem
      parameters:
      - name: warehouseId
        in: path
        description: ID of warehouse
        required: true
        schema:
          type: number
      - name: storageLocationId
        in: path
        description: ID of storage location
        required: true
        schema:
          type: number
      requestBody:
        description: Retrieve item from Storage Location payload
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              required:
              - product
              - quantity
              properties:
                product:
                  required:
                  - sku
                  type: object
                  properties:
                    sku:
                      type: string
                      description: SKU code of the item
                quantity:
                  type: number
                  description: Quantity of the item to retrieve from storage location
                batch:
                  type: string
                  description: Batch to use
                bestBeforeDate:
                  type: string
                  format: date
                  description: Best Before Date to use
                serialNumbers:
                  type: array
                  items:
                    type: object
                    properties:
                      number:
                        type: string
                        description: The serial number of the item
                reason:
                  type: string
                  description: Reason for the retrieve
                project:
                  required:
                  - id
                  type: object
                  properties:
                    id:
                      type: string
                      pattern: \d+
                      description: Id of the project
            examples:
              Retrieve stock from storage location:
                value:
                  product:
                    sku: '10840'
                  quantity: 1
              Retrieve stock from storage location (batch and best before date):
                value:
                  product:
                    sku: '10038'
                  quantity: 5
                  batch: '123456'
                  bestBeforeDate: '2027-01-01'
              Retrieve stock from storage location (serial numbers):
                value:
                  product:
                    sku: '10440'
                  quantity: 3
                  serialNumbers:
                  - number: '2000482'
                  - number: '2000483'
                  - number: '2000484'
      summary: Retrieve item from storage location
      description: Retrieves certain units of stock for a given item from a specific Storage Location.
      responses:
        '204':
          description: Operation completed successfully, no response body
        '400':
          description: IETF RFC 9457 Problem API compliant response
          content:
            application/problem+json:
              schema:
                oneOf:
                - type: object
                  additionalProperties: false
                  required:
                  - type
                  - title
                  - violations
                  properties:
                    type:
                      type: string
                      enum:
                      - https://api.xentral.biz/problems/request-validation
                    title:
                      type: string
                      minLength: 1
                      example: Request payload validation failed.
                    violations:
                      oneOf:
                      - type: array
                        items:
                          type: object
                          example:
                            username:
                            - This value should not be blank.
                            email:
                            - This value is not a valid email address.
                        description: This field will be a mirrored request payload with only invalid fields and values replaced by error messages.
                      - type: object
                        example:
                          _:
                          - This value should contain at most `9` elements.
                        description: This field will be a mirrored request payload with only invalid fields and values replaced by error messages.
                - type: object
                  additionalProperties: false
                  required:
                  - type
                  - title
                  - messages
                  properties:
                    type:
                      type: string
                      enum:
                      - https://api.xentral.biz/problems/generic-validation
                    title:
                      type: string
                      minLength: 1
                    messages:
                      type: array
                      items:
                        type: string
                - type: object
                  additionalProperties: false
                  required:
                  - type
                  - title
                  - messages
                  properties:
                    type:
                      type: string
                      enum:
                      - https://api.xentral.biz/problems/conflict
                  

# --- truncated at 32 KB (46 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/xentral/refs/heads/main/openapi/xentral-storage-item-api-openapi.yml