# Vend202601\FulfillmentsApi

Fulfillment operations

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

| Method | HTTP request | Description |
| ------------- | ------------- | ------------- |
| [**fulfillSale()**](FulfillmentsApi.md#fulfillSale) | **POST** /sales/{sale_id}/fulfill | Fulfil a sale |
| [**getFulfillmentSummary()**](FulfillmentsApi.md#getFulfillmentSummary) | **GET** /fulfillments | Get Fulfillments Summary |
| [**getFulfillmentsBySaleID()**](FulfillmentsApi.md#getFulfillmentsBySaleID) | **GET** /sales/{sale_id}/fulfillments | List Sale Fulfillments |
| [**postFulfillLineItems()**](FulfillmentsApi.md#postFulfillLineItems) | **POST** /fulfillments/{fulfillment_id}/fulfill | Fulfill line items within a sale |
| [**postFulfillSale()**](FulfillmentsApi.md#postFulfillSale) | **POST** /fulfillments/fulfill | Fulfill a Sale |
| [**postPackLineItems()**](FulfillmentsApi.md#postPackLineItems) | **POST** /fulfillments/{fulfillment_id}/pack | Partial Pack line items within a sale |
| [**postPickLineItems()**](FulfillmentsApi.md#postPickLineItems) | **POST** /fulfillments/{fulfillment_id}/pick | Partial Pick line items within a sale |


## `fulfillSale()`

```php
fulfillSale($sale_id, $fulfill_sale_request): \Vend202601\Model\FulfillmentResponse
```

Fulfil a sale

Fulfil an unfulfilled sale.  🔒 Requires: `fulfillments:write` `sales:write` scopes

### Example

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


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


$apiInstance = new Vend202601\Api\FulfillmentsApi(
    // 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
);
$sale_id = 'sale_id_example'; // string | The sale id
$fulfill_sale_request = new \Vend202601\Model\FulfillSaleRequest(); // \Vend202601\Model\FulfillSaleRequest

try {
    $result = $apiInstance->fulfillSale($sale_id, $fulfill_sale_request);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling FulfillmentsApi->fulfillSale: ', $e->getMessage(), PHP_EOL;
}
```

### Parameters

| Name | Type | Description  | Notes |
| ------------- | ------------- | ------------- | ------------- |
| **sale_id** | **string**| The sale id | |
| **fulfill_sale_request** | [**\Vend202601\Model\FulfillSaleRequest**](../Model/FulfillSaleRequest.md)|  | |

### Return type

[**\Vend202601\Model\FulfillmentResponse**](../Model/FulfillmentResponse.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)

## `getFulfillmentSummary()`

```php
getFulfillmentSummary($outlet_id, $sale_id, $fulfillment_type, $fulfillment_state, $page_number, $page_size): \Vend202601\Model\FulfillmentSummaryResponse
```

Get Fulfillments Summary

Retrieves a paginated list of fulfillment summary items with optional filtering

### Example

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


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


$apiInstance = new Vend202601\Api\FulfillmentsApi(
    // 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
);
$outlet_id = ["e058ea02-c565-405f-be27-cefaeeca1f92","aea44f85-b729-448b-bcd4-bd2b8757396f"]; // string[] | Filter by outlet IDs (can be specified multiple times)
$sale_id = ["81b37e5f-aa50-4fe3-95d3-a3cec73a7e2c","81d2fc44-e4d4-4180-8f1e-b36de2acf438"]; // string[] | Filter by sale IDs (can be specified multiple times)
$fulfillment_type = ["PICKUP","DISPATCH"]; // string[] | Filter by fulfillment types (can be specified multiple times)
$fulfillment_state = ["OPEN","STARTED"]; // string[] | Filter by fulfillment states (can be specified multiple times)
$page_number = 1; // int | Page number for pagination (1-based)
$page_size = 20; // int | Number of items per page

try {
    $result = $apiInstance->getFulfillmentSummary($outlet_id, $sale_id, $fulfillment_type, $fulfillment_state, $page_number, $page_size);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling FulfillmentsApi->getFulfillmentSummary: ', $e->getMessage(), PHP_EOL;
}
```

### Parameters

| Name | Type | Description  | Notes |
| ------------- | ------------- | ------------- | ------------- |
| **outlet_id** | [**string[]**](../Model/string.md)| Filter by outlet IDs (can be specified multiple times) | [optional] |
| **sale_id** | [**string[]**](../Model/string.md)| Filter by sale IDs (can be specified multiple times) | [optional] |
| **fulfillment_type** | [**string[]**](../Model/string.md)| Filter by fulfillment types (can be specified multiple times) | [optional] |
| **fulfillment_state** | [**string[]**](../Model/string.md)| Filter by fulfillment states (can be specified multiple times) | [optional] |
| **page_number** | **int**| Page number for pagination (1-based) | [optional] [default to 1] |
| **page_size** | **int**| Number of items per page | [optional] [default to 10] |

### Return type

[**\Vend202601\Model\FulfillmentSummaryResponse**](../Model/FulfillmentSummaryResponse.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)

## `getFulfillmentsBySaleID()`

```php
getFulfillmentsBySaleID($sale_id): \Vend202601\Model\FulfillmentsResponse
```

List Sale Fulfillments

Returns a list of fulfillments for a given sale.  🔒 Requires: `sales:read` `fulfillments:read` scopes

### Example

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


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


$apiInstance = new Vend202601\Api\FulfillmentsApi(
    // 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
);
$sale_id = 'sale_id_example'; // string | The sale id

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

### Parameters

| Name | Type | Description  | Notes |
| ------------- | ------------- | ------------- | ------------- |
| **sale_id** | **string**| The sale id | |

### Return type

[**\Vend202601\Model\FulfillmentsResponse**](../Model/FulfillmentsResponse.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)

## `postFulfillLineItems()`

```php
postFulfillLineItems($fulfillment_id, $fulfill_line_items_request): \Vend202601\Model\FulfillLineItemsResponse
```

Fulfill line items within a sale

Fulfills line items for a given sale. This is an idempotent action.  🔒 Requires: `sales:write` scope

### Example

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


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


$apiInstance = new Vend202601\Api\FulfillmentsApi(
    // 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
);
$fulfillment_id = 'fulfillment_id_example'; // string | The unique identifier of the fulfillment
$fulfill_line_items_request = new \Vend202601\Model\FulfillLineItemsRequest(); // \Vend202601\Model\FulfillLineItemsRequest

try {
    $result = $apiInstance->postFulfillLineItems($fulfillment_id, $fulfill_line_items_request);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling FulfillmentsApi->postFulfillLineItems: ', $e->getMessage(), PHP_EOL;
}
```

### Parameters

| Name | Type | Description  | Notes |
| ------------- | ------------- | ------------- | ------------- |
| **fulfillment_id** | **string**| The unique identifier of the fulfillment | |
| **fulfill_line_items_request** | [**\Vend202601\Model\FulfillLineItemsRequest**](../Model/FulfillLineItemsRequest.md)|  | |

### Return type

[**\Vend202601\Model\FulfillLineItemsResponse**](../Model/FulfillLineItemsResponse.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)

## `postFulfillSale()`

```php
postFulfillSale($fulfill_sale_request): \Vend202601\Model\FulfillSaleResponse
```

Fulfill a Sale

Completes all fulfillments for a given sale. This is an idempotent action.  🔒 Requires: `sales:write` scope

### Example

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


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


$apiInstance = new Vend202601\Api\FulfillmentsApi(
    // 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
);
$fulfill_sale_request = new \Vend202601\Model\FulfillSaleRequest(); // \Vend202601\Model\FulfillSaleRequest

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

### Parameters

| Name | Type | Description  | Notes |
| ------------- | ------------- | ------------- | ------------- |
| **fulfill_sale_request** | [**\Vend202601\Model\FulfillSaleRequest**](../Model/FulfillSaleRequest.md)|  | [optional] |

### Return type

[**\Vend202601\Model\FulfillSaleResponse**](../Model/FulfillSaleResponse.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)

## `postPackLineItems()`

```php
postPackLineItems($fulfillment_id, $pack_line_items_request): \Vend202601\Model\PackLineItemsResponse
```

Partial Pack line items within a sale

Sets pack quantity for line items for a given sale. This is an idempotent action.  🔒 Requires: `sales:write` scope

### Example

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


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


$apiInstance = new Vend202601\Api\FulfillmentsApi(
    // 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
);
$fulfillment_id = 'fulfillment_id_example'; // string | The unique identifier of the fulfillment
$pack_line_items_request = new \Vend202601\Model\PackLineItemsRequest(); // \Vend202601\Model\PackLineItemsRequest

try {
    $result = $apiInstance->postPackLineItems($fulfillment_id, $pack_line_items_request);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling FulfillmentsApi->postPackLineItems: ', $e->getMessage(), PHP_EOL;
}
```

### Parameters

| Name | Type | Description  | Notes |
| ------------- | ------------- | ------------- | ------------- |
| **fulfillment_id** | **string**| The unique identifier of the fulfillment | |
| **pack_line_items_request** | [**\Vend202601\Model\PackLineItemsRequest**](../Model/PackLineItemsRequest.md)|  | |

### Return type

[**\Vend202601\Model\PackLineItemsResponse**](../Model/PackLineItemsResponse.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)

## `postPickLineItems()`

```php
postPickLineItems($fulfillment_id, $pick_line_items_request): \Vend202601\Model\PickLineItemsResponse
```

Partial Pick line items within a sale

Sets pick quantity for line items for a given sale. This is an idempotent action.  🔒 Requires: `sales:write` scope

### Example

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


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


$apiInstance = new Vend202601\Api\FulfillmentsApi(
    // 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
);
$fulfillment_id = 'fulfillment_id_example'; // string | The unique identifier of the fulfillment
$pick_line_items_request = new \Vend202601\Model\PickLineItemsRequest(); // \Vend202601\Model\PickLineItemsRequest

try {
    $result = $apiInstance->postPickLineItems($fulfillment_id, $pick_line_items_request);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling FulfillmentsApi->postPickLineItems: ', $e->getMessage(), PHP_EOL;
}
```

### Parameters

| Name | Type | Description  | Notes |
| ------------- | ------------- | ------------- | ------------- |
| **fulfillment_id** | **string**| The unique identifier of the fulfillment | |
| **pick_line_items_request** | [**\Vend202601\Model\PickLineItemsRequest**](../Model/PickLineItemsRequest.md)|  | |

### Return type

[**\Vend202601\Model\PickLineItemsResponse**](../Model/PickLineItemsResponse.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)
