S01 Warehouse Stock

Status

Version 1.0 published 14.06.2022

Approval
  1. DeepSea:

  2. NEON: agreed with Körber for implementation in NEON_Fein_Pflichtenheft_WEN1_ SST_v6.0

Comment

The first version is being developed for connecting LVS to FLASH and SOLAR. The connection to the merchant will be made for the inventory at the end of 2024.

Assumption

BISKO is not considered and receives the data from the inventory systems via the inventory interfaces. No connection to BISKO is planned for NEON.

1. Stakeholder

Role Application Responsible

Communication

Integration Layer

Leading App

Bube

InterfaceOwner

Bube

Producer

kMotion

Producer

KR1

Producer

COBRA

Producer

WMSx/SON

Consumer

Comorant

Consumer

Humpback

Consumer

OBS

MyToys

Consumer

FLASH

Consumer

SOLAR

Consumer

Nemo

2. Business Context

To determine stock levels in the warehouse management systems, a snapshot of the stock in the WMSs is taken at agreed times and sent to the merchants or data analytics.

2.1. Snapshot-Delivery times

Table 1. Attribute
Snapshot System Delivery time

1

KR1

2:00

2

KR1

8:00

3

KR1

12:00

4

KR1

16:00

5

KR1

20:00

1

kMotion

0:00

2

kMotion

4:48

3

kMotion

9:36

4

kMotion

14:24

5

kMotion

19:12

3. Information flow

Partner Direction FINE-Service Topic/API Description Status

WMS:WMSx

send

BuBe:StockService

stock.warehousestock.v2

WarehouseStockWms.v2.0

ready

WMS:KR1

send

BuBe:StockService

stock.warehousestock.kr1.v3

WarehouseStockWms.v3.1

ready

WMS:kMotion ILOWA

send

BuBe:StockService

stock.warehousestock.kmotion.v3

WarehouseStockWms.v3.1

ready

WMS:kMotion GERNSHEIM

send

BuBe:StockService

stock.warehousestock.kmotion.v3

WarehouseStockWms.v3.1

planned

FLASH

receive

BuBe:StockService

stock.warehousestock.v2

WarehouseStockWms.v2.0

ready

ERP:Otto

receive

BuBe:StockService

stock.warehousestock.v2.otto

WarehouseStockWms.v2.0

ready

ERP:DeepSea

receive

BuBe:StockService

stock.warehousestock.deepsea.v3

WarehouseStockErp.v3.2

planned

ERP:F2X

receive

BuBe:StockService

stock.warehousestock.f2x.v3

WarehouseStockErp.v3.2

planned

Diagram

4. Interface

4.1. Direction WMS to FINE

4.1.1. Header

This interface uses the Service Header

Special expression for this interface:

Table 2. Attribute
Fieldname Expression Version

type

SNAPSHOT_1

SNAPSHOT_2

SNAPSHOT_3

SNAPSHOT_4

SNAPSHOT_5

⇐ V2.1

type

SNAPSHOT

>= V3.0

context

WAREHOUSE_STOCK

4.1.2. Data model

Property Type Description

(Root)

object

    eventId*

string (uuid)

The unique eventId
Global unique Id

Minimum Length: 36
Maximum Length: 36

    traceId*

string (uuid)

The unique traceId
Global unique Id for tracing the flow of events

Minimum Length: 36
Maximum Length: 36

    spanId

string (uuid)

The eventId of previous record or batchId
Optionally, if this record (event) is one of a sequence of records and the order is important, then here is the id of the previous record (event), recommended as uuid, Special usecases can be specify for some interfaces

Minimum Length: 36
Maximum Length: 36

    eventTime*

string (date-time)

Time of occurrence of the event
Time at which the record was generated (single event - not the businessEvent/snapshot) in UTC +ISO-8601 format YYYY-MM-DD'T'HH24:MM:SS'Z'

    version*

The number of version schema
Number of version of this data structure. Only required if no $schema is specified!

    context

string (enum)

The context / business case
The context specified here means the business domain.

Any of: [ "WAREHOUSE_STOCK" ]
Maximum Length: 50

    eventType*

string (enum)

Snapshot event
the snapshot type to which the data belongs, currently only snapshots are supported

Any of: [ "SNAPSHOT" ]
Maximum Length: 20

    metaData*

object

additional meta information
optional, can be used with different characteristics for technical data per interface

        sender*

string (enum)

sender
Name of the source system, that has sent this message.

Any of: [ "KR1_SHF", "KR1_HHSTR", "WMSX_SON", "WMSX_AKU", "KMOTION_ILO", "KMOTION_GHM", "COBRA", "LSAS", "IDEEFIX", "OBS", "RESY", "LDH", "RETAILSCHICHT", "BUBE", "FINE_INBOUND", "F2X", "WMSX_WEISMAIN", "LIGIS", "KR1_MANDANT", "YMS_KMOTION", "YMS_INCONSO", "HERIS", "CARGOCLIX", "KMOTION_ERFURT", "LOGISTIKPUFFER" ]

        client*

string

client
Client/mandant (messages of different clients have different processing rules and destination interfaces) - use FBO for Fulfillment by Otto (CORE, DeepSea…​)

Maximum Length: 50

        messageNumber

integer

current message number
the current message number that is transmitted

Minimum: 1
Maximum: 1000000000000000000

        lastMessageNumber

integer

last message number
how many messages are to be transferred

Minimum: 1
Maximum: 1000000000000000000

        dailySnapshotNumber*

integer

daily snapshot number
sequence number of the snapshot per day, starts every day again with number 1

Minimum: 1
Maximum: 100

        snapshotTime

string (date-time)

snapshot time
time of the snapshot creation

    data*

object

        snapshotId

integer

the id of the inventory snapshot
Consecutive number (sequence) of a long number. each inventory snapshot gets its own ID from WMS, which is identical for all records of the snapshot. all bookings get the id of the following snapshot, generated by wms, each wms has his own scope

Maximum Length: 18
Minimum: 1
Maximum: 1000000000000000000

        quantId*

string

Quant Id
ID of the finest stock separating unit, generated id for virtual quants/units

Maximum Length: 100

        quantType*

string (enum)

quant type
type of quant, virtual for stocks without relation to a real physical quant ,e.g. high level reserved quantities, advised detours

Any of: [ "PHYSICAL", "VIRTUAL" ]
Maximum Length: 10

        location*

string (enum)

location
the location where the event was created

Any of: [ "ANSBACH", "LOEHNE", "LANGENSELBOLD", "MOSINA", "OHRDRUF", "HALDENSLEBEN", "HALDENSLEBEN_RT", "SUEDHAFEN", "SONNEFELD", "ALTENKUNSTADT", "WEIDEN", "KRACANY", "ILOWA", "ILOWA_RT", "ILOWA_RSS", "GERNSHEIM", "ERFURT", "HAMBURG_RT", "OTELFINGEN_RT", "KRIMICE_RT", "STAHLAVY_RT", "OHRDRUF_RT", "LOEHNE_RT", "LANGENSELBOLD_RT", "LODZ_1_RT", "LODZ_2_RT", "BERGHEIM_RT", "ALTENKUNSTADT_RT", "LISTERHILLS_RT", "SUEDHAFEN_RT", "PILSEN_RT", "HAMBURG_SC", "LOEHNE_SC", "SCHWABHAUSEN_SC", "HALDENSLEBEN_RSS", "ALTENKUNSTADT_RSS", "LOEHNE_RSS", "OHRDRUF_RSS", "LANGENSELBOLD_RSS", "LOEHNE_CP" ]

        sourcelocation

string (enum)

source location
the source location of the stock e.g. the sending location for returns or detours

Any of: [ "ANSBACH", "LOEHNE", "LANGENSELBOLD", "MOSINA", "OHRDRUF", "HALDENSLEBEN", "HALDENSLEBEN_RT", "SUEDHAFEN", "SONNEFELD", "ALTENKUNSTADT", "WEIDEN", "KRACANY", "ILOWA", "ILOWA_RT", "ILOWA_RSS", "GERNSHEIM", "ERFURT", "HAMBURG_RT", "OTELFINGEN_RT", "KRIMICE_RT", "STAHLAVY_RT", "OHRDRUF_RT", "LOEHNE_RT", "LANGENSELBOLD_RT", "LODZ_1_RT", "LODZ_2_RT", "BERGHEIM_RT", "ALTENKUNSTADT_RT", "LISTERHILLS_RT", "SUEDHAFEN_RT", "PILSEN_RT", "HAMBURG_SC", "LOEHNE_SC", "SCHWABHAUSEN_SC", "HALDENSLEBEN_RSS", "ALTENKUNSTADT_RSS", "LOEHNE_RSS", "OHRDRUF_RSS", "LANGENSELBOLD_RSS", "LOEHNE_CP" ]

        totalQuantity*

integer

total quantity
the total quantity for this quant including reserved qty in kMotion

Minimum: 1
Maximum: 9999999999

        stockInformation*

array

stockInformation
the stock related informations for the single quantities of this quant

            (Array item)

object

                quantity*

integer

quantity
quantity containing to this stock type

Minimum: 1
Maximum: 9999999999

                stockType*

string (enum)

Stock Type
stock type, that indicates whether an individual part is in goods in stock (before releasing), available, reserved for orders, advised as return or detour…​

Any of: [ "GOODS_IN", "AVAILABLE", "QUALITY_LOCKED", "LOCKED", "RESERVED_FOR_ORDERS", "HIGH_LEVEL_RESERVED_FOR_ORDER", "RETURN_OR_DETOUR", "RESERVABLE_LOCKED", "RESERVABLE_RETURN_OR_DETOUR", "REPLENISHMENT" ]
Maximum Length: 50

        stockTypeCode

string

WMS Stock Type
stock type used in wms frontend (if available)

Maximum Length: 50

        sourceType

string (enum)

source Type
additional source type information for distinction of stock source (detour, returns, goodsin from supplier etc.) and assignment of erp stocktypes

Any of: [ "STOCK_TRANSFER", "RETURN_INBOUND", "RETURN_SUPPLIER", "INTERNAL_REMOVAL_FROM_INBOUND", "INTERNAL_REMOVAL_FOR_SAMPLE", "SUPPLY", "STOCK_TRANSFER_WITH_PROMISE", "FINAL_REMOVAL", "OTTO_MARKET", "INBOUND_SAMPLE", "STORABLE_RETURNS", "NON_STORABLE_RETURNS", "GOODSIN_SUPPLIER" ]
Maximum Length: 50

        isInventory

boolean

is Inventory
set it true if the quant was intended for inventory checking, otherwise to false

        isIgnoredForComparison

boolean

is ignored for comparison
set it true, if this quant should be ignored for comparison during group inventory, normally used for returns that are advised with isInventory flag from RESY, because they are not booked

        customsType

string (enum)

Type of customs
indicates whether the quant have been cleared or not

Any of: [ "CUSTOMS_CLEARED", "CUSTOMS_NOT_CLEARED", "UNKNOWN" ]
Maximum Length: 50

        customsTypeCode

string

WMS Customs Type
customs type code used in wms frontend

Maximum Length: 50

        qualityControlTypeCode

string

WMS Quality Control Type
quality control type used in wms (account)

Maximum Length: 50

        locks

array

locks
locks used in wms, a quant can have multiple locks, use also wms code for unlocked,

            (Array item)

object

                typeCode

string

lock type
lock used in front end of WMS

Maximum Length: 50

                time

string (date-time)

Lock Date
time the lock was set

        buaid

string

buaid
bi unique article ID, unique identification of an individual unit in the logistical process

Maximum Length: 50

        BUID

string

