# Storage locations endpoints

## The StorageLocation object

```json
{"openapi":"3.0.1","info":{"title":"fulfillmenttools","version":"VERSIONLESS"},"components":{"schemas":{"StorageLocation":{"allOf":[{"$ref":"#/components/schemas/StorageLocationForReplacement"},{"$ref":"#/components/schemas/VersionedResource"}],"properties":{"facilityRef":{"description":"The id of the facility reference.","type":"string"},"id":{"description":"The id of this storage location","type":"string"},"schemaVersion":{"type":"number"},"traitConfig":{"$ref":"#/components/schemas/StorageLocationTraitConfig"},"traits":{"description":"The traits of this storage location","items":{"$ref":"#/components/schemas/StorageLocationTrait"},"type":"array"},"zoneName":{"deprecated":true,"description":"Deprecated! This field will not be filled in newly created storage locations. Resolve the zone name separately via the facilities/{id}/zones endpoint. The name of the Zone to which this storage location belongs","type":"string"}},"required":["id","facilityRef","traits"],"type":"object","xml":{"name":"StorageLocation"},"title":"StorageLocation","description":"StorageLocation"},"StorageLocationForReplacement":{"allOf":[{"$ref":"#/components/schemas/StorageLocationForCreation"}],"properties":{"version":{"format":"int64","type":"integer"}},"required":["version"],"type":"object","xml":{"name":"StorageLocationForReplacement"},"title":"StorageLocationForReplacement","description":"StorageLocationForReplacement"},"StorageLocationForCreation":{"allOf":[{"$ref":"#/components/schemas/CustomAttributesResource"}],"properties":{"information":{"description":"A free text information about this storage location, max length 1024","maxLength":1024,"type":"string"},"name":{"description":"The name of this storage location","maxLength":15,"type":"string"},"runningSequences":{"description":"The Sequence item/s of this location","items":{"$ref":"#/components/schemas/StorageLocationSequenceItem"},"maxItems":10,"type":"array"},"scannableCodes":{"description":"Barcodes representing this storage location","items":{"type":"string"},"maxItems":5,"type":"array"},"tenantLocationId":{"description":"The internal tenant id for this location","type":"string"},"traitConfig":{"$ref":"#/components/schemas/StorageLocationTraitConfig"},"traits":{"description":"The traits of this storage location, includes both local config and and defaults. Do not use to write to traits, use traitConfig instead.","items":{"$ref":"#/components/schemas/StorageLocationTrait"},"type":"array"},"type":{"$ref":"#/components/schemas/StorageLocationType"},"zoneName":{"description":"The name of the Zone to which this storage location belongs","type":"string"},"zoneRef":{"description":"The id of the Zone to which this storage location belongs","type":"string"}},"required":["name","runningSequences","scannableCodes","type"],"type":"object","xml":{"name":"StorageLocationForCreation"},"title":"StorageLocationForCreation","description":"StorageLocationForCreation"},"CustomAttributesResource":{"properties":{"customAttributes":{"description":"Attributes that can be added to this entity. These attributes **cannot** be used within fulfillment processes, but enable you to attach custom data from your systems to fulfillmenttools entities.","nullable":true,"type":"object"}},"title":"CustomAttributesResource","type":"object","description":"CustomAttributesResource"},"StorageLocationSequenceItem":{"properties":{"nextStorageLocationRef":{"description":"The next storage from which to pick up after this one","type":"string"},"previousStorageLocationRef":{"description":"The previous storage from which to pick up after this one","type":"string"},"score":{"deprecated":true,"description":"Running sequence score - read-only","type":"number"},"type":{"$ref":"#/components/schemas/StorageLocationSequenceType"}},"required":["type"],"type":"object","xml":{"name":"StorageLocationSequenceItem"},"title":"StorageLocationSequenceItem","description":"StorageLocationSequenceItem"},"StorageLocationSequenceType":{"description":"Describes the type of a storage location sequence type\n  * `PICKING_SEQUENCE`- The sequence in wich the storage locations are picked.\n  * `RESTOW_SEQUENCE`- The sequence in wich the storage locations are restowed.","enum":["PICKING_SEQUENCE","RESTOW_SEQUENCE"],"type":"string","xml":{"name":"StorageLocationType"},"title":"StorageLocationSequenceType"},"StorageLocationTraitConfig":{"description":"The configuration of the traits of this storage location","items":{"properties":{"enabled":{"type":"boolean"},"trait":{"$ref":"#/components/schemas/StorageLocationTrait"}},"required":["trait","enabled"],"type":"object"},"type":"array","title":"StorageLocationTraitConfig"},"StorageLocationTrait":{"description":"Describes what kind of actions this stock is available for\n  * `PICKABLE`- The stock is available for picking\n  * `ACCESSIBLE`- The stock is available for stock movements (stowing, inbound, etc)\n  * `KEEP_ON_ZERO`- The stock will not be deleted when emptied\n  * `OUTBOUND`- The stock is intended for outbound processes\n  * `IN_MOTION`- The stock is in motion, used by StowJobs.","enum":["PICKABLE","ACCESSIBLE","KEEP_ON_ZERO","OUTBOUND","IN_MOTION"],"type":"string","xml":{"name":"StorageLocationTrait"},"title":"StorageLocationTrait"},"StorageLocationType":{"description":"Describes the kind of a storage location:\n  * `SINGLE_STORAGE`- it is only allowed to store stock with the same tenantArticleId here\n  * `BULK_STORAGE`- stocks belonging to different tenantArticleIds can be stored here","enum":["SINGLE_STORAGE","BULK_STORAGE"],"type":"string","xml":{"name":"StorageLocationType"},"title":"StorageLocationType"},"VersionedResource":{"properties":{"created":{"description":"The date this entity was created at the platform. This value is generated by the service.","format":"date-time","type":"string"},"lastModified":{"description":"The date this entity was modified last. This value is generated by the service.","format":"date-time","type":"string"},"version":{"description":"The version of the document to be used in optimistic locking mechanisms.","format":"int64","type":"integer"}},"required":["version"],"type":"object","title":"VersionedResource","description":"VersionedResource"}}}}
```

## List storage locations (search)

> Search for StorageLocation

