Skip to content
POST/{organizationId}/{mandateId}/sales/products/inventory/list

List products with inventory

Returns products and optional inventory figures for a selected sales period

Required permissions:

  • mandate.read

  • product.read

Path Parameters

organizationIdstringrequired
mandateIdstringrequired

Request Body required

Content-Type: application/json

searchTermstringoptional
categoryIdstringoptional
activebooleanoptional

Default: true

minItems: 1

minItems: 1

availabilitystringoptional

Options:

availablesoldOutcapacityNotSetneedsAttention
periodIdstringoptional
includeInventorybooleanoptional

Default: false

Default: {"name":"asc"}

limitintegeroptional

Default: 50

minimum: 1

maximum: 100

offsetintegeroptional

Default: 0

minimum: 0

maximum: 9007199254740991

returnCountbooleanoptional

Default: false

Authentication: X-API-Key

Request

POST/{organizationId}/{mandateId}/sales/products/inventory/list
curl --request POST 'https://cloud.campai.com/api/{organizationId}/{mandateId}/sales/products/inventory/list' \
  --header 'X-API-Key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
  "searchTerm": "string",
  "categoryId": "string",
  "active": true
}'

Responses

This endpoint returns different response codes based on the request outcome.

200Successful response

Content-Type: application/json

countintegerrequired

minimum: 0

maximum: 9007199254740991

Response

200
{
  "products": [
    {
      "_id": "000000000000000000000001",
      "organization": "000000000000000000000001",
      "mandate": "000000000000000000000001",
      "number": "string",
      "name": "string",
      "description": "string",
      "category": "000000000000000000000001",
      "image": {
        "resource": "string"
      },
      "active": true,
      "calculatedPrice": {
        "priceNet": 0,
        "priceGross": 0
      },
      "type": "regular",
      "unit": {
        "type": "default",
        "value": "piece"
      },
      "price": {
        "isNet": true,
        "price": 0,
        "taxCode": "string",
        "account": 1,
        "costCenter1": 1,
        "costCenter2": 1
      },
      "inventoryMode": "unlimited",
      "salesPeriodInitialCapacity": 0,
      "inventory": {
        "requiresPeriod": true,
        "periodSelected": true,
        "capacity": 0,
        "used": 0,
        "sold": 0,
        "committed": 0,
        "reserved": 0,
        "available": 0
      },
      "categoryName": "string"
    }
  ],
  "count": 0
}

400Invalid input data

Content-Type: application/json

The error information

messagestringrequired

The error message

codestringrequired

The error code

An array of issues that were responsible for the error

Response

400
{
  "code": "BAD_REQUEST",
  "message": "Invalid input data",
  "issues": []
}

401Authorization not provided

Content-Type: application/json

The error information

messagestringrequired

The error message

codestringrequired

The error code

An array of issues that were responsible for the error

Response

401
{
  "code": "UNAUTHORIZED",
  "message": "Authorization not provided",
  "issues": []
}

403Insufficient access

Content-Type: application/json

The error information

messagestringrequired

The error message

codestringrequired

The error code

An array of issues that were responsible for the error

Response

403
{
  "code": "FORBIDDEN",
  "message": "Insufficient access",
  "issues": []
}

500Internal server error

Content-Type: application/json

The error information

messagestringrequired

The error message

codestringrequired

The error code

An array of issues that were responsible for the error

Response

500
{
  "code": "INTERNAL_SERVER_ERROR",
  "message": "Internal server error",
  "issues": []
}