BUID
obsolete. for backwards compatibility with V3.0. Use attribute buiad instead. BI UUID, unique identification of an individual unit in the logistical process

        bestBeforeDate

string (date)

best Before Date
best before date

        batch

string

batch
batch number

Maximum Length: 100

        imei

string

imei
IMEI of a technical device

Maximum Length: 50

        imei2

string

imei2
second IMEI of dual sim technical device

Maximum Length: 50

        serialNo

string

serial number
serial number of the manufacturer

Maximum Length: 100

        volume

object

volume
volume of the whole quant - gross value - measured

            value

string

Value

Regular expression: ^[0-9]{1,9}[.][0-9]{1,6}$

            unit

string (enum)

unit volume

Any of: [ "CUBIC_METER", "LITER" ]

        weight

object

weight
weight of the whole quant - gross value - measured

            value

string

Value

Regular expression: ^[0-9]{1,9}[.][0-9]{1,3}$

            unit

string (enum)

unit weight

Any of: [ "GRAM", "KILOGRAM" ]

        product*

object

            logisticsProductId

string

¨Logistic Product Id
master communication key

Maximum Length: 36

            itemNumber

string

Item Number
the item number-> Only provided by WMSx Sonnefeld - deprecated

            itemSize

string

Item Size
the item size (binary size, not alphanumeric) -> Only provided by WMSx Sonnefeld - deprecated

Maximum Length: 3

            company

string

Company
actual owner company - used in FLASH

Maximum Length: 50

            logisticsPackingUnitId

string

¨Logistic PackingUnit Id
master communication key from LSAS for products with multiple parts

Maximum Length: 36

            packingUnitIndex

integer

¨Logistic PackingUnit Number
Part Number for products with multiple parts - deprecated

Maximum: 99

        supplier

object

            logisticsSupplierId

string

technical logistics supplier id
logistics supplier ID - LSAS based ID

Maximum Length: 36

            supplierId

integer

supplier number
supplier number (LKZ) - deprecated

Minimum: 0
Maximum: 999999

        storageLocationId

string

storage location
unique identification of a storage location. see interface https://docs.osp-fine.de/page/fine-common/30_stock/s08_storage_location/s08_storage_location/

        storageHandlingUnitId

string

storage handling Unit
unique identification of a charge carrier/bundle. see interface https://docs.osp-fine.de/page/fine-common/30_stock/s09_storage_handling_unit/s09_storage_handling_unit/

        goodsIn

object

            goodsInId

string

goods in id
unique id of a goods receipt see interface https://docs.osp-fine.de/page/fine-common/20_inbound/i04_goods_in/i04_goods_in/

Maximum Length: 36

            deliveryPositionId

string

delivery position id
unique id of a delivery position see interface https://docs.osp-fine.de/page/fine-common/20_inbound/i04_goods_in/i04_goods_in/

Maximum Length: 36

        movementInfo

object

            firstMovement*

string (date-time)

first movement date
time of creation of the stock in the wms for determining the laytime of a stock unit, for retour or detour stocks use the advise date

            lastMovement

string (date-time)

last movement date
last movement of the stock unit to derive old stock and bum articles

            lastPickingDate

string (date-time)

last picking date
time at which the last pick/commission was made from this remaining quant

4.1.3. Enumeration

Field: Event Type

Table 3. eventType
Meta Value Description Short Value

SNAPSHOT

Complete snapshot

Field: Customs Type

Table 4. customsType

Meta Value

Description

Short Value

CUSTOMS_CLEARED

CUSTOMS_NOT_CLEARED

UNKNOWN

Field: Quality Control Type

Table 5. qualityControlType
Meta Value Description Short Value

Field: Locks Type Code

Table 6. typeCode
Meta Value Description Short Value

Field: Quant Type

Table 7. quantType

Meta Value

Description

Short Value

PHYSICAL

value for physical quants/containers

VIRTUAL

value for virtual quants, that cannot be assigned to real quanta, e.g. in replenishment or high level reservation

Field: Stock Type

Table 8. stockType

Meta Value

Description

Short Value

GOODS_IN

goods in from supplier after WE1 before WE2

AVAILABLE

stock that is available, can be sold, after WE2

QUALITY_LOCKED

quality locked stock after WE2

LOCKED

locked stock after WE2

RESERVED_FOR_ORDERS

reserved for orders after logistic buffer call - based on real quants

HIGH_LEVEL_RESERVED_FOR_ORDER

reserved for orders after logistic buffer call - based on item size - not containing to a real quant

RETURN_OR_DETOUR

stock adviced for returns or detours on transport to the warehouse

RESERVABLE_LOCKED

locked stock available for customer reservations

RESERVABLE_RETURN_OR_DETOUR

stock in transport (detours) available for customer reservations

REPLENISHMENT

replenishment - for KR1 replenishment stock which is transported to the picking area - contains available and reserved for orders

k.Motion:

available stock is calculated as available stock minus high level reserved for orders with stockTypeCode AV

(quality) locked stock is calculated as locked stock minus high level reserved for orders with stockTypeCode LO

stock in fulfillment is the sum of reserved for orders and high level reserved for order

KR1:

available stock from replenishment is calculated as replenishment minus reserved stock from virtual quants

4.1.4. Example

Message WMSx to FINE
{
	"eventId":"0999c557-4c8d-e5bf-e063-4585b30a51c8",
	"traceId":"0999c557-4c8d-e5bf-e063-4585b30a51c8",
	"eventTime":"2023-11-08T01:00:09.000+01:00",
	"version":"2.0",
	"context":"WAREHOUSE_STOCK",
	"eventType":"SNAPSHOT_1",
	"metaData":{
		"senderSystem":"WMSX_SON",
		"messageNumber":6406,
		"lastMessageNumber":598820
	},
	"data":{
		"quantId":"111569868",
		"location":"SONNEFELD",
		"stockType":"ON_LOCATION",
		"stockTypeCode":"FR",
		"locks":[
			{
				"typeCode":"------",
				"type":"AVAILABLE"
			}
		],
		"customsType":"CUSTOMS_CLEARED",
		"customsTypeCode":"10",
		"qualityControlType":"AVAILABLE",
		"storageLocation":{
			"id":"FROH-MFL75/75-042-28-E2"
		},
		"storageHandlingUnit":{"id":"1794472"},
		"quantity":12,
		"reservedQuantity":0,
		"goodsIn":{
			"id":"2311021583"
		},
		"product":{
			"logisticProductId":"",
			"itemNumber":42903513,
			"itemSize":0,
			"company":"OTTO"
		},
		"movementInfo":{
			"firstMovement":"2023-04-20T13:19:05.000+01:00",
			"lastMovement":"2023-08-13T18:23:21.000+01:00"
		}
	}
}
Message KR1 to FINE
{
	"eventId":"377ae48b-d7e1-47fe-9057-1a3026f892e8",
	"traceId":"8e9673b6-4651-4a77-b47a-0caa8165490a",
	"eventTime":"2024-03-18T02:08:12.334+01:00",
	"version":"3.1",
	"context":"WAREHOUSE_STOCK",
	"eventType":"SNAPSHOT",
	"metaData":{
		"sender":"KR1_SHF",
		"client":"OTTO",
		"messageNumber":13,
		"lastMessageNumber":2131752,
		"dailySnapshotNumber":1,
		"snapshotTime":"2024-03-18T02:05:53.000+01:00"
	},
	"data":{
		"snapshotId":531,
		"quantId":"1/245194177",
		"quantType":"PHYSICAL",
		"location":"SUEDHAFEN",
		"totalQuantity":2,
		"stockInformation":[
			{
				"quantity":2,
				"stockType":"AVAILABLE"
			}
		],
		"stockTypeCode":"101",
		"isInventory":false,
		"customsType":"CUSTOMS_CLEARED",
		"customsTypeCode":"203",
		"qualityControlTypeCode":"505",
		"locks":[],
		"product":{
			"logisticsProductId":"23755776"
		},
		"supplier":{
			"logisticsSupplierId":"297901",
			"supplierId":10592
		},
		"storageLocationId":"83420",
		"storageHandlingUnitId":"24548611",
		"goodsIn":{},
		"movementInfo":{
			"firstMovement":"2024-01-23T02:17:52.214+01:00",
			"lastMovement":"2024-03-16T07:27:47.788+01:00"
		}
	}
}
Messages KMOTION to FINE
{
	"eventId":"c6bf3dd9-836f-4765-a0e8-a78413e3fda3",
	"traceId":"eff93878-42dc-478e-a2c4-eb26dee6ef01",
	"eventTime":"2023-10-10T19:12:00.087+02:00",
	"version":"3.2",
	"context":"WAREHOUSE_STOCK",
	"eventType":"SNAPSHOT",
	"metaData":{
		"sender":"KMOTION_ILO",
		"client":"FBO",
		"messageNumber":1,
		"lastMessageNumber":11,
		"dailySnapshotNumber":5,
		"snapshotTime":"2023-10-10T19:12:00.082+02:00"
	},
	"data":{
		"snapshotId":1232,
		"quantId":"22000003788",
		"quantType":"PHYSICAL",
		"location":"ILOWA",
		"sourcelocation":"ILOWA",
		"totalQuantity":10,
		"stockInformation":[
			{"quantity":10,"stockType":"GOODS_IN"}
		],
		"stockTypeCode":"RC",
		"isInventory":false,
		"isIgnoredForComparison":false,
		"customsType":"CUSTOMS_CLEARED",
		"customsTypeCode":"00",
		"qualityControlTypeCode":"00",
		"locks":[
			{"typeCode":"------"}
		],
		"volume":{
			"value":"111.0",
			"unit":"LITER"
		},
		"weight":{
			"value":"12240.0",
			"unit":"GRAM"
		},
		"product":{
			"logisticsProductId":"70371792",
			"itemNumber":"18102810",
			"itemSize":"0",
			"packingUnitIndex":1
		},
		"supplier":{
			"supplierId":0
		},
		"storageLocationId":"G00_R0_F00_E00_K0_Z0",
		"storageHandlingUnitId":"210000025334",
		"goodsIn":{
			"goodsInId":"22000000527",
			"deliveryPositionId":"22000000527-1"
		},
		"movementInfo":{
			"firstMovement":"2023-10-10T14:45:40.000+02:00"
		}
	}
}

{
	"eventId":"f58126f1-8779-42e6-8492-264e40d6b772",
	"traceId":"1ca24149-e886-42a1-aba2-d24a91a510bf",
	"eventTime":"2023-11-10T04:48:00.137+01:00",
	"version":"3.2",
	"context":"WAREHOUSE_STOCK",
	"eventType":"SNAPSHOT",
	"metaData":{
		"sender":"KMOTION_ILO",
		"client":"FBO",
		"messageNumber":47,
		"lastMessageNumber":301,
		"dailySnapshotNumber":2,
		"snapshotTime":"2023-11-10T04:48:00.071+01:00"
	},
	"data":{
		"snapshotId":1378,
		"quantId":"22000004469",
		"quantType":"PHYSICAL",
		"location":"ILOWA",
		"sourcelocation":"ILOWA",
		"totalQuantity":1,
		"stockInformation":[
			{
				"quantity":1,
				"stockType":"RESERVED_FOR_ORDERS"
			}
		],
		"stockTypeCode":"AV",
		"sourceType":"GOODSIN_SUPPLIER",
		"isInventory":false,
		"isIgnoredForComparison":false,
		"customsType":"CUSTOMS_CLEARED",
		"customsTypeCode":"00",
		"qualityControlTypeCode":"00",
		"locks":[
			{
				"typeCode":"------ - not locked"
			}
		],
		"buaid":"79b41ed7-7a4f-49fb-af34-a1eefd075048",
		"volume":{
			"value":"2.3","unit":"LITER"
		},
		"weight":{
			"value":"151.0","unit":"GRAM"
		},
		"product":{
			"logisticsProductId":"68249121",
			"itemNumber":"77500344",
			"itemSize":"42",
			"packingUnitIndex":0
		},
		"supplier":{
			"supplierId":0
		},
		"storageLocationId":"PP001_FBW",
		"storageHandlingUnitId":"290000008544",
		"goodsIn":{},
		"movementInfo":{
			"firstMovement":"2023-11-08T16:18:28.000+01:00"
		}
	}
}

