---
schema_version: "1"
id: 980509044aebae8ab7a4d3a762457c8770a6cae97f8b213634e56bf610555002
title: Inventory Availability (OCI)
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/commerce-cloud/commerce-api/references/generated-api-specs/inventory-availability.md
canonical_url: https://developer.salesforce.com/docs/commerce/commerce-api/references/inventory-availability
source_site: developer.salesforce.com
content_type: documentation
content_hash: ab6fb5a869951aa70e7ade937dad2a1909080b13cd72a87ef55808d3b5383342
products:
  - B2C Commerce API
  - Salesforce APIs
---
Inventory Availability (OCI)

# Inventory Availability (OCI)

[Download API specification](https://developer.salesforce.com/static/commercecloud/commerce-api/inventory-availability/availability-oas-v1-public.yaml)

## API Overview

Inventory Availability APIs enable you to get inventory availability and perform inventory updates within Omnichannel Inventory.

Inventory Availability API can be segregated into the following functional categories:

| Category | Endpoint Description |
| --- | --- |
| Inventory Availability | API endpoints for getting inventory SKU availability for groups and locations. You can query for multiple SKUs either by a single group or by multiple locations |
| Inventory Updates and Deletes | API endpoints for updating and deleting inventory availability for specific SKUs. |
| Deltas | API endpoint for reading the stream of changes that have occurred to SKUs in groups or locations. |

**Note**: Omnichannel Inventory uses the Tenant Group ID in place of the Organization ID. For more information, see [Configuration Values](https://developer.salesforce.com/docs/commerce/commerce-api/guide/commerce-api-configuration-values).

### Rate Limits

For load shedding and rate limiting information, see [Load Shedding and Rate Limiting.](https://developer.salesforce.com/docs/commerce/commerce-api/guide/throttle-rates.html)

### Authentication and Authorization

Clients calling Omnichannel Inventory can be authenticated in one of two ways.

*   Authenticate using Account Manager with your B2C Commerce credentials.
*   Authenticate using your Salesforce org credentials.

If you are using both B2C Commerce and Salesforce Order Management, you can use either authentication approach. However, we recommend choosing only one to avoid mixing approaches across your integrations. The different authentication approaches do not impact the purpose or performance of the APIs. Each authentication approach uses a unique set of scopes.

| Scopes for Account Manager Authentication | Scopes for Salesforce org Authentication |
| --- | --- |
| sfcc.inventory.impex-graphs | sfcc\_inventory\_impex\_graphs |
| \--- | \--- |
| sfcc.inventory.impex-inventory.rw | sfcc\_inventory\_impex\_inventory\_rw |
| sfcc.inventory.impex-inventory | sfcc\_inventory\_impex\_inventory |
| sfcc.inventory.availability | sfcc\_inventory\_availability |
| sfcc.inventory.availability.rw | sfcc\_inventory\_availability\_rw |
| sfcc.inventory.reservations | sfcc\_inventory\_reservations |
| sfcc.inventory.reservations.rw | sfcc\_inventory\_reservations\_rw |

Calls through the API gateway to Omnichannel Inventory must have a valid OAUTH bearer token. The tenant identifier used by Omnichannel Inventory is supplied in the header of the token. All request and response body entities are composed in JSON.

### Use Cases

#### Inventory Availability

Use these API endpoints to get inventory SKU availability for groups and locations. You can query multiple SKUs either by a single group or by multiple locations.

##### Group Availability

Use this endpoint to retrieve inventory availability for a group identifier and multiple SKUs with the criteria specified as parameters of the URL. A successful response contains the item availability data for the requested group and SKUs

##### Location Availability

Use this endpoint to retrieve inventory availability for multiple location identifiers and SKUs with the criteria specified in the body of the request. A successful response contains the item availability data for the requested locations and SKUs

#### Inventory Updates and Deletes

Use these API endpoints to update and delete inventory availability for specific SKUs.

##### Updates

Use these endpoints to update inventory availability data for a single location or in a batch of locations.

##### Single Location

Use this endpoint to update inventory availability for a specific location identifier and SKU. The data to update is supplied in the body of the request.

##### Batch of Locations

Use this endpoint to update multiple locations and SKUS. The stream of item availability records is supplied in the body of the request.

##### Deletes

The client calls these endpoints to delete inventory availability data. Although the current values are reset, history is maintained.

##### Location

Use this endpoint to delete a SKU at a location with the criteria specified as URL parameters.

##### Group

Use this endpoint to delete a SKU at a group with the criteria specified as URL parameters.

#### Deltas

Use this endpoint to request inventory availability changes by providing a place identifier (for example, group or location) and a token as parameters of the URL. The response contains a stream of inventory availability data with the changes that have occurred since the token was created. Each successful response contains a _new_ token for the next delta call. There are multiple ways that you can generate a delta token. The first is through running an export process. See the Inventory Impex API for details on how to retrieve a delta token from the Inventory Export. A Delta token can also be created using the Create New Delta Token api call. See the Inventory Availability API documentation for details on that call.

It is strongly advised that when implementing the get deltas functionality, the calls for retrieving the delta information are collapsed into two streams. In the first stream, a delta token is created and then processed for all stand alone locations. In the second stream, a delta token is created and then processed for all location groups. These delta tokens are created using the Create New Delta Token API call mentioned above. You, as the caller, can then filter the results to process them and provide optimal performance when using the get deltas functionality.

When using the two-streams method outlined above, there may be times that the location graph is changed and a new delta token is required. In these cases, use the Upadte Delta Token API call outlined in the Inventory Availability API documentation. Using this update delta token call, you can add or remove locations or groups from an existing delta token, eliminating the previous requirement to perform an export to retrieve a new delta token.

#### Futures

Be advised that this API references Future inventory collections as `futures` and `futureStock`. These are the same thing. Also the Inventory Impex API references Future inventory collections as `futures`.

#### attributeSet

The attributeSet is a list of attributes that can be applied to an item to change it's behavior. An example of this is the `groupEligibilityExclusion` attribute, which allows you to apply an array of Groups that are excluded from aggregating the sku for a particular location.

### Common Response Codes

The following error codes apply to all API endpoints. See the API documentation for a complete list of the error codes and response bodies that can be expected on each endpoint.

*   401 - The OATH bearer token is not valid for the tenant or is no longer valid. The response body has the details.
*   403 - The tenant is not provisioned in the system.
*   5XX - There was a server error. The response body has the details.
*   Unknown - If an Unknown error type is returned, it indicates that an unknown internal error occurred.

### External Reference Identifier

Currently, there are a number of places where a consumer can submit an `ExternalRefId` with their request. This allows the consumer to submit user generated data along with their request as a link to other external systems data. For example, if you're pulling data from an order that has an order ID, you can submit that order ID with your reservation request as the `externalRefId`. Then, if there is a problem with the reservation, there is a way to connect it with the order in the external system that generated the error or problem. This is NOT to be confused with `externalRefId` used in Salesforce Core, or any other services. The usage is exclusive to OCI and is not used anywhere else.

### Correlation-ID

To facilitate operations tracking in Omnichannel Inventory, populate a header with the name Correlation-ID which will be passed through the CDN and sent with the request to OCI. This helps trace requests as they move through the service. To be accepted, Correlation-ID must be a valid UUIDv2 or it'll be ignored.

When a web-request is passed through the CDN, the CDN's x-correlation-id header value (which comes from their ray-id) also comes into play. In this case, the correlation-id provided is prepended to the CDN's x-correlation-id and both values are passed through, separated by a comma.

Some services use a header X-Correlation-ID. If this header is used with Omnichannel Inventory, it's overwritten by the CDN with a new value and the initial purpose of the header is defeated. Use the Correlation-ID instead for a consistent result.

**Version:** 1.1.31

## Servers

*   `https://{shortCode}.api.commercecloud.salesforce.com/inventory/availability/v1`
    *   `shortCode (default shortCode)`

## Security

*   `AmOAuth2` (oauth2) AccountManager OAuth 2.0 bearer token Authentication.
    *   OAuth flow clientCredentials (tokenUrl: https://account.demandware.com/dwsso/oauth2/access\_token)
    *   Scope sfcc.inventory.availability.rw: Inventory Availability scope
    *   Scope sfcc\_inventory\_availability\_rw: Inventory Availability scope
    *   Scope sfcc.inventory.availability: Inventory Availability scope READONLY
    *   Scope sfcc\_inventory\_availability: Inventory Availability scope READONLY
    *   Scope sfcc.inventory.impex-inventory.rw: Inventory Impex Inventory scope
    *   Scope sfcc\_inventory\_impex\_inventory\_rw: Inventory Impex Inventory scope
    *   OAuth flow authorizationCode (authorizationUrl: https://account.demandware.com/dwsso/oauth2/authorize, tokenUrl: https://account.demandware.com/dwsso/oauth2/access\_token)
    *   Scope sfcc.inventory.availability.rw: Inventory Availability scope
    *   Scope sfcc\_inventory\_availability\_rw: Inventory Availability scope
    *   Scope sfcc.inventory.availability: Inventory Availability scope READONLY
    *   Scope sfcc\_inventory\_availability: Inventory Availability scope READONLY
    *   Scope sfcc.inventory.impex-inventory.rw: Inventory Impex Inventory scope
    *   Scope sfcc\_inventory\_impex\_inventory\_rw: Inventory Impex Inventory scope

## Operations

### POST Create a new Delta Token.

`POST /organizations/{organizationId}/availability-records/delta-token`

Operation ID: `createNewDeltaToken`. Security: AmOAuth2 (sfcc.inventory.availability.rw, sfcc\_inventory\_availability\_rw).

#### Parameters

*   `organizationId` (path, OrganizationId, required) An identifier for the organization the request is being made by
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    

#### Request body (required)

Media type: `application/json`. Schema: `CreateNewDeltaTokenBody`.

_Example: CreateDeltaTokenGroups_

```
{
  "placeType": "GROUP",
  "places": [
    "UnitedStates"
  ]
}
```

_Example: CreateDeltaTokenLocations_

```
{
  "placeType": "LOCATION",
  "places": [
    "warehouse5"
  ]
}
```

#### Responses

*   **200** New Delta Token was created successfully.
    
    Headers:
    
    *   `X-RateLimit-Limit` (string) The maximum number of requests permitted per minute.
    *   `X-RateLimit-Remaining` (string) The number of requests remaining in the current rate limit window.
    *   `X-RateLimit-Reset` (string) The time at which the current rate limit window resets in UTC epoch seconds.
    
    Media type: `application/json`. Schema: `CreateNewDeltaTokenResponse`.
    
    _Example: createNewDeltaToken200_
    
    ```
    {
      "deltaToken": "e3NoYXJkSWQtMDAwMDAwMDE1NzczOTkxNTc2MDItYmE5MGYxNGE6MDAwMDAwMDAwMDAwMDAwMDAwNDQ0fQ=="
    }
    ```
    
*   **400** Invalid request.
    
    Headers:
    
    *   `X-RateLimit-Limit` (string) The maximum number of requests permitted per minute.
    *   `X-RateLimit-Remaining` (string) The number of requests remaining in the current rate limit window.
    *   `X-RateLimit-Reset` (string) The time at which the current rate limit window resets in UTC epoch seconds.
    
    Media type: `application/problem+json`. Schema: `InventoryResponseErrorSchema`.
    
    _Example: createNewDeltaToken400_
    
    ```
    {
      "type": "about:blank",
      "errorCode": "InvalidRequestParameter",
      "message": "places must be of type location or group",
      "parameterName": "places"
    }
    ```
    
*   **429** The user has sent too many requests in a given amount of time ("rate limiting")
    
    Headers:
    
    *   `Retry-After` (string)
    
    Media type: `application/problem+json`. Schema: `object`.
    
    *   `title` (_string_) A short, human-readable summary of the problem type. It will not change from occurrence to occurrence of the problem, except for purposes of localization.  
        Example: `You do not have enough credit.`.
    *   `type` (_string_, required) A URI reference \[RFC3986\] that identifies the problem type. This specification encourages that, when dereferenced, it provide human-readable documentation for the problem type (e.g., using HTML \[W3C.REC-html5-20141028\]). When this member is not present, its value is assumed to be "about:blank". It accepts relative URIs; this means that they must be resolved relative to the document's base URI, as per \[RFC3986\], Section 5.  
        Example: `https://example.com/probs/out-of-credit`.
    *   `detail` (_string_) A human-readable explanation specific to this occurrence of the problem.  
        Example: `Your current balance is 30, but that costs 50.`.
    *   `instance` (_string_) A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced. It accepts relative URIs; this means that they must be resolved relative to the document's base URI, as per \[RFC3986\], Section 5.  
        Example: `/account/12345/msgs/abc`.
    
    _Example_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/too-many-requests",
      "title": "Too Many Requests",
      "detail": "You have performed too many requests in a short period of time."
    }
    ```
    

### POST Update a Delta Token stream.

`POST /organizations/{organizationId}/availability-records/delta-token/actions/update`

Operation ID: `updateDeltaToken`. Security: AmOAuth2 (sfcc.inventory.availability.rw, sfcc\_inventory\_availability\_rw).

#### Parameters

*   `organizationId` (path, OrganizationId, required) An identifier for the organization the request is being made by
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    

#### Request body (required)

Media type: `application/json`. Schema: `UpdateDeltaTokenBody`.

_Example: UpdateDeltaTokenGroups_

```
{
  "deltaToken": "e3NoYXJkSWQtMDAwMDAwMDE1NzczOTkxNTc2MDItYmE5MGYxNGE6MDAwMDAwMDAwMDAwMDAwMDAwNDQ0fQ==",
  "places": [
    "UnitedStates",
    "Canada"
  ]
}
```

#### Responses

*   **200** Delta Token stream updated successfully.
    
    Headers:
    
    *   `X-RateLimit-Limit` (string) The maximum number of requests permitted per minute.
    *   `X-RateLimit-Remaining` (string) The number of requests remaining in the current rate limit window.
    *   `X-RateLimit-Reset` (string) The time at which the current rate limit window resets in UTC epoch seconds.
    
    Media type: `application/json`. Schema: `UpdateDeltaTokenResponse`.
    
    _Example: updateDeltaTokenSuccess_
    
    ```
    {
      "deltaToken": "e3NoYXJkSWQtMDAwMDAwMDE1NzczOTkxNTc2MDItYmE5MGYxNGE6MDAwMDAwMDAwMDAwMDAwMDAwNDQ0fQ==",
      "places": [
        "UnitedStates",
        "Canada"
      ]
    }
    ```
    
*   **400** Invalid request.
    
    Headers:
    
    *   `X-RateLimit-Limit` (string) The maximum number of requests permitted per minute.
    *   `X-RateLimit-Remaining` (string) The number of requests remaining in the current rate limit window.
    *   `X-RateLimit-Reset` (string) The time at which the current rate limit window resets in UTC epoch seconds.
    
    Media type: `application/problem+json`. Schema: `InventoryResponseErrorSchema`.
    
    _Example: updateDeltaToken400_
    
    ```
    {
      "type": "about:blank",
      "errorCode": "InvalidRequestParameter",
      "message": "The delta token provided is invalid."
    }
    ```
    
*   **403** Organization not authorized.
    
    Media type: `application/problem+json`. Schema: `InventoryResponseErrorSchema`.
    
    _Example: updateDeltaToken403_
    
    ```
    {
      "type": "about:blank",
      "errorCode": "TenantNotProvisioned",
      "message": "The client is not correctly configured to access the system."
    }
    ```
    
*   **410** Delta Token link expired.
    
    Headers:
    
    *   `X-RateLimit-Limit` (string) The maximum number of requests permitted per minute.
    *   `X-RateLimit-Remaining` (string) The number of requests remaining in the current rate limit window.
    *   `X-RateLimit-Reset` (string) The time at which the current rate limit window resets in UTC epoch seconds.
    
    Media type: `application/problem+json`. Schema: `InventoryResponseErrorSchema`.
    
    _Example: updateDeltaToken410_
    
    ```
    {
      "type": "about:blank",
      "errorCode": "ExpiredDeltaLink",
      "message": "The delta token provided has expired."
    }
    ```
    
*   **429** The user has sent too many requests in a given amount of time ("rate limiting")
    
    Headers:
    
    *   `Retry-After` (string)
    
    Media type: `application/problem+json`. Schema: `object`.
    
    *   `title` (_string_) A short, human-readable summary of the problem type. It will not change from occurrence to occurrence of the problem, except for purposes of localization.  
        Example: `You do not have enough credit.`.
    *   `type` (_string_, required) A URI reference \[RFC3986\] that identifies the problem type. This specification encourages that, when dereferenced, it provide human-readable documentation for the problem type (e.g., using HTML \[W3C.REC-html5-20141028\]). When this member is not present, its value is assumed to be "about:blank". It accepts relative URIs; this means that they must be resolved relative to the document's base URI, as per \[RFC3986\], Section 5.  
        Example: `https://example.com/probs/out-of-credit`.
    *   `detail` (_string_) A human-readable explanation specific to this occurrence of the problem.  
        Example: `Your current balance is 30, but that costs 50.`.
    *   `instance` (_string_) A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced. It accepts relative URIs; this means that they must be resolved relative to the document's base URI, as per \[RFC3986\], Section 5.  
        Example: `/account/12345/msgs/abc`.
    
    _Example_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/too-many-requests",
      "title": "Too Many Requests",
      "detail": "You have performed too many requests in a short period of time."
    }
    ```
    

### POST Update a batch of inventory items with one call.

`POST /organizations/{organizationId}/availability-records/actions/batch-update`

Operation ID: `batchInventoryUpdate`. Security: AmOAuth2 (sfcc.inventory.availability.rw, sfcc\_inventory\_availability\_rw).

#### Parameters

*   `organizationId` (path, OrganizationId, required) An identifier for the organization the request is being made by
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    

#### Request body (required)

Media type: `application/json`. Schema: `BatchInventoryUpdateRequest`.

_Example: BatchUpdateOneRecord_

```
{
  "records": [
    {
      "location": "warehouse5",
      "sku": "sku123",
      "id": "82251928-8863-488e-840b-2aebd10b57ba",
      "onHand": 1200.35,
      "safetyStockCount": 12.45,
      "effectiveDate": "2025-05-19T21:13:00Z",
      "futureStock": [
        {
          "expectedDate": "2025-05-31T21:13:00Z",
          "quantity": 10.25
        }
      ],
      "attributeSet": {
        "groupEligibilityExclusion": [
          "GroupA"
        ]
      },
      "externalRefId": "7282822-9823-aaa"
    }
  ]
}
```

#### Responses

*   **200** Batch inventory updated successfully.
    
    Headers:
    
    *   `X-RateLimit-Limit` (string) The maximum number of requests permitted per minute.
    *   `X-RateLimit-Remaining` (string) The number of requests remaining in the current rate limit window.
    *   `X-RateLimit-Reset` (string) The time at which the current rate limit window resets in UTC epoch seconds.
    
    Media type: `application/json`. Schema: `BatchInventoryUpdateErrors`.
    
    _Example: batchInventoryUpdate200_
    
    ```
    {
      "errors": [
        {
          "details": {
            "locationId": "warehouse5",
            "sku": "sku123",
            "id": "82251928-8863-488e-840b-2aebd10b57ba",
            "externalRefId": "7282822-9823-aaa"
          },
          "message": "Inventory record update failed",
          "errorCode": "InvalidRequest"
        }
      ]
    }
    ```
    
*   **204** Batch inventory updated successfully.
    
    Headers:
    
    *   `X-RateLimit-Limit` (string) The maximum number of requests permitted per minute.
    *   `X-RateLimit-Remaining` (string) The number of requests remaining in the current rate limit window.
    *   `X-RateLimit-Reset` (string) The time at which the current rate limit window resets in UTC epoch seconds.
*   **400** Invalid request.
    
    Headers:
    
    *   `X-RateLimit-Limit` (string) The maximum number of requests permitted per minute.
    *   `X-RateLimit-Remaining` (string) The number of requests remaining in the current rate limit window.
    *   `X-RateLimit-Reset` (string) The time at which the current rate limit window resets in UTC epoch seconds.
    
    Media type: `application/problem+json`. Schema: `InventoryResponseErrorSchema`.
    
    _Example: batchInventoryUpdate400_
    
    ```
    {
      "type": "about:blank",
      "errorCode": "InvalidRequestParameter",
      "message": "Invalid characters in sku: bad$sku",
      "parameterName": "sku"
    }
    ```
    
*   **403** Organization not authorized.
    
    Media type: `application/problem+json`. Schema: `InventoryResponseErrorSchema`.
    
    _Example: batchInventoryUpdate403_
    
    ```
    {
      "type": "about:blank",
      "errorCode": "TenantNotProvisioned",
      "message": "The client is not correctly configured to access the system."
    }
    ```
    
*   **429** The user has sent too many requests in a given amount of time ("rate limiting")
    
    Headers:
    
    *   `Retry-After` (string)
    
    Media type: `application/problem+json`. Schema: `object`.
    
    *   `title` (_string_) A short, human-readable summary of the problem type. It will not change from occurrence to occurrence of the problem, except for purposes of localization.  
        Example: `You do not have enough credit.`.
    *   `type` (_string_, required) A URI reference \[RFC3986\] that identifies the problem type. This specification encourages that, when dereferenced, it provide human-readable documentation for the problem type (e.g., using HTML \[W3C.REC-html5-20141028\]). When this member is not present, its value is assumed to be "about:blank". It accepts relative URIs; this means that they must be resolved relative to the document's base URI, as per \[RFC3986\], Section 5.  
        Example: `https://example.com/probs/out-of-credit`.
    *   `detail` (_string_) A human-readable explanation specific to this occurrence of the problem.  
        Example: `Your current balance is 30, but that costs 50.`.
    *   `instance` (_string_) A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced. It accepts relative URIs; this means that they must be resolved relative to the document's base URI, as per \[RFC3986\], Section 5.  
        Example: `/account/12345/msgs/abc`.
    
    _Example_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/too-many-requests",
      "title": "Too Many Requests",
      "detail": "You have performed too many requests in a short period of time."
    }
    ```
    

### PATCH Partially update a batch of inventory items with one call. Only fields that are included in the request will be updated.

`PATCH /organizations/{organizationId}/availability-records/actions/batch-update`

Operation ID: `batchInventoryPatch`. Security: AmOAuth2 (sfcc.inventory.availability.rw, sfcc\_inventory\_availability\_rw).

#### Parameters

*   `organizationId` (path, OrganizationId, required) An identifier for the organization the request is being made by
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    

#### Request body (required)

Media type: `application/json`. Schema: `BatchInventoryUpdateRequest`.

_Example: BatchInventoryPatchRequest_

```
{
  "records": [
    {
      "id": "82251928-8863-488e-840b-2aebd10b57ba",
      "externalRefId": "7282822-9823-aaa",
      "location": "warehouse5",
      "sku": "sku123",
      "onHand": 1200.35,
      "safetyStockCount": 12.45,
      "effectiveDate": "2025-05-19T21:13:00Z",
      "futureStock": [
        {
          "expectedDate": "2025-05-31T21:13:00Z",
          "quantity": 10.25
        }
      ],
      "attributeSet": {
        "groupEligibilityExclusion": [
          "arizona",
          "utah"
        ]
      }
    },
    {
      "id": "82251928-8863-488e-840b-2aebd10b6666",
      "externalRefId": "7282822-9823-bbb",
      "location": "warehouse6",
      "sku": "sku456",
      "onHand": 500.75,
      "safetyStockCount": 25,
      "effectiveDate": "2025-05-19T21:13:00Z",
      "futureStock": [
        {
          "expectedDate": "2025-06-15T21:13:00Z",
          "quantity": 50
        }
      ],
      "attributeSet": {
        "groupEligibilityExclusion": [
          "california"
        ]
      }
    }
  ]
}
```

#### Responses

*   **200** Batch inventory partially updated with potentially some errors reported.
    
    Headers:
    
    *   `X-RateLimit-Limit` (string) The maximum number of requests permitted per minute.
    *   `X-RateLimit-Remaining` (string) The number of requests remaining in the current rate limit window.
    *   `X-RateLimit-Reset` (string) The time at which the current rate limit window resets in UTC epoch seconds.
    
    Media type: `application/json`. Schema: `BatchInventoryUpdateErrors`.
    
    _Example: batchInventoryPatch200_
    
    ```
    {
      "errors": [
        {
          "details": {
            "locationId": "warehouse5",
            "sku": "sku123",
            "id": "82251928-8863-488e-840b-2aebd10b57ba",
            "externalRefId": "7282822-9823-aaa"
          },
          "message": "Inventory record update failed",
          "errorCode": "InventoryReset"
        },
        {
          "details": {
            "locationId": "warehouse6",
            "sku": "sku456",
            "id": "82251928-8863-488e-840b-2aebd10b6666",
            "externalRefId": "7282822-9823-bbb"
          },
          "message": "Location not found",
          "errorCode": "EntityNotFound"
        }
      ]
    }
    ```
    
*   **204** All batch inventory items updated successfully.
    
    Headers:
    
    *   `X-RateLimit-Limit` (string) The maximum number of requests permitted per minute.
    *   `X-RateLimit-Remaining` (string) The number of requests remaining in the current rate limit window.
    *   `X-RateLimit-Reset` (string) The time at which the current rate limit window resets in UTC epoch seconds.
*   **400** Invalid request.
    
    Headers:
    
    *   `X-RateLimit-Limit` (string) The maximum number of requests permitted per minute.
    *   `X-RateLimit-Remaining` (string) The number of requests remaining in the current rate limit window.
    *   `X-RateLimit-Reset` (string) The time at which the current rate limit window resets in UTC epoch seconds.
    
    Media type: `application/problem+json`. Schema: `InventoryResponseErrorSchema`.
    
    _Example: batchInventoryPatch400_
    
    ```
    {
      "type": "about:blank",
      "errorCode": "InvalidRequestParameter",
      "message": "An invalid request parameter was provided.",
      "parameterName": "location"
    }
    ```
    
*   **403** Organization not authorized.
    
    Media type: `application/problem+json`. Schema: `InventoryResponseErrorSchema`.
    
    _Example: batchInventoryPatch403_
    
    ```
    {
      "type": "about:blank",
      "errorCode": "TenantNotProvisioned",
      "message": "The client is not correctly configured to access the system."
    }
    ```
    
*   **429** The user has sent too many requests in a given amount of time ("rate limiting")
    
    Headers:
    
    *   `Retry-After` (string)
    
    Media type: `application/problem+json`. Schema: `object`.
    
    *   `title` (_string_) A short, human-readable summary of the problem type. It will not change from occurrence to occurrence of the problem, except for purposes of localization.  
        Example: `You do not have enough credit.`.
    *   `type` (_string_, required) A URI reference \[RFC3986\] that identifies the problem type. This specification encourages that, when dereferenced, it provide human-readable documentation for the problem type (e.g., using HTML \[W3C.REC-html5-20141028\]). When this member is not present, its value is assumed to be "about:blank". It accepts relative URIs; this means that they must be resolved relative to the document's base URI, as per \[RFC3986\], Section 5.  
        Example: `https://example.com/probs/out-of-credit`.
    *   `detail` (_string_) A human-readable explanation specific to this occurrence of the problem.  
        Example: `Your current balance is 30, but that costs 50.`.
    *   `instance` (_string_) A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced. It accepts relative URIs; this means that they must be resolved relative to the document's base URI, as per \[RFC3986\], Section 5.  
        Example: `/account/12345/msgs/abc`.
    
    _Example_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/too-many-requests",
      "title": "Too Many Requests",
      "detail": "You have performed too many requests in a short period of time."
    }
    ```
    

### POST Retrieve changes that have occurred since a given Delta Token. An initial Delta Token is obtained from an export call; subsequent Delta Tokens are returned from this call.

`POST /organizations/{organizationId}/availability-records/actions/get-deltas`

Operation ID: `getAvailabilityDeltas`. Security: AmOAuth2 (sfcc.inventory.availability, sfcc\_inventory\_availability).

#### Parameters

*   `organizationId` (path, OrganizationId, required) An identifier for the organization the request is being made by
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    

#### Request body (required)

Media type: `application/json`. Schema: `GetAvailabilityDeltasPostBody`.

_Example: getAvailabilityDeltaRequest_

```
{
  "deltaToken": "e3NoYXJkSWQtMDAwMDAwMDE1NzczOTkxNTc2MDItYmE5MGYxNGE6MDAwMDAwMDAwMDAwMDAwMDAwNDQ0fQ=="
}
```

#### Responses

*   **200** Changes are returned in the body with a new Delta Token to use for the next call.
    
    Headers:
    
    *   `X-RateLimit-Limit` (string) The maximum number of requests permitted per minute.
    *   `X-RateLimit-Remaining` (string) The number of requests remaining in the current rate limit window.
    *   `X-RateLimit-Reset` (string) The time at which the current rate limit window resets in UTC epoch seconds.
    
    Media type: `application/json`. Schema: `GetAvailabilityDeltasResponse200`.
    
    _Example: getAvailabilityDeltas200_
    
    ```
    {
      "nextDeltaToken": "e3NoYXJkSWQtMDAwMDAwMDE1NzczOTkxNTc2MDItYmE5MGYxNGE6MDAwMDAwMDAwMDAwMDAwMDAwNDQ0fQ==",
      "shouldQueryAgain": true,
      "records": [
        {
          "sku": "sku123",
          "deltaType": "Change",
          "id": "UnitedStates",
          "effectiveDate": "2019-07-24T21:13:00Z",
          "sequenceNumber": 123,
          "onHand": 1200.35,
          "atf": 1137.65,
          "ato": 1147.9,
          "reserved": 50.25,
          "safetyStockCount": 12.45,
          "futures": [
            {
              "expectedDate": "2019-07-24T21:13:00Z",
              "quantity": 10.25
            }
          ]
        }
      ]
    }
    ```
    
*   **400** Invalid request.
    
    Headers:
    
    *   `X-RateLimit-Limit` (string) The maximum number of requests permitted per minute.
    *   `X-RateLimit-Remaining` (string) The number of requests remaining in the current rate limit window.
    *   `X-RateLimit-Reset` (string) The time at which the current rate limit window resets in UTC epoch seconds.
    
    Media type: `application/problem+json`. Schema: `InventoryResponseErrorSchema`.
    
    _Example: getAvailabilityDeltas400_
    
    ```
    {
      "type": "about:blank",
      "errorCode": "ExpiredDeltaLink",
      "message": "'id' The Delta Link is expired",
      "parameterName": "Delta Link"
    }
    ```
    
*   **403** Organization not authorized.
    
    Media type: `application/problem+json`. Schema: `InventoryResponseErrorSchema`.
    
    _Example: getAvailabilityDeltas403_
    
    ```
    {
      "type": "about:blank",
      "errorCode": "TenantNotProvisioned",
      "message": "The client is not correctly configured to access the system."
    }
    ```
    
*   **410** Delta Token link expired.
    
    Headers:
    
    *   `X-RateLimit-Limit` (string) The maximum number of requests permitted per minute.
    *   `X-RateLimit-Remaining` (string) The number of requests remaining in the current rate limit window.
    *   `X-RateLimit-Reset` (string) The time at which the current rate limit window resets in UTC epoch seconds.
    
    Media type: `application/problem+json`. Schema: `InventoryResponseErrorSchema`.
    
    _Example: getAvailabilityDeltas410_
    
    ```
    {
      "type": "about:blank",
      "errorCode": "ExpiredDeltaLink",
      "message": "The delta token provided has expired."
    }
    ```
    
*   **429** The user has sent too many requests in a given amount of time ("rate limiting")
    
    Headers:
    
    *   `Retry-After` (string)
    
    Media type: `application/problem+json`. Schema: `object`.
    
    *   `title` (_string_) A short, human-readable summary of the problem type. It will not change from occurrence to occurrence of the problem, except for purposes of localization.  
        Example: `You do not have enough credit.`.
    *   `type` (_string_, required) A URI reference \[RFC3986\] that identifies the problem type. This specification encourages that, when dereferenced, it provide human-readable documentation for the problem type (e.g., using HTML \[W3C.REC-html5-20141028\]). When this member is not present, its value is assumed to be "about:blank". It accepts relative URIs; this means that they must be resolved relative to the document's base URI, as per \[RFC3986\], Section 5.  
        Example: `https://example.com/probs/out-of-credit`.
    *   `detail` (_string_) A human-readable explanation specific to this occurrence of the problem.  
        Example: `Your current balance is 30, but that costs 50.`.
    *   `instance` (_string_) A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced. It accepts relative URIs; this means that they must be resolved relative to the document's base URI, as per \[RFC3986\], Section 5.  
        Example: `/account/12345/msgs/abc`.
    
    _Example_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/too-many-requests",
      "title": "Too Many Requests",
      "detail": "You have performed too many requests in a short period of time."
    }
    ```
    

### POST Get SKU availability by location, by group, or by both.

`POST /organizations/{organizationId}/availability-records/actions/get-availability`

Operation ID: `skuAvailabilityByLocationAndOrGroup`. Security: AmOAuth2 (sfcc.inventory.availability, sfcc\_inventory\_availability).

#### Parameters

*   `organizationId` (path, OrganizationId, required) An identifier for the organization the request is being made by
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    

#### Request body (required)

Media type: `application/json`. Schema: `InventoryAvailabilityRequestBody`.

_Example: GetATSAllLocations_

```
{
  "sku": "sku123",
  "group": "Canada"
}
```

_Example: GetATSAllUnassignedLocations_

```
{
  "sku": "sku123"
}
```

_Example: GetATSLocationsAndGroups_

```
{
  "skus": [
    "sku123"
  ],
  "locations": [
    "warehouse5"
  ],
  "groups": [
    "UnitedStates"
  ]
}
```

#### Responses

*   **200** Availability information successfully returned.
    
    Headers:
    
    *   `X-RateLimit-Limit` (string) The maximum number of requests permitted per minute.
    *   `X-RateLimit-Remaining` (string) The number of requests remaining in the current rate limit window.
    *   `X-RateLimit-Reset` (string) The time at which the current rate limit window resets in UTC epoch seconds.
    
    Media type: `application/json`. Schema: `Response200`.
    
    _Example: GetAllLocationsAndGroupsResponse_
    
    ```
    {
      "locations": [
        {
          "id": "warehouse5",
          "records": [
            {
              "sku": "sku123",
              "atf": 1137.65,
              "ato": 1147.9,
              "onHand": 0,
              "reserved": 12.5,
              "safetyStockCount": 0,
              "effectiveDate": "2019-07-24T21:13:00Z",
              "futures": [
                {
                  "expectedDate": "2019-08-24T21:13:00Z",
                  "quantity": 10.25
                }
              ],
              "attributeSet": {
                "groupEligibilityExclusion": [
                  "arizona",
                  "utah"
                ]
              },
              "exists": true
            }
          ]
        }
      ],
      "groups": [
        {
          "id": "UnitedStates",
          "records": [
            {
              "sku": "sku123",
              "atf": 1137.65,
              "ato": 1147.9,
              "onHand": 0,
              "reserved": 12.5,
              "safetyStockCount": 0,
              "effectiveDate": "2019-07-24T21:13:00Z",
              "groupReserved": 10,
              "sharedGroupReserved": 2.5,
              "futures": [
                {
                  "expectedDate": "2019-08-24T21:13:00Z",
                  "quantity": 10.25
                }
              ],
              "exists": true
            }
          ]
        }
      ]
    }
    ```
    
    _Example: GetAllLocationsResponse_
    
    ```
    {
      "locations": [
        {
          "id": "surprise",
          "records": [
            {
              "sku": "sku123",
              "atf": 17,
              "ato": 27.25,
              "reserved": 0,
              "safetyStockCount": 10,
              "effectiveDate": "2020-04-08T14:05:22.790896-07:00",
              "futures": [
                {
                  "quantity": 10.25,
                  "expectedDate": "2019-08-24T21:13:00Z"
                }
              ],
              "attributeSet": {
                "groupEligibilityExclusion": [
                  "arizona",
                  "utah"
                ]
              },
              "onHand": 27,
              "exists": true
            }
          ]
        },
        {
          "id": "wickenburg",
          "records": [
            {
              "sku": "sku123",
              "atf": 30,
              "ato": 40.25,
              "reserved": 0,
              "safetyStockCount": 20,
              "effectiveDate": "2020-04-08T14:05:22.790896-07:00",
              "futures": [
                {
                  "quantity": 10.25,
                  "expectedDate": "2019-08-24T21:13:00Z"
                }
              ],
              "attributeSet": {
                "groupEligibilityExclusion": [
                  "arizona",
                  "utah"
                ]
              },
              "onHand": 50,
              "exists": true
            }
          ]
        }
      ],
      "groups": [
        {
          "id": "arizona",
          "records": [
            {
              "sku": "sku123",
              "atf": 47,
              "ato": 67.5,
              "reserved": 0,
              "safetyStockCount": 30,
              "groupReserved": 0,
              "sharedGroupReserved": 0,
              "effectiveDate": "2020-04-08T14:05:22.790896-07:00",
              "futures": [
                {
                  "quantity": 20.5,
                  "expectedDate": "2019-08-24T21:13:00Z"
                }
              ],
              "onHand": 77,
              "exists": true
            }
          ]
        }
      ]
    }
    ```
    
    _Example: GetAllUnassignedLocationsResponse_
    
    ```
    {
      "locations": [
        {
          "id": "surprise",
          "records": [
            {
              "sku": "sku123",
              "atf": 17,
              "ato": 27.25,
              "reserved": 0,
              "safetyStockCount": 10,
              "effectiveDate": "2020-04-08T14:05:22.790896-07:00",
              "futures": [
                {
                  "quantity": 10.25,
                  "expectedDate": "2019-08-24T21:13:00Z"
                }
              ],
              "attributeSet": {
                "groupEligibilityExclusion": [
                  "GroupA",
                  "GroupB"
                ]
              },
              "onHand": 27,
              "exists": true
            }
          ]
        },
        {
          "id": "wickenburg",
          "records": [
            {
              "sku": "sku123",
              "atf": 30,
              "ato": 40.25,
              "reserved": 0,
              "safetyStockCount": 20,
              "effectiveDate": "2020-04-08T14:05:22.790896-07:00",
              "futures": [
                {
                  "quantity": 10.25,
                  "expectedDate": "2019-08-24T21:13:00Z"
                }
              ],
              "attributeSet": {
                "groupEligibilityExclusion": [
                  "arizona",
                  "utah"
                ]
              },
              "onHand": 50,
              "exists": true
            }
          ]
        }
      ]
    }
    ```
    
*   **400** Invalid request.
    
    Headers:
    
    *   `X-RateLimit-Limit` (string) The maximum number of requests permitted per minute.
    *   `X-RateLimit-Remaining` (string) The number of requests remaining in the current rate limit window.
    *   `X-RateLimit-Reset` (string) The time at which the current rate limit window resets in UTC epoch seconds.
    
    Media type: `application/problem+json`. Schema: `InventoryResponseErrorSchema`.
    
    _Example: skuAvailabilityByLocationAndOrGroup400_
    
    ```
    {
      "type": "about:blank",
      "errorCode": "LocationDoesNotExist",
      "message": "A location provided in the request does not exist."
    }
    ```
    
*   **403** Organization not authorized.
    
    Media type: `application/problem+json`. Schema: `InventoryResponseErrorSchema`.
    
    _Example: skuAvailabilityByLocationAndOrGroup403_
    
    ```
    {
      "type": "about:blank",
      "errorCode": "TenantNotProvisioned",
      "message": "The client is not correctly configured to access the system."
    }
    ```
    
*   **429** The user has sent too many requests in a given amount of time ("rate limiting")
    
    Headers:
    
    *   `Retry-After` (string)
    
    Media type: `application/problem+json`. Schema: `object`.
    
    *   `title` (_string_) A short, human-readable summary of the problem type. It will not change from occurrence to occurrence of the problem, except for purposes of localization.  
        Example: `You do not have enough credit.`.
    *   `type` (_string_, required) A URI reference \[RFC3986\] that identifies the problem type. This specification encourages that, when dereferenced, it provide human-readable documentation for the problem type (e.g., using HTML \[W3C.REC-html5-20141028\]). When this member is not present, its value is assumed to be "about:blank". It accepts relative URIs; this means that they must be resolved relative to the document's base URI, as per \[RFC3986\], Section 5.  
        Example: `https://example.com/probs/out-of-credit`.
    *   `detail` (_string_) A human-readable explanation specific to this occurrence of the problem.  
        Example: `Your current balance is 30, but that costs 50.`.
    *   `instance` (_string_) A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced. It accepts relative URIs; this means that they must be resolved relative to the document's base URI, as per \[RFC3986\], Section 5.  
        Example: `/account/12345/msgs/abc`.
    
    _Example_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/too-many-requests",
      "title": "Too Many Requests",
      "detail": "You have performed too many requests in a short period of time."
    }
    ```
    

### POST Submit batches of Product Eligibility Segmentations. The body permits requests to append or delete segmentations. For more information on Product Eligibility, see Product Eligibility Segmentation Import in the OCI Impex API.

`POST /organizations/{organizationId}/product-segmentation/actions/batch-update`

Operation ID: `batchProductSegmentationRequest`. Security: AmOAuth2 (sfcc.inventory.impex-inventory.rw, sfcc\_inventory\_impex\_inventory\_rw).

#### Parameters

*   `organizationId` (path, OrganizationId, required) An identifier for the organization the request is being made by
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    

#### Request body (required)

Media type: `application/json`. Schema: `ProductSegmentationAppendRequestBody | ProductSegmentationDeleteRequestBody`.

One of: `ProductSegmentationAppendRequestBody`, `ProductSegmentationDeleteRequestBody`.

_Example: ProductSegmentationAppendRequest_

```
{
  "groups": [
    {
      "groupId": "GroupA",
      "mode": "APPEND",
      "skus": [
        "sku123",
        "sku456"
      ]
    }
  ]
}
```

_Example: ProductSegmentationDeleteRequest_

```
{
  "groups": [
    {
      "groupId": "GroupA",
      "mode": "DELETE",
      "skus": [
        "sku123",
        "sku456"
      ]
    }
  ]
}
```

#### Responses

*   **200** Some product segmentations could not be fully processed.
    
    Headers:
    
    *   `X-RateLimit-Limit` (string) The maximum number of requests permitted per minute.
    *   `X-RateLimit-Remaining` (string) The number of requests remaining in the current rate limit window.
    *   `X-RateLimit-Reset` (string) The time at which the current rate limit window resets in UTC epoch seconds.
    
    Media type: `application/json`. Schema: `Errors`.
    
    _Example: DeleteError_
    
    ```
    [
      {
        "error": "Failed to delete product segmentation for group id WarehouseOne and sku DeleteSku1"
      },
      {
        "error": "Failed to delete product segmentation for group id WarehouseOne and sku DeleteSku1"
      }
    ]
    ```
    
    _Example: AppendError_
    
    ```
    [
      {
        "error": "Failed to create product segmentation for group id WarehouseOne and sku AppendNewSku1"
      },
      {
        "error": "to create product segmentation for group id WarehouseOne and sku AppendNewSku2"
      }
    ]
    ```
    
*   **204** Successfully processed all product segmentations.
    
    Headers:
    
    *   `X-RateLimit-Limit` (string) The maximum number of requests permitted per minute.
    *   `X-RateLimit-Remaining` (string) The number of requests remaining in the current rate limit window.
    *   `X-RateLimit-Reset` (string) The time at which the current rate limit window resets in UTC epoch seconds.
*   **400** Invalid request.
    
    Headers:
    
    *   `X-RateLimit-Limit` (string) The maximum number of requests permitted per minute.
    *   `X-RateLimit-Remaining` (string) The number of requests remaining in the current rate limit window.
    *   `X-RateLimit-Reset` (string) The time at which the current rate limit window resets in UTC epoch seconds.
    
    Media type: `application/problem+json`. Schema: `InventoryResponseErrorSchema`.
    
    _Example: ErrorInvalidRequestParameterMode_
    
    ```
    {
      "type": "about:blank",
      "errorCode": "InvalidRequestParameter",
      "message": "An invalid request parameter was provided",
      "parameterName": "mode"
    }
    ```
    
*   **429** The user has sent too many requests in a given amount of time ("rate limiting")
    
    Headers:
    
    *   `Retry-After` (string)
    
    Media type: `application/problem+json`. Schema: `object`.
    
    *   `title` (_string_) A short, human-readable summary of the problem type. It will not change from occurrence to occurrence of the problem, except for purposes of localization.  
        Example: `You do not have enough credit.`.
    *   `type` (_string_, required) A URI reference \[RFC3986\] that identifies the problem type. This specification encourages that, when dereferenced, it provide human-readable documentation for the problem type (e.g., using HTML \[W3C.REC-html5-20141028\]). When this member is not present, its value is assumed to be "about:blank". It accepts relative URIs; this means that they must be resolved relative to the document's base URI, as per \[RFC3986\], Section 5.  
        Example: `https://example.com/probs/out-of-credit`.
    *   `detail` (_string_) A human-readable explanation specific to this occurrence of the problem.  
        Example: `Your current balance is 30, but that costs 50.`.
    *   `instance` (_string_) A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced. It accepts relative URIs; this means that they must be resolved relative to the document's base URI, as per \[RFC3986\], Section 5.  
        Example: `/account/12345/msgs/abc`.
    
    _Example_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/too-many-requests",
      "title": "Too Many Requests",
      "detail": "You have performed too many requests in a short period of time."
    }
    ```
    

### PUT Update or create data and quantity information for an item. The PUT call for updating replaces all fields of data. For fields that are not included, the data that currently exists is deleted and everything defaults to 0 (zero).

`PUT /organizations/{organizationId}/locations/{locationId}/availability-records/skus/{sku}/{requestId}`

Operation ID: `replaceSkuLocation`. Security: AmOAuth2 (sfcc.inventory.availability.rw, sfcc\_inventory\_availability\_rw).

#### Parameters

*   `locationId` (path, LocationId, required) The location for the SKU being updated.
*   `sku` (path, SkuId, required) The SKU associated with the inventory record you want to update.
*   `requestId` (path, string, required) The unique request ID associated with the attempt to update an item in inventory.  
    Maximum length: 128. Example: `3678-23456-3456-4567-9999-1232`.
*   `organizationId` (path, OrganizationId, required) An identifier for the organization the request is being made by
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    

#### Request body (required)

Media type: `application/json`. Schema: `InventoryUpdateRequestBodyPut`.

_Example: InventoryUpdatePutRequest_

```
{
  "externalRefId": "7282822-9823-aaa",
  "onHand": 25,
  "safetyStockCount": 20,
  "effectiveDate": "2019-07-24T21:13:00Z",
  "futureStock": [
    {
      "expectedDate": "2019-07-24T21:13:00Z",
      "quantity": 10.25
    }
  ],
  "attributeSet": {
    "groupEligibilityExclusion": [
      "GroupA"
    ]
  }
}
```

#### Responses

*   **204** Data updated successfully.
    
    Headers:
    
    *   `X-RateLimit-Limit` (string) The maximum number of requests permitted per minute.
    *   `X-RateLimit-Remaining` (string) The number of requests remaining in the current rate limit window.
    *   `X-RateLimit-Reset` (string) The time at which the current rate limit window resets in UTC epoch seconds.
*   **400** Invalid request.
    
    Headers:
    
    *   `X-RateLimit-Limit` (string) The maximum number of requests permitted per minute.
    *   `X-RateLimit-Remaining` (string) The number of requests remaining in the current rate limit window.
    *   `X-RateLimit-Reset` (string) The time at which the current rate limit window resets in UTC epoch seconds.
    
    Media type: `application/problem+json`. Schema: `InventoryResponseErrorSchema`.
    
    _Example: ErrorEntityNotFound_
    
    ```
    {
      "type": "about:blank",
      "errorCode": "EntityNotFound",
      "message": "'EntityId' The provided entity is not found",
      "parameterName": "EntityId"
    }
    ```
    
*   **403** Organization not authorized.
    
    Media type: `application/problem+json`. Schema: `InventoryResponseErrorSchema`.
    
    _Example: tenantNotProvisioned403_
    
    ```
    {
      "type": "about:blank",
      "errorCode": "TenantNotProvisioned",
      "message": "The client is not correctly configured to access the system."
    }
    ```
    
*   **404** Entity not found.
    
    Headers:
    
    *   `X-RateLimit-Limit` (string) The maximum number of requests permitted per minute.
    *   `X-RateLimit-Remaining` (string) The number of requests remaining in the current rate limit window.
    *   `X-RateLimit-Reset` (string) The time at which the current rate limit window resets in UTC epoch seconds.
    
    Media type: `application/problem+json`. Schema: `InventoryResponseErrorSchema`.
    
    _Example: EntityNotFound_
    
    ```
    {
      "type": "about:blank",
      "errorCode": "EntityNotFound",
      "message": "An invalid entity was provided."
    }
    ```
    
*   **429** The user has sent too many requests in a given amount of time ("rate limiting")
    
    Headers:
    
    *   `Retry-After` (string)
    
    Media type: `application/problem+json`. Schema: `object`.
    
    *   `title` (_string_) A short, human-readable summary of the problem type. It will not change from occurrence to occurrence of the problem, except for purposes of localization.  
        Example: `You do not have enough credit.`.
    *   `type` (_string_, required) A URI reference \[RFC3986\] that identifies the problem type. This specification encourages that, when dereferenced, it provide human-readable documentation for the problem type (e.g., using HTML \[W3C.REC-html5-20141028\]). When this member is not present, its value is assumed to be "about:blank". It accepts relative URIs; this means that they must be resolved relative to the document's base URI, as per \[RFC3986\], Section 5.  
        Example: `https://example.com/probs/out-of-credit`.
    *   `detail` (_string_) A human-readable explanation specific to this occurrence of the problem.  
        Example: `Your current balance is 30, but that costs 50.`.
    *   `instance` (_string_) A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced. It accepts relative URIs; this means that they must be resolved relative to the document's base URI, as per \[RFC3986\], Section 5.  
        Example: `/account/12345/msgs/abc`.
    
    _Example_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/too-many-requests",
      "title": "Too Many Requests",
      "detail": "You have performed too many requests in a short period of time."
    }
    ```
    

### DELETE Delete a location SKU. When you call this endpoint, all SKU values are reset and marked for deletion from the system. History is not preservered by this action, and the aggregate for this location SKU is also removed from the group view.

`DELETE /organizations/{organizationId}/locations/{locationId}/availability-records/skus/{sku}/{requestId}`

Operation ID: `deleteLocationSku`. Security: AmOAuth2 (sfcc.inventory.availability.rw, sfcc\_inventory\_availability\_rw).

#### Parameters

*   `locationId` (path, LocationId, required) The location for the SKU being updated.
*   `sku` (path, SkuId, required) The SKU associated with the inventory record you want to update.
*   `requestId` (path, string, required) The unique request ID associated with the attempt to update an item in inventory.  
    Maximum length: 128. Example: `3678-23456-3456-4567-9999-1232`.
*   `organizationId` (path, OrganizationId, required) An identifier for the organization the request is being made by
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    

#### Responses

*   **204** Location SKU successfully deleted from the system.
    
    Headers:
    
    *   `X-RateLimit-Limit` (string) The maximum number of requests permitted per minute.
    *   `X-RateLimit-Remaining` (string) The number of requests remaining in the current rate limit window.
    *   `X-RateLimit-Reset` (string) The time at which the current rate limit window resets in UTC epoch seconds.
*   **404** Location SKU not found.
    
    Headers:
    
    *   `X-RateLimit-Limit` (string) The maximum number of requests permitted per minute.
    *   `X-RateLimit-Remaining` (string) The number of requests remaining in the current rate limit window.
    *   `X-RateLimit-Reset` (string) The time at which the current rate limit window resets in UTC epoch seconds.
    
    Media type: `application/problem+json`. Schema: `InventoryResponseErrorSchema`.
    
    _Example: SKUNotFound_
    
    ```
    {
      "type": "about:blank",
      "errorCode": "EntityNotFound",
      "message": "The Location SKU provided was not found in the system."
    }
    ```
    
*   **409** There is an inventory export in progress, deletion is not allowed.
    
    Headers:
    
    *   `X-RateLimit-Limit` (string) The maximum number of requests permitted per minute.
    *   `X-RateLimit-Remaining` (string) The number of requests remaining in the current rate limit window.
    *   `X-RateLimit-Reset` (string) The time at which the current rate limit window resets in UTC epoch seconds.
    
    Media type: `application/problem+json`. Schema: `InventoryResponseErrorSchema`.
    
    _Example: ExportInProgress_
    
    ```
    {
      "type": "about:blank",
      "errorCode": "ExportInProcess",
      "message": "Export 1234-3456-45678-1234 is in progress."
    }
    ```
    
*   **429** The user has sent too many requests in a given amount of time ("rate limiting")
    
    Headers:
    
    *   `Retry-After` (string)
    
    Media type: `application/problem+json`. Schema: `object`.
    
    *   `title` (_string_) A short, human-readable summary of the problem type. It will not change from occurrence to occurrence of the problem, except for purposes of localization.  
        Example: `You do not have enough credit.`.
    *   `type` (_string_, required) A URI reference \[RFC3986\] that identifies the problem type. This specification encourages that, when dereferenced, it provide human-readable documentation for the problem type (e.g., using HTML \[W3C.REC-html5-20141028\]). When this member is not present, its value is assumed to be "about:blank". It accepts relative URIs; this means that they must be resolved relative to the document's base URI, as per \[RFC3986\], Section 5.  
        Example: `https://example.com/probs/out-of-credit`.
    *   `detail` (_string_) A human-readable explanation specific to this occurrence of the problem.  
        Example: `Your current balance is 30, but that costs 50.`.
    *   `instance` (_string_) A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced. It accepts relative URIs; this means that they must be resolved relative to the document's base URI, as per \[RFC3986\], Section 5.  
        Example: `/account/12345/msgs/abc`.
    
    _Example_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/too-many-requests",
      "title": "Too Many Requests",
      "detail": "You have performed too many requests in a short period of time."
    }
    ```
    

### PATCH Update or patch the data or quantity information for an item. On a PATCH call, most fields are optional, and only fields that are included are updated with the provided values.

`PATCH /organizations/{organizationId}/locations/{locationId}/availability-records/skus/{sku}/{requestId}`

Operation ID: `updateSkuLocation`. Security: AmOAuth2 (sfcc.inventory.availability.rw, sfcc\_inventory\_availability\_rw).

#### Parameters

*   `locationId` (path, LocationId, required) The location for the SKU being updated.
*   `sku` (path, SkuId, required) The SKU associated with the inventory record you want to update.
*   `requestId` (path, string, required) The unique request ID associated with the attempt to update an item in inventory.  
    Maximum length: 128. Example: `3678-23456-3456-4567-9999-1232`.
*   `organizationId` (path, OrganizationId, required) An identifier for the organization the request is being made by
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    

#### Request body (required)

Media type: `application/json`. Schema: `InventoryUpdateRequestBodyPatch`.

_Example: InventoryUpdatePatchRequest_

```
{
  "externalRefId": "7282822-9823-aaa",
  "onHand": 25
}
```

#### Responses

*   **204** Data updated successfully.
    
    Headers:
    
    *   `X-RateLimit-Limit` (string) The maximum number of requests permitted per minute.
    *   `X-RateLimit-Remaining` (string) The number of requests remaining in the current rate limit window.
    *   `X-RateLimit-Reset` (string) The time at which the current rate limit window resets in UTC epoch seconds.
*   **400** Invalid request.
    
    Headers:
    
    *   `X-RateLimit-Limit` (string) The maximum number of requests permitted per minute.
    *   `X-RateLimit-Remaining` (string) The number of requests remaining in the current rate limit window.
    *   `X-RateLimit-Reset` (string) The time at which the current rate limit window resets in UTC epoch seconds.
    
    Media type: `application/problem+json`. Schema: `InventoryResponseErrorSchema`.
    
    _Example: ErrorEntityNotFound_
    
    ```
    {
      "type": "about:blank",
      "errorCode": "EntityNotFound",
      "message": "'EntityId' The provided entity is not found",
      "parameterName": "EntityId"
    }
    ```
    
*   **403** Organization not authorized.
    
    Media type: `application/problem+json`. Schema: `InventoryResponseErrorSchema`.
    
    _Example: tenantNotProvisioned403_
    
    ```
    {
      "type": "about:blank",
      "errorCode": "TenantNotProvisioned",
      "message": "The client is not correctly configured to access the system."
    }
    ```
    
*   **404** Entity not found.
    
    Headers:
    
    *   `X-RateLimit-Limit` (string) The maximum number of requests permitted per minute.
    *   `X-RateLimit-Remaining` (string) The number of requests remaining in the current rate limit window.
    *   `X-RateLimit-Reset` (string) The time at which the current rate limit window resets in UTC epoch seconds.
    
    Media type: `application/problem+json`. Schema: `InventoryResponseErrorSchema`.
    
    _Example: EntityNotFound_
    
    ```
    {
      "type": "about:blank",
      "errorCode": "EntityNotFound",
      "message": "An invalid entity was provided."
    }
    ```
    
*   **429** The user has sent too many requests in a given amount of time ("rate limiting")
    
    Headers:
    
    *   `Retry-After` (string)
    
    Media type: `application/problem+json`. Schema: `object`.
    
    *   `title` (_string_) A short, human-readable summary of the problem type. It will not change from occurrence to occurrence of the problem, except for purposes of localization.  
        Example: `You do not have enough credit.`.
    *   `type` (_string_, required) A URI reference \[RFC3986\] that identifies the problem type. This specification encourages that, when dereferenced, it provide human-readable documentation for the problem type (e.g., using HTML \[W3C.REC-html5-20141028\]). When this member is not present, its value is assumed to be "about:blank". It accepts relative URIs; this means that they must be resolved relative to the document's base URI, as per \[RFC3986\], Section 5.  
        Example: `https://example.com/probs/out-of-credit`.
    *   `detail` (_string_) A human-readable explanation specific to this occurrence of the problem.  
        Example: `Your current balance is 30, but that costs 50.`.
    *   `instance` (_string_) A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced. It accepts relative URIs; this means that they must be resolved relative to the document's base URI, as per \[RFC3986\], Section 5.  
        Example: `/account/12345/msgs/abc`.
    
    _Example_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/too-many-requests",
      "title": "Too Many Requests",
      "detail": "You have performed too many requests in a short period of time."
    }
    ```
    

## Schemas

### OrganizationId

An identifier for the organization the request is being made by

Type: `string`.

Minimum length: 1. Maximum length: 32. Example: `f_ecom_zzxy_prd`.

### CreateNewDeltaTokenBody

Whether this is a location or a group

*   `placeType` (_PlaceType_, required)
*   `places` (_Places_, required)

### CreateNewDeltaTokenResponse

The new Delta Token

*   `deltaToken` (_DeltaToken_, required)

### InventoryResponseErrorSchema

*   `errorCode` (_string_, required)  
    Maximum length: 256. Example: `InvalidRequestParameter`.
*   `message` (_string_, required)  
    Maximum length: 256. Example: `An invalid request parameter was provided.`.
*   `type` (_string_, required)  
    Maximum length: 256. Example: `about:blank`.
*   `parameterName` (_string_) When invalid json is passed to the service, this field will indicate which piece of the supplied json was invalid.  
    Maximum length: 256. Example: `location`.

### UpdateDeltaTokenBody

*   `deltaToken` (_DeltaToken_, required)
*   `places` (_Places_, required)

### UpdateDeltaTokenResponse

The updated Delta Token

*   `deltaToken` (_DeltaToken_, required)
*   `places` (_Places_)

### BatchInventoryUpdateRequest

*   `records` (_array of BatchInventoryUpdateRequestRecord_, required) List of records to process in a batch update. The maximum number of entries in the array is 100.  
    Maximum items: 100.

### BatchInventoryUpdateErrors

Errors produced during a batch inventory update

*   `errors` (_array of BatchInventoryUpdateSingleError_, required)

### GetAvailabilityDeltasPostBody

*   `deltaToken` (_DeltaToken_, required)

### GetAvailabilityDeltasResponse200

*   `nextDeltaToken` (_DeltaToken_, required)
*   `shouldQueryAgain` (_ShouldQueryAgain_, required)
*   `records` (_array of DeltaRecordType_, required)

### InventoryAvailabilityRequestBody

The body that is sent requesting the item availability by location and/or group

*   `sku` (_object_) Used for retrieving the data for a single item for all locations that have not been assigned to any specific group(s). If a group Id is specified in the request, then the locations to be returned will be the ones assigned to the specified group.
    
    Includes all fields of `SkuId`.
    
*   `group` (_object_) The group ID that should be used in conjunction with the single sku provided in the request. This will retrieve the information for all locations in this group.
    
    Includes all fields of `GroupId`.
    
*   `skus` (_array of SkuId_) It specifies the skus for which the availability requires to be checked. The array of SKUs is limited by the total combinations of SKU per location plus SKU per group to check, the total cannot be more than 100.
*   `locations` (_array of LocationId_) Query the system for availability at this location. This field does not union with the groups field. The array of locations is limited by the total combinations of SKU per location plus SKU per group to check, the total cannot be more than 100.
*   `groups` (_array of GroupId_) Query the system for availability for this group. This field does not union with the locations field. Array is limited to 0-100 items. This field does not union with the groups field. The array of groups is limited by the total combinations of SKU per location plus SKU per group to check, the total cannot be more than 100.

### Response200

Successful request for item information

*   `locations` (_array of ItemLocationInfo_, required)
*   `groups` (_array of ItemGroupInfo_)

### ProductSegmentationAppendRequestBody

*   `groups` (_array of object_, required)
    *   `groupId` (_GroupId_, required)
    *   `mode` (_string_, required)  
        Allowed values: `APPEND`. Example: `APPEND`.
    *   `skus` (_array of SkuId_, required)
        
        _Example_
        
        ```
        [
          "AppendNewSku1",
          "AppendNewSku2"
        ]
        ```
        

### ProductSegmentationDeleteRequestBody

*   `groups` (_array of object_, required)
    *   `groupId` (_GroupId_, required)
    *   `mode` (_string_, required)  
        Allowed values: `DELETE`. Example: `DELETE`.
    *   `skus` (_array of SkuId_, required)
        
        _Example_
        
        ```
        [
          "DeleteSku1",
          "DeleteSku2"
        ]
        ```
        

### Errors

Array of `object`.

*   `error` (_string_, required)  
    Maximum length: 256. Example: `Failed to delete product segmentation for group id WarehouseOne and sku 13`.

### LocationId

The id of the location of the inventory.

Type: `string`.

Minimum length: 2. Maximum length: 128. Pattern: ^\[a-zA-Z0-9-\_\]\*$. Example: `warehouse5`.

### SkuId

The inventory identifier

Type: `string`.

Minimum length: 2. Maximum length: 250. Pattern: ^\[^\\\\<>;%/\\s\]\*$. Example: `sku123`.

### InventoryUpdateRequestBodyPut

The body of the put request for updating sku/location inventory. All fields are required. If a field is missing or contains a null value then a 400 error will be thrown.

*   `externalRefId` (_ExternalRefId_)
*   `onHand` (_QOH_)
*   `safetyStockCount` (_SafetyStock_)
*   `effectiveDate` (_Date_)
*   `futureStock` (_array of Future_)
*   `attributeSet` (_AttributeSet_)

### InventoryUpdateRequestBodyPatch

The body of the patch request for updating sku/location inventory. All fields are OPTIONAL. If a field is missing or contains a null value then the system doesn't update that field when patching.

*   `externalRefId` (_ExternalRefId_)
*   `onHand` (_QOH_)
*   `safetyStockCount` (_SafetyStock_)
*   `effectiveDate` (_Date_)
*   `futureStock` (_array of Future_)
*   `attributeSet` (_AttributeSet_)

### PlaceType

The type of place associated to the id

Type: `string`.

Maximum length: 256. Example: `{type: location | group}`.

### Places

The list of places

Array of `object`.

Maximum items: 100.

Includes all fields of `GroupId`, `LocationId`.

_Example_

```
{
  "locationExample": [
    "warehouseOne",
    "warehouseTwo"
  ],
  "groupExample": [
    "UnitedStates",
    "Canada"
  ]
}
```

### DeltaToken

The delta token obtained from a full export or a previous request to this API

Type: `string`.

Maximum length: 256. Example: `e3NoYXJkSWQtMDAwMDAwMDE1NzczOTkxNTc2MDItYmE5MGYxNGE6MDAwMDAwMDAwMDAwMDAwMDAwNDQ0fQ==`.

### BatchInventoryUpdateRequestRecord

Record definition used in a batch inventory update request

*   `externalRefId` (_ExternalRefId_)
*   `futureStock` (_array of Future_)
*   `attributeSet` (_AttributeSet_)
*   `location` (_LocationId_, required)
*   `onHand` (_QOH_)
*   `safetyStockCount` (_SafetyStock_)
*   `sku` (_SkuId_, required)
*   `id` (_IdempotenceId_, required)
*   `effectiveDate` (_Date_)

### BatchInventoryUpdateSingleError

Error record information generated during a batch inventory update.

*   `details` (_BatchInventoryUpdateErrorDetail_, required)
*   `message` (_string_, required)  
    Maximum length: 255. Example: `Inventory record update failed`.
*   `errorCode` (_string_, required)  
    Maximum length: 255. Example: `InventoryReset`.

### ShouldQueryAgain

Indicates to the consumer if they should immediately call again to retrieve deltas that are potentially waiting in the stream.

Type: `boolean`.

Example: `true`.

### DeltaRecordType

An availability delta record that is returned from the availability delta calls. All fields that are Required will be reported, however if there is not a value for any particular field, it will be 0, empty or null.

*   `sku` (_SkuId_, required)
*   `deltaType` (_string_, required)  
    Allowed values: `Change`, `Delete`. Example: `Change`.
*   `id` (_PlaceId_, required)
*   `effectiveDate` (_object_) The effective date for the info is provided, but the field is NOT required. The date represents when the onHand value was accurate at the location.
    
    Includes all fields of `Date`.
    
*   `sequenceNumber` (_number_, required) A sequence number to allow the caller to determine if records have been returned out of order.  
    Example: `123`.
*   `onHand` (_QOH_, required)
*   `atf` (_ATF_, required)
*   `ato` (_ATO_, required)
*   `reserved` (_QuantityReserved_, required)
*   `safetyStockCount` (_SafetyStock_, required)
*   `futures` (_array of Future_, required)

### GroupId

An identifier for a collection of locations.

Type: `string`.

Minimum length: 1. Maximum length: 128. Pattern: ^\[a-zA-Z0-9-\_\]\*$. Example: `UnitedStates`.

### ItemLocationInfo

Location information used for availability by location responses

*   `id` (_LocationId_, required)
*   `records` (_array of object_, required) Records returned for the sku/location combination
    
    Each item: A record contained within the lookup results containing details about the item. Those details include the sku, available to fulfill amount, available to order amount, quantity on hand amount, and the safety stock count value.
    
    *   `sku` (_SkuId_, required)
    *   `atf` (_ATF_, required)
    *   `ato` (_ATO_, required)
    *   `onHand` (_QOH_, required)
    *   `reserved` (_Reserved_, required)
    *   `safetyStockCount` (_SafetyStock_, required)
    *   `effectiveDate` (_Date_)
    *   `futures` (_array of Future_)
    *   `attributeSet` (_AttributeSet_)
    *   `exists` (_Exists_)

### ItemGroupInfo

The group info, associated with an item and used in the availability responses.

*   `id` (_GroupId_, required)
*   `records` (_array of object_, required) Records returned for a sku/group combination
    
    Each item: A record contained within the lookup results containing details about the item. Those details include the sku, available to fulfill amount, available to order amount, quantity on hand amount, and the safety stock count value.
    
    *   `sku` (_SkuId_, required)
    *   `atf` (_object_, required) The amount available to fulfill at for the group
        
        Includes all fields of `ATF`.
        
    *   `ato` (_object_, required) The amount available to order at within the group
        
        Includes all fields of `ATO`.
        
    *   `onHand` (_object_, required) Quantity on hand within the group.
        
        Includes all fields of `QOH`.
        
    *   `reserved` (_object_, required) The amount reserved within the group
        
        Includes all fields of `Reserved`.
        
    *   `safetyStockCount` (_SafetyStock_, required)
    *   `groupReserved` (_object_) The total group reservations for the group NOT including shared
        
        Includes all fields of `Reserved`.
        
    *   `sharedGroupReserved` (_object_) The amount of the soft\_reserved count that comes from other groups
        
        Includes all fields of `Reserved`.
        
    *   `effectiveDate` (_Date_)
    *   `futures` (_array of FutureGroup_)
    *   `exists` (_Exists_)

### ExternalRefId

A convenience identifier for the consumer, used for auditing events. This field is NOT used by the service itself, but is intended for the consumer to be able to identify records submitted from their systems that are external to OCI.

Type: `string`.

Maximum length: 250. Example: `7282822-9823-aaa`.

### QOH

Quantity on hand.

Type: `number (double)`.

Minimum: 0. Multiple of: 0.001. Example: `1200.35`.

### SafetyStock

Inventory quantity that a merchant wants to intentionally hold back from availability counts. Precision of the safety stock is four decimal places: 0.001.

Type: `number (double)`.

Minimum: 0. Example: `12.45`.

### Date

The date the future quantity is expected to arrive at the location.

Type: `string (date-time)`.

Example: `2019-07-24T21:13:00Z`.

### Future

The 'future' object contains data that tells us what is expected to arrive for this item in the future, as well as when those amounts of inventory should arrive.

*   `expectedDate` (_Date_, required)
*   `quantity` (_Quantity_, required)

### AttributeSet

A set of attributes that can be applied as attributes in a request.

*   `groupEligibilityExclusion` (_array of GroupEligibilityExclusion_, required)

### IdempotenceId

A unique identifier, used in combination with the SKU, so that future requests with the same combination have the same result.

Type: `string`.

Maximum length: 250. Example: `82251928-8863-488e-840b-2aebd10b57ba`.

### BatchInventoryUpdateErrorDetail

Detail information for errors generated during a batch inventory update.

*   `externalRefId` (_ExternalRefId_)
*   `locationId` (_LocationId_, required)
*   `sku` (_SkuId_, required)
*   `id` (_IdempotenceId_, required)

### PlaceId

The id of a group or location where inventory is located.

Type: `string`.

Maximum length: 128.

_Example_

```
{
  "location": "warehouse5",
  "group": "UnitedStates"
}
```

### ATF

The amount available to fulfill at the location

Type: `number (double)`.

Minimum: 0. Multiple of: 0.001. Example: `1137.65`.

### ATO

The amount available to order at the location

Type: `number (double)`.

Minimum: 0. Multiple of: 0.001. Example: `1147.9`.

### QuantityReserved

Actual quantity reserved. This value can be less than the quantity requested.

Type: `number (double)`.

Minimum: 0. Multiple of: 0.001. Example: `50.25`.

### Reserved

The amount reserved at the location

Type: `number (double)`.

Minimum: 0. Multiple of: 0.001. Example: `12.5`.

### Exists

Indicates whether a record exists for a SKU. This could be helpful since, the Get Availability API returns records with all zero values when the sku does not exist.

Type: `boolean`.

Example: `true`.

### FutureGroup

The 'future' object contains data that tells us what is expected to arrive for this item in the future, as well as when those amounts of inventory should arrive.

*   `expectedDate` (_DateGroup_, required)
*   `quantity` (_Quantity_, required)

### Quantity

The amount that is expected to arrive at a future date

Type: `number`.

Minimum: 0.001. Multiple of: 0.001. Example: `10.25`.

### GroupEligibilityExclusion

The group eligibility exclusion that can be applied in an Attribute Set as part of an item update.

Type: `string`.

Minimum length: 2. Maximum length: 128.

### DateGroup

The date the future quantity is expected to arrive within the group

Includes all fields of `Date`.

Example: `2019-07-24T21:13:00Z`.