```json
{"openapi":"3.0.1","info":{"title":"fulfillmenttools","version":"VERSIONLESS"},"tags":[{"description":"Endpoints to create, update and read storage locations and zones.","name":"Storage Locations (Inventory)"}],"servers":[{"url":"https://{tenant}.api.fulfillmenttools.com","variables":{"tenant":{"default":"your-tenant-name"}}}],"security":[{"BearerToken":[]}],"components":{"securitySchemes":{"BearerToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"StorageLocationSearchPayload":{"properties":{"after":{"deprecated":false,"description":"The cursor to start after for forward pagination. The value is provided in the `pageInfo.endCursor` field of the response. Cannot be used with `before` or `last`.","type":"string"},"before":{"description":"The cursor to start before for backward pagination. The value is provided in the `pageInfo.startCursor` field of the response. Cannot be used with `after` or `size` (first).","type":"string"},"last":{"description":"Number of items to return for backward pagination. Cannot be used with 'size' (first). Default: 20.","maximum":250,"minimum":1,"type":"number"},"options":{"$ref":"#/components/schemas/SearchOptions"},"query":{"$ref":"#/components/schemas/StorageLocationSearchQuery"},"size":{"description":"Number of items to return for forward pagination. Cannot be used with 'last'. Default: 20.","maximum":250,"minimum":1,"type":"number"},"sort":{"description":"Use for sorting the result.","items":{"$ref":"#/components/schemas/StorageLocationSort"},"maxItems":1,"minItems":1,"type":"array"},"startAfterId":{"deprecated":true,"description":"The ID to start after. Deprecated, use `after` with the value provided in `pageInfo.endCursor` instead.","type":"string"}},"required":["query"],"title":"StorageLocationSearchPayload","type":"object","description":"StorageLocationSearchPayload"},"SearchOptions":{"properties":{"withTotal":{"description":"Set to true to include the total count of items in the search result.","type":"boolean"}},"title":"SearchOptions","type":"object","description":"SearchOptions"},"StorageLocationSearchQuery":{"properties":{"and":{"items":{"$ref":"#/components/schemas/StorageLocationSearchQuery"},"maxItems":500,"type":"array"},"created":{"allOf":[{"$ref":"#/components/schemas/DateFilter"}],"description":"Search entries by created. Applying a narrow and well-considered filter value is strongly recommended, as it can greatly improve response times, especially when working with large datasets."},"customAttributes":{"additionalProperties":{"anyOf":[{"$ref":"#/components/schemas/BooleanFilter"},{"$ref":"#/components/schemas/StringEqFilter"},{"$ref":"#/components/schemas/NumberEqFilter"},{"$ref":"#/components/schemas/DateFilter"}]},"description":"Search by custom attributes","type":"object"},"facilityRef":{"allOf":[{"$ref":"#/components/schemas/StringFilter"}],"description":"Search by facilityRef"},"id":{"allOf":[{"$ref":"#/components/schemas/StringFilter"}],"description":"Search by id"},"name":{"allOf":[{"$ref":"#/components/schemas/StringFilter"}],"description":"Search by name"},"or":{"items":{"$ref":"#/components/schemas/StorageLocationSearchQuery"},"maxItems":500,"type":"array"},"referenced":{"allOf":[{"$ref":"#/components/schemas/StorageLocationReferencedFilter"}],"description":"Nested search by referenced"},"scannableCodes":{"allOf":[{"$ref":"#/components/schemas/StringListFilter"}],"description":"Search by scannableCodes"},"tenantLocationId":{"allOf":[{"$ref":"#/components/schemas/StringFilter"}],"description":"Search by tenantLocationId"},"traits":{"allOf":[{"$ref":"#/components/schemas/StorageLocationTraitEnumListFilter"}],"description":"Search by traits"},"type":{"allOf":[{"$ref":"#/components/schemas/StorageLocationTypeEnumFilter"}],"description":"Search by type"},"zoneRef":{"allOf":[{"$ref":"#/components/schemas/StringFilter"}],"description":"Search by zoneRef"}},"title":"StorageLocationSearchQuery","type":"object","description":"StorageLocationSearchQuery"},"DateFilter":{"properties":{"after":{"description":"Search using ISO‑8601 dates relative to today. Prefix with “–” for past dates. Results include events after the specified date. Example: “–P1D” for yesterday, “P1W” for next week.","maxLength":256,"type":"string"},"before":{"description":"Search using ISO‑8601 dates relative to today. Prefix with “–” for past dates. Results include events before the specified date. Example: “–P1D” for yesterday, “P1W” for next week.","maxLength":256,"type":"string"},"eq":{"format":"date-time","type":"string"},"gt":{"format":"date-time","type":"string"},"gte":{"format":"date-time","type":"string"},"lt":{"format":"date-time","type":"string"},"lte":{"format":"date-time","type":"string"},"notEq":{"format":"date-time","type":"string"}},"title":"DateFilter","type":"object","description":"DateFilter"},"BooleanFilter":{"properties":{"eq":{"type":"boolean"},"notEq":{"type":"boolean"}},"title":"BooleanFilter","type":"object","description":"BooleanFilter"},"StringEqFilter":{"properties":{"eq":{"maxLength":256,"type":"string"},"notEq":{"maxLength":256,"type":"string"}},"title":"StringEqFilter","type":"object","description":"StringEqFilter"},"NumberEqFilter":{"properties":{"eq":{"type":"number"},"gt":{"type":"number"},"gte":{"type":"number"},"lt":{"type":"number"},"lte":{"type":"number"},"notEq":{"type":"number"}},"title":"NumberEqFilter","type":"object","description":"NumberEqFilter"},"StringFilter":{"properties":{"eq":{"maxLength":256,"type":"string"},"in":{"items":{"maxLength":256,"type":"string"},"maxItems":25,"type":"array"},"notEq":{"maxLength":256,"type":"string"},"notIn":{"items":{"maxLength":256,"type":"string"},"maxItems":25,"type":"array"}},"title":"StringFilter","type":"object","description":"StringFilter"},"StorageLocationReferencedFilter":{"properties":{"stock":{"allOf":[{"$ref":"#/components/schemas/StorageLocationReferencedStockFilter"}],"description":"Nested search by stock"}},"title":"StorageLocationReferencedFilter","type":"object","description":"StorageLocationReferencedFilter"},"StorageLocationReferencedStockFilter":{"properties":{"hasStocks":{"allOf":[{"$ref":"#/components/schemas/BooleanFilter"}],"description":"Whether the storage locations has any stocks on it."},"sumOfValues":{"allOf":[{"$ref":"#/components/schemas/NumberFilter"}],"description":"The sum of all stock values in this storage location, i.e. how much stock is stored in this location."}},"title":"StorageLocationReferencedStockFilter","type":"object","description":"StorageLocationReferencedStockFilter"},"NumberFilter":{"properties":{"eq":{"type":"number"},"gt":{"type":"number"},"gte":{"type":"number"},"in":{"items":{"type":"number"},"maxItems":25,"type":"array"},"lt":{"type":"number"},"lte":{"type":"number"},"notEq":{"type":"number"},"notIn":{"items":{"type":"number"},"maxItems":25,"type":"array"}},"title":"NumberFilter","type":"object","description":"NumberFilter"},"StringListFilter":{"properties":{"contains":{"$ref":"#/components/schemas/StringEqFilter"}},"title":"StringListFilter","type":"object","description":"StringListFilter"},"StorageLocationTraitEnumListFilter":{"properties":{"contains":{"allOf":[{"$ref":"#/components/schemas/StorageLocationTraitEnumFilter"}],"description":"Search by traits"}},"title":"StorageLocationTraitEnumListFilter","type":"object","description":"StorageLocationTraitEnumListFilter"},"StorageLocationTraitEnumFilter":{"properties":{"eq":{"description":"Search by traits","enum":["PICKABLE","ACCESSIBLE","KEEP_ON_ZERO","OUTBOUND","IN_MOTION"],"type":"string"},"in":{"description":"Search by traits","items":{"enum":["PICKABLE","ACCESSIBLE","KEEP_ON_ZERO","OUTBOUND","IN_MOTION"],"type":"string"},"maxItems":500,"type":"array"},"notEq":{"description":"Search by traits","enum":["PICKABLE","ACCESSIBLE","KEEP_ON_ZERO","OUTBOUND","IN_MOTION"],"type":"string"}},"title":"StorageLocationTraitEnumFilter","type":"object","description":"StorageLocationTraitEnumFilter"},"StorageLocationTypeEnumFilter":{"properties":{"eq":{"description":"Search by type","enum":["SINGLE_STORAGE","BULK_STORAGE"],"type":"string"},"in":{"description":"Search by type","items":{"enum":["SINGLE_STORAGE","BULK_STORAGE"],"type":"string"},"maxItems":500,"type":"array"},"notEq":{"description":"Search by type","enum":["SINGLE_STORAGE","BULK_STORAGE"],"type":"string"}},"title":"StorageLocationTypeEnumFilter","type":"object","description":"StorageLocationTypeEnumFilter"},"StorageLocationSort":{"properties":{"created":{"enum":["ASC","DESC"],"type":"string"},"customAttributes":{"additionalProperties":true,"maxProperties":1,"minProperties":1,"type":"object"},"lastModified":{"enum":["ASC","DESC"],"type":"string"},"name":{"enum":["ASC","DESC"],"type":"string"},"tenantLocationId":{"enum":["ASC","DESC"],"type":"string"},"zoneRef":{"enum":["ASC","DESC"],"type":"string"}},"title":"StorageLocationSort","type":"object","description":"StorageLocationSort"},"StorageLocationPaginatedResult":{"properties":{"pageInfo":{"allOf":[{"$ref":"#/components/schemas/PageInfo"}],"description":"Pagination information for the search result."},"storageLocations":{"items":{"$ref":"#/components/schemas/StorageLocation"},"type":"array"},"total":{"description":"The total number of items matching the search criteria. Only filled, if withTotal is set to true in the search options.","minimum":0,"type":"number"}},"required":["pageInfo","storageLocations"],"title":"StorageLocationPaginatedResult","type":"object","description":"StorageLocationPaginatedResult"},"PageInfo":{"properties":{"endCursor":{"description":"The cursor to use to fetch the next page of items. Use with parameter `after`.","type":"string"},"hasNextPage":{"description":"If true, there are more items after the current page.","type":"boolean"},"hasPreviousPage":{"description":"If true, there are more items before the current page.","type":"boolean"},"startCursor":{"description":"The cursor to use to fetch the previous page of items.","type":"string"}},"required":["hasNextPage","hasPreviousPage","startCursor","endCursor"],"title":"PageInfo","type":"object","description":"PageInfo"},"StorageLocation":{"allOf":[{"$ref":"#/components/schemas/StorageLocationForReplacement"},{"$ref":"#/components/schemas/VersionedResource"}],"properties":{"facilityRef":{"description":"The id of the facility reference.","type":"string"},"id":{"description":"The id of this storage location","type":"string"},"schemaVersion":{"type":"number"},"traitConfig":{"$ref":"#/components/schemas/StorageLocationTraitConfig"},"traits":{"description":"The traits of this storage location","items":{"$ref":"#/components/schemas/StorageLocationTrait"},"type":"array"},"zoneName":{"deprecated":true,"description":"Deprecated! This field will not be filled in newly created storage locations. Resolve the zone name separately via the facilities/{id}/zones endpoint. The name of the Zone to which this storage location belongs","type":"string"}},"required":["id","facilityRef","traits"],"type":"object","xml":{"name":"StorageLocation"},"title":"StorageLocation","description":"StorageLocation"},"StorageLocationForReplacement":{"allOf":[{"$ref":"#/components/schemas/StorageLocationForCreation"}],"properties":{"version":{"format":"int64","type":"integer"}},"required":["version"],"type":"object","xml":{"name":"StorageLocationForReplacement"},"title":"StorageLocationForReplacement","description":"StorageLocationForReplacement"},"StorageLocationForCreation":{"allOf":[{"$ref":"#/components/schemas/CustomAttributesResource"}],"properties":{"information":{"description":"A free text information about this storage location, max length 1024","maxLength":1024,"type":"string"},"name":{"description":"The name of this storage location","maxLength":15,"type":"string"},"runningSequences":{"description":"The Sequence item/s of this location","items":{"$ref":"#/components/schemas/StorageLocationSequenceItem"},"maxItems":10,"type":"array"},"scannableCodes":{"description":"Barcodes representing this storage location","items":{"type":"string"},"maxItems":5,"type":"array"},"tenantLocationId":{"description":"The internal tenant id for this location","type":"string"},"traitConfig":{"$ref":"#/components/schemas/StorageLocationTraitConfig"},"traits":{"description":"The traits of this storage location, includes both local config and and defaults. Do not use to write to traits, use traitConfig instead.","items":{"$ref":"#/components/schemas/StorageLocationTrait"},"type":"array"},"type":{"$ref":"#/components/schemas/StorageLocationType"},"zoneName":{"description":"The name of the Zone to which this storage location belongs","type":"string"},"zoneRef":{"description":"The id of the Zone to which this storage location belongs","type":"string"}},"required":["name","runningSequences","scannableCodes","type"],"type":"object","xml":{"name":"StorageLocationForCreation"},"title":"StorageLocationForCreation","description":"StorageLocationForCreation"},"CustomAttributesResource":{"properties":{"customAttributes":{"description":"Attributes that can be added to this entity. These attributes **cannot** be used within fulfillment processes, but enable you to attach custom data from your systems to fulfillmenttools entities.","nullable":true,"type":"object"}},"title":"CustomAttributesResource","type":"object","description":"CustomAttributesResource"},"StorageLocationSequenceItem":{"properties":{"nextStorageLocationRef":{"description":"The next storage from which to pick up after this one","type":"string"},"previousStorageLocationRef":{"description":"The previous storage from which to pick up after this one","type":"string"},"score":{"deprecated":true,"description":"Running sequence score - read-only","type":"number"},"type":{"$ref":"#/components/schemas/StorageLocationSequenceType"}},"required":["type"],"type":"object","xml":{"name":"StorageLocationSequenceItem"},"title":"StorageLocationSequenceItem","description":"StorageLocationSequenceItem"},"StorageLocationSequenceType":{"description":"Describes the type of a storage location sequence type\n  * `PICKING_SEQUENCE`- The sequence in wich the storage locations are picked.\n  * `RESTOW_SEQUENCE`- The sequence in wich the storage locations are restowed.","enum":["PICKING_SEQUENCE","RESTOW_SEQUENCE"],"type":"string","xml":{"name":"StorageLocationType"},"title":"StorageLocationSequenceType"},"StorageLocationTraitConfig":{"description":"The configuration of the traits of this storage location","items":{"properties":{"enabled":{"type":"boolean"},"trait":{"$ref":"#/components/schemas/StorageLocationTrait"}},"required":["trait","enabled"],"type":"object"},"type":"array","title":"StorageLocationTraitConfig"},"StorageLocationTrait":{"description":"Describes what kind of actions this stock is available for\n  * `PICKABLE`- The stock is available for picking\n  * `ACCESSIBLE`- The stock is available for stock movements (stowing, inbound, etc)\n  * `KEEP_ON_ZERO`- The stock will not be deleted when emptied\n  * `OUTBOUND`- The stock is intended for outbound processes\n  * `IN_MOTION`- The stock is in motion, used by StowJobs.","enum":["PICKABLE","ACCESSIBLE","KEEP_ON_ZERO","OUTBOUND","IN_MOTION"],"type":"string","xml":{"name":"StorageLocationTrait"},"title":"StorageLocationTrait"},"StorageLocationType":{"description":"Describes the kind of a storage location:\n  * `SINGLE_STORAGE`- it is only allowed to store stock with the same tenantArticleId here\n  * `BULK_STORAGE`- stocks belonging to different tenantArticleIds can be stored here","enum":["SINGLE_STORAGE","BULK_STORAGE"],"type":"string","xml":{"name":"StorageLocationType"},"title":"StorageLocationType"},"VersionedResource":{"properties":{"created":{"description":"The date this entity was created at the platform. This value is generated by the service.","format":"date-time","type":"string"},"lastModified":{"description":"The date this entity was modified last. This value is generated by the service.","format":"date-time","type":"string"},"version":{"description":"The version of the document to be used in optimistic locking mechanisms.","format":"int64","type":"integer"}},"required":["version"],"type":"object","title":"VersionedResource","description":"VersionedResource"},"ApiError":{"items":{"$ref":"#/components/schemas/ErrorInner"},"type":"array","xml":{"name":"ApiError"},"title":"ApiError","description":"ApiError"},"ErrorInner":{"properties":{"description":{"type":"string"},"requestVersion":{"description":"The version provided within an invalid request.","format":"int64","type":"integer"},"summary":{"type":"string"},"version":{"format":"int64","type":"integer"}},"required":["summary"],"type":"object","title":"ErrorInner","description":"ErrorInner"}}},"paths":{"/api/storagelocations/search":{"post":{"deprecated":false,"description":"Search for StorageLocation","operationId":"searchStorageLocation","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorageLocationSearchPayload"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorageLocationPaginatedResult"}}},"description":"Your search result"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Your user is not allowed to operate against this API instance"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Your user, although recognized, is not authorized to use this"}},"summary":"List storage locations (search)","tags":["Storage Locations (Inventory)"]}}}}
```