4.1.5. Version history

Table 9. Version WMS to FINE

Version

Number

File

Published on

previous version

1.0

Download

17.06.22

previous version

2.0

Download

20.09.22

previous version

2.1

Download

25.01.23

previous version

3.0

Download

10.07.23

previous version

3.1

Download

18.03.24

current version

3.2

Download

09.01.25

coming version

4.1.6. Changelog

Changes V1.0

  1. Payload (Data)

    • ENUM of CustomType changed to CUSTOMS_CLEARED

    • "erpSnapshotId“ is not a „required“ element

Changes V1.0 → V2.0

  1. Standard header: The Standard header has been changed to the current standard header with following changes:

    • attributes "sender", "messageNumber" and "lastMessageNumer" has been moved to the new object type "metaData"

    • attribute "sender" is now linked to system.v1.schema.json

    • attribute "type" has been renamed to "eventType"

    • attribute "spanId" is now an optional field

  2. Payload (Data)

Changes V2.0 → V2.1

  1. Standard header

  2. Payload (Data)

    • add "logisticsPackingunitId" und "packingUnitIndex" at section "product" for articles with several parts as optional fields

    • add fields "BUID", "bestBeforeDate", "batch", "imei", "serialNo" as optional fields

Changes V2.1 → V3.0

  1. Standard header

    • attribute "sender" is now linked to system.v7.schema.json

    • attribute "client" is now linked to company.v5.schema.json

    • enum values for "eventType" were updated

    • fields of header were changed to "dailySnapshotNumber" and "snapshotTime"

    • renamed "erpSnapshotId" to "snapshotId"

  2. Payload (Data)

    • distinguish "totalQuantity" and "stockInformation" with different quantities for reserved and free quantity in k.Motion, used to distinguish different "stockType" and virtual quants with "quantType" for high level reservations (KMOTION type RC - GOODS_IN, AV - AVAILABLE, LO - LOCKED with free quantity of quant, RESERVED_FOR_ORDER for reserved qty of quant…​)

    • added new field "lastPickingDate"

    • changed references and attribute names for "supplier" and "goodsIn"

Changes V3.0 → V3.1

  1. Standard header

  2. Payload (Data)

    • added new field "isInventory" - set true if quant is registered for inventory checks

    • added new field "buaid" - prepare renaming BUID to buaid, don’t use BUID anymore (marked as obsolete) for V3.0 data

    • added new field "sourceType" - for distinction of stock source (detour, returns, goods in …​)

    • extend "quantId" to 100 signs

    • added new field "imei2" for dual sim devices

Changes V3.1 → V3.2

  1. Standard header

    • attribute "client" - reference to global company enums removed. Use string.

    • attribute "company" - reference to global company enums removed. Use string.

  2. Payload (Data)

    • attribute "isIgnoredForComparison" - new boolean value for group inventory

    • attribute "volume" - "value" - introduce pattern to validate string matches oracles decimal(15,6)

    • attruibute "weight" - "value" - introduce pattern to validate string matches oracles decimal(12,3)

Notes for new major version:

  • remove BUID

  • rename sourcelocation to sourceLocation

4.1.7. Schema

