# Vend\InventoryApi

Inventory operations

All URIs are relative to https://example.retail.lightspeed.app/api/2026-07, except if the operation defines another base path.

| Method | HTTP request | Description |
| ------------- | ------------- | ------------- |
| [**createCustomInventoryAdjustmentReason()**](InventoryApi.md#createCustomInventoryAdjustmentReason) | **POST** /custom_inventory_adjustment_reasons | Create a custom inventory adjustment reason |
| [**createStockAdjustments()**](InventoryApi.md#createStockAdjustments) | **POST** /stock_adjustments | Create stock adjustments |
| [**listCustomInventoryAdjustmentReasons()**](InventoryApi.md#listCustomInventoryAdjustmentReasons) | **GET** /custom_inventory_adjustment_reasons | List custom inventory adjustment reasons |
| [**listInventoryLevels()**](InventoryApi.md#listInventoryLevels) | **POST** /inventory_levels | List inventory levels |
| [**listInventoryRecords()**](InventoryApi.md#listInventoryRecords) | **POST** /inventory | List inventory records |
| [**listProductInventoryLevels()**](InventoryApi.md#listProductInventoryLevels) | **GET** /inventory_levels/{product_id} | List inventory levels for a single product. |
| [**listProductInventoryRecords()**](InventoryApi.md#listProductInventoryRecords) | **GET** /inventory/{product_id} | List inventory records for a single product |
| [**listStockAdjustments()**](InventoryApi.md#listStockAdjustments) | **GET** /stock_adjustments | List stock adjustments |
| [**setReorderPoints()**](InventoryApi.md#setReorderPoints) | **POST** /inventory/reorder_points | Set reorder points |
| [**updateCustomInventoryAdjustmentReason()**](InventoryApi.md#updateCustomInventoryAdjustmentReason) | **PUT** /custom_inventory_adjustment_reasons/{custom_reason_id} | Update a custom inventory adjustment reason |


## `createCustomInventoryAdjustmentReason()`

```php
createCustomInventoryAdjustmentReason($create_custom_inventory_adjustment_reason_request): \Vend\Model\CustomInventoryAdjustmentReasonSingleton
```

Create a custom inventory adjustment reason

Creates a new custom inventory adjustment reason for the authenticated retailer.  🔒 Requires: `inventory:write` scope

### Example

```php
<?php
require_once(__DIR__ . '/vendor/autoload.php');


// Configure Bearer (JWT) authorization: bearerAuth
$config = Vend\Configuration::getDefaultConfiguration()->setAccessToken('YOUR_ACCESS_TOKEN');


$apiInstance = new Vend\Api\InventoryApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);
$create_custom_inventory_adjustment_reason_request = new \Vend\Model\CreateCustomInventoryAdjustmentReasonRequest(); // \Vend\Model\CreateCustomInventoryAdjustmentReasonRequest

try {
    $result = $apiInstance->createCustomInventoryAdjustmentReason($create_custom_inventory_adjustment_reason_request);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling InventoryApi->createCustomInventoryAdjustmentReason: ', $e->getMessage(), PHP_EOL;
}
```

### Parameters

| Name | Type | Description  | Notes |
| ------------- | ------------- | ------------- | ------------- |
| **create_custom_inventory_adjustment_reason_request** | [**\Vend\Model\CreateCustomInventoryAdjustmentReasonRequest**](../Model/CreateCustomInventoryAdjustmentReasonRequest.md)|  | |

### Return type

[**\Vend\Model\CustomInventoryAdjustmentReasonSingleton**](../Model/CustomInventoryAdjustmentReasonSingleton.md)

### Authorization

[bearerAuth](../../README.md#bearerAuth)

### HTTP request headers

- **Content-Type**: `application/json`
- **Accept**: `application/json`

[[Back to top]](#) [[Back to API list]](../../README.md#endpoints)
[[Back to Model list]](../../README.md#models)
[[Back to README]](../../README.md)

## `createStockAdjustments()`

```php
createStockAdjustments($create_stock_adjustments_request): \Vend\Model\StockAdjustmentBatchResponse
```

Create stock adjustments

Creates one or more stock adjustments in a single batch (1–1000 items per request).  🔒 Requires: `inventory:write` scope

### Example

```php
<?php
require_once(__DIR__ . '/vendor/autoload.php');


// Configure Bearer (JWT) authorization: bearerAuth
$config = Vend\Configuration::getDefaultConfiguration()->setAccessToken('YOUR_ACCESS_TOKEN');


$apiInstance = new Vend\Api\InventoryApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);
$create_stock_adjustments_request = new \Vend\Model\CreateStockAdjustmentsRequest(); // \Vend\Model\CreateStockAdjustmentsRequest

try {
    $result = $apiInstance->createStockAdjustments($create_stock_adjustments_request);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling InventoryApi->createStockAdjustments: ', $e->getMessage(), PHP_EOL;
}
```

### Parameters

| Name | Type | Description  | Notes |
| ------------- | ------------- | ------------- | ------------- |
| **create_stock_adjustments_request** | [**\Vend\Model\CreateStockAdjustmentsRequest**](../Model/CreateStockAdjustmentsRequest.md)|  | |

### Return type

[**\Vend\Model\StockAdjustmentBatchResponse**](../Model/StockAdjustmentBatchResponse.md)

### Authorization

[bearerAuth](../../README.md#bearerAuth)

### HTTP request headers

- **Content-Type**: `application/json`
- **Accept**: `application/json`

[[Back to top]](#) [[Back to API list]](../../README.md#endpoints)
[[Back to Model list]](../../README.md#models)
[[Back to README]](../../README.md)

## `listCustomInventoryAdjustmentReasons()`

```php
listCustomInventoryAdjustmentReasons($page_size, $after, $before): \Vend\Model\CustomInventoryAdjustmentReasonCollection
```

List custom inventory adjustment reasons

Returns a paginated list of custom inventory adjustment reasons for the authenticated retailer.  🔒 Requires: `inventory:write` scope

### Example

```php
<?php
require_once(__DIR__ . '/vendor/autoload.php');


// Configure Bearer (JWT) authorization: bearerAuth
$config = Vend\Configuration::getDefaultConfiguration()->setAccessToken('YOUR_ACCESS_TOKEN');


$apiInstance = new Vend\Api\InventoryApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);
$page_size = 100; // int | The maximum number of items to be returned in the response.
$after = 56; // int | Return records with a version greater than this value.
$before = 56; // int | Return records with a version less than this value.

try {
    $result = $apiInstance->listCustomInventoryAdjustmentReasons($page_size, $after, $before);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling InventoryApi->listCustomInventoryAdjustmentReasons: ', $e->getMessage(), PHP_EOL;
}
```

### Parameters

| Name | Type | Description  | Notes |
| ------------- | ------------- | ------------- | ------------- |
| **page_size** | **int**| The maximum number of items to be returned in the response. | [optional] [default to 100] |
| **after** | **int**| Return records with a version greater than this value. | [optional] |
| **before** | **int**| Return records with a version less than this value. | [optional] |

### Return type

[**\Vend\Model\CustomInventoryAdjustmentReasonCollection**](../Model/CustomInventoryAdjustmentReasonCollection.md)

### Authorization

[bearerAuth](../../README.md#bearerAuth)

### HTTP request headers

- **Content-Type**: Not defined
- **Accept**: `application/json`

[[Back to top]](#) [[Back to API list]](../../README.md#endpoints)
[[Back to Model list]](../../README.md#models)
[[Back to README]](../../README.md)

## `listInventoryLevels()`

```php
listInventoryLevels($inventory_levels_request): \Vend\Model\InventoryLevel[]
```

List inventory levels

Returns a paginated list of inventory levels.  🔒 Requires: `inventory:read` scope

### Example

```php
<?php
require_once(__DIR__ . '/vendor/autoload.php');


// Configure Bearer (JWT) authorization: bearerAuth
$config = Vend\Configuration::getDefaultConfiguration()->setAccessToken('YOUR_ACCESS_TOKEN');


$apiInstance = new Vend\Api\InventoryApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);
$inventory_levels_request = new \Vend\Model\InventoryLevelsRequest(); // \Vend\Model\InventoryLevelsRequest

try {
    $result = $apiInstance->listInventoryLevels($inventory_levels_request);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling InventoryApi->listInventoryLevels: ', $e->getMessage(), PHP_EOL;
}
```

### Parameters

| Name | Type | Description  | Notes |
| ------------- | ------------- | ------------- | ------------- |
| **inventory_levels_request** | [**\Vend\Model\InventoryLevelsRequest**](../Model/InventoryLevelsRequest.md)|  | [optional] |

### Return type

[**\Vend\Model\InventoryLevel[]**](../Model/InventoryLevel.md)

### Authorization

[bearerAuth](../../README.md#bearerAuth)

### HTTP request headers

- **Content-Type**: `application/json`
- **Accept**: `application/json`

[[Back to top]](#) [[Back to API list]](../../README.md#endpoints)
[[Back to Model list]](../../README.md#models)
[[Back to README]](../../README.md)

## `listInventoryRecords()`

```php
listInventoryRecords($inventory_request): \Vend\Model\Inventory[]
```

List inventory records

Returns a paginated list of inventory records.  🔒 Requires: `inventory:read` scope

### Example

```php
<?php
require_once(__DIR__ . '/vendor/autoload.php');


// Configure Bearer (JWT) authorization: bearerAuth
$config = Vend\Configuration::getDefaultConfiguration()->setAccessToken('YOUR_ACCESS_TOKEN');


$apiInstance = new Vend\Api\InventoryApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);
$inventory_request = new \Vend\Model\InventoryRequest(); // \Vend\Model\InventoryRequest

try {
    $result = $apiInstance->listInventoryRecords($inventory_request);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling InventoryApi->listInventoryRecords: ', $e->getMessage(), PHP_EOL;
}
```

### Parameters

| Name | Type | Description  | Notes |
| ------------- | ------------- | ------------- | ------------- |
| **inventory_request** | [**\Vend\Model\InventoryRequest**](../Model/InventoryRequest.md)|  | [optional] |

### Return type

[**\Vend\Model\Inventory[]**](../Model/Inventory.md)

### Authorization

[bearerAuth](../../README.md#bearerAuth)

### HTTP request headers

- **Content-Type**: `application/json`
- **Accept**: `application/json`

[[Back to top]](#) [[Back to API list]](../../README.md#endpoints)
[[Back to Model list]](../../README.md#models)
[[Back to README]](../../README.md)

## `listProductInventoryLevels()`

```php
listProductInventoryLevels($product_id, $include_inactive): \Vend\Model\InventoryLevel[]
```

List inventory levels for a single product.

Returns a paginated list of inventory levels for a single product.  🔒 Requires: `inventory:read` scope

### Example

```php
<?php
require_once(__DIR__ . '/vendor/autoload.php');


// Configure Bearer (JWT) authorization: bearerAuth
$config = Vend\Configuration::getDefaultConfiguration()->setAccessToken('YOUR_ACCESS_TOKEN');


$apiInstance = new Vend\Api\InventoryApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);
$product_id = 'product_id_example'; // string | The product to fetch inventory levels for.
$include_inactive = false; // bool | Whether to include inactive products in the response.

try {
    $result = $apiInstance->listProductInventoryLevels($product_id, $include_inactive);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling InventoryApi->listProductInventoryLevels: ', $e->getMessage(), PHP_EOL;
}
```

### Parameters

| Name | Type | Description  | Notes |
| ------------- | ------------- | ------------- | ------------- |
| **product_id** | **string**| The product to fetch inventory levels for. | |
| **include_inactive** | **bool**| Whether to include inactive products in the response. | [optional] [default to false] |

### Return type

[**\Vend\Model\InventoryLevel[]**](../Model/InventoryLevel.md)

### Authorization

[bearerAuth](../../README.md#bearerAuth)

### HTTP request headers

- **Content-Type**: Not defined
- **Accept**: `application/json`

[[Back to top]](#) [[Back to API list]](../../README.md#endpoints)
[[Back to Model list]](../../README.md#models)
[[Back to README]](../../README.md)

## `listProductInventoryRecords()`

```php
listProductInventoryRecords($product_id, $after, $before, $page_size, $variants, $include_deleted, $order_direction): \Vend\Model\Inventory[]
```

List inventory records for a single product

Returns inventory records for a single product at all outlets.  🔒 Requires: `inventory:read` scope

### Example

```php
<?php
require_once(__DIR__ . '/vendor/autoload.php');


// Configure Bearer (JWT) authorization: bearerAuth
$config = Vend\Configuration::getDefaultConfiguration()->setAccessToken('YOUR_ACCESS_TOKEN');


$apiInstance = new Vend\Api\InventoryApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);
$product_id = 'product_id_example'; // string | The product to fetch inventory levels for. When combined with variants: true, it's treated as a root product ID and matches all variants of that product; otherwise it matches the exact product.
$after = 56; // int | The lower limit for the version numbers to be included in the response.
$before = 56; // int | The upper limit for the version numbers to be included in the response.
$page_size = 1000; // int | The maximum number of items to be returned in the response.
$variants = false; // bool | When true (and product_id is set), matches all variant products sharing the same root_product_id, rather than just the exact product.
$include_deleted = false; // bool | Whether to include inventory records for deleted products.
$order_direction = 'asc'; // string | Whether to order the results ascending or descending by version.

try {
    $result = $apiInstance->listProductInventoryRecords($product_id, $after, $before, $page_size, $variants, $include_deleted, $order_direction);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling InventoryApi->listProductInventoryRecords: ', $e->getMessage(), PHP_EOL;
}
```

### Parameters

| Name | Type | Description  | Notes |
| ------------- | ------------- | ------------- | ------------- |
| **product_id** | **string**| The product to fetch inventory levels for. When combined with variants: true, it&#39;s treated as a root product ID and matches all variants of that product; otherwise it matches the exact product. | |
| **after** | **int**| The lower limit for the version numbers to be included in the response. | [optional] |
| **before** | **int**| The upper limit for the version numbers to be included in the response. | [optional] |
| **page_size** | **int**| The maximum number of items to be returned in the response. | [optional] [default to 1000] |
| **variants** | **bool**| When true (and product_id is set), matches all variant products sharing the same root_product_id, rather than just the exact product. | [optional] [default to false] |
| **include_deleted** | **bool**| Whether to include inventory records for deleted products. | [optional] [default to false] |
| **order_direction** | **string**| Whether to order the results ascending or descending by version. | [optional] [default to &#39;asc&#39;] |

### Return type

[**\Vend\Model\Inventory[]**](../Model/Inventory.md)

### Authorization

[bearerAuth](../../README.md#bearerAuth)

### HTTP request headers

- **Content-Type**: Not defined
- **Accept**: `application/json`

[[Back to top]](#) [[Back to API list]](../../README.md#endpoints)
[[Back to Model list]](../../README.md#models)
[[Back to README]](../../README.md)

## `listStockAdjustments()`

```php
listStockAdjustments($page_size, $after, $before): \Vend\Model\StockAdjustmentCollection
```

List stock adjustments

Returns a paginated list of stock adjustments for the authenticated retailer.  🔒 Requires: `inventory:write` scope

### Example

```php
<?php
require_once(__DIR__ . '/vendor/autoload.php');


// Configure Bearer (JWT) authorization: bearerAuth
$config = Vend\Configuration::getDefaultConfiguration()->setAccessToken('YOUR_ACCESS_TOKEN');


$apiInstance = new Vend\Api\InventoryApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);
$page_size = 100; // int | The maximum number of items to be returned in the response.
$after = 56; // int | Return records with a version greater than this value.
$before = 56; // int | Return records with a version less than this value.

try {
    $result = $apiInstance->listStockAdjustments($page_size, $after, $before);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling InventoryApi->listStockAdjustments: ', $e->getMessage(), PHP_EOL;
}
```

### Parameters

| Name | Type | Description  | Notes |
| ------------- | ------------- | ------------- | ------------- |
| **page_size** | **int**| The maximum number of items to be returned in the response. | [optional] [default to 100] |
| **after** | **int**| Return records with a version greater than this value. | [optional] |
| **before** | **int**| Return records with a version less than this value. | [optional] |

### Return type

[**\Vend\Model\StockAdjustmentCollection**](../Model/StockAdjustmentCollection.md)

### Authorization

[bearerAuth](../../README.md#bearerAuth)

### HTTP request headers

- **Content-Type**: Not defined
- **Accept**: `application/json`

[[Back to top]](#) [[Back to API list]](../../README.md#endpoints)
[[Back to Model list]](../../README.md#models)
[[Back to README]](../../README.md)

## `setReorderPoints()`

```php
setReorderPoints($set_reorder_points_request_inner): \Vend\Model\ReorderPointsCollection
```

Set reorder points

Sets reorder points for one or more products at specific outlets. The method must be consistent across all outlets for a product and within the same variant family.  🔒 Requires: `inventory:write` scope

### Example

```php
<?php
require_once(__DIR__ . '/vendor/autoload.php');


// Configure Bearer (JWT) authorization: bearerAuth
$config = Vend\Configuration::getDefaultConfiguration()->setAccessToken('YOUR_ACCESS_TOKEN');


$apiInstance = new Vend\Api\InventoryApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);
$set_reorder_points_request_inner = [{"method":"FIXED","outlet_id":"b8ca3a65-0183-11e4-fbb5-2816d2677218","product_id":"a0369f1f-9083-11e4-f68e-d26298afef03","reorder_amount":20,"reorder_point":5},{"method":"FIXED","outlet_id":"b1e04bd8-f019-11e3-a0f5-b8ca3a64f8f4","product_id":"a0369f1f-9083-11e4-f68e-d26298afef03","reorder_amount":30,"reorder_point":10}]; // \Vend\Model\SetReorderPointsRequestInner[] | An array of 1 to 1000 reorder point entries to upsert.

try {
    $result = $apiInstance->setReorderPoints($set_reorder_points_request_inner);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling InventoryApi->setReorderPoints: ', $e->getMessage(), PHP_EOL;
}
```

### Parameters

| Name | Type | Description  | Notes |
| ------------- | ------------- | ------------- | ------------- |
| **set_reorder_points_request_inner** | [**\Vend\Model\SetReorderPointsRequestInner[]**](../Model/SetReorderPointsRequestInner.md)| An array of 1 to 1000 reorder point entries to upsert. | |

### Return type

[**\Vend\Model\ReorderPointsCollection**](../Model/ReorderPointsCollection.md)

### Authorization

[bearerAuth](../../README.md#bearerAuth)

### HTTP request headers

- **Content-Type**: `application/json`
- **Accept**: `application/json`

[[Back to top]](#) [[Back to API list]](../../README.md#endpoints)
[[Back to Model list]](../../README.md#models)
[[Back to README]](../../README.md)

## `updateCustomInventoryAdjustmentReason()`

```php
updateCustomInventoryAdjustmentReason($custom_reason_id, $update_custom_inventory_adjustment_reason_request): \Vend\Model\CustomInventoryAdjustmentReasonSingleton
```

Update a custom inventory adjustment reason

Updates a custom inventory adjustment reason.  🔒 Requires: `inventory:write` scope

### Example

```php
<?php
require_once(__DIR__ . '/vendor/autoload.php');


// Configure Bearer (JWT) authorization: bearerAuth
$config = Vend\Configuration::getDefaultConfiguration()->setAccessToken('YOUR_ACCESS_TOKEN');


$apiInstance = new Vend\Api\InventoryApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);
$custom_reason_id = 'custom_reason_id_example'; // string | The ID of the custom inventory adjustment reason to update.
$update_custom_inventory_adjustment_reason_request = new \Vend\Model\UpdateCustomInventoryAdjustmentReasonRequest(); // \Vend\Model\UpdateCustomInventoryAdjustmentReasonRequest

try {
    $result = $apiInstance->updateCustomInventoryAdjustmentReason($custom_reason_id, $update_custom_inventory_adjustment_reason_request);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling InventoryApi->updateCustomInventoryAdjustmentReason: ', $e->getMessage(), PHP_EOL;
}
```

### Parameters

| Name | Type | Description  | Notes |
| ------------- | ------------- | ------------- | ------------- |
| **custom_reason_id** | **string**| The ID of the custom inventory adjustment reason to update. | |
| **update_custom_inventory_adjustment_reason_request** | [**\Vend\Model\UpdateCustomInventoryAdjustmentReasonRequest**](../Model/UpdateCustomInventoryAdjustmentReasonRequest.md)|  | |

### Return type

[**\Vend\Model\CustomInventoryAdjustmentReasonSingleton**](../Model/CustomInventoryAdjustmentReasonSingleton.md)

### Authorization

[bearerAuth](../../README.md#bearerAuth)

### HTTP request headers

- **Content-Type**: `application/json`
- **Accept**: `application/json`

[[Back to top]](#) [[Back to API list]](../../README.md#endpoints)
[[Back to Model list]](../../README.md#models)
[[Back to README]](../../README.md)