## GET /api/facilities/{facilityId}/storagelocations/{storageLocationId}

> Get facility storage location

```json
{"openapi":"3.0.1","info":{"title":"fulfillmenttools","version":"VERSIONLESS"},"tags":[{"description":"Endpoints to create, update and read storage locations and zones.","name":"Storage Locations (Inventory)"}],"servers":[{"url":"https://{tenant}.api.fulfillmenttools.com","variables":{"tenant":{"default":"your-tenant-name"}}}],"security":[{"BearerToken":[]}],"components":{"securitySchemes":{"BearerToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"StorageLocation":{"allOf":[{"$ref":"#/components/schemas/StorageLocationForReplacement"},{"$ref":"#/components/schemas/VersionedResource"}],"properties":{"facilityRef":{"description":"The id of the facility reference.","type":"string"},"id":{"description":"The id of this storage location","type":"string"},"schemaVersion":{"type":"number"},"traitConfig":{"$ref":"#/components/schemas/StorageLocationTraitConfig"},"traits":{"description":"The traits of this storage location","items":{"$ref":"#/components/schemas/StorageLocationTrait"},"type":"array"},"zoneName":{"deprecated":true,"description":"Deprecated! This field will not be filled in newly created storage locations. Resolve the zone name separately via the facilities/{id}/zones endpoint. The name of the Zone to which this storage location belongs","type":"string"}},"required":["id","facilityRef","traits"],"type":"object","xml":{"name":"StorageLocation"},"title":"StorageLocation","description":"StorageLocation"},"StorageLocationForReplacement":{"allOf":[{"$ref":"#/components/schemas/StorageLocationForCreation"}],"properties":{"version":{"format":"int64","type":"integer"}},"required":["version"],"type":"object","xml":{"name":"StorageLocationForReplacement"},"title":"StorageLocationForReplacement","description":"StorageLocationForReplacement"},"StorageLocationForCreation":{"allOf":[{"$ref":"#/components/schemas/CustomAttributesResource"}],"properties":{"information":{"description":"A free text information about this storage location, max length 1024","maxLength":1024,"type":"string"},"name":{"description":"The name of this storage location","maxLength":15,"type":"string"},"runningSequences":{"description":"The Sequence item/s of this location","items":{"$ref":"#/components/schemas/StorageLocationSequenceItem"},"maxItems":10,"type":"array"},"scannableCodes":{"description":"Barcodes representing this storage location","items":{"type":"string"},"maxItems":5,"type":"array"},"tenantLocationId":{"description":"The internal tenant id for this location","type":"string"},"traitConfig":{"$ref":"#/components/schemas/StorageLocationTraitConfig"},"traits":{"description":"The traits of this storage location, includes both local config and and defaults. Do not use to write to traits, use traitConfig instead.","items":{"$ref":"#/components/schemas/StorageLocationTrait"},"type":"array"},"type":{"$ref":"#/components/schemas/StorageLocationType"},"zoneName":{"description":"The name of the Zone to which this storage location belongs","type":"string"},"zoneRef":{"description":"The id of the Zone to which this storage location belongs","type":"string"}},"required":["name","runningSequences","scannableCodes","type"],"type":"object","xml":{"name":"StorageLocationForCreation"},"title":"StorageLocationForCreation","description":"StorageLocationForCreation"},"CustomAttributesResource":{"properties":{"customAttributes":{"description":"Attributes that can be added to this entity. These attributes **cannot** be used within fulfillment processes, but enable you to attach custom data from your systems to fulfillmenttools entities.","nullable":true,"type":"object"}},"title":"CustomAttributesResource","type":"object","description":"CustomAttributesResource"},"StorageLocationSequenceItem":{"properties":{"nextStorageLocationRef":{"description":"The next storage from which to pick up after this one","type":"string"},"previousStorageLocationRef":{"description":"The previous storage from which to pick up after this one","type":"string"},"score":{"deprecated":true,"description":"Running sequence score - read-only","type":"number"},"type":{"$ref":"#/components/schemas/StorageLocationSequenceType"}},"required":["type"],"type":"object","xml":{"name":"StorageLocationSequenceItem"},"title":"StorageLocationSequenceItem","description":"StorageLocationSequenceItem"},"StorageLocationSequenceType":{"description":"Describes the type of a storage location sequence type\n  * `PICKING_SEQUENCE`- The sequence in wich the storage locations are picked.\n  * `RESTOW_SEQUENCE`- The sequence in wich the storage locations are restowed.","enum":["PICKING_SEQUENCE","RESTOW_SEQUENCE"],"type":"string","xml":{"name":"StorageLocationType"},"title":"StorageLocationSequenceType"},"StorageLocationTraitConfig":{"description":"The configuration of the traits of this storage location","items":{"properties":{"enabled":{"type":"boolean"},"trait":{"$ref":"#/components/schemas/StorageLocationTrait"}},"required":["trait","enabled"],"type":"object"},"type":"array","title":"StorageLocationTraitConfig"},"StorageLocationTrait":{"description":"Describes what kind of actions this stock is available for\n  * `PICKABLE`- The stock is available for picking\n  * `ACCESSIBLE`- The stock is available for stock movements (stowing, inbound, etc)\n  * `KEEP_ON_ZERO`- The stock will not be deleted when emptied\n  * `OUTBOUND`- The stock is intended for outbound processes\n  * `IN_MOTION`- The stock is in motion, used by StowJobs.","enum":["PICKABLE","ACCESSIBLE","KEEP_ON_ZERO","OUTBOUND","IN_MOTION"],"type":"string","xml":{"name":"StorageLocationTrait"},"title":"StorageLocationTrait"},"StorageLocationType":{"description":"Describes the kind of a storage location:\n  * `SINGLE_STORAGE`- it is only allowed to store stock with the same tenantArticleId here\n  * `BULK_STORAGE`- stocks belonging to different tenantArticleIds can be stored here","enum":["SINGLE_STORAGE","BULK_STORAGE"],"type":"string","xml":{"name":"StorageLocationType"},"title":"StorageLocationType"},"VersionedResource":{"properties":{"created":{"description":"The date this entity was created at the platform. This value is generated by the service.","format":"date-time","type":"string"},"lastModified":{"description":"The date this entity was modified last. This value is generated by the service.","format":"date-time","type":"string"},"version":{"description":"The version of the document to be used in optimistic locking mechanisms.","format":"int64","type":"integer"}},"required":["version"],"type":"object","title":"VersionedResource","description":"VersionedResource"},"ApiError":{"items":{"$ref":"#/components/schemas/ErrorInner"},"type":"array","xml":{"name":"ApiError"},"title":"ApiError","description":"ApiError"},"ErrorInner":{"properties":{"description":{"type":"string"},"requestVersion":{"description":"The version provided within an invalid request.","format":"int64","type":"integer"},"summary":{"type":"string"},"version":{"format":"int64","type":"integer"}},"required":["summary"],"type":"object","title":"ErrorInner","description":"ErrorInner"}}},"paths":{"/api/facilities/{facilityId}/storagelocations/{storageLocationId}":{"get":{"description":"","operationId":"getFacilityStorageLocation","parameters":[{"description":"ID of facility from which you want to get the storage locations. Also accepts tenantFacilityId in urn format (e.g. urn:fft:facility:tenantFacilityId:{your-tenant-facility-id})","in":"path","name":"facilityId","required":true,"schema":{"type":"string"}},{"description":"the ID of the storageLocation","in":"path","name":"storageLocationId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/StorageLocation"},"type":"array"}}},"description":"Facility was found & you are allowed to get the storage locations. The result is in the body."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Your user is not allowed to operate against this API instance"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Your user, although recognized, is not authorized to use this endpoint"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Facility not found"}},"summary":"Get facility storage location","tags":["Storage Locations (Inventory)"]}}}}
```