Message WMS to FINE V3.2
{
    "$schema": "http://json-schema.org/draft-07/schema",
    "$comment": "Schema for stock in a warehouse Version 3.2 for WMS",
    "$id": "https://doc.fine.gcp.osp-dev.de/registry/Stock/WarehouseStockWms.v3.2.schema.json",
    "type": "object",
    "definitions": {
        "stockType": {
            "title": "Type of the stock",
            "description": "stockType, that indicates whether an individual part is in goods in stock (before releasing), available, reserved for orders, advised as return or detour...",
            "type": "string",
            "maxLength": 50,
            "enum": ["GOODS_IN",
                     "AVAILABLE",
                     "QUALITY_LOCKED",
                     "LOCKED",
                     "RESERVED_FOR_ORDERS",
                     "HIGH_LEVEL_RESERVED_FOR_ORDER",
                     "RETURN_OR_DETOUR",
                     "RESERVABLE_LOCKED",
                     "RESERVABLE_RETURN_OR_DETOUR",
                     "REPLENISHMENT"]
        },
        "sourceType": {
            "title": "additional source type",
            "description": "additional source type information for distinction of stock source (different transfer types, returns, goodsin from supplier etc.), used for erp stocktype mappings, has to be filled at least for all messages with stockType RETURN_OR_DETOUR and for NON_STORABLE_RETURNS",
            "type": "string",
            "maxLength": 50,
            "enum": ["STOCK_TRANSFER",
                     "RETURN_INBOUND",
                     "RETURN_SUPPLIER",
                     "INTERNAL_REMOVAL_FROM_INBOUND",
                     "INTERNAL_REMOVAL_FOR_SAMPLE",
                     "SUPPLY",
                     "STOCK_TRANSFER_WITH_PROMISE",
                     "FINAL_REMOVAL",
                     "OTTO_MARKET",
                     "INBOUND_SAMPLE",
                     "STORABLE_RETURNS",
                     "NON_STORABLE_RETURNS",
                     "GOODSIN_SUPPLIER"
                     ]
        }
    },
    "properties": {
        "eventId": {
            "title": "The unique eventId",
            "description": "Global unique Id",
            "type": "string",
            "format": "uuid",
            "minLength": 36,
            "maxLength": 36,
            "examples": [
                "00ce536f-923a-42f4-8128-be118faf1d87"
            ]
        },
        "traceId": {
            "title": "The unique traceId",
            "description": "Global unique Id for tracing the flow of events",
            "type": "string",
            "format": "uuid",
            "minLength": 36,
            "maxLength": 36,
            "examples": [
                "00ce536f-923a-42f4-8138-33418faf1342"
            ]
        },
        "spanId": {
            "title": "The eventId of previous record or batchId",
            "description": "Optionally, if this record (event) is one of a sequence of records and the order is important, then here is the id of the previous record (event), recommended as uuid, Special usecases can be specify for some interfaces",
            "type": "string",
            "format": "uuid",
            "minLength": 36,
            "maxLength": 36,
            "examples": [
                "00ce536f-923a-42f4-5463-32a41877b3c2"
            ]
        },    
        "eventTime": {
            "title": "Time of occurrence of the event",
            "description": "Time at which the record was generated (single event - not the businessEvent/snapshot) in UTC +ISO-8601 format YYYY-MM-DD'T'HH24:MM:SS'Z'",
            "type": "string",
            "format": "date-time",
            "examples": [
                "2022-04-16T16:06:05.123456Z",
                "2022-04-19T08:51:05+02:00"
            ]
        },
        "version": {
            "title": "The number of version schema",
            "description": "Number of version of this data structure. Only required if no $schema is specified!",
            "oneOf": [
                {
                    "type": "string",
                    "pattern": "\\d+\\.\\d{1,2}",
                    "examples": ["1.01", "01.02"]
                },
                {
                    "type": "integer",
                    "examples": [1, 2]
                }
            ]
        },
        "context": {
            "title": "The context / business case",
            "description": "The context specified here means the business domain.",
            "type": "string",
            "maxLength":50,
            "enum": [
                "WAREHOUSE_STOCK"
            ]
        },
        "eventType": {
            "title": "Snapshot event",
            "description": "the snapshot type to which the data belongs, currently only snapshots are supported",
            "type": "string",
            "maxLength": 20,
            "enum": ["SNAPSHOT"],
            "examples":["SNAPSHOT"]
        },
        "metaData": {
            "title": "additional meta information",
            "description": "optional, can be used with different characteristics for technical data per interface",
            "type": "object",
            "properties": {
                "sender": {
                    "title":"sender",
                    "description":"Name of the source system, that has sent this message.",
                    "$ref": "https://doc.fine.gcp.osp-dev.de/registry/MetaData/system.v7.schema.json"
                },
                "client": {
                    "title": "client",
                    "description": "Client/mandant (messages of different clients have different processing rules and destination interfaces) - use FBO for Fulfillment by Otto (CORE, DeepSea...)",
                    "type": "string",
                    "maxLength": 50,
                    "examples": [
                        "FBO"
                    ]
                },
                "messageNumber": {
                    "title": "current message number",
                    "description": "the current message number that is transmitted",
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 999999999999999999
                },
                "lastMessageNumber": {
                    "title": "last message number",
                    "description": "how many messages are to be transferred",
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 999999999999999999
                },
                "dailySnapshotNumber": {
                    "title": "daily snapshot number",
                    "description": "sequence number of the snapshot per day, starts every day again with number 1",
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 100
                },
                "snapshotTime": {
                    "title": "snapshot time",
                    "description": "time of the snapshot creation",
                    "type": "string",
                    "format": "date-time",
                    "examples": [
                        "2022-04-16T16:06:05.123456Z",
                        "2022-04-19T08:51:05+02:00"
                    ]
                }
            }, 
            "required": [
                "sender",
                "client",
                "dailySnapshotNumber"
            ]   
        },
        "data": {
            "type": "object",
            "properties": {
                "snapshotId": {
                    "title": "the id of the inventory snapshot",
                    "description": "Consecutive number (sequence) of a long number. each inventory snapshot gets its own ID from WMS, which is identical for all records of the snapshot. all bookings get the id of the following snapshot, generated by wms, each wms has his own scope",
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 999999999999999999,
                    "maxLength": 18,
                    "examples": [
                        122
                    ]
                },
                "quantId": {
                    "title": "Quant Id",
                    "description": "ID of the finest stock separating unit, generated id for virtual quants/units",
                    "type": "string",
                    "maxLength": 100,
                    "examples":["1189582"]
                },
                "quantType": {
                    "title": "quant type",
                    "description": "type of quant, virtual for stocks without relation to a real physical quant ,e.g. high level reserved quantities, advised detours",
                    "type": "string",
                    "maxLength": 10,
                    "enum":["PHYSICAL","VIRTUAL"]
                },           
                "location": {
                    "title": "location",
                    "description": "the location where the event was created",
                    "$ref": "https://doc.fine.gcp.osp-dev.de/registry/MetaData/warehouselocations.v1.schema.json"
                },
                "sourcelocation": {
                    "title": "source location",
                    "description": "the source location of the stock e.g. the sending location for returns or detours",
                    "$ref": "https://doc.fine.gcp.osp-dev.de/registry/MetaData/warehouselocations.v1.schema.json"
                },
                "totalQuantity": {
                    "title": "total quantity",
                    "description": "the total quantity for this quant including reserved qty in kMotion",
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 9999999999,
                    "examples":["20"]
                },
                "stockInformation": {
                    "title": "stockInformation",
                    "description": "the stock related informations for the single quantities of this quant",
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "quantity": {
                                "title": "quantity",
                                "description": "quantity containing to this stock type",
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9999999999,
                                "examples":[90]
                            },
                            "stockType": {
                                "title": "Stock Type",
                                "description": "stock type, that indicates whether an individual part is in goods in stock (before releasing), available, reserved for orders, advised as return or detour...",
                                "$ref": "#/definitions/stockType"
                            }
                        },
                        "required": [
                            "quantity",
                            "stockType"
                        ]
                    }
                },
                "stockTypeCode": {
                    "title": "WMS Stock Type",
                    "description": "stock type used in wms frontend (if available)",
                    "type": "string",
                    "maxLength": 50,
                    "examples":["4251"]
                },
                "sourceType": {
                    "title": "source Type",
                    "description": "additional source type information for distinction of stock source (detour, returns, goodsin from supplier etc.) and assignment of erp stocktypes",
                    "$ref": "#/definitions/sourceType"
                },
                "isInventory": {
                    "title": "is Inventory",
                    "description": "set it true if the quant was intended for inventory checking, otherwise to false",
                    "type": "boolean",
                    "default": false,
                    "examples": [true,false]
                },
                "isIgnoredForComparison": {
                    "title": "is ignored for comparison",
                    "description": "set it true, if this quant should be ignored for comparison during group inventory, normally used for returns that are advised with isInventory flag from RESY, because they are not booked",
                    "type": "boolean",
                    "default": false,
                    "examples": [true,false]
                },
                "customsType": {
                    "title": "Type of customs",
                    "description": "indicates whether the quant have been cleared or not",
                    "type": "string",
                    "maxLength": 50,
                    "enum": ["CUSTOMS_CLEARED", "CUSTOMS_NOT_CLEARED", "UNKNOWN"],
                    "example": ["CUSTOMS_CLEARED"]
                },
                "customsTypeCode": {
                    "title": "WMS Customs Type",
                    "description": "customs type code used in wms frontend",
                    "type": "string",
                    "maxLength": 50,
                    "example": ["5614D"]
                }, 
                "qualityControlTypeCode": {
                    "title": "WMS Quality Control Type",
                    "description": "quality control type used in wms (account)",
                    "type": "string",
                    "maxLength": 50,
                    "examples":["1234ABCD"]
                },               
                "locks": {
                    "title": "locks",
                    "description": "locks used in wms, a quant can have multiple locks, use also wms code for unlocked, ",
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {            
                            "typeCode": {
                                "title": "lock type",
                                "description": "lock used in front end of WMS",
                                "type": "string",
                                "maxLength": 50,
                                "examples":["1120ABD"]
                            },
                            "time": {
                                "title": "Lock Date",
                                "description": "time the lock was set",
                                "type": "string",
                                "format": "date-time",
                                "examples":["2022-03-22T09:52:00.000+0100"]
                            }
                        }
                    }
                }, 
                "buaid": {
                    "title": "buaid",
                    "description": "bi unique article ID, unique identification of an individual unit in the logistical process",
                    "type": "string",
                    "maxLength": 50,
                    "examples":["2344545-334542-465g45ddf"]
                },
                "BUID": {
                    "title": "BUID",
                    "description": "obsolete. for backwards compatibility with V3.0. Use attribute buiad instead. BI UUID, unique identification of an individual unit in the logistical process",
                    "type": "string",
                    "examples":["2344545-334542-465g45ddf"]
                },
                "bestBeforeDate": {
                    "title": "best Before Date",
                    "description": "best before date",
                    "type": "string",
                    "format":"date",
                    "examples":["2022-12-31"]
                },
                "batch": {
                    "title": "batch",
                    "description": "batch number",
                    "type": "string",
                    "maxLength": 100,
                    "examples":["124345d"]
                },
                "imei": {
                    "title": "imei",
                    "description": "IMEI of a technical device",
                    "type": "string",
                    "maxLength": 50,
                    "examples":["2345-45452-43365-5643"]
                },
                "imei2": {
                    "title": "imei2",
                    "description": "second IMEI of dual sim technical device",
                    "type": "string",
                    "maxLength": 50,
                    "examples":["2345-45452-43365-5643"]
                },
                "serialNo": {
                    "title": "serial number",
                    "description": "serial number of the manufacturer",
                    "type": "string",
                    "maxLength": 100,
                    "examples":["D345-gkjpo-3112"]
                },
                "volume": {
                    "title": "volume",
                    "description": "volume of the whole quant - gross value - measured",
                    "type": "object",
                    "properties": {
                        "value": {
                            "type": "string",
                            "description": "Value",
                            "pattern":"^[0-9]{1,9}[.][0-9]{1,6}$",
                            "examples": [
                                    "0.000234",
                                    "987654321.0"
                            ]
                        },
                        "unit": {
                            "$ref": "https://doc.fine.gcp.osp-dev.de/registry/MetaData/unitVolume.v1.schema.json"
                        }
                    }
                },
                "weight": {
                    "title": "weight",
                    "description": "weight of the whole quant - gross value - measured",
                    "type": "object",
                    "properties": {
                        "value": {
                            "type": "string",
                            "description": "Value",
                            "pattern":"^[0-9]{1,9}[.][0-9]{1,3}$",
                            "examples": [
                                    "0.565",
                                    "987654321.0"
                            ]
                        },
                        "unit": {
                            "$ref": "https://doc.fine.gcp.osp-dev.de/registry/MetaData/unitWeight.v1.schema.json"
                        }
                    }
               },
               "product": {
                   "type": "object",
                   "properties": {
                       "logisticsProductId": {
                           "title": "¨Logistic Product Id",
                           "description": "master communication key",
                           "type": "string",
                           "maxLength": 36,
                           "examples":["123"]
                       },
                       "itemNumber": {
                           "title": "Item Number",
                           "description": "the item number-> Only provided by WMSx Sonnefeld  - deprecated",
                           "type": "string",
                           "maxLentht": 8,
                           "examples":["4"]
                       },
                       "itemSize": {
                           "title": "Item Size",
                           "description": "the item size (binary size, not alphanumeric) -> Only provided by WMSx Sonnefeld  - deprecated",
                           "type": "string",
                           "maxLength": 3,
                           "examples":["960"]
                       },
                       "company": {
                           "title": "Company",
                           "description": "actual owner company - used in FLASH",
                           "type": "string",
                           "maxLength": 50,
                           "examples": [
                               "OTTO"
                           ]
                       },
                       "logisticsPackingUnitId": {
                           "title": "¨Logistic PackingUnit Id",
                           "description": "master communication key from LSAS for products with multiple parts",
                           "type": "string",
                           "maxLength": 36,
                           "examples":["123"]
                       },
                       "packingUnitIndex": {
                           "title": "¨Logistic PackingUnit Number",
                           "description": "Part Number for products with multiple parts - deprecated",
                           "type": "integer",
                           "mininmum": 1,
                           "maximum": 99,
                           "examples":["123"]
                       }
                   },
                   "anyOf": [
                       {
                           "description": "used for wms without lsas connection (Sonnefeld) single colli items",
                           "required": [
                               "itemNumber",
                               "itemSize"
                           ]
                       },
                       {
                           "description": "used for wms with lsas connection - PL - single colli",
                           "required": [
                               "logisticsProductId"
                           ]
                       },
                       {
                           "description": "used for wms with lsas connection - bulky item",
                           "required": [
                               "logisticsProductId",
                               "logisticsPackingUnitId",
                               "packingUnitIndex"
                           ]
                       },
                       {
                           "description": "used for bulky items without lsas data",
                           "required": [
                               "itemNumber",
                               "itemSize",
                               "packingUnitIndex"
                           ]
                       }
                   ]
               },
                "supplier": {
                    "type": "object",
                    "properties": {
                        "logisticsSupplierId": {
                            "title": "technical logistics supplier id",
                            "description": "logistics supplier ID - LSAS based ID",
                            "type": "string",
                            "maxLength": 36,
                            "examples":["123"]
                        },
                        "supplierId": {
                            "title": "supplier number",
                            "description": "supplier number (LKZ) - deprecated",
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 999999,
                            "examples":["4"]
                        }
                    }                                   
                },
                "storageLocationId": {
                    "title": "storage location",
                    "description": "unique identification of a storage location. see interface https://docs.osp-fine.de/page/fine-common/30_stock/s08_storage_location/s08_storage_location/",
                    "type": "string",
                    "examples":["123"]
                },
                "storageHandlingUnitId": {
                    "title": "storage handling Unit",
                    "description": "unique identification of a charge carrier/bundle. see interface https://docs.osp-fine.de/page/fine-common/30_stock/s09_storage_handling_unit/s09_storage_handling_unit/",
                    "type": "string",
                    "examples":["123"]
                },
                "goodsIn": {
                    "type": "object",
                    "properties": {
                        "goodsInId": {
                            "title": "goods in id",
                            "description": "unique id of a goods receipt see interface https://docs.osp-fine.de/page/fine-common/20_inbound/i04_goods_in/i04_goods_in/",
                            "type": "string",
                            "maxLength": 36,
                            "examples":["123"]
                        },
                        "deliveryPositionId": {
                            "title": "delivery position id",
                            "description": "unique id of a delivery position see interface https://docs.osp-fine.de/page/fine-common/20_inbound/i04_goods_in/i04_goods_in/",
                            "type": "string",
                            "maxLength": 36,
                            "examples":["4"]
                        }
                    }                                          
                },
                "movementInfo": {
                    "type": "object",
                    "properties": {
                        "firstMovement": {
                            "title": "first movement date",
                            "description": "time of creation of the stock in the wms for determining the laytime of a stock unit, for retour or detour stocks use the advise date",
                            "type": "string",
                            "format": "date-time",
                            "examples":["2022-03-22T09:52:00.000+0100"]
                        },
                        "lastMovement": {
                            "title": "last movement date",
                            "description": "last movement of the stock unit to derive old stock and bum articles",
                            "type": "string",
                            "format": "date-time",
                            "examples":["2022-03-22T09:52:00.000+0100"]
                        },
                        "lastPickingDate": {
                            "title": "last picking date",
                            "description": "time at which the last pick/commission was made from this remaining quant",
                            "type": "string",
                            "format": "date-time",
                            "examples":["2022-03-22T09:52:00.000+0100"]
                        }                       
                    },
                    "required": [
                        "firstMovement"
                    ]
                }
            },
            "required": [
                "quantId",
                "location",
                "quantType",
                "totalQuantity",
                "stockInformation",
                "product"                
            ]              
        }
    },
    "required": [
      "eventId",
      "traceId",
      "eventTime",
      "version",
      "eventType",
      "metaData",
      "data"
    ],
    
    
    
    
    "examples":[
        {
            "eventId":"f48cfc26-0615-4351-9966-cdb4ec41bbcc",
            "traceId":"f48cfc26-0615-4351-9966-cdb4ec41bbcc",
            "eventTime":"2016-04-16T01:03:17Z",
            "version":"3.1",
            "eventType":"SNAPSHOT",
            "metaData":{
                "sender":"KMOTION_ILO",
                "client":"FBO",
                "messageNumber":1,
                "lastMessageNumber":10,
                "dailySnapshotNumber":1,
                "snapshotTime":"2016-04-16T01:03:17Z"
            },
            "data":{
                "erpSnapshotId":427,
                "quantId":"22000003806",
                "location":"ILOWA",
                "quantType":"PHYSICAL",
                "totalQuantity":13,
                "stockInformation":[
                    {
                        "stockType":"RESERVED_FOR_ORDERS",
                        "quantity":3
                    },
                    {
                        "stockType":"AVAILABLE",
                        "quantity":10
                    }
                ],    
                "isInventory":false,
                "stockTypeCode":"AV",
                "customsType":"UNKNOWN",
                "product":{
                    "logisticsProductId":"Artikel1",
                    "logisticsPackingUnitId":"Teil1",
                    "packingUnitIndex":1
                },
                "storageLocationId":"199992",
                "storageHandlingUnitId":"C123456"
            }
        },
        {
            "eventId":"f48cfc26-0615-4351-9966-cdb4ec41bbcc",
            "traceId":"f48cfc26-0615-4351-9966-cdb4ec41bbcc",
            "eventTime":"2023-10-11T10:18:24.000+02:00",
            "version":"3.1",
            "eventType":"SNAPSHOT",
            "metaData":{
                "sender":"KMOTION_ILO",
                "client":"FBO",
                "messageNumber":2,
                "lastMessageNumber":10,
                "dailySnapshotNumber":1,
                "snapshotTime":"2023-10-11T01:00:00Z"
            },
            "data":{
                "erpSnapshotId":427,
                "quantId":"4711_08_01_21000000001_01",
                "location":"ILOWA",
                "quantType":"VIRTUAL",
                "totalQuantity":1,
                "stockInformation":[
                    {
                        "stockType":"RETURN_OR_DETOUR",
                        "quantity":1
                    }
                ],
                "isInventory":false,
                "sourceType":"STOCK_TRANSFER",
                "stockTypeCode":"AV",
                "customsType":"UNKNOWN",
                "product":{
                    "itemNumber":"47119884",
                    "itemSize":"906",
                    "packingUnitIndex":1
                },
                "imei":"352377995718121",
                "imei2":"352377995718122",
                "buaid":"ed5807dd-c141-4b91-9f76-b6cbfa41cb73",
                "movementInfo":{"firstMovement":"2023-10-10T10:24:41.000+02:00"}
            }
        },      
        {
            "eventId":"f48cfc26-0615-4351-9966-cdb4ec41bbcc",
            "traceId":"f48cfc26-0615-4351-9966-cdb4ec41bbcc",
            "eventTime":"2023-10-12T10:18:24.000+02:00",
            "version":"3.1",
            "eventType":"SNAPSHOT",
            "metaData":{
                "sender":"KMOTION_ILO",
                "client":"FBO",
                "messageNumber":2,
                "lastMessageNumber":10,
                "dailySnapshotNumber":1,
                "snapshotTime":"2023-10-12T10:18:24.000+02:00"
            },
            "data":{
                "erpSnapshotId":427,
                "quantId":"4711_08_01_21000000003_01",
                "location":"ILOWA",
                "quantType":"VIRTUAL",
                "totalQuantity":1,
                "stockInformation":[
                    {
                        "stockType":"RETURN_OR_DETOUR",
                        "quantity":1
                    }
                ],
                "isInventory":false,
                "sourceType":"NON_STORABLE_RETURNS",
                "stockTypeCode":"AV",
                "customsType":"UNKNOWN",
                "product":{
                    "itemNumber":"47119884",
                    "itemSize":"906",
                    "packingUnitIndex":1
                },
                "imei":"352377995718121",
                "buaid":"fg5807dd-c141-4b91-9f76-b6cbfa41cb73",
                "movementInfo":{"firstMovement":"2023-10-08T10:24:41.000+02:00"}
            }
        },      
        {
            "eventId":"f48cf326-0615-4351-9966-cdb4ec41bbcc",
            "traceId":"f48cf326-0615-4351-9966-cdb4ec41bbcc",
            "eventTime":"2023-10-11T10:18:24.000+02:00",
            "version":"3.1",
            "eventType":"SNAPSHOT",
            "metaData":{
                "sender":"KMOTION_ILO",
                "client":"FBO",
                "messageNumber":3,
                "lastMessageNumber":10,
                "dailySnapshotNumber":1,
                "snapshotTime":"2023-10-11T10:18:24.000+02:00"
            },
            "data":{
                "erpSnapshotId":427,
                "quantId":"V471108",
                "location":"ILOWA",
                "quantType":"VIRTUAL",
                "totalQuantity":5,
                "stockInformation":[
                    {
                        "stockType":"HIGH_LEVEL_RESERVED_FOR_ORDER",
                        "quantity":5
                    }
                ],    
                "isInventory":false,
                "stockTypeCode":"AV",
                "customsType":"UNKNOWN",
                "product":{
                    "itemNumber":"47119884",
                    "itemSize":"906",
                    "logisticProductId":"121214444",
                    "packingUnitIndex":1
                }
            }
        },      
        {
            "eventId":"f48cfc26-0615-4351-9966-cdb4ec41bacc",
            "traceId":"f48cfc26-0615-4351-9966-cdb4ec41bacc",
            "eventTime":"2022-03-22T09:52:00.000+0100",
            "version":"3.1",
            "eventType":"SNAPSHOT",
            "metaData":{
                "sender":"COBRA",
                "client":"FBO",
                "messageNumber":1,
                "lastMessageNumber":20,
                "dailySnapshotNumber":1,
                "snapshotTime":"2022-03-22T04:00:00.000+0100"
            },
            "data":{
                "quantId":"918450081",
                "location":"ERFURT",
                "quantType":"PHYSICAL",
                "totalQuantity":1,
                "stockInformation":[
                    {
                        "stockType":"GOODS_IN",
                        "quantity":1
                    }
                ],    
                "product":{
                    "itemNumber":"4209344",
                    "itemSize":"0",
                    "packingUnitIndex":3
                },
                "storageLocationId":"5858211128602",
                "storageHandlingUnitId":"C769675929",
                "locks":[
                    {
                        "typeCode": "AN",
                        "time": "2022-12-13T07:52:05Z"
                    },
                    {
                        "typeCode": "LO",
                        "time": "2022-12-13T07:52:05Z"
                    }
                ],
                "imei":"352377995718121",
                "imei2":"352377995718122",
                "buaid":"ed5807dd-c141-4b91-9f76-b6cbfa41cb73"
            }
        }

    ]
}

