Outbound Inventory Tracking

Our system allows to track inventory levels until items physically leave the facility and are handed over to another legal entity.

Outbound inventory describes stock that has already been picked for an order and has been physically separated from other stocks. It is placed on an outbound location until being handed over to another party and finally, leaving the warehouse. The outbound location along with its items is displayed in the storage location overview. It is a collective display for all outbound storage locations in a facility and thus, can be of virtual nature.

The configurations for tracking outbound stock are defined for each facility individually.


  • Picking: Only if picking is conducted with our system the outbound inventory feature can be used.

  • Packing: The use of our packing feature is not required for enabling outbound inventory tracking.

  • Handover: If you want to remove stock from your system only after it has been handed over, it is necessary to use our handover feature as well.


1. Create an outbound storage location

  • Create a storage location that will be used as storage for items that have already been picked. It does not need to represent a physical storage space or area, rather it describes the concept of outbound stock. This can be done in the Backoffice or via API.

  • Make sure the location complies with the following requirements:

    • type must be BULK_STORAGE

    • The storage location should not have any traits, especially it must not include ACCESSIBLE or PICKABLE, because stock on this location is already picked and not available for other operative purposes.

    • name is recommended to be chosen in order to convey the meaning of the location so that users refrain from adjusting stock on that location.

  • This storage location is a requirement for enabling the following configuration.

Here's an example API call to create the storage location:

curl -sSL -X POST 'https://your.api.fulfillmenttools.com/api/facilities/<yourFacilityId>/storagelocations' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/json' \
--data-raw '{
  "name": "Outgoing Goods",
  "tenantLocationId": "outbound-1",
  "type": "BULK_STORAGE",
  "scannableCodes": [],
  "runningSequences": [],
  "traitConfig": [
      "trait": "ACCESSIBLE",
      "enabled": false
      "trait": "PICKABLE",
      "enabled": false

Note down the id of the created storage location from the response as you will need it in the next step.

2. Enable Configuration

  • Update or create the FacilityInventoryConfiguration with settings.

  • You can find an example below. Please pay attention not to overwrite previous settings you may already have included in your configuration.

  • Set the following fields inoutboundStockConfiguration

    • trackOutboundStock is used to (de-)activate the feature without deleting the previously defined settings

    • locationRef references the outbound storage location created in the previous step

    • clearTrigger is used to specify when the stock should be deleted in the respective facility.

      • event

        • Use the event pick-job-closed_event-v1 if stock should be deleted after picking

        • Use the event handoverjob-handed-over_event-v1 if stock should be deleted after handing it over to another party (e.g. carrier)

        • More events will be added in the future.

      • tagFilter

        • Can be set to allow further granularity

        • Each entry in the tagFilter array represents a condition, all must be fulfilled.

          • Each value in the allowedValues array represents a possible value, one of them must be matched.

            • If the event is a pickjob event, the conditions will be tried against the tag array in the pickjob.

            • If the event is handoverjob event the conditions will be tried against the tag array in the handoverjob

curl -sSL -X PATCH 'https:///your.api.fulfillmenttools.com/api/facilities/<yourFacilityId>/configurations/inventory' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <TOKEN>' \
--data '{
  "version": 2,
  "isMixedStorage": null,
  "outboundStockConfiguration": {
    "trackOutboundStock": true,
    "locationRef": "<your location ref>",
    "clearTrigger": [
            "event": "handoverjob-handed-over_event-v1"
            "event": "pick-job-closed_event-v1",
            "tagFilter": [
                "tagId": "order-type",
                "allowedValues": [

Working Principle

If the outboundStockConfigurationis enabled, the following behaviour will take place:

  • After a PickJob was completed, the following actions take place:

    • stocks are reduced on the original location

    • new stock is created on the defined outbound location.

    • the reservation is lifted off of the original stock and placed on the newly created stock

  • Stock on the outbound location is still included in stock levels communicated via FACILITY_STOCK_CHANGED events (however, not as available). Thus, external systems will still receive accurate stock levels for items physically present in the facility.

  • After the stock left the facility (indicated by the clearTrigger as described above), all related stocks and reservations are deleted.

Last updated