## GET /api/facilities/{facilityId}/storagelocations

> List facility storage locations

```json
{"openapi":"3.0.1","info":{"title":"fulfillmenttools","version":"VERSIONLESS"},"tags":[{"description":"Endpoints to create, update and read storage locations and zones.","name":"Storage Locations (Inventory)"}],"servers":[{"url":"https://{tenant}.api.fulfillmenttools.com","variables":{"tenant":{"default":"your-tenant-name"}}}],"security":[{"BearerToken":[]}],"components":{"securitySchemes":{"BearerToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"StorageLocation":{"allOf":[{"$ref":"#/components/schemas/StorageLocationForReplacement"},{"$ref":"#/components/schemas/VersionedResource"}],"properties":{"facilityRef":{"description":"The id of the facility reference.","type":"string"},"id":{"description":"The id of this storage location","type":"string"},"schemaVersion":{"type":"number"},"traitConfig":{"$ref":"#/components/schemas/StorageLocationTraitConfig"},"traits":{"description":"The traits of this storage location","items":{"$ref":"#/components/schemas/StorageLocationTrait"},"type":"array"},"zoneName":{"deprecated":true,"description":"Deprecated! This field will not be filled in newly created storage locations. Resolve the zone name separately via the facilities/{id}/zones endpoint. The name of the Zone to which this storage location belongs","type":"string"}},"required":["id","facilityRef","traits"],"type":"object","xml":{"name":"StorageLocation"},"title":"StorageLocation","description":"StorageLocation"},"StorageLocationForReplacement":{"allOf":[{"$ref":"#/components/schemas/StorageLocationForCreation"}],"properties":{"version":{"format":"int64","type":"integer"}},"required":["version"],"type":"object","xml":{"name":"StorageLocationForReplacement"},"title":"StorageLocationForReplacement","description":"StorageLocationForReplacement"},"StorageLocationForCreation":{"allOf":[{"$ref":"#/components/schemas/CustomAttributesResource"}],"properties":{"information":{"description":"A free text information about this storage location, max length 1024","maxLength":1024,"type":"string"},"name":{"description":"The name of this storage location","maxLength":15,"type":"string"},"runningSequences":{"description":"The Sequence item/s of this location","items":{"$ref":"#/components/schemas/StorageLocationSequenceItem"},"maxItems":10,"type":"array"},"scannableCodes":{"description":"Barcodes representing this storage location","items":{"type":"string"},"maxItems":5,"type":"array"},"tenantLocationId":{"description":"The internal tenant id for this location","type":"string"},"traitConfig":{"$ref":"#/components/schemas/StorageLocationTraitConfig"},"traits":{"description":"The traits of this storage location, includes both local config and and defaults. Do not use to write to traits, use traitConfig instead.","items":{"$ref":"#/components/schemas/StorageLocationTrait"},"type":"array"},"type":{"$ref":"#/components/schemas/StorageLocationType"},"zoneName":{"description":"The name of the Zone to which this storage location belongs","type":"string"},"zoneRef":{"description":"The id of the Zone to which this storage location belongs","type":"string"}},"required":["name","runningSequences","scannableCodes","type"],"type":"object","xml":{"name":"StorageLocationForCreation"},"title":"StorageLocationForCreation","description":"StorageLocationForCreation"},"CustomAttributesResource":{"properties":{"customAttributes":{"description":"Attributes that can be added to this entity. These attributes **cannot** be used within fulfillment processes, but enable you to attach custom data from your systems to fulfillmenttools entities.","nullable":true,"type":"object"}},"title":"CustomAttributesResource","type":"object","description":"CustomAttributesResource"},"StorageLocationSequenceItem":{"properties":{"nextStorageLocationRef":{"description":"The next storage from which to pick up after this one","type":"string"},"previousStorageLocationRef":{"description":"The previous storage from which to pick up after this one","type":"string"},"score":{"deprecated":true,"description":"Running sequence score - read-only","type":"number"},"type":{"$ref":"#/components/schemas/StorageLocationSequenceType"}},"required":["type"],"type":"object","xml":{"name":"StorageLocationSequenceItem"},"title":"StorageLocationSequenceItem","description":"StorageLocationSequenceItem"},"StorageLocationSequenceType":{"description":"Describes the type of a storage location sequence type\n  * `PICKING_SEQUENCE`- The sequence in wich the storage locations are picked.\n  * `RESTOW_SEQUENCE`- The sequence in wich the storage locations are restowed.","enum":["PICKING_SEQUENCE","RESTOW_SEQUENCE"],"type":"string","xml":{"name":"StorageLocationType"},"title":"StorageLocationSequenceType"},"StorageLocationTraitConfig":{"description":"The configuration of the traits of this storage location","items":{"properties":{"enabled":{"type":"boolean"},"trait":{"$ref":"#/components/schemas/StorageLocationTrait"}},"required":["trait","enabled"],"type":"object"},"type":"array","title":"StorageLocationTraitConfig"},"StorageLocationTrait":{"description":"Describes what kind of actions this stock is available for\n  * `PICKABLE`- The stock is available for picking\n  * `ACCESSIBLE`- The stock is available for stock movements (stowing, inbound, etc)\n  * `KEEP_ON_ZERO`- The stock will not be deleted when emptied\n  * `OUTBOUND`- The stock is intended for outbound processes\n  * `IN_MOTION`- The stock is in motion, used by StowJobs.","enum":["PICKABLE","ACCESSIBLE","KEEP_ON_ZERO","OUTBOUND","IN_MOTION"],"type":"string","xml":{"name":"StorageLocationTrait"},"title":"StorageLocationTrait"},"StorageLocationType":{"description":"Describes the kind of a storage location:\n  * `SINGLE_STORAGE`- it is only allowed to store stock with the same tenantArticleId here\n  * `BULK_STORAGE`- stocks belonging to different tenantArticleIds can be stored here","enum":["SINGLE_STORAGE","BULK_STORAGE"],"type":"string","xml":{"name":"StorageLocationType"},"title":"StorageLocationType"},"VersionedResource":{"properties":{"created":{"description":"The date this entity was created at the platform. This value is generated by the service.","format":"date-time","type":"string"},"lastModified":{"description":"The date this entity was modified last. This value is generated by the service.","format":"date-time","type":"string"},"version":{"description":"The version of the document to be used in optimistic locking mechanisms.","format":"int64","type":"integer"}},"required":["version"],"type":"object","title":"VersionedResource","description":"VersionedResource"},"ApiError":{"items":{"$ref":"#/components/schemas/ErrorInner"},"type":"array","xml":{"name":"ApiError"},"title":"ApiError","description":"ApiError"},"ErrorInner":{"properties":{"description":{"type":"string"},"requestVersion":{"description":"The version provided within an invalid request.","format":"int64","type":"integer"},"summary":{"type":"string"},"version":{"format":"int64","type":"integer"}},"required":["summary"],"type":"object","title":"ErrorInner","description":"ErrorInner"}}},"paths":{"/api/facilities/{facilityId}/storagelocations":{"get":{"description":"","operationId":"getFacilityStorageLocations","parameters":[{"description":"ID of facility from which you want to get the storage locations. Also accepts tenantFacilityId in urn format (e.g. urn:fft:facility:tenantFacilityId:{your-tenant-facility-id})","in":"path","name":"facilityId","required":true,"schema":{"type":"string"}},{"description":"all entities after given Id","in":"query","name":"startAfterId","required":false,"schema":{"type":"string"}},{"description":"number of entities to show","in":"query","name":"size","required":false,"schema":{"default":25,"type":"integer"}},{"description":"limit result to storage locations with scannable code","in":"query","name":"scannableCode","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/StorageLocation"},"type":"array"}}},"description":"Facility was found & you are allowed to get the storage locations. The result is in the body."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Your user is not allowed to operate against this API instance"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Your user, although recognized, is not authorized to use this endpoint"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Facility not found"}},"summary":"List facility storage locations","tags":["Storage Locations (Inventory)"]}}}}
```