4.2. Direction FINE to ERP

4.2.1. Header

This interface uses the Service Header

Special expresion for this interface:

Table 10. Attribute
Fieldname Expresion

4.2.2. Data model

Property Type Description

(Root)

object

    eventId*

string (uuid)

The unique eventId
Global unique Id

Minimum Length: 36
Maximum Length: 36

    traceId*

string (uuid)

The unique traceId
Global unique Id for tracing the flow of events

Minimum Length: 36
Maximum Length: 36

    spanId

string (uuid)

The eventId of previous record or batchId
Optionally, if this record (event) is one of a sequence of records and the order is important, then here is the id of the previous record (event), recommended as uuid, Special usecases can be specify for some interfaces

Minimum Length: 36
Maximum Length: 36

    eventTime*

string (date-time)

Time of occurrence of the event
Time at which the record was generated (single event - not the businessEvent/snapshot) in UTC +ISO-8601 format YYYY-MM-DD'T'HH24:MM:SS'Z'

    version*

The number of version schema
Number of version of this data structure. Only required if no $schema is specified!

    context

string (enum)

The context / business case
The context specified here means the business domain.

Any of: [ "WAREHOUSE_STOCK" ]
Maximum Length: 50

    eventType*

string (enum)

Snapshot event
the snapshot type to which the data belongs, currently only snapshots are supported

Any of: [ "SNAPSHOT" ]
Maximum Length: 20

    metaData*

object

additional meta information
optional, can be used with different characteristics for technical data per interface

        sender*

string (enum)

sender
Name of the source system, that has sent this message.

Any of: [ "KR1_SHF", "KR1_HHSTR", "WMSX_SON", "WMSX_AKU", "KMOTION_ILO", "KMOTION_GHM", "COBRA", "LSAS", "IDEEFIX", "OBS", "RESY", "LDH", "RETAILSCHICHT", "BUBE", "FINE_INBOUND", "F2X", "WMSX_WEISMAIN", "LIGIS", "KR1_MANDANT", "YMS_KMOTION", "YMS_INCONSO", "HERIS", "CARGOCLIX", "KMOTION_ERFURT", "LOGISTIKPUFFER" ]

        client*

string

client
Client/mandant (messages of different clients have different processing rules and destination interfaces) - use FBO for Fulfillment by Otto (CORE, DeepSea…​)

Maximum Length: 50

        messageNumber

integer

current message number
the current message number that is transmitted

Minimum: 1
Maximum: 1000000000000000000

        lastMessageNumber

integer

last message number
how many messages are to be transferred

Minimum: 1
Maximum: 1000000000000000000

        dailySnapshotNumber*

integer

daily snapshot number
sequence number of the snapshot per day, starts every day again with number 1

Minimum: 1
Maximum: 100

        snapshotTime

string (date-time)

snapshot time
time of the snapshot creation

    data*

object

        snapshotId

integer

the id of the inventory snapshot
Consecutive number (sequence) of a long number. each inventory snapshot gets its own ID from WMS, which is identical for all records of the snapshot. all bookings get the id of the following snapshot, generated by wms, each wms has his own scope

Maximum Length: 18
Minimum: 1
Maximum: 1000000000000000000

        quantId*

string

Quant Id
ID of the finest stock separating unit, generated id for virtual quants/units

Maximum Length: 100

        quantType*

string (enum)

quant type
type of quant, virtual for stocks without relation to a real physical quant ,e.g. high level reserved quantities, advised detours

Any of: [ "PHYSICAL", "VIRTUAL" ]
Maximum Length: 10

        location*

string (enum)

location
the location where the event was created

Any of: [ "ANSBACH", "LOEHNE", "LANGENSELBOLD", "MOSINA", "OHRDRUF", "HALDENSLEBEN", "HALDENSLEBEN_RT", "SUEDHAFEN", "SONNEFELD", "ALTENKUNSTADT", "WEIDEN", "KRACANY", "ILOWA", "ILOWA_RT", "ILOWA_RSS", "GERNSHEIM", "ERFURT", "HAMBURG_RT", "OTELFINGEN_RT", "KRIMICE_RT", "STAHLAVY_RT", "OHRDRUF_RT", "LOEHNE_RT", "LANGENSELBOLD_RT", "LODZ_1_RT", "LODZ_2_RT", "BERGHEIM_RT", "ALTENKUNSTADT_RT", "LISTERHILLS_RT", "SUEDHAFEN_RT", "PILSEN_RT", "HAMBURG_SC", "LOEHNE_SC", "SCHWABHAUSEN_SC", "HALDENSLEBEN_RSS", "ALTENKUNSTADT_RSS", "LOEHNE_RSS", "OHRDRUF_RSS", "LANGENSELBOLD_RSS", "LOEHNE_CP" ]

        sourcelocation

string (enum)

source location
the source location of the stock e.g. the sending location for returns or detours

Any of: [ "ANSBACH", "LOEHNE", "LANGENSELBOLD", "MOSINA", "OHRDRUF", "HALDENSLEBEN", "HALDENSLEBEN_RT", "SUEDHAFEN", "SONNEFELD", "ALTENKUNSTADT", "WEIDEN", "KRACANY", "ILOWA", "ILOWA_RT", "ILOWA_RSS", "GERNSHEIM", "ERFURT", "HAMBURG_RT", "OTELFINGEN_RT", "KRIMICE_RT", "STAHLAVY_RT", "OHRDRUF_RT", "LOEHNE_RT", "LANGENSELBOLD_RT", "LODZ_1_RT", "LODZ_2_RT", "BERGHEIM_RT", "ALTENKUNSTADT_RT", "LISTERHILLS_RT", "SUEDHAFEN_RT", "PILSEN_RT", "HAMBURG_SC", "LOEHNE_SC", "SCHWABHAUSEN_SC", "HALDENSLEBEN_RSS", "ALTENKUNSTADT_RSS", "LOEHNE_RSS", "OHRDRUF_RSS", "LANGENSELBOLD_RSS", "LOEHNE_CP" ]

        totalQuantity*

integer

total quantity
the total quantity for this quant including reserved qty in kMotion

Minimum: 1
Maximum: 9999999999

        stockInformation*

array

stockInformation
the stock related informations for the single quantities of this quant

            (Array item)

object

                quantity*

integer

quantity
quantity containing to this stock type

Minimum: 1
Maximum: 9999999999

                stockType*

string (enum)

Stock Type
stock type, that indicates whether an individual part is in goods in stock (before releasing), available, reserved for orders, advised as return or detour…​

Any of: [ "GOODS_IN", "AVAILABLE", "QUALITY_LOCKED", "LOCKED", "RESERVED_FOR_ORDERS", "HIGH_LEVEL_RESERVED_FOR_ORDER", "RETURN_OR_DETOUR", "RESERVABLE_LOCKED", "RESERVABLE_RETURN_OR_DETOUR", "REPLENISHMENT" ]
Maximum Length: 50

        stockTypeCode

string

WMS Stock Type
stock type used in wms frontend (if available)

Maximum Length: 50

        sourceType

string (enum)

source Type
additional source type information for distinction of stock source (detour, returns, goodsin from supplier etc.) and assignment of erp stocktypes

Any of: [ "STOCK_TRANSFER", "RETURN_INBOUND", "RETURN_SUPPLIER", "INTERNAL_REMOVAL_FROM_INBOUND", "INTERNAL_REMOVAL_FOR_SAMPLE", "SUPPLY", "STOCK_TRANSFER_WITH_PROMISE", "FINAL_REMOVAL", "OTTO_MARKET", "INBOUND_SAMPLE", "STORABLE_RETURNS", "NON_STORABLE_RETURNS", "GOODSIN_SUPPLIER" ]
Maximum Length: 50

        isInventory*

boolean

is Inventory
set it true if the quant was intended for inventory checking, otherwise to false

        isIgnoredForComparison

boolean

is ignored for comparison
set it true, if this quant should be ignored for comparison during group inventory, normally used for returns that are advised with isInventory flag from RESY, because they are not booked

        customsType

string (enum)

Type of customs
indicates whether the quant have been cleared or not

Any of: [ "CUSTOMS_CLEARED", "CUSTOMS_NOT_CLEARED", "UNKNOWN" ]
Maximum Length: 50

        customsTypeCode

string

WMS Customs Type
customs type code used in wms frontend

Maximum Length: 50

        qualityControlTypeCode

string

WMS Quality Control Type
quality control type used in wms (account)

Maximum Length: 50

        locks

array

locks
locks used in wms, a quant can have multiple locks, use also wms code for unlocked,

            (Array item)

object

                typeCode

string

lock type
lock used in front end of WMS

Maximum Length: 50

                time

string (date-time)

Lock Date
time the lock was set

        buaid

string

buaid
bi unique article ID, unique identification of an individual unit in the logistical process

Maximum Length: 50

        BUID

string

BUID
obsolete. for backwards compatibility with V3.0. Use attribute buiad instead. BI UUID, unique identification of an individual unit in the logistical process

        bestBeforeDate

string (date)

best Before Date
best before date

        batch

string

batch
batch number

Maximum Length: 100

        imei

string

imei
IMEI of a technical device

Maximum Length: 50

        imei2

string

imei2
second IMEI of dual sim technical device

Maximum Length: 50

        serialNo

string

serial number
serial number of the manufacturer

Maximum Length: 100

        volume

object

volume
volume of the whole quant - gross value - measured

            value

string

Value

Regular expression: ^[0-9]{1,9}[.][0-9]{1,6}$

            unit

string (enum)

unit volume

Any of: [ "CUBIC_METER", "LITER" ]

        weight

object

weight
weight of the whole quant - gross value - measured

            value

string

Value

Regular expression: ^[0-9]{1,9}[.][0-9]{1,3}$

            unit

string (enum)

unit weight

Any of: [ "GRAM", "KILOGRAM" ]

        product*

object

            erpProductId

string

¨ERP Product Id
master communication key between Erp and LSAS

Maximum Length: 36

            itemNumber

string

Item Number
the item number-> Only provided by WMSx Sonnefeld - deprecated

            itemSize

string

Item Size
the item size (binary size, not alphanumeric) -> Only provided by WMSx Sonnefeld - deprecated

Maximum Length: 3

            company

string

Company
actual owner company - used in FLASH

Maximum Length: 50

            erpPackingUnitId

string

¨ERP PackingUnit Id
master communication key between LSAS and ERP for packing units of products with multiple parts

Maximum Length: 36

            packingUnitIndex

integer

¨PackingUnit Number
Part Number for products with multiple parts - deprecated

Maximum: 99

        supplier

object

            erpSupplierId

string

technical erp supplier id
erp supplier ID - ERP based ID

Maximum Length: 36

            supplierId

integer

supplier number
supplier number (LKZ) - deprecated

Minimum: 0
Maximum: 999999

        storageLocationId

string

storage location
unique identification of a storage location. see interface https://docs.osp-fine.de/page/fine-common/30_stock/s08_storage_location/s08_storage_location/

        storageHandlingUnitId

string

storage handling Unit
unique identification of a charge carrier/bundle. see interface https://docs.osp-fine.de/page/fine-common/30_stock/s09_storage_handling_unit/s09_storage_handling_unit/

        goodsIn

object

            goodsInId

string

goods in id
unique id of a goods receipt see interface https://docs.osp-fine.de/page/fine-common/20_inbound/i04_goods_in/i04_goods_in/

Maximum Length: 36

            deliveryPositionId

string

delivery position id
unique id of a delivery position see interface https://docs.osp-fine.de/page/fine-common/20_inbound/i04_goods_in/i04_goods_in/

Maximum Length: 36

        movementInfo

object

            firstMovement*

string (date-time)

first movement date
time of creation of the stock in the wms for determining the laytime of a stock unit, for retour or detour stocks use the advise date

            lastMovement

string (date-time)

last movement date
last movement of the stock unit to derive old stock and bum articles

            lastPickingDate

string (date-time)

last picking date
time at which the last pick/commission was made from this remaining quant

4.2.3. Enumeration

Field: Type

Table 11. type
Meta Value Description Short Value

4.2.4. Example

Message FINE to ERP

4.2.5. Version history

Table 12. Version FINE to ERP

Version

Number

File

Published on

previous version

3.1

Download

18.03.24

current version

3.2

Download

09.01.25

coming version

4.2.6. Changelog

Changes V3.0

  1. Standard header

    • attribute "sender" is now linked to system.v7.schema.json

    • attribute "client" is now linked to company.v5.schema.json

    • enum values for "eventType" were updated

    • fields of header were changed to "dailySnapshotNumber" and "snapshotTime"

    • renamed "erpSnapshotId" to "snapshotId"

  2. Payload (Data)

    • Trennung "totalQuantity" und "stockInformation" mit versch. Mengen für reserviert/Menge zur Abbildung Bestandsarten über "stockType" und virtuelle Quanten mittels "quantType" für High Level Reservierungen

    • added new field "lastPickingDate"

    • changed references and attribute names for "supplier" and "goodsIn"

Changes V3.0 → V3.1

  1. Standard header

  2. Payload (Data)

    • added new field "isInventory" - set true if quant is registered for inventory checks

    • added new field "buaid" - prepare renaming BUID to buaid, don’t use BUID anymore (marked as obsolete) for V3.0 data

    • added new field "sourceType" - for distinction of stock source (detour, returns, goods in …​)

    • extend "quantId" to 100 signs

    • added new field "imei2" for dual sim devices

Changes V3.1 → V3.2

  1. Standard header

    • attribute "client" - reference to global company enums removed. Use string.

    • attribute "company" - reference to global company enums removed. Use string.

  2. Payload (Data)

    • attribute "isIgnoredForComparison" - new boolean value for group inventory

    • attribute "volume" - "value" - introduce pattern to validate string matches oracles decimal(15,6)

    • attruibute "weight" - "value" - introduce pattern to validate string matches oracles decimal(12,3)

Notes for new major version:

  • remove BUID

  • rename sourcelocation to sourceLocation

4.2.7. Schema