## Update facility storage location

> Replaces the current storage locations of this Facility with the provided in the body.

```json
{"openapi":"3.0.1","info":{"title":"fulfillmenttools","version":"VERSIONLESS"},"tags":[{"description":"Endpoints to create, update and read storage locations and zones.","name":"Storage Locations (Inventory)"}],"servers":[{"url":"https://{tenant}.api.fulfillmenttools.com","variables":{"tenant":{"default":"your-tenant-name"}}}],"security":[{"BearerToken":[]}],"components":{"securitySchemes":{"BearerToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"StorageLocationForReplacement":{"allOf":[{"$ref":"#/components/schemas/StorageLocationForCreation"}],"properties":{"version":{"format":"int64","type":"integer"}},"required":["version"],"type":"object","xml":{"name":"StorageLocationForReplacement"},"title":"StorageLocationForReplacement","description":"StorageLocationForReplacement"},"StorageLocationForCreation":{"allOf":[{"$ref":"#/components/schemas/CustomAttributesResource"}],"properties":{"information":{"description":"A free text information about this storage location, max length 1024","maxLength":1024,"type":"string"},"name":{"description":"The name of this storage location","maxLength":15,"type":"string"},"runningSequences":{"description":"The Sequence item/s of this location","items":{"$ref":"#/components/schemas/StorageLocationSequenceItem"},"maxItems":10,"type":"array"},"scannableCodes":{"description":"Barcodes representing this storage location","items":{"type":"string"},"maxItems":5,"type":"array"},"tenantLocationId":{"description":"The internal tenant id for this location","type":"string"},"traitConfig":{"$ref":"#/components/schemas/StorageLocationTraitConfig"},"traits":{"description":"The traits of this storage location, includes both local config and and defaults. Do not use to write to traits, use traitConfig instead.","items":{"$ref":"#/components/schemas/StorageLocationTrait"},"type":"array"},"type":{"$ref":"#/components/schemas/StorageLocationType"},"zoneName":{"description":"The name of the Zone to which this storage location belongs","type":"string"},"zoneRef":{"description":"The id of the Zone to which this storage location belongs","type":"string"}},"required":["name","runningSequences","scannableCodes","type"],"type":"object","xml":{"name":"StorageLocationForCreation"},"title":"StorageLocationForCreation","description":"StorageLocationForCreation"},"CustomAttributesResource":{"properties":{"customAttributes":{"description":"Attributes that can be added to this entity. These attributes **cannot** be used within fulfillment processes, but enable you to attach custom data from your systems to fulfillmenttools entities.","nullable":true,"type":"object"}},"title":"CustomAttributesResource","type":"object","description":"CustomAttributesResource"},"StorageLocationSequenceItem":{"properties":{"nextStorageLocationRef":{"description":"The next storage from which to pick up after this one","type":"string"},"previousStorageLocationRef":{"description":"The previous storage from which to pick up after this one","type":"string"},"score":{"deprecated":true,"description":"Running sequence score - read-only","type":"number"},"type":{"$ref":"#/components/schemas/StorageLocationSequenceType"}},"required":["type"],"type":"object","xml":{"name":"StorageLocationSequenceItem"},"title":"StorageLocationSequenceItem","description":"StorageLocationSequenceItem"},"StorageLocationSequenceType":{"description":"Describes the type of a storage location sequence type\n  * `PICKING_SEQUENCE`- The sequence in wich the storage locations are picked.\n  * `RESTOW_SEQUENCE`- The sequence in wich the storage locations are restowed.","enum":["PICKING_SEQUENCE","RESTOW_SEQUENCE"],"type":"string","xml":{"name":"StorageLocationType"},"title":"StorageLocationSequenceType"},"StorageLocationTraitConfig":{"description":"The configuration of the traits of this storage location","items":{"properties":{"enabled":{"type":"boolean"},"trait":{"$ref":"#/components/schemas/StorageLocationTrait"}},"required":["trait","enabled"],"type":"object"},"type":"array","title":"StorageLocationTraitConfig"},"StorageLocationTrait":{"description":"Describes what kind of actions this stock is available for\n  * `PICKABLE`- The stock is available for picking\n  * `ACCESSIBLE`- The stock is available for stock movements (stowing, inbound, etc)\n  * `KEEP_ON_ZERO`- The stock will not be deleted when emptied\n  * `OUTBOUND`- The stock is intended for outbound processes\n  * `IN_MOTION`- The stock is in motion, used by StowJobs.","enum":["PICKABLE","ACCESSIBLE","KEEP_ON_ZERO","OUTBOUND","IN_MOTION"],"type":"string","xml":{"name":"StorageLocationTrait"},"title":"StorageLocationTrait"},"StorageLocationType":{"description":"Describes the kind of a storage location:\n  * `SINGLE_STORAGE`- it is only allowed to store stock with the same tenantArticleId here\n  * `BULK_STORAGE`- stocks belonging to different tenantArticleIds can be stored here","enum":["SINGLE_STORAGE","BULK_STORAGE"],"type":"string","xml":{"name":"StorageLocationType"},"title":"StorageLocationType"},"StorageLocation":{"allOf":[{"$ref":"#/components/schemas/StorageLocationForReplacement"},{"$ref":"#/components/schemas/VersionedResource"}],"properties":{"facilityRef":{"description":"The id of the facility reference.","type":"string"},"id":{"description":"The id of this storage location","type":"string"},"schemaVersion":{"type":"number"},"traitConfig":{"$ref":"#/components/schemas/StorageLocationTraitConfig"},"traits":{"description":"The traits of this storage location","items":{"$ref":"#/components/schemas/StorageLocationTrait"},"type":"array"},"zoneName":{"deprecated":true,"description":"Deprecated! This field will not be filled in newly created storage locations. Resolve the zone name separately via the facilities/{id}/zones endpoint. The name of the Zone to which this storage location belongs","type":"string"}},"required":["id","facilityRef","traits"],"type":"object","xml":{"name":"StorageLocation"},"title":"StorageLocation","description":"StorageLocation"},"VersionedResource":{"properties":{"created":{"description":"The date this entity was created at the platform. This value is generated by the service.","format":"date-time","type":"string"},"lastModified":{"description":"The date this entity was modified last. This value is generated by the service.","format":"date-time","type":"string"},"version":{"description":"The version of the document to be used in optimistic locking mechanisms.","format":"int64","type":"integer"}},"required":["version"],"type":"object","title":"VersionedResource","description":"VersionedResource"},"ApiError":{"items":{"$ref":"#/components/schemas/ErrorInner"},"type":"array","xml":{"name":"ApiError"},"title":"ApiError","description":"ApiError"},"ErrorInner":{"properties":{"description":{"type":"string"},"requestVersion":{"description":"The version provided within an invalid request.","format":"int64","type":"integer"},"summary":{"type":"string"},"version":{"format":"int64","type":"integer"}},"required":["summary"],"type":"object","title":"ErrorInner","description":"ErrorInner"}}},"paths":{"/api/facilities/{facilityId}/storagelocations/{storageLocationId}":{"put":{"description":"Replaces the current storage locations of this Facility with the provided in the body.","operationId":"putFacilityStorageLocation","parameters":[{"description":"ID of facility from whom you want to put the storage locations","in":"path","name":"facilityId","required":true,"schema":{"type":"string"}},{"description":"the ID of the storageLocation","in":"path","name":"storageLocationId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorageLocationForReplacement"}}},"description":"Patch set","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorageLocation"}}},"description":"Storage location was found & you were allowed to update it."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Your user is not allowed to operate against this API instance"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Your user, although recognized, is not authorized to use this endpoint"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Facility or Storage Location not found"}},"summary":"Update facility storage location","tags":["Storage Locations (Inventory)"]}}}}
```

## Create facility storage location

> Creates a new storage location in this facility.