Interface FINE to ERP
{
    "$schema": "http://json-schema.org/draft-07/schema",
    "$comment": "Schema for stock in a warehouse direction ERP Version 3.2",
    "$id": "https://doc.fine.gcp.osp-dev.de/registry/Stock/WarehouseStockErp.v3.2.schema.json",
    "type": "object",
    "definitions": {
        "stockType": {
            "title": "Type of the stock",
            "description": "stockType, that indicates whether an individual part is in goods in stock (before releasing), available, reserved for orders, advised as return or detour...",
            "type": "string",
            "maxLength": 50,
            "enum": ["GOODS_IN",
                     "AVAILABLE",
                     "QUALITY_LOCKED",
                     "LOCKED",
                     "RESERVED_FOR_ORDERS",
                     "HIGH_LEVEL_RESERVED_FOR_ORDER",
                     "RETURN_OR_DETOUR",
                     "RESERVABLE_LOCKED",
                     "RESERVABLE_RETURN_OR_DETOUR",
                     "REPLENISHMENT"]
        },
        "sourceType": {
            "title": "additional source type",
            "description": "additional source type information for distinction of stock source (different transfer types, returns, goodsin from supplier etc.), used for erp stocktype mappings, has to be filled at least for all messages with stockType RETURN_OR_DETOUR and for NON_STORABLE_RETURNS",
            "type": "string",
            "maxLength": 50,
            "enum": ["STOCK_TRANSFER",
                     "RETURN_INBOUND",
                     "RETURN_SUPPLIER",
                     "INTERNAL_REMOVAL_FROM_INBOUND",
                     "INTERNAL_REMOVAL_FOR_SAMPLE",
                     "SUPPLY",
                     "STOCK_TRANSFER_WITH_PROMISE",
                     "FINAL_REMOVAL",
                     "OTTO_MARKET",
                     "INBOUND_SAMPLE",
                     "STORABLE_RETURNS",
                     "NON_STORABLE_RETURNS",
                     "GOODSIN_SUPPLIER"
                     ]
        }
    },
    "properties": {
        "eventId": {
            "title": "The unique eventId",
            "description": "Global unique Id",
            "type": "string",
            "format": "uuid",
            "minLength": 36,
            "maxLength": 36,
            "examples": [
                "00ce536f-923a-42f4-8128-be118faf1d87"
            ]
        },
        "traceId": {
            "title": "The unique traceId",
            "description": "Global unique Id for tracing the flow of events",
            "type": "string",
            "format": "uuid",
            "minLength": 36,
            "maxLength": 36,
            "examples": [
                "00ce536f-923a-42f4-8138-33418faf1342"
            ]
        },
        "spanId": {
            "title": "The eventId of previous record or batchId",
            "description": "Optionally, if this record (event) is one of a sequence of records and the order is important, then here is the id of the previous record (event), recommended as uuid, Special usecases can be specify for some interfaces",
            "type": "string",
            "format": "uuid",
            "minLength": 36,
            "maxLength": 36,
            "examples": [
                "00ce536f-923a-42f4-5463-32a41877b3c2"
            ]
        },    
        "eventTime": {
            "title": "Time of occurrence of the event",
            "description": "Time at which the record was generated (single event - not the businessEvent/snapshot) in UTC +ISO-8601 format YYYY-MM-DD'T'HH24:MM:SS'Z'",
            "type": "string",
            "format": "date-time",
            "examples": [
                "2022-04-16T16:06:05.123456Z",
                "2022-04-19T08:51:05+02:00"
            ]
        },
        "version": {
            "title": "The number of version schema",
            "description": "Number of version of this data structure. Only required if no $schema is specified!",
            "oneOf": [
                {
                    "type": "string",
                    "pattern": "\\d+\\.\\d{1,2}",
                    "examples": ["1.01", "01.02"]
                },
                {
                    "type": "integer",
                    "examples": [1, 2]
                }
            ]
        },
        "context": {
            "title": "The context / business case",
            "description": "The context specified here means the business domain.",
            "type": "string",
            "maxLength":50,
            "enum": [
                "WAREHOUSE_STOCK"
            ]
        },
        "eventType": {
            "title": "Snapshot event",
            "description": "the snapshot type to which the data belongs, currently only snapshots are supported",
            "type": "string",
            "maxLength": 20,
            "enum": ["SNAPSHOT"],
            "examples":["SNAPSHOT"]
        },
        "metaData": {
            "title": "additional meta information",
            "description": "optional, can be used with different characteristics for technical data per interface",
            "type": "object",
            "properties": {
                "sender": {
                    "title":"sender",
                    "description":"Name of the source system, that has sent this message.",
                    "$ref": "https://doc.fine.gcp.osp-dev.de/registry/MetaData/system.v7.schema.json"
                },
                "client": {
                    "title": "client",
                    "description": "Client/mandant (messages of different clients have different processing rules and destination interfaces) - use FBO for Fulfillment by Otto (CORE, DeepSea...)",
                    "type": "string",
                    "maxLength": 50,
                    "examples": [
                        "FBO"
                    ]
                },
                "messageNumber": {
                    "title": "current message number",
                    "description": "the current message number that is transmitted",
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 999999999999999999
                },
                "lastMessageNumber": {
                    "title": "last message number",
                    "description": "how many messages are to be transferred",
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 999999999999999999
                },
                "dailySnapshotNumber": {
                    "title": "daily snapshot number",
                    "description": "sequence number of the snapshot per day, starts every day again with number 1",
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 100
                },
                "snapshotTime": {
                    "title": "snapshot time",
                    "description": "time of the snapshot creation",
                    "type": "string",
                    "format": "date-time",
                    "examples": [
                        "2022-04-16T16:06:05.123456Z",
                        "2022-04-19T08:51:05+02:00"
                    ]
                }
            }, 
            "required": [
                "sender",
                "client",
                "dailySnapshotNumber"
            ]   
        },
        "data": {
            "type": "object",
            "properties": {
                "snapshotId": {
                    "title": "the id of the inventory snapshot",
                    "description": "Consecutive number (sequence) of a long number. each inventory snapshot gets its own ID from WMS, which is identical for all records of the snapshot. all bookings get the id of the following snapshot, generated by wms, each wms has his own scope",
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 999999999999999999,
                    "maxLength": 18,
                    "examples": [
                        122
                    ]
                },
                "quantId": {
                    "title": "Quant Id",
                    "description": "ID of the finest stock separating unit, generated id for virtual quants/units",
                    "type": "string",
                    "maxLength": 100,
                    "examples":["1189582"]
                },
                "quantType": {
                    "title": "quant type",
                    "description": "type of quant, virtual for stocks without relation to a real physical quant ,e.g. high level reserved quantities, advised detours",
                    "type": "string",
                    "maxLength": 10,
                    "enum":["PHYSICAL","VIRTUAL"]
                },           
                "location": {
                    "title": "location",
                    "description": "the location where the event was created",
                    "$ref": "https://doc.fine.gcp.osp-dev.de/registry/MetaData/warehouselocations.v1.schema.json"
                },
                "sourcelocation": {
                    "title": "source location",
                    "description": "the source location of the stock e.g. the sending location for returns or detours",
                    "$ref": "https://doc.fine.gcp.osp-dev.de/registry/MetaData/warehouselocations.v1.schema.json"
                },
                "totalQuantity": {
                    "title": "total quantity",
                    "description": "the total quantity for this quant including reserved qty in kMotion",
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 9999999999,
                    "examples":["20"]
                },
                "stockInformation": {
                    "title": "stockInformation",
                    "description": "the stock related informations for the single quantities of this quant",
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "quantity": {
                                "title": "quantity",
                                "description": "quantity containing to this stock type",
                                "type": "integer",
                                "minimum": 1,
                                "maximum": 9999999999,
                                "examples":[90]
                            },
                            "stockType": {
                                "title": "Stock Type",
                                "description": "stock type, that indicates whether an individual part is in goods in stock (before releasing), available, reserved for orders, advised as return or detour...",
                                "$ref": "#/definitions/stockType"
                            }
                        },
                        "required": [
                            "quantity",
                            "stockType"
                        ]
                    }
                },
                "stockTypeCode": {
                    "title": "WMS Stock Type",
                    "description": "stock type used in wms frontend (if available)",
                    "type": "string",
                    "maxLength": 50,
                    "examples":["4251"]
                },          
                "sourceType": {
                    "title": "source Type",
                    "description": "additional source type information for distinction of stock source (detour, returns, goodsin from supplier etc.) and assignment of erp stocktypes",
                    "$ref": "#/definitions/sourceType"
                },
                "isInventory": {
                    "title": "is Inventory",
                    "description": "set it true if the quant was intended for inventory checking, otherwise to false",
                    "type": "boolean",
                    "default": false,
                    "examples": [true,false]
                },
                "isIgnoredForComparison": {
                    "title": "is ignored for comparison",
                    "description": "set it true, if this quant should be ignored for comparison during group inventory, normally used for returns that are advised with isInventory flag from RESY, because they are not booked",
                    "type": "boolean",
                    "default": false,
                    "examples": [true,false]
                },
                "customsType": {
                    "title": "Type of customs",
                    "description": "indicates whether the quant have been cleared or not",
                    "type": "string",
                    "maxLength": 50,
                    "enum": ["CUSTOMS_CLEARED", "CUSTOMS_NOT_CLEARED", "UNKNOWN"],
                    "example": ["CUSTOMS_CLEARED"]
                },
                "customsTypeCode": {
                    "title": "WMS Customs Type",
                    "description": "customs type code used in wms frontend",
                    "type": "string",
                    "maxLength": 50,
                    "example": ["5614D"]
                }, 
                "qualityControlTypeCode": {
                    "title": "WMS Quality Control Type",
                    "description": "quality control type used in wms (account)",
                    "type": "string",
                    "maxLength": 50,
                    "examples":["1234ABCD"]
                },               
                "locks": {
                    "title": "locks",
                    "description": "locks used in wms, a quant can have multiple locks, use also wms code for unlocked, ",
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {            
                            "typeCode": {
                                "title": "lock type",
                                "description": "lock used in front end of WMS",
                                "type": "string",
                                "maxLength": 50,
                                "examples":["1120ABD"]
                            },
                            "time": {
                                "title": "Lock Date",
                                "description": "time the lock was set",
                                "type": "string",
                                "format": "date-time",
                                "examples":["2022-03-22T09:52:00.000+0100"]
                            }
                        }
                    }
                }, 
                "buaid": {
                    "title": "buaid",
                    "description": "bi unique article ID, unique identification of an individual unit in the logistical process",
                    "type": "string",
                    "maxLength": 50,
                    "examples":["2344545-334542-465g45ddf"]
                },
                "BUID": {
                    "title": "BUID",
                    "description": "obsolete. for backwards compatibility with V3.0. Use attribute buiad instead. BI UUID, unique identification of an individual unit in the logistical process",
                    "type": "string",
                    "examples":["2344545-334542-465g45ddf"]
                },
                "bestBeforeDate": {
                    "title": "best Before Date",
                    "description": "best before date",
                    "type": "string",
                    "format":"date",
                    "examples":["2022-12-31"]
                },
                "batch": {
                    "title": "batch",
                    "description": "batch number",
                    "type": "string",
                    "maxLength": 100,
                    "examples":["124345d"]
                },
                "imei": {
                    "title": "imei",
                    "description": "IMEI of a technical device",
                    "type": "string",
                    "maxLength": 50,
                    "examples":["2345-45452-43365-5643"]
                },
                "imei2": {
                    "title": "imei2",
                    "description": "second IMEI of dual sim technical device",
                    "type": "string",
                    "maxLength": 50,
                    "examples":["2345-45452-43365-5643"]
                },
                "serialNo": {
                    "title": "serial number",
                    "description": "serial number of the manufacturer",
                    "type": "string",
                    "maxLength": 100,
                    "examples":["D345-gkjpo-3112"]
                },
                "volume": {
                    "title": "volume",
                    "description": "volume of the whole quant - gross value - measured",
                    "type": "object",
                    "properties": {
                        "value": {
                            "type": "string",
                            "description": "Value",
                            "pattern":"^[0-9]{1,9}[.][0-9]{1,6}$",
                            "examples": [
                                    "0.000234",
                                    "987654321.0"
                            ]
                        },
                        "unit": {
                            "$ref": "https://doc.fine.gcp.osp-dev.de/registry/MetaData/unitVolume.v1.schema.json"
                        }
                    }
                },
                "weight": {
                    "title": "weight",
                    "description": "weight of the whole quant - gross value - measured",
                    "type": "object",
                    "properties": {
                        "value": {
                            "type": "string",
                            "description": "Value",
                            "pattern":"^[0-9]{1,9}[.][0-9]{1,3}$",
                            "examples": [
                                    "0.565",
                                    "987654321.0"
                            ]
                        },
                        "unit": {
                            "$ref": "https://doc.fine.gcp.osp-dev.de/registry/MetaData/unitWeight.v1.schema.json"
                        }
                    }
               },
               "product": {
                    "type": "object",
                    "properties": {
                        "erpProductId": {
                            "title": "¨ERP Product Id",
                            "description": "master communication key between Erp and LSAS",
                            "type": "string",
                            "maxLength": 36,
                            "examples":["123"]
                        },
                        "itemNumber": {
                            "title": "Item Number",
                            "description": "the item number-> Only provided by WMSx Sonnefeld  - deprecated",
                            "type": "string",
                            "maxLentht": 8,
                            "examples":["4"]
                        },
                        "itemSize": {
                            "title": "Item Size",
                            "description": "the item size (binary size, not alphanumeric) -> Only provided by WMSx Sonnefeld  - deprecated",
                            "type": "string",
                            "maxLength": 3,
                            "examples":["960"]
                        },
                        "company": {
                            "title": "Company",
                            "description": "actual owner company - used in FLASH",
                            "type": "string",
                            "maxLength": 50,
                            "examples": [
                                "OTTO"
                            ]
                        },
                        "erpPackingUnitId": {
                            "title": "¨ERP PackingUnit Id",
                            "description": "master communication key between LSAS and ERP for packing units of products with multiple parts",
                            "type": "string",
                            "maxLength": 36,
                            "examples":["123"]
                        },
                        "packingUnitIndex": {
                            "title": "¨PackingUnit Number",
                            "description": "Part Number for products with multiple parts - deprecated",
                            "type": "integer",
                            "mininmum": 1,
                            "maximum": 99,
                            "examples":["123"]
                        }
                    },
                    "anyOf": [
                        {
                            "description": "used for wms without lsas connection (Sonnefeld) single colli items",
                            "required": [
                                "itemNumber",
                                "itemSize"
                            ]
                        },
                        {
                            "description": "used for erp with lsas connection - PL - single colli",
                            "required": [
                                "erpProductId"
                            ]
                        },
                        {
                            "description": "used for erp with lsas connection - bulky item",
                            "required": [
                                "erpProductId",
                                "erpPackingUnitId",
                                "packingUnitIndex"
                            ]
                        },
                        {
                            "description": "used for bulky items without lsas data",
                            "required": [
                                "itemNumber",
                                "itemSize",
                                "packingUnitIndex"
                            ]
                        }
                    ]
                },
                "supplier": {
                    "type": "object",
                    "properties": {
                        "erpSupplierId": {
                            "title": "technical erp supplier id",
                            "description": "erp supplier ID - ERP based ID",
                            "type": "string",
                            "maxLength": 36,
                            "examples":["123"]
                        },
                        "supplierId": {
                            "title": "supplier number",
                            "description": "supplier number (LKZ) - deprecated",
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 999999,
                            "examples":["4"]
                        }
                    }                                   
                },
                "storageLocationId": {
                    "title": "storage location",
                    "description": "unique identification of a storage location. see interface https://docs.osp-fine.de/page/fine-common/30_stock/s08_storage_location/s08_storage_location/",
                    "type": "string",
                    "examples":["123"]
                },
                "storageHandlingUnitId": {
                    "title": "storage handling Unit",
                    "description": "unique identification of a charge carrier/bundle. see interface https://docs.osp-fine.de/page/fine-common/30_stock/s09_storage_handling_unit/s09_storage_handling_unit/",
                    "type": "string",
                    "examples":["123"]
                },
                "goodsIn": {
                    "type": "object",
                    "properties": {
                        "goodsInId": {
                            "title": "goods in id",
                            "description": "unique id of a goods receipt see interface https://docs.osp-fine.de/page/fine-common/20_inbound/i04_goods_in/i04_goods_in/",
                            "type": "string",
                            "maxLength": 36,
                            "examples":["123"]
                        },
                        "deliveryPositionId": {
                            "title": "delivery position id",
                            "description": "unique id of a delivery position see interface https://docs.osp-fine.de/page/fine-common/20_inbound/i04_goods_in/i04_goods_in/",
                            "type": "string",
                            "maxLength": 36,
                            "examples":["4"]
                        }
                    }                                          
                },
                "movementInfo": {
                    "type": "object",
                    "properties": {
                        "firstMovement": {
                            "title": "first movement date",
                            "description": "time of creation of the stock in the wms for determining the laytime of a stock unit, for retour or detour stocks use the advise date",
                            "type": "string",
                            "format": "date-time",
                            "examples":["2022-03-22T09:52:00.000+0100"]
                        },
                        "lastMovement": {
                            "title": "last movement date",
                            "description": "last movement of the stock unit to derive old stock and bum articles",
                            "type": "string",
                            "format": "date-time",
                            "examples":["2022-03-22T09:52:00.000+0100"]
                        },
                        "lastPickingDate": {
                            "title": "last picking date",
                            "description": "time at which the last pick/commission was made from this remaining quant",
                            "type": "string",
                            "format": "date-time",
                            "examples":["2022-03-22T09:52:00.000+0100"]
                        }                       
                    },
                    "required": [
                        "firstMovement"
                    ]
                }
            },
            "required": [
                "quantId",
                "location",
                "quantType",
                "totalQuantity",
                "stockInformation",
                "isInventory",
                "product"                
            ]              
        }
    },
    "required": [
      "eventId",
      "traceId",
      "eventTime",
      "version",
      "eventType",
      "metaData",
      "data"
    ],
    
    
    
    
    "examples":[
        {
            "eventId":"f48cfc26-0615-4351-9966-cdb4ec41bbcc",
            "traceId":"f48cfc26-0615-4351-9966-cdb4ec41bbcc",
            "eventTime":"2016-04-16T01:03:17Z",
            "version":"3.1",
            "eventType":"SNAPSHOT",
            "metaData":{
                "sender":"KMOTION_ILO",
                "client":"FBO",
                "messageNumber":1,
                "lastMessageNumber":10,
                "dailySnapshotNumber":1,
                "snapshotTime":"2016-04-16T01:00:00Z"
            },
            "data":{
                "erpSnapshotId":427,
                "quantId":"22000003806",
                "location":"ILOWA",
                "quantType":"PHYSICAL",
                "totalQuantity":13,
                "stockInformation":[
                    {
                        "stockType":"RESERVED_FOR_ORDERS",
                        "quantity":3
                    },
                    {
                        "stockType":"AVAILABLE",
                        "quantity":10
                    }
                ],    
                "isInventory":false,
                "stockTypeCode":"AV",
                "customsType":"UNKNOWN",
                "product":{
                    "erpProductId":"Artikel1",
                    "erpPackingUnitId":"Teil1",
                    "packingUnitIndex":1
                },
                "storageLocationId":"199992",
                "storageHandlingUnitId":"C123456"
            }
        },
        {
            "eventId":"f48cfc26-0615-4351-9966-cdb4ec41bbcc",
            "traceId":"f48cfc26-0615-4351-9966-cdb4ec41bbcc",
            "eventTime":"2023-10-11T10:18:24.000+02:00",
            "version":"3.1",
            "eventType":"SNAPSHOT",
            "metaData":{
                "sender":"KMOTION_ILO",
                "client":"FBO",
                "messageNumber":2,
                "lastMessageNumber":10,
                "dailySnapshotNumber":1,
                "snapshotTime":"2023-10-11T01:00:00Z"
            },
            "data":{
                "erpSnapshotId":427,
                "quantId":"4711_08_01_21000000001_01",
                "location":"ILOWA",
                "quantType":"VIRTUAL",
                "totalQuantity":1,
                "stockInformation":[
                    {
                        "stockType":"RETURN_OR_DETOUR",
                        "quantity":1
                    }
                ],
                "isInventory":false,
                "sourceType":"STOCK_TRANSFER",
                "stockTypeCode":"AV",
                "customsType":"UNKNOWN",
                "product":{
                    "itemNumber":"47119884",
                    "itemSize":"906",
                    "packingUnitIndex":1
                },
                "imei":"352377995718121",
                "imei2":"352377995718122",
                "buaid":"ed5807dd-c141-4b91-9f76-b6cbfa41cb73",
                "movementInfo":{"firstMovement":"2023-10-10T10:24:41.000+02:00"}
            }
        },      
        {
            "eventId":"f48cfc26-0615-4351-9966-cdb4ec41bbcc",
            "traceId":"f48cfc26-0615-4351-9966-cdb4ec41bbcc",
            "eventTime":"2023-10-12T10:18:24.000+02:00",
            "version":"3.1",
            "eventType":"SNAPSHOT",
            "metaData":{
                "sender":"KMOTION_ILO",
                "client":"FBO",
                "messageNumber":2,
                "lastMessageNumber":10,
                "dailySnapshotNumber":1,
                "snapshotTime":"2023-10-12T10:18:24.000+02:00"
            },
            "data":{
                "erpSnapshotId":427,
                "quantId":"4711_08_01_21000000003_01",
                "location":"ILOWA",
                "quantType":"VIRTUAL",
                "totalQuantity":1,
                "stockInformation":[
                    {
                        "stockType":"RETURN_OR_DETOUR",
                        "quantity":1
                    }
                ],
                "isInventory":false,
                "sourceType":"NON_STORABLE_RETURNS",
                "stockTypeCode":"AV",
                "customsType":"UNKNOWN",
                "product":{
                    "itemNumber":"47119884",
                    "itemSize":"906",
                    "packingUnitIndex":1
                },
                "imei":"352377995718121",
                "buaid":"fg5807dd-c141-4b91-9f76-b6cbfa41cb73",
                "movementInfo":{"firstMovement":"2023-10-08T10:24:41.000+02:00"}
            }
        },      
        {
            "eventId":"f48cf326-0615-4351-9966-cdb4ec41bbcc",
            "traceId":"f48cf326-0615-4351-9966-cdb4ec41bbcc",
            "eventTime":"2023-10-11T10:18:24.000+02:00",
            "version":"3.1",
            "eventType":"SNAPSHOT",
            "metaData":{
                "sender":"KMOTION_ILO",
                "client":"FBO",
                "messageNumber":3,
                "lastMessageNumber":10,
                "dailySnapshotNumber":1,
                "snapshotTime":"2023-10-11T10:18:24.000+02:00"
            },
            "data":{
                "erpSnapshotId":427,
                "quantId":"V471108",
                "location":"ILOWA",
                "quantType":"VIRTUAL",
                "totalQuantity":5,
                "stockInformation":[
                    {
                        "stockType":"HIGH_LEVEL_RESERVED_FOR_ORDER",
                        "quantity":5
                    }
                ],    
                "isInventory":false,
                "stockTypeCode":"AV",
                "customsType":"UNKNOWN",
                "product":{
                    "itemNumber":"47119884",
                    "itemSize":"906",
                    "erpProductId":"121214444",
                    "packingUnitIndex":1
                }
            }
        },      
        {
            "eventId":"f48cfc26-0615-4351-9966-cdb4ec41bacc",
            "traceId":"f48cfc26-0615-4351-9966-cdb4ec41bacc",
            "eventTime":"2022-03-22T09:52:00.000+0100",
            "version":"3.1",
            "eventType":"SNAPSHOT",
            "metaData":{
                "sender":"COBRA",
                "client":"FBO",
                "messageNumber":1,
                "lastMessageNumber":20,
                "dailySnapshotNumber":1,
                "snapshotTime":"2022-03-22T04:00:00.000+0100"
            },
            "data":{
                "quantId":"918450081",
                "location":"ERFURT",
                "quantType":"PHYSICAL",
                "totalQuantity":1,
                "stockInformation":[
                    {
                        "stockType":"GOODS_IN",
                        "quantity":1
                    }
                ],    
                "isInventory":false,
                "product":{
                    "itemNumber":"4209344",
                    "itemSize":"0",
                    "packingUnitIndex":3
                },
                "storageLocationId":"5858211128602",
                "storageHandlingUnitId":"C769675929",
                "locks":[
                    {
                        "typeCode": "AN",
                        "time": "2022-12-13T07:52:05Z"
                    },
                    {
                        "typeCode": "LO",
                        "time": "2022-12-13T07:52:05Z"
                    }
                ],
                "imei":"352377995718121",
                "imei2":"352377995718122",
                "buaid":"ed5807dd-c141-4b91-9f76-b6cbfa41cb73"
            }
        }

    ]
}