```json
{"openapi":"3.0.1","info":{"title":"fulfillmenttools","version":"VERSIONLESS"},"tags":[{"description":"Endpoints to create, update and read storage locations and zones.","name":"Storage Locations (Inventory)"}],"servers":[{"url":"https://{tenant}.api.fulfillmenttools.com","variables":{"tenant":{"default":"your-tenant-name"}}}],"security":[{"BearerToken":[]}],"components":{"securitySchemes":{"BearerToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"StorageLocationForCreation":{"allOf":[{"$ref":"#/components/schemas/CustomAttributesResource"}],"properties":{"information":{"description":"A free text information about this storage location, max length 1024","maxLength":1024,"type":"string"},"name":{"description":"The name of this storage location","maxLength":15,"type":"string"},"runningSequences":{"description":"The Sequence item/s of this location","items":{"$ref":"#/components/schemas/StorageLocationSequenceItem"},"maxItems":10,"type":"array"},"scannableCodes":{"description":"Barcodes representing this storage location","items":{"type":"string"},"maxItems":5,"type":"array"},"tenantLocationId":{"description":"The internal tenant id for this location","type":"string"},"traitConfig":{"$ref":"#/components/schemas/StorageLocationTraitConfig"},"traits":{"description":"The traits of this storage location, includes both local config and and defaults. Do not use to write to traits, use traitConfig instead.","items":{"$ref":"#/components/schemas/StorageLocationTrait"},"type":"array"},"type":{"$ref":"#/components/schemas/StorageLocationType"},"zoneName":{"description":"The name of the Zone to which this storage location belongs","type":"string"},"zoneRef":{"description":"The id of the Zone to which this storage location belongs","type":"string"}},"required":["name","runningSequences","scannableCodes","type"],"type":"object","xml":{"name":"StorageLocationForCreation"},"title":"StorageLocationForCreation","description":"StorageLocationForCreation"},"CustomAttributesResource":{"properties":{"customAttributes":{"description":"Attributes that can be added to this entity. These attributes **cannot** be used within fulfillment processes, but enable you to attach custom data from your systems to fulfillmenttools entities.","nullable":true,"type":"object"}},"title":"CustomAttributesResource","type":"object","description":"CustomAttributesResource"},"StorageLocationSequenceItem":{"properties":{"nextStorageLocationRef":{"description":"The next storage from which to pick up after this one","type":"string"},"previousStorageLocationRef":{"description":"The previous storage from which to pick up after this one","type":"string"},"score":{"deprecated":true,"description":"Running sequence score - read-only","type":"number"},"type":{"$ref":"#/components/schemas/StorageLocationSequenceType"}},"required":["type"],"type":"object","xml":{"name":"StorageLocationSequenceItem"},"title":"StorageLocationSequenceItem","description":"StorageLocationSequenceItem"},"StorageLocationSequenceType":{"description":"Describes the type of a storage location sequence type\n  * `PICKING_SEQUENCE`- The sequence in wich the storage locations are picked.\n  * `RESTOW_SEQUENCE`- The sequence in wich the storage locations are restowed.","enum":["PICKING_SEQUENCE","RESTOW_SEQUENCE"],"type":"string","xml":{"name":"StorageLocationType"},"title":"StorageLocationSequenceType"},"StorageLocationTraitConfig":{"description":"The configuration of the traits of this storage location","items":{"properties":{"enabled":{"type":"boolean"},"trait":{"$ref":"#/components/schemas/StorageLocationTrait"}},"required":["trait","enabled"],"type":"object"},"type":"array","title":"StorageLocationTraitConfig"},"StorageLocationTrait":{"description":"Describes what kind of actions this stock is available for\n  * `PICKABLE`- The stock is available for picking\n  * `ACCESSIBLE`- The stock is available for stock movements (stowing, inbound, etc)\n  * `KEEP_ON_ZERO`- The stock will not be deleted when emptied\n  * `OUTBOUND`- The stock is intended for outbound processes\n  * `IN_MOTION`- The stock is in motion, used by StowJobs.","enum":["PICKABLE","ACCESSIBLE","KEEP_ON_ZERO","OUTBOUND","IN_MOTION"],"type":"string","xml":{"name":"StorageLocationTrait"},"title":"StorageLocationTrait"},"StorageLocationType":{"description":"Describes the kind of a storage location:\n  * `SINGLE_STORAGE`- it is only allowed to store stock with the same tenantArticleId here\n  * `BULK_STORAGE`- stocks belonging to different tenantArticleIds can be stored here","enum":["SINGLE_STORAGE","BULK_STORAGE"],"type":"string","xml":{"name":"StorageLocationType"},"title":"StorageLocationType"},"StorageLocation":{"allOf":[{"$ref":"#/components/schemas/StorageLocationForReplacement"},{"$ref":"#/components/schemas/VersionedResource"}],"properties":{"facilityRef":{"description":"The id of the facility reference.","type":"string"},"id":{"description":"The id of this storage location","type":"string"},"schemaVersion":{"type":"number"},"traitConfig":{"$ref":"#/components/schemas/StorageLocationTraitConfig"},"traits":{"description":"The traits of this storage location","items":{"$ref":"#/components/schemas/StorageLocationTrait"},"type":"array"},"zoneName":{"deprecated":true,"description":"Deprecated! This field will not be filled in newly created storage locations. Resolve the zone name separately via the facilities/{id}/zones endpoint. The name of the Zone to which this storage location belongs","type":"string"}},"required":["id","facilityRef","traits"],"type":"object","xml":{"name":"StorageLocation"},"title":"StorageLocation","description":"StorageLocation"},"StorageLocationForReplacement":{"allOf":[{"$ref":"#/components/schemas/StorageLocationForCreation"}],"properties":{"version":{"format":"int64","type":"integer"}},"required":["version"],"type":"object","xml":{"name":"StorageLocationForReplacement"},"title":"StorageLocationForReplacement","description":"StorageLocationForReplacement"},"VersionedResource":{"properties":{"created":{"description":"The date this entity was created at the platform. This value is generated by the service.","format":"date-time","type":"string"},"lastModified":{"description":"The date this entity was modified last. This value is generated by the service.","format":"date-time","type":"string"},"version":{"description":"The version of the document to be used in optimistic locking mechanisms.","format":"int64","type":"integer"}},"required":["version"],"type":"object","title":"VersionedResource","description":"VersionedResource"},"ApiError":{"items":{"$ref":"#/components/schemas/ErrorInner"},"type":"array","xml":{"name":"ApiError"},"title":"ApiError","description":"ApiError"},"ErrorInner":{"properties":{"description":{"type":"string"},"requestVersion":{"description":"The version provided within an invalid request.","format":"int64","type":"integer"},"summary":{"type":"string"},"version":{"format":"int64","type":"integer"}},"required":["summary"],"type":"object","title":"ErrorInner","description":"ErrorInner"}}},"paths":{"/api/facilities/{facilityId}/storagelocations":{"post":{"description":"Creates a new storage location in this facility.","operationId":"postFacilityStorageLocations","parameters":[{"description":"ID of facility from whom you want to create the storage location","in":"path","name":"facilityId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorageLocationForCreation"}}},"description":"Patch set","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorageLocation"}}},"description":"The storage location was successfully created."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Your user is not allowed to operate against this API instance"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Your user, although recognized, is not authorized to use this endpoint"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Facility not found"}},"summary":"Create facility storage location","tags":["Storage Locations (Inventory)"]}}}}
```

## Update facility storage location

> Adds new storage locations, updates existing ones and keeps the previously present ones in the database.\
> \
> 1\. If a storage location exists in the patch action but not in the database it is added.\
> 2\. If a storage location exists both in the patch action and in the database it is updated and the contents merged.\
> 3\. If a storage location exists only in the database, it is left untouched.<br>

```json
{"openapi":"3.0.1","info":{"title":"fulfillmenttools","version":"VERSIONLESS"},"tags":[{"description":"Endpoints to create, update and read storage locations and zones.","name":"Storage Locations (Inventory)"}],"servers":[{"url":"https://{tenant}.api.fulfillmenttools.com","variables":{"tenant":{"default":"your-tenant-name"}}}],"security":[{"BearerToken":[]}],"components":{"securitySchemes":{"BearerToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"StorageLocationPatchActions":{"properties":{"actions":{"items":{"$ref":"#/components/schemas/ModifyStorageLocationAction"},"minItems":1,"type":"array"},"version":{"description":"The version of the facility where we want to patch the storage locations to be used in optimistic locking mechanisms.","format":"int64","type":"integer"}},"required":["version","actions"],"type":"object","xml":{"name":"StorageLocationPatchActions"},"title":"StorageLocationPatchActions","description":"StorageLocationPatchActions"},"ModifyStorageLocationAction":{"allOf":[{"$ref":"#/components/schemas/AbstractModificationAction"},{"additionalProperties":false,"properties":{"action":{"description":"Use value 'ModifyStorageLocation', because you want to modify a storage location","enum":["ModifyStorageLocation"],"type":"string"},"customAttributes":{"description":"Attributes that can be added to the storage location. These attributes cannot be used within fulfillment processes, but it could be useful to have the informations carried here.","type":"object"},"information":{"description":"A free text information about this storage location, max length 1024","maxLength":1024,"type":"string"},"name":{"description":"The name of this storage location","maxLength":15,"type":"string"},"runningSequences":{"description":"The Sequence item/s of this location","items":{"$ref":"#/components/schemas/StorageLocationSequenceItem"},"maxItems":10,"type":"array"},"scannableCodes":{"description":"Barcodes representing this storage location","items":{"type":"string"},"maxItems":5,"type":"array"},"tenantLocationId":{"description":"The internal tenant id for this location","type":"string"},"traitConfig":{"$ref":"#/components/schemas/StorageLocationTraitConfig"},"traits":{"deprecated":true,"description":"The traits of this storage location. Do not use this to write traits, use traitConfig instead.","items":{"$ref":"#/components/schemas/StorageLocationTrait"},"type":"array"},"type":{"$ref":"#/components/schemas/StorageLocationType"},"zoneRef":{"description":"The id of the Zone to which this storage location belongs.","type":"string"}},"required":["action"],"type":"object"}],"xml":{"name":"ModifyStorageLocationAction"},"title":"ModifyStorageLocationAction","description":"ModifyStorageLocationAction"},"AbstractModificationAction":{"discriminator":{"propertyName":"action"},"properties":{"action":{"description":"","enum":["AddAllowedValueToTag","ModifyPickJob","ModifyPickJobLastEditor","RestartPickJob","ResetPickJob","CancelPickRun","CancelHandoverjob","AbortPickJob","FinishPickRun","StartPickRun","ModifyPickLineItem","ModifyPickRunLineItem","ModifyPackJob","PausePackJob","ModifyPackLineItem","SplitLineItemsPackJob","ModifyFacility","ModifyListing","ModifyRetainedOfflineStock","ModifyListingReactivationAfter","ModifyUser","ModifyShipment","ModifyHandoverjob","ModifyCarrier","ModifyShortpick","ModifyRoutingPlan","ModifyFence","ModifyRating","ModifyTimingMode","ModifyGlobalRoutingConfiguration","ModifyOrderSplit","ModifyPrioritization","ModifyLoadUnitType","ModifyFeature","ModifyParcel","ModifyParcelLoadUnit","ModifyRestowItem","RemovePickJobFromPickRun","ModifyPartialStock","AddTagsToProcess","AssignFacilityToProcess","UpdateGdprCleanupDateAction","ModifyStorageLocation","ModifyPackingContainerType","ModifyPackingContainerTypeIcon","ReplaceCodesInPackingTargetContainer","ReplaceLoadUnitLineItems","AddLineItemToPackingTargetContainer","RemoveLineItemFromPackingTargetContainer","UpdateLineItemOnPackingTargetContainer","UpdatePackingTargetContainerLineItemRecordableAttributes","ModifyCustomService","UnlockOrder"],"type":"string"}},"required":["action"],"type":"object","xml":{"name":"AbstractModificationAction"},"title":"AbstractModificationAction","description":"AbstractModificationAction"},"StorageLocationSequenceItem":{"properties":{"nextStorageLocationRef":{"description":"The next storage from which to pick up after this one","type":"string"},"previousStorageLocationRef":{"description":"The previous storage from which to pick up after this one","type":"string"},"score":{"deprecated":true,"description":"Running sequence score - read-only","type":"number"},"type":{"$ref":"#/components/schemas/StorageLocationSequenceType"}},"required":["type"],"type":"object","xml":{"name":"StorageLocationSequenceItem"},"title":"StorageLocationSequenceItem","description":"StorageLocationSequenceItem"},"StorageLocationSequenceType":{"description":"Describes the type of a storage location sequence type\n  * `PICKING_SEQUENCE`- The sequence in wich the storage locations are picked.\n  * `RESTOW_SEQUENCE`- The sequence in wich the storage locations are restowed.","enum":["PICKING_SEQUENCE","RESTOW_SEQUENCE"],"type":"string","xml":{"name":"StorageLocationType"},"title":"StorageLocationSequenceType"},"StorageLocationTraitConfig":{"description":"The configuration of the traits of this storage location","items":{"properties":{"enabled":{"type":"boolean"},"trait":{"$ref":"#/components/schemas/StorageLocationTrait"}},"required":["trait","enabled"],"type":"object"},"type":"array","title":"StorageLocationTraitConfig"},"StorageLocationTrait":{"description":"Describes what kind of actions this stock is available for\n  * `PICKABLE`- The stock is available for picking\n  * `ACCESSIBLE`- The stock is available for stock movements (stowing, inbound, etc)\n  * `KEEP_ON_ZERO`- The stock will not be deleted when emptied\n  * `OUTBOUND`- The stock is intended for outbound processes\n  * `IN_MOTION`- The stock is in motion, used by StowJobs.","enum":["PICKABLE","ACCESSIBLE","KEEP_ON_ZERO","OUTBOUND","IN_MOTION"],"type":"string","xml":{"name":"StorageLocationTrait"},"title":"StorageLocationTrait"},"StorageLocationType":{"description":"Describes the kind of a storage location:\n  * `SINGLE_STORAGE`- it is only allowed to store stock with the same tenantArticleId here\n  * `BULK_STORAGE`- stocks belonging to different tenantArticleIds can be stored here","enum":["SINGLE_STORAGE","BULK_STORAGE"],"type":"string","xml":{"name":"StorageLocationType"},"title":"StorageLocationType"},"StorageLocation":{"allOf":[{"$ref":"#/components/schemas/StorageLocationForReplacement"},{"$ref":"#/components/schemas/VersionedResource"}],"properties":{"facilityRef":{"description":"The id of the facility reference.","type":"string"},"id":{"description":"The id of this storage location","type":"string"},"schemaVersion":{"type":"number"},"traitConfig":{"$ref":"#/components/schemas/StorageLocationTraitConfig"},"traits":{"description":"The traits of this storage location","items":{"$ref":"#/components/schemas/StorageLocationTrait"},"type":"array"},"zoneName":{"deprecated":true,"description":"Deprecated! This field will not be filled in newly created storage locations. Resolve the zone name separately via the facilities/{id}/zones endpoint. The name of the Zone to which this storage location belongs","type":"string"}},"required":["id","facilityRef","traits"],"type":"object","xml":{"name":"StorageLocation"},"title":"StorageLocation","description":"StorageLocation"},"StorageLocationForReplacement":{"allOf":[{"$ref":"#/components/schemas/StorageLocationForCreation"}],"properties":{"version":{"format":"int64","type":"integer"}},"required":["version"],"type":"object","xml":{"name":"StorageLocationForReplacement"},"title":"StorageLocationForReplacement","description":"StorageLocationForReplacement"},"StorageLocationForCreation":{"allOf":[{"$ref":"#/components/schemas/CustomAttributesResource"}],"properties":{"information":{"description":"A free text information about this storage location, max length 1024","maxLength":1024,"type":"string"},"name":{"description":"The name of this storage location","maxLength":15,"type":"string"},"runningSequences":{"description":"The Sequence item/s of this location","items":{"$ref":"#/components/schemas/StorageLocationSequenceItem"},"maxItems":10,"type":"array"},"scannableCodes":{"description":"Barcodes representing this storage location","items":{"type":"string"},"maxItems":5,"type":"array"},"tenantLocationId":{"description":"The internal tenant id for this location","type":"string"},"traitConfig":{"$ref":"#/components/schemas/StorageLocationTraitConfig"},"traits":{"description":"The traits of this storage location, includes both local config and and defaults. Do not use to write to traits, use traitConfig instead.","items":{"$ref":"#/components/schemas/StorageLocationTrait"},"type":"array"},"type":{"$ref":"#/components/schemas/StorageLocationType"},"zoneName":{"description":"The name of the Zone to which this storage location belongs","type":"string"},"zoneRef":{"description":"The id of the Zone to which this storage location belongs","type":"string"}},"required":["name","runningSequences","scannableCodes","type"],"type":"object","xml":{"name":"StorageLocationForCreation"},"title":"StorageLocationForCreation","description":"StorageLocationForCreation"},"CustomAttributesResource":{"properties":{"customAttributes":{"description":"Attributes that can be added to this entity. These attributes **cannot** be used within fulfillment processes, but enable you to attach custom data from your systems to fulfillmenttools entities.","nullable":true,"type":"object"}},"title":"CustomAttributesResource","type":"object","description":"CustomAttributesResource"},"VersionedResource":{"properties":{"created":{"description":"The date this entity was created at the platform. This value is generated by the service.","format":"date-time","type":"string"},"lastModified":{"description":"The date this entity was modified last. This value is generated by the service.","format":"date-time","type":"string"},"version":{"description":"The version of the document to be used in optimistic locking mechanisms.","format":"int64","type":"integer"}},"required":["version"],"type":"object","title":"VersionedResource","description":"VersionedResource"},"ApiError":{"items":{"$ref":"#/components/schemas/ErrorInner"},"type":"array","xml":{"name":"ApiError"},"title":"ApiError","description":"ApiError"},"ErrorInner":{"properties":{"description":{"type":"string"},"requestVersion":{"description":"The version provided within an invalid request.","format":"int64","type":"integer"},"summary":{"type":"string"},"version":{"format":"int64","type":"integer"}},"required":["summary"],"type":"object","title":"ErrorInner","description":"ErrorInner"}}},"paths":{"/api/facilities/{facilityId}/storagelocations/{storageLocationId}":{"patch":{"description":"Adds new storage locations, updates existing ones and keeps the previously present ones in the database.\n\n1. If a storage location exists in the patch action but not in the database it is added.\n2. If a storage location exists both in the patch action and in the database it is updated and the contents merged.\n3. If a storage location exists only in the database, it is left untouched.\n","operationId":"patchFacilityStorageLocation","parameters":[{"description":"ID of facility you want to patch the storage locations","in":"path","name":"facilityId","required":true,"schema":{"type":"string"}},{"description":"the ID of the storageLocation","in":"path","name":"storageLocationId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorageLocationPatchActions"}}},"description":"Patch set","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorageLocation"}}},"description":"Storage location was found & you were allowed to update it."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Your user is not allowed to operate against this API instance"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Your user, although recognized, is not authorized to use this endpoint"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Facility or Storage location not found"}},"summary":"Update facility storage location","tags":["Storage Locations (Inventory)"]}}}}
```

## DELETE /api/facilities/{facilityId}/storagelocations/{storageLocationId}

> Delete facility storage location