4.3. Direction FINE to BRAIN

4.3.1. Header

This interface uses the Service Header

Special expression for this interface:

Table 13. Attribute
Fieldname Expression

4.3.2. Data model

4.3.3. Enumeration

Field: Type

Table 14. type
Meta Value Description Short Value

4.3.4. Example

Message FINE to BRAIN

4.3.5. Schema

Table 15. Version FINE to BRAIN
Version Number File Published on Changes

current version

2.0

Download

20.09.22

- service header attribute spanId as optional field inserted - rename service header attribute type to eventType - use new object "metaData" in service header and move the attributes "sender", "messageNumber" and "lastMessageNumber" into this object - link attribute "sender" to the global enum "sender" - link attributes data → "location" and "sourecLocation" to the global enums in "location" schema - use under data\package\weight attibute "unit" the global enum schema unit - use under data\package\volume attibute "unit" the global enum schema unit - under data\supplier use camelCase for attribute id - under data\supplier use camelCase for attribute number

coming version

2.1

Download

25.01.23

- add "logisticPackingunitId" and "logisticPackingunitNumber" under "product" for multipart items as optional fields - add "BUID", "bestBeforeDate", "batch", "imei", "serialNo" under "Data" as optional fields

Table 16. Version FINE to BRAIN

current version

previous version

coming version

4.3.6. Filter

Source topic is filtered on location IN ('LOEHNE', 'ANSBACH', 'SONNEFELD', 'HALDENSLEBEN', 'SUEDHAFEN', 'OHRDRUF', 'ERFURT', 'MOSINA', 'LANGENSELBOLD')


Last updated: Fri, 25 Apr 2025 01:45:16 UTC