```json
{"openapi":"3.0.1","info":{"title":"fulfillmenttools","version":"VERSIONLESS"},"tags":[{"description":"Endpoints to create, update and read storage locations and zones.","name":"Storage Locations (Inventory)"}],"servers":[{"url":"https://{tenant}.api.fulfillmenttools.com","variables":{"tenant":{"default":"your-tenant-name"}}}],"security":[{"BearerToken":[]}],"components":{"securitySchemes":{"BearerToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"ApiError":{"items":{"$ref":"#/components/schemas/ErrorInner"},"type":"array","xml":{"name":"ApiError"},"title":"ApiError","description":"ApiError"},"ErrorInner":{"properties":{"description":{"type":"string"},"requestVersion":{"description":"The version provided within an invalid request.","format":"int64","type":"integer"},"summary":{"type":"string"},"version":{"format":"int64","type":"integer"}},"required":["summary"],"type":"object","title":"ErrorInner","description":"ErrorInner"}}},"paths":{"/api/facilities/{facilityId}/storagelocations/{storageLocationId}":{"delete":{"description":"","operationId":"deleteFacilityStorageLocation","parameters":[{"description":"ID of facility from whom you want to delete the storage location","in":"path","name":"facilityId","required":true,"schema":{"type":"string"}},{"description":"ID of the storageLocation you want to delete","in":"path","name":"storageLocationId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Storage location was found & you were allowed to delete it."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Your user is not allowed to operate against this API instance"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Your user, although recognized, is not authorized to use this endpoint"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Facility or storage location not found"}},"summary":"Delete facility storage location","tags":["Storage Locations (Inventory)"]}}}}
```

## Get stock recommendations

> This part of the API is in Alpha status. For details please check the \<a href="<https://docs.fulfillmenttools.com/documentation/developer-docs/api/core-concepts/api-release-life-cycle#alpha>" target="\_blank">api-release-life-cycle documentation\</a>.\<br />\<br />Get the Storage Location recommendations for a specific Stock.

```json
{"openapi":"3.0.1","info":{"title":"fulfillmenttools","version":"VERSIONLESS"},"tags":[{"description":"Endpoints to create, update and read stocks.","name":"Stocks (Inventory)"}],"servers":[{"url":"https://{tenant}.api.fulfillmenttools.com","variables":{"tenant":{"default":"your-tenant-name"}}}],"security":[{"BearerToken":[]}],"components":{"securitySchemes":{"BearerToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"StorageLocationRecommendation":{"properties":{"stockCount":{"type":"number"},"storageLocation":{"$ref":"#/components/schemas/StorageLocation"}},"required":["storageLocation","stockCount"],"title":"StorageLocationRecommendation","type":"object","description":"StorageLocationRecommendation"},"StorageLocation":{"allOf":[{"$ref":"#/components/schemas/StorageLocationForReplacement"},{"$ref":"#/components/schemas/VersionedResource"}],"properties":{"facilityRef":{"description":"The id of the facility reference.","type":"string"},"id":{"description":"The id of this storage location","type":"string"},"schemaVersion":{"type":"number"},"traitConfig":{"$ref":"#/components/schemas/StorageLocationTraitConfig"},"traits":{"description":"The traits of this storage location","items":{"$ref":"#/components/schemas/StorageLocationTrait"},"type":"array"},"zoneName":{"deprecated":true,"description":"Deprecated! This field will not be filled in newly created storage locations. Resolve the zone name separately via the facilities/{id}/zones endpoint. The name of the Zone to which this storage location belongs","type":"string"}},"required":["id","facilityRef","traits"],"type":"object","xml":{"name":"StorageLocation"},"title":"StorageLocation","description":"StorageLocation"},"StorageLocationForReplacement":{"allOf":[{"$ref":"#/components/schemas/StorageLocationForCreation"}],"properties":{"version":{"format":"int64","type":"integer"}},"required":["version"],"type":"object","xml":{"name":"StorageLocationForReplacement"},"title":"StorageLocationForReplacement","description":"StorageLocationForReplacement"},"StorageLocationForCreation":{"allOf":[{"$ref":"#/components/schemas/CustomAttributesResource"}],"properties":{"information":{"description":"A free text information about this storage location, max length 1024","maxLength":1024,"type":"string"},"name":{"description":"The name of this storage location","maxLength":15,"type":"string"},"runningSequences":{"description":"The Sequence item/s of this location","items":{"$ref":"#/components/schemas/StorageLocationSequenceItem"},"maxItems":10,"type":"array"},"scannableCodes":{"description":"Barcodes representing this storage location","items":{"type":"string"},"maxItems":5,"type":"array"},"tenantLocationId":{"description":"The internal tenant id for this location","type":"string"},"traitConfig":{"$ref":"#/components/schemas/StorageLocationTraitConfig"},"traits":{"description":"The traits of this storage location, includes both local config and and defaults. Do not use to write to traits, use traitConfig instead.","items":{"$ref":"#/components/schemas/StorageLocationTrait"},"type":"array"},"type":{"$ref":"#/components/schemas/StorageLocationType"},"zoneName":{"description":"The name of the Zone to which this storage location belongs","type":"string"},"zoneRef":{"description":"The id of the Zone to which this storage location belongs","type":"string"}},"required":["name","runningSequences","scannableCodes","type"],"type":"object","xml":{"name":"StorageLocationForCreation"},"title":"StorageLocationForCreation","description":"StorageLocationForCreation"},"CustomAttributesResource":{"properties":{"customAttributes":{"description":"Attributes that can be added to this entity. These attributes **cannot** be used within fulfillment processes, but enable you to attach custom data from your systems to fulfillmenttools entities.","nullable":true,"type":"object"}},"title":"CustomAttributesResource","type":"object","description":"CustomAttributesResource"},"StorageLocationSequenceItem":{"properties":{"nextStorageLocationRef":{"description":"The next storage from which to pick up after this one","type":"string"},"previousStorageLocationRef":{"description":"The previous storage from which to pick up after this one","type":"string"},"score":{"deprecated":true,"description":"Running sequence score - read-only","type":"number"},"type":{"$ref":"#/components/schemas/StorageLocationSequenceType"}},"required":["type"],"type":"object","xml":{"name":"StorageLocationSequenceItem"},"title":"StorageLocationSequenceItem","description":"StorageLocationSequenceItem"},"StorageLocationSequenceType":{"description":"Describes the type of a storage location sequence type\n  * `PICKING_SEQUENCE`- The sequence in wich the storage locations are picked.\n  * `RESTOW_SEQUENCE`- The sequence in wich the storage locations are restowed.","enum":["PICKING_SEQUENCE","RESTOW_SEQUENCE"],"type":"string","xml":{"name":"StorageLocationType"},"title":"StorageLocationSequenceType"},"StorageLocationTraitConfig":{"description":"The configuration of the traits of this storage location","items":{"properties":{"enabled":{"type":"boolean"},"trait":{"$ref":"#/components/schemas/StorageLocationTrait"}},"required":["trait","enabled"],"type":"object"},"type":"array","title":"StorageLocationTraitConfig"},"StorageLocationTrait":{"description":"Describes what kind of actions this stock is available for\n  * `PICKABLE`- The stock is available for picking\n  * `ACCESSIBLE`- The stock is available for stock movements (stowing, inbound, etc)\n  * `KEEP_ON_ZERO`- The stock will not be deleted when emptied\n  * `OUTBOUND`- The stock is intended for outbound processes\n  * `IN_MOTION`- The stock is in motion, used by StowJobs.","enum":["PICKABLE","ACCESSIBLE","KEEP_ON_ZERO","OUTBOUND","IN_MOTION"],"type":"string","xml":{"name":"StorageLocationTrait"},"title":"StorageLocationTrait"},"StorageLocationType":{"description":"Describes the kind of a storage location:\n  * `SINGLE_STORAGE`- it is only allowed to store stock with the same tenantArticleId here\n  * `BULK_STORAGE`- stocks belonging to different tenantArticleIds can be stored here","enum":["SINGLE_STORAGE","BULK_STORAGE"],"type":"string","xml":{"name":"StorageLocationType"},"title":"StorageLocationType"},"VersionedResource":{"properties":{"created":{"description":"The date this entity was created at the platform. This value is generated by the service.","format":"date-time","type":"string"},"lastModified":{"description":"The date this entity was modified last. This value is generated by the service.","format":"date-time","type":"string"},"version":{"description":"The version of the document to be used in optimistic locking mechanisms.","format":"int64","type":"integer"}},"required":["version"],"type":"object","title":"VersionedResource","description":"VersionedResource"},"ApiError":{"items":{"$ref":"#/components/schemas/ErrorInner"},"type":"array","xml":{"name":"ApiError"},"title":"ApiError","description":"ApiError"},"ErrorInner":{"properties":{"description":{"type":"string"},"requestVersion":{"description":"The version provided within an invalid request.","format":"int64","type":"integer"},"summary":{"type":"string"},"version":{"format":"int64","type":"integer"}},"required":["summary"],"type":"object","title":"ErrorInner","description":"ErrorInner"}}},"paths":{"/api/stocks/{stockId}/locationrecommendations":{"get":{"deprecated":false,"description":"This part of the API is in Alpha status. For details please check the <a href=\"https://docs.fulfillmenttools.com/documentation/developer-docs/api/core-concepts/api-release-life-cycle#alpha\" target=\"_blank\">api-release-life-cycle documentation</a>.<br /><br />Get the Storage Location recommendations for a specific Stock.","operationId":"getStorageLocationRecommendations","parameters":[{"in":"path","name":"stockId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/StorageLocationRecommendation"},"type":"array"}}},"description":"List of Storage Locations sorted by the stock sum ascending. The result is in the body."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Your user is not allowed to operate against this API instance"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Your user, although recognized, is not authorized to use this"}},"summary":"Get stock recommendations","tags":["Stocks (Inventory)"]}}}}
```
