fulfillmenttools
  • Welcome to the fulfillmenttools Platform Documentation
  • Getting Started
    • Setup your access to fulfillmenttools
    • Make your first API Calls
      • Add your first facility
      • Add your first listing
      • Place your first order
    • Core concepts & terminology
      • Order Flow
    • Postman Collection
    • Client SDKs
    • FAQ
  • Clients
    • Backoffice
      • First steps - Registration
      • Network view
        • Home
        • Orders
          • Unroutable orders
          • Pre-orders & Backorders
          • Order History
        • Inventory Management
          • Stock Overview
          • Channel Inventory
        • Facilities
        • Users
        • Returns
        • DOMS configuration
        • Settings
        • Analytics
          • DOMS Pages
          • Fulfillment Operations Pages
          • Inventory Pages
          • Downloads Page
      • Facility view
        • Home
        • Inbound
        • Tasks
        • Listings
        • Storage Locations
        • Facility
        • Users
    • Inventory app
      • Registration Inventory App
      • App sections
        • Inbound
        • Storage and relocation
    • Operations app
      • Android
        • Manual Registration
        • Android Enterprise Registration
        • Sections
          • Picking
            • Load Units (legacy)
            • Substitute items
            • Weighed or measured products
            • Scanning configuration
            • Picking Methods
              • Batch Picking
              • Multi Order Picking
          • Packing
          • Handover
          • Returns (legacy)
        • Printing
        • Notifications
      • Webapp
        • Packing
      • Overview features Android & Webapp
    • Technical requirements
      • Zebra Hardware Scanner Configuration
      • Honeywell Hardware Scanner Configuration
      • Supported barcodes for camera scanning
      • Requirements for fft applications
      • Zebra printer
    • Returns app
      • Handle unannounced returns
      • Handle announced returns
  • Products
    • Core Functionality
      • Process
        • External actions
      • Add and manage facilities
      • Notification Center
      • Checking on features
      • Tags and Stickers Concept
      • GDPR
      • Remote Configuration
      • Expiry
      • Target time
      • Time calculation for queries of future availabilities (LPS-calculation)
      • Interfacility Transfer
    • Carrier Management
      • Overview
        • Available Carriers
      • Concepts
        • Carrier Country Service Mapping (CCSM)
        • Non-delivery-days
        • Custom Carrier & Headless operation of Carriers
      • Providing needed data
    • Fulfillment Options
      • Fulfillability Check
      • Checkout Options
        • Available fulfillment options based on basket
        • Earliest possible delivery date
        • Available delivery dates within time-period
        • Availability for delivery date
      • Delivery Promise
    • Inventory Management
      • Configurations
      • Entities
        • Listing
        • Stock
          • Stock Properties
        • Storage Location
        • Zone
      • Global Inventory
        • Stock availability
        • Channel Inventory
        • Expected stock
        • Inbound Process
        • Reservations
        • Safety Stock
      • Inventory Control
        • Inventory Traits
        • Measurement Units
        • Outbound Inventory Tracking
        • Storage Location Recommendations
    • Order Fulfillment
      • Headless Order Fulfillment
      • Pick Jobs
      • Zone picking
      • Load Units
      • Custom Service
      • Handover Jobs
      • Add External Documents
      • Configurations
        • Picking Configuration
          • Picking methods
          • Short Pick Reasons
        • Packing Configuration
          • Packing Container Types
        • Print / Document Configuration
        • Tag Configurations
          • Parcel Tag Configuration
        • Handover Configuration
        • Operative Container Types
    • Order Routing
      • Entities
        • Ship-from-Store Orders
        • Click-and-Collect Orders
        • Locked Orders
        • Custom Services Orders
          • Simple Custom Service Order
          • Complex Custom Service Order
      • Fences
      • Ratings
      • Order Split
        • Order split - initial routing
        • Order split after shortpick
        • Item bundles
      • Reroute
      • Shape the routing with the DOMS Toolkit
      • Decision logs
    • Returns Management
      • Returns legacy
        • Available status
      • Returns 2.0
        • Return Reasons
        • Item Conditions
        • Integrating Returns with Events
    • Use Cases
      • Demand-Driven Replenishment
      • Expected stock in availability
      • Multi Order Picking
      • Interfacility transfer
      • Assigned Users
  • Connecting to fulfillmenttools
    • General Topics
      • Use external identity providers to authenticate to fulfillmenttools
        • Microsoft Entra ID / Azure Active Directory (AD)
      • Public Event Export
      • Available Regions
      • Backup Policies
    • GraphQL API
    • RESTful API
      • General Topics
        • API Release Life Cycle
        • Versioning
        • Authorization
        • Customization via Attributes
        • Update Guarantees
        • Rate Limits
        • Resource Timestamps
        • Pagination Interface
        • Localization
        • Custom Attributes
      • OpenAPI Specification
        • Swagger UI
        • OpenAPI 3.0 Spec
    • Eventing
      • Structure of an Event
      • Available Events
      • Tutorial
    • commercetools Connect
    • Integration Tutorial
      • Adding facilities
      • Adding listings to facilities
      • Configuring stocks
      • Carrier configuration
      • Placing orders
      • Checkout Options
      • Distributed Order Management System (Routing)
      • Local fulfillment configuration
  • Incident Reporting
    • How to report incidents in fulfillmenttools
    • How to define incident priorities
  • Release Notes
    • Release Summary – May 2024
    • Release Summary – June 2024
    • Release Summary – July 2024
    • Release Summary – August 2024
    • Release Summary – September 2024
    • Release Summary – October 2024
Powered by GitBook
On this page

Was this helpful?

  1. Products
  2. Order Fulfillment

Custom Service

Custom Service is an entity that contains all the information on an offered service. It must be bound to a facility and serves as a blueprint. A Service Job is the actual instance of a Custom Service.

PreviousLoad UnitsNextHandover Jobs

Last updated 5 months ago

Was this helpful?

This page is outdated. Please go to our new documentation under .

Custom Service

An example for a Custom Service would be an adjustment of a shirt by adding an initial embroidery on the collar and sleeve as it's shown in the following creation example. With the creation the custom service is available for use on tenant level. A custom service can also reference another custom service (such as when one service requires another to be done first), up to a maximum depth of 25 (A -> B -> C ... -> Y).

As Custom Services could be available (or not) in different facilities or could have differences in execution time due to different reasons, before being able to use Custom Services a Facility Custom Service Connection has to be established. This is being described in the part.

Orders that are split by routing decisions are currently not supported with Custom Service. We do not recommend activating Order Split when working with Custom Services and Service Jobs.

Creating a Custom Service

curl -sSL -X POST 'https://your.api.fulfillmenttools.com/api/customservices' \
  --header 'Authorization: Bearer <TOKEN>' \
  --header 'Content-Type: application/json' \
  --data-raw '{
    "status": "ENABLED",
    "nameLocalized": {
      "en_US": "Shirt initials embroidery",
      "de_DE": "Hemd Initialien Bestickung"
    },
    "descriptionLocalized": {
      "en_US": "The desired initials are embroidered on the collar and sleeve.",
      "de_DE": "Die gewünschten Initialien werden am Kragen und Ärmel eingestickt."
      
    },
    "tenantCustomServiceId": "CustomerServiceId",
    "executionTimeInMin": 60,
    "itemsReturnable": false,
    "itemsRequired": "MANDATORY",
    "additionalInformation": [
      {
        "nameLocalized": {
          "en_US": "Number of threads",
          "de_DE": "Anzahl der Fäden"
        },
        "descriptionLocalized": {
          "en_US": "This value indicates how many threads should be used for the embroidery",
          "de_DE": "Dieser Wert gibt an, wie viele Fäden bei der Stickerei genutzt werden sollen"
        },
        "valueType": "NUMBER",
        "isMandatory": true
      }, 
      {
        "nameLocalized": {
          "en_US": "Color",
          "de_DE": "Farbe"
        },
        "descriptionLocalized": {
          "en_US": "Color of the embroidery",
          "de_DE": "Die Farbe der Stickerei"
        },
        "valueType": "NUMBER",
        "isMandatory": true
      }
    ],
    "customAttributes": {
      "actionId": "b1eef2b0-1d5c-4819-bddc-b562beb14838"
    }
}'

Mandatory Fields

nameLocalized

This fields sets the name if the Custom Service with it's respective translations. As of October 2023, the following locales are supported: de_DE, en_US, pl_PL, ru_RU, nl_NL, fr_FR, it_IT, nb_NO. The type is a JSON and has to be used as shown in the example above. The respective translation will be used in accordance with the locale of the client requesting the object. If the client requests a locale that has no translation, the default locale of the tenant will be used. If no default locale is set up, the locale en_US is being used.

itemsRequired

The enum itemsRequired indicates whether lineItems are needed in order to execute this Custom Service. The line items are set in the Service Job. The enum can be: MANDATORY or NONE.

status

status is an enum that indicates whether this Custom Service is enabled or disabled by using the corresponding enum: ENABLED or DISABLED.

Optional Fields

descriptionLocalized

In order to add a description about the Custom Service the field descriptionLocalized can be used. Exactly as nameLocalized translations in accordance with the supported locales can be entered as a JSON in this field.

executionTimeInMin

This field is an integer that indicates how many minutes an execution of a custom service needs.

itemsReturnable

Whether an item can be returned after it has undergone this Custom Service is indicated by this boolean.

additionalInformation

This field is an array that contains objects of type additionalInformation. The following fields are part of additionalInformation:

  • nameLocalized (mandatory): name of the additional information in JSON format with it's respective translations

  • descriptionLocalized (optional): description of the additional information in JSON format with it's respective translations

  • valueType (mandatory): indicates whether the value of this additionalInformation is STRING, BOOLEAN, NUMBER, NOVALUE or INPUT_MULTILINE_STRING

  • isMandatory (optional): this boolean indicates if this Additional Information is mandatory or not

An example can be seen in the following box:

{
  "nameLocalized": {
    "en_US": "Color",
    "de_DE": "Farbe"
  },
  "descriptionLocalized": {
    "en_US": "Color of the embroidery",
    "de_DE": "Die Farbe der Stickerei"
  },
  "valueType": "NUMBER",
  "isMandatory": true
}

customAttributes

Updating a CustomService

curl -sSL -X PATCH 'https://your.api.fulfillmenttools.com/api/customservices' \
  --header 'Authorization: Bearer <TOKEN>' \
  --header 'Content-Type: application/json' \
  --data-raw '{
    "actions": [{
      "action": "ModifyCustomService",
      "status": "ENABLED",
      "nameLocalized":{
        "en_US": "Hemd Initialien Bestickung (italic)",
        "de_DE": "Shirt initials embroidery (kursiv)"
      },
      "descriptionLocalized":{,´
        "en_US": "The desired initials are embroidered on the collar and sleeve in an italic style..",
        "de_DE": "Die gewünschten Initialien werden am Kragen und Ärmel in kursivem Stil eingestickt."
      },
      "tenantCustomServiceId": "ChangedCustomerServiceId",
      "executionTimeInMin": 70,
      "itemsReturnable": false,
      "itemsRequired": "MANDATORY"
    }],
    "version": 42
}'

Update a Custom Service by using a PUT on the URL shown above. Enter the respective id of the Custom Service in {custom service id} . The actions array and version are both mandatory. Make sure to enter the correct version of the Custom Service you like to update. Add the desired changes to the object inside the actions array. The only field inside of the object that is mandatory is action, all other fields are optional, meaning you just need to enter those fields which you like to change.

Delete Additional Information of a Custom Service by using DELETE on the URL shown above. Replace {custom service id} with the respective ID.

Adding Additional Information to a Custom Service

After a custom service has been created, Additional Information can be added subsequently via the following API call

curl -sSL -X POST 'https://your.api.fulfillmenttools.com/api/customservices/{custom service id}/additionalInformation' \
  --header 'Authorization: Bearer <TOKEN>' \
  --header 'Content-Type: application/json' \
  --data-raw '{
      "nameLocalized": {
        "en_US": "Thread Material",
        "de_DE": "Faden Material"
      },
      "descriptionLocalized": {
        "en_US": "Material of the thread",
        "de_DE": "Material des Fadens"
      },
      "valueType": "STRING"
 }'

The fields are exactly the same as describe above in the additionalInformation paragraph Custom Service. The id of the Custom Service to which the Additional Information should be added, needs to be entered in the call at {custom service id} in the URL of the post call as shown above in the code example.

Updating Additional Information

curl -sSL -X PUT 'https://your.api.fulfillmenttools.com/api/customservices/{custom service id}/additionalInformation/{additional information id}' \
  --header 'Authorization: Bearer <TOKEN>' \
  --header 'Content-Type: application/json' \
  --data-raw '{
      "nameLocalized": {
        "en_US": "Thread Material",
        "de_DE": "Faden Material"
      },
      "descriptionLocalized": {
        "en_US": "Material of the thread",
        "de_DE": "Material des Fadens"
      },
      "valueType": "STRING"
 }'

Update an Additional Information of a Custom Service by using a PUT on the URL shown above. Enter the respective id of the Custom Service in {custom service id} and Additional Service id in {additional service} in the URL.

Deleting Additional Information

curl -sSL -X DELETE 'https://your.api.fulfillmenttools.com/api/customservices/{custom service id}/additionalInformation/{additional information id}' \
  --header 'Authorization: Bearer <TOKEN>' \
  --header 'Content-Type: application/json'

Delete an Additional Information of a Custom Service by using DELETE on the URL shown above. Replace {custom service id} and {additional information id} with the respective ids.

Facility Custom Service Connection

In order to use Custom Service, it must be bound to a facility. This is achieved by creating a Facility Custom Service Connection.

Creating a Facility Custom Service Connection

curl -sSL -X POST 'https://your.api.fulfillmenttools.com/api/{facilityId}/customservices/{custom service id}
  --header 'Authorization: Bearer <TOKEN>' \
  --header 'Content-Type: application/json' \
  --data-raw '{
    "executionTimeInMin": 80,
    "status": "ACTIVE"
}'

Create a Facility Custom Service Connection by using the call above. Replace {facilityId} with the id of the facility the custom service should be added to and {custom service id} with the id of the custom service you like to add to the facility.

Mandatory Fields

status: Indicates whether this custom service is activated for the given facility

Optional Fields

Updating a Facility Custom Service Connection

curl -sSL -X PATCH 'https://your.api.fulfillmenttools.com/api/{facilityId}/customservices/{custom service id}
  --header 'Authorization: Bearer <TOKEN>' \
  --header 'Content-Type: application/json' \
  --data-raw '{
    "executionTimeInMin": 80,
    "status": "ACTIVE"
    "version": 42
}'

Replace {facilityId} with the id of the facility the custom service should be added to and {custom service id} with the id of the custom service you like to add to the facility.

While the field version is mandatory, the other fields executionTimeInMin and status are optional and can be added as the desired update requires them to.

Deleting a Facility Custom Service Connection

curl -sSL -X DELETE 'https://your.api.fulfillmenttools.com/api/{facilityId}/customservices/{custom service id}
  --header 'Authorization: Bearer <TOKEN>' \
  --header 'Content-Type: application/json'

Delete an Additional Information of a Custom Service by using DELETE on the URL shown above. Replace {facilityId} and {custom service id} with the respective IDs.

Getting all Custom Services of a Given Facility

curl -sSL -X GET 'https://your.api.fulfillmenttools.com/api/{facilityId}/customservices/
  --header 'Authorization: Bearer <TOKEN>' \
  --header 'Content-Type: application/json'

Get all Facility Custom Service Connections of a give facility by using the url above. Replace {facilityId} with the corresponding id of the desired facility.

Service Jobs

Creating a Service Job

A service job can be created with the following call:

curl -sSL -X POST 'https://your.api.fulfillmenttools.com/api/servicejobs?customServiceRef={custom service id}
  --header 'Authorization: Bearer <TOKEN>' \
  --header 'Content-Type: application/json' \
  --data-raw '{
    "customServiceRef": "sad5622-gfd1-441v-132h-23refsfsass", 
    "processRef": "a28835b9-f81a-4f63-96a6-c7e612ebc2a3",
    "facilityRef": "8a5b283a-bcf9-4f63-132h-v93ca6ea011n3",
    "lineItems": [
      {
        "quantity": 15,
        "scannableCodes": [
          "0799439112766"
        ],
        "article": {
          "tenantArticleId": "100029-W",
          "title": "White Shirt",
          "imageUrl": "https://cdn11.bigcommerce.com/s-2fhihzl616/images/stencil/960w/products/6562/24857/Mens_White_Cotton_Shirt_MS236LS_4__24507.1645457383.jpg",
          "attributes": [
            {
              "category": "descriptive",
              "priority": 100,
              "key": "Collar Type",
              "value": "Button Down Collar"
            },
            {
              "category": "descriptive",
              "priority": 200,
              "key": "Color",
              "value": "White"
            },
            {
              "category": "descriptive",
              "priority": 300,
              "key": "Material",
              "value": "100% Organic Cotton"
            },
            {
              "category": "descriptive",
              "priority": 300,
              "key": "Size",
              "value": "M - 100"
            }
          ]
        }
      }
    ]
}'

Mandatory Fields

facilityRef

The id of the facility this Service Job should be linked to.

customServiceRef

The id of the Custom Service this Service Job references. It will the contain the following fields of the references Custom Service:

  • nameLocalized

  • itemsRequired

  • descriptionLocalized (if existent in referenced Custom Service)

  • executionTimeInMin (if existent in referenced Custom Service)

  • itemsReturnable (if existent in referenced Custom Service)

  • additionalInformation (if existent in referenced Custom Service)

  • customAttributes (if existent in referenced Custom Service)

Note: Subsequent changes to the referenced Custom Service will not affect already created Service Jobs.

targetTime

The time at which the Service Job is expected to be finished, e.g. 2024-04-03T09:45:51.525Z

Optional Fields

lineItems

The line items that will undergo the custom service

processRef

The id of the process this Service Job should be linked to. If no process id will be given a new process with a new process id will be created

operativeProcessRef

A reference to the operative process this service job belongs to.

shortId

A short identifier, e.g. SJ-13

tenantOrderId

The tenant order id of the order this service job is part of.

serviceJobLinkRef

Updating the status of a Service Job

The status of a Service Job can be changed by using the following API call

curl -sSL -X POST 'https://your.api.fulfillmenttools.com/api/servicejobs/{servicejobid}/actions
  --header 'Authorization: Bearer <TOKEN>' \
  --header 'Content-Type: application/json' \
  --data-raw '{
    "name": "StartServiceJob",
    "version": 3,
    "additionalInformation": [
      {
        "additionalInformationRef": "{additionalInfoRef}",
        "value": "value"
      }
    ]
}'

Mandatory fields

name

The status the Service Job should be changed to. The following enums are available: StartServiceJob, FinishServiceJob, CancelServiceJob, HoldServiceJob, OpenServiceJob, ObsoleteServiceJob

version

The current version of the Service Job

Optional fields

additionalInformation

The additionalInformation you want to add to the serviceJob when changing the status. This is an array an can contain multiple additionalInformation objects. This field cannot be passed when using the ObsoleteServiceJob action.

Linked Service Jobs

Service Job Links

A Linked Service Jobs consists of Service Job Links. A Service Job Link holds a reference to a Service Job and to previous Service Job Links. It also holds an array of following Service Job Links. The structure of the Service Job links within a Linked Service Jobs thus maps the sequence of related Service Jobs.

Dependencies between Service Job referenced in a Linked Service Jobs

Example: If a Service Job Link (referencing Service Job A) is in the nextServiceJobLinks array of another Service Job Link (referencing ServiceJob B), Service Job A, which is contained in nextServiceJobLinks, must be executed first before ServiceJob B can be started. This is ensured by the fact that the status of ServiceJob B is initially NOT_READY and only changes (automatically) to OPEN as soon as all ServiceJobs contained in the nextServiceJobLinks array have the status FINISHED, CANCELLED or OBSOLETE. At the same time a status change from NOT_READY to IN_PROGRESS, FINISHED, WAITING_FOR_INPUT is not possible.

Inherited Line Items

As mentioned before, a sequence for Service Jobs can be dictated by putting them into relation via a Linked Service Job. Line Items that undergo multiple Service Jobs in a sequence are inherited by being added to the array inheritedLineItems of the following Service Jobs.

Example: Imagine a custom tailored shirt that receives an embroidery and undergoes a quality check at the end. There are 3 Service Jobs (custom tailoring, embroidery and quality check) and 2 line items (shirt to be tailored, thread that is used for the embroidery) that are involved in this process. The first Service Job (tailoring) has 1 lineItem (shirt), the following Service Job (embroidery) has 1 line item (thread) and 1 inherited line item (shirt), the last Service Job (quality check) has no line item and 2 inherited line items (shirt, thread).

Adding a ServiceJobLink to a Linked Service Jobs

A serviceJobLink can either be added to the root level of a Linked Service Job or inside an existing serviceJobLink.

Adding a service job link to the root level:

curl -sSL -X POST 'https://your.api.fulfillmenttools.com/api/linkedservicejobs/{linkedServiceJobId}/servicejoblinks
  --header 'Authorization: Bearer <TOKEN>' \
  --header 'Content-Type: application/json' \
  --data-raw '{
    "serviceJobRef": "a28835b9-f81a-4f63-96a6-c7e612ebc2a3"
  }'

Adding a service job link below an existing service job link:

curl -sSL -X POST 'https://your.api.fulfillmenttools.com/api/linkedservicejobs/{linkedServiceJobId}/servicejoblinks/{serviceJobLinkId}
  --header 'Authorization: Bearer <TOKEN>' \
  --header 'Content-Type: application/json' \
  --data-raw '{
    "serviceJobRef": "a28835b9-f81a-4f63-96a6-c7e612ebc2a3"
  }'

The customAttributes field is a JSON object that carries information that might be relevant to the Custom Service. The form and content of this object is completely free, but its JSON serialized size is limited. Check out the section for more details.

executionTimeInMin: Indicates the time in minutes needed to fulfill this custom service at this facility. If no value is entered in this field, the value of the will be used.

While serves as a blue print, a service Job is the actual instance of a Custom Service. When a Service Job is created it will always be part of a . A new will be created when a Service Job is created or it will be referenced by an existing when a Service Job Link reference is provided upon Service Job creation.

While the following passages show how service jobs can be created via API, they can also be created automatically as an outcome by an decision analogous to .

The id of the Service Job Link this Service Job should be added to. If this id is provided a new Service Job Link will be created and added to the nextServiceJobLinks of the referenced Service Job Link. If no reference is provided a new (and ) will be created.

A Linked Service Jobs is a virtual construct that shows the sequence and dependencies between different .

A Linked Service Jobs is automatically created when a is created. It is not possible to create a Linked Service Jobs object manually. However, it is possible to add Service Job Links to a Linked Service Job and thus customize the sequence of related ServiceJobs.

As a Linked Service Job maps the sequence of , it also creates dependencies between them. The order of the is determined by embedding in by adding them to the nextServiceJobLinks array.

Custom Attributes
Order Routing
Pick Jobs
tenant-wide Custom Service
Custom Service
Linked Service Jobs
Linked Service Jobs
Linked Service Jobs
Linked Service Job
Service Job Link
Service Jobs
Service Job
Service Jobs
Service Jobs
Service Job Links
ServiceJobLinks
https://docs.fulfillmenttools.com/documentation
Facility Custom Service Connection

Delete a custom service

delete

Path parameters
customServiceIdstringRequired

ID of custom service

additionalInformationIdstringRequired

ID of additional information you want to delete

Responses
200
The custom service was successfully updated.
application/json
201
The custom service was successfully created.
application/json
400
Invalid input. See response for details
application/json
401
Your user is not allowed to operate against this API instance
application/json
403
Your user, although recognized, is not authorized to use this endpoint
application/json
delete
DELETE /api/customservices/{customServiceId}/additionalinformation/{additionalInformationId} HTTP/1.1
Host: 
Accept: */*
{
  "id": "text",
  "status": "ENABLED",
  "name": "text",
  "description": "text",
  "additionalInformation": [
    {
      "nameLocalized": {
        "de_DE": "Wert",
        "en_US": "Value",
        "ru_RU": "значение"
      },
      "descriptionLocalized": {
        "de_DE": "Wert",
        "en_US": "Value",
        "ru_RU": "значение"
      },
      "valueType": "STRING",
      "isMandatory": true,
      "tenantAdditionalInformationId": "AddInfoABC123"
    }
  ],
  "created": "2020-02-03T08:45:51.525Z",
  "lastModified": "2020-02-03T09:45:51.525Z",
  "version": 42,
  "tenantCustomServiceId": "text",
  "nameLocalized": {
    "de_DE": "Wert",
    "en_US": "Value",
    "ru_RU": "значение"
  },
  "descriptionLocalized": {
    "de_DE": "Wert",
    "en_US": "Value",
    "ru_RU": "значение"
  },
  "executionTimeInMin": 120,
  "itemsReturnable": true,
  "itemsRequired": "MANDATORY",
  "customAttributes": {}
}

Delete a facility custom service connection

delete

Path parameters
facilityIdstringRequired

ID of facility

customServiceIdstringRequired

ID of the custom service

Responses
200
The custom service connection was successfully deleted.
400
Invalid input. See response for details
application/json
401
Your user is not allowed to operate against this API instance
application/json
403
Your user, although recognized, is not authorized to use this endpoint
application/json
delete
DELETE /api/facilities/{facilityId}/customservices/{customServiceId} HTTP/1.1
Host: 
Accept: */*

No content

Get requested Custom service connection for a facility

get

Path parameters
facilityIdstringRequired

ID of facility

Query parameters
startAfterIdstringOptional

all entities after given Id

sizeintegerOptional

number of entities to show

Default: 25
Responses
200
Custom service connections could be found in response body.
application/json
401
Your user is not allowed to operate against this API instance
application/json
403
Your user, although recognized, is not authorized to use this endpoint
application/json
404
Entity not found
application/json
get
GET /api/facilities/{facilityId}/customservices HTTP/1.1
Host: 
Accept: */*
{
  "facilityCustomServiceConnections": [
    {
      "created": "2020-02-03T08:45:51.525Z",
      "lastModified": "2020-02-03T09:45:51.525Z",
      "version": 42
    }
  ],
  "total": 42
}
  • Custom Service
  • Creating a Custom Service
  • POSTCreate a custom service
  • Updating a CustomService
  • PATCHPatches a custom service with the given ID
  • Adding Additional Information to a Custom Service
  • POSTCreate a custom service additional information
  • Updating Additional Information
  • PUTUpdate a custom service additional information
  • Deleting Additional Information
  • DELETEDelete a custom service
  • Facility Custom Service Connection
  • Creating a Facility Custom Service Connection
  • POSTCreate a facility custom service connection
  • Updating a Facility Custom Service Connection
  • PATCHUpdate a facility custom service connection
  • Deleting a Facility Custom Service Connection
  • DELETEDelete a facility custom service connection
  • Getting all Custom Services of a Given Facility
  • GETGet requested Custom service connection for a facility
  • Service Jobs
  • Creating a Service Job
  • POSTCreate a service job
  • Updating the status of a Service Job
  • POSTUpdate a service job
  • Linked Service Jobs
  • POSTAdd a ServiceJobLink to an LinkedServiceJobs on root level
  • POSTAdd a ServiceJobLink to an ServiceJobLInk inside the LinkedServiceJobs

Create a custom service

post

Body
tenantCustomServiceIdstringOptional
statusstring · enumRequired

Deprecated values: ENABLED and DISABLED, use INACTIVE and ACTIVE instead

Possible values:
executionTimeInMinintegerOptionalExample: 120
itemsReturnablebooleanOptional
itemsRequiredstring · enumRequiredPossible values:
customAttributesobject | nullableOptional

Attributes that can be added to custom service. These attributes cannot be used within fulfillment processes, but it could be useful to have the information carried here.

Responses
200
The custom service was successfully updated.
application/json
201
The custom service was successfully created.
application/json
400
Invalid input. See response for details
application/json
401
Your user is not allowed to operate against this API instance
application/json
403
Your user, although recognized, is not authorized to use this endpoint
application/json
post
POST /api/customservices HTTP/1.1
Host: 
Content-Type: application/json
Accept: */*
Content-Length: 583

{
  "tenantCustomServiceId": "text",
  "status": "ENABLED",
  "nameLocalized": {
    "de_DE": "Wert",
    "en_US": "Value",
    "ru_RU": "значение"
  },
  "descriptionLocalized": {
    "de_DE": "Wert",
    "en_US": "Value",
    "ru_RU": "значение"
  },
  "executionTimeInMin": 120,
  "itemsReturnable": true,
  "itemsRequired": "MANDATORY",
  "additionalInformation": [
    {
      "nameLocalized": {
        "de_DE": "Wert",
        "en_US": "Value",
        "ru_RU": "значение"
      },
      "descriptionLocalized": {
        "de_DE": "Wert",
        "en_US": "Value",
        "ru_RU": "значение"
      },
      "valueType": "STRING",
      "isMandatory": true,
      "tenantAdditionalInformationId": "AddInfoABC123"
    }
  ],
  "customAttributes": {}
}
{
  "id": "text",
  "status": "ENABLED",
  "name": "text",
  "description": "text",
  "additionalInformation": [
    {
      "nameLocalized": {
        "de_DE": "Wert",
        "en_US": "Value",
        "ru_RU": "значение"
      },
      "descriptionLocalized": {
        "de_DE": "Wert",
        "en_US": "Value",
        "ru_RU": "значение"
      },
      "valueType": "STRING",
      "isMandatory": true,
      "tenantAdditionalInformationId": "AddInfoABC123"
    }
  ],
  "created": "2020-02-03T08:45:51.525Z",
  "lastModified": "2020-02-03T09:45:51.525Z",
  "version": 42,
  "tenantCustomServiceId": "text",
  "nameLocalized": {
    "de_DE": "Wert",
    "en_US": "Value",
    "ru_RU": "значение"
  },
  "descriptionLocalized": {
    "de_DE": "Wert",
    "en_US": "Value",
    "ru_RU": "значение"
  },
  "executionTimeInMin": 120,
  "itemsReturnable": true,
  "itemsRequired": "MANDATORY",
  "customAttributes": {}
}

Patches a custom service with the given ID

patch

Path parameters
customServiceIdstringRequired

ID of custom service you want to patch

Body
versioninteger · int64Required

The version of the document to be used in optimistic locking mechanisms.

Example: 42
Responses
200
custom service was found & patch-set has been applied. The patched custom service is in the body.
application/json
401
Your user is not allowed to operate against this API instance
application/json
403
Your user, although recognized, is not authorized to use this endpoint
application/json
404
custom service not found
application/json
409
custom service version conflict
application/json
patch
PATCH /api/customservices/{customServiceId} HTTP/1.1
Host: 
Content-Type: application/json
Accept: */*
Content-Length: 344

{
  "actions": [
    {
      "action": "ModifyCustomService",
      "tenantCustomServiceId": "text",
      "status": "ENABLED",
      "nameLocalized": {
        "de_DE": "Wert",
        "en_US": "Value",
        "ru_RU": "значение"
      },
      "descriptionLocalized": {
        "de_DE": "Wert",
        "en_US": "Value",
        "ru_RU": "значение"
      },
      "executionTimeInMin": 100,
      "itemsReturnable": true,
      "itemsRequired": "MANDATORY"
    }
  ],
  "version": 42
}
{
  "id": "text",
  "status": "ENABLED",
  "name": "text",
  "description": "text",
  "additionalInformation": [
    {
      "nameLocalized": {
        "de_DE": "Wert",
        "en_US": "Value",
        "ru_RU": "значение"
      },
      "descriptionLocalized": {
        "de_DE": "Wert",
        "en_US": "Value",
        "ru_RU": "значение"
      },
      "valueType": "STRING",
      "isMandatory": true,
      "tenantAdditionalInformationId": "AddInfoABC123"
    }
  ],
  "created": "2020-02-03T08:45:51.525Z",
  "lastModified": "2020-02-03T09:45:51.525Z",
  "version": 42,
  "tenantCustomServiceId": "text",
  "nameLocalized": {
    "de_DE": "Wert",
    "en_US": "Value",
    "ru_RU": "значение"
  },
  "descriptionLocalized": {
    "de_DE": "Wert",
    "en_US": "Value",
    "ru_RU": "значение"
  },
  "executionTimeInMin": 120,
  "itemsReturnable": true,
  "itemsRequired": "MANDATORY",
  "customAttributes": {}
}

Create a custom service additional information

post

Path parameters
customServiceIdstringRequired

ID of custom service you want to create service job for

Body
valueTypestring · enumRequiredPossible values:
isMandatorybooleanOptional
tenantAdditionalInformationIdstring · min: 1Optional

Id to identifiy the additional information on an external system. Must be unique per CustomService.

Example: AddInfoABC123
Responses
200
The custom service was successfully updated.
application/json
201
The custom service was successfully created.
application/json
400
Invalid input. See response for details
application/json
401
Your user is not allowed to operate against this API instance
application/json
403
Your user, although recognized, is not authorized to use this endpoint
application/json
post
POST /api/customservices/{customServiceId}/additionalinformation HTTP/1.1
Host: 
Content-Type: application/json
Accept: */*
Content-Length: 248

{
  "nameLocalized": {
    "de_DE": "Wert",
    "en_US": "Value",
    "ru_RU": "значение"
  },
  "descriptionLocalized": {
    "de_DE": "Wert",
    "en_US": "Value",
    "ru_RU": "значение"
  },
  "valueType": "STRING",
  "isMandatory": true,
  "tenantAdditionalInformationId": "AddInfoABC123"
}
{
  "id": "text",
  "status": "ENABLED",
  "name": "text",
  "description": "text",
  "additionalInformation": [
    {
      "nameLocalized": {
        "de_DE": "Wert",
        "en_US": "Value",
        "ru_RU": "значение"
      },
      "descriptionLocalized": {
        "de_DE": "Wert",
        "en_US": "Value",
        "ru_RU": "значение"
      },
      "valueType": "STRING",
      "isMandatory": true,
      "tenantAdditionalInformationId": "AddInfoABC123"
    }
  ],
  "created": "2020-02-03T08:45:51.525Z",
  "lastModified": "2020-02-03T09:45:51.525Z",
  "version": 42,
  "tenantCustomServiceId": "text",
  "nameLocalized": {
    "de_DE": "Wert",
    "en_US": "Value",
    "ru_RU": "значение"
  },
  "descriptionLocalized": {
    "de_DE": "Wert",
    "en_US": "Value",
    "ru_RU": "значение"
  },
  "executionTimeInMin": 120,
  "itemsReturnable": true,
  "itemsRequired": "MANDATORY",
  "customAttributes": {}
}

Update a custom service additional information

put

Path parameters
customServiceIdstringRequired

ID of custom service

additionalInformationIdstringRequired

ID of additional information you want to put

Body
valueTypestring · enumRequiredPossible values:
isMandatorybooleanOptional
tenantAdditionalInformationIdstring · min: 1Optional

Id to identifiy the additional information on an external system. Must be unique per CustomService.

Example: AddInfoABC123
Responses
200
The custom service was successfully updated.
application/json
201
The custom service was successfully created.
application/json
400
Invalid input. See response for details
application/json
401
Your user is not allowed to operate against this API instance
application/json
403
Your user, although recognized, is not authorized to use this endpoint
application/json
put
PUT /api/customservices/{customServiceId}/additionalinformation/{additionalInformationId} HTTP/1.1
Host: 
Content-Type: application/json
Accept: */*
Content-Length: 248

{
  "nameLocalized": {
    "de_DE": "Wert",
    "en_US": "Value",
    "ru_RU": "значение"
  },
  "descriptionLocalized": {
    "de_DE": "Wert",
    "en_US": "Value",
    "ru_RU": "значение"
  },
  "valueType": "STRING",
  "isMandatory": true,
  "tenantAdditionalInformationId": "AddInfoABC123"
}
{
  "id": "text",
  "status": "ENABLED",
  "name": "text",
  "description": "text",
  "additionalInformation": [
    {
      "nameLocalized": {
        "de_DE": "Wert",
        "en_US": "Value",
        "ru_RU": "значение"
      },
      "descriptionLocalized": {
        "de_DE": "Wert",
        "en_US": "Value",
        "ru_RU": "значение"
      },
      "valueType": "STRING",
      "isMandatory": true,
      "tenantAdditionalInformationId": "AddInfoABC123"
    }
  ],
  "created": "2020-02-03T08:45:51.525Z",
  "lastModified": "2020-02-03T09:45:51.525Z",
  "version": 42,
  "tenantCustomServiceId": "text",
  "nameLocalized": {
    "de_DE": "Wert",
    "en_US": "Value",
    "ru_RU": "значение"
  },
  "descriptionLocalized": {
    "de_DE": "Wert",
    "en_US": "Value",
    "ru_RU": "значение"
  },
  "executionTimeInMin": 120,
  "itemsReturnable": true,
  "itemsRequired": "MANDATORY",
  "customAttributes": {}
}

Create a facility custom service connection

post

Path parameters
facilityIdstringRequired

ID of facility

customServiceIdstringRequired

ID of the custom service

Body
executionTimeInMinintegerOptional

Time in minutes the custom service takes to be executed

Example: 100
statusstring · enumRequiredPossible values:
Responses
201
The custom service connection was successfully created.
application/json
400
Invalid input. See response for details
application/json
401
Your user is not allowed to operate against this API instance
application/json
403
Your user, although recognized, is not authorized to use this endpoint
application/json
post
POST /api/facilities/{facilityId}/customservices/{customServiceId} HTTP/1.1
Host: 
Content-Type: application/json
Accept: */*
Content-Length: 44

{
  "executionTimeInMin": 100,
  "status": "ACTIVE"
}
{
  "id": "text",
  "status": "ACTIVE",
  "facilityRef": "text",
  "customServiceRef": "text",
  "executionTimeInMin": 1,
  "created": "2020-02-03T08:45:51.525Z",
  "lastModified": "2020-02-03T09:45:51.525Z",
  "version": 42
}

Update a facility custom service connection

patch

Path parameters
facilityIdstringRequired

ID of facility

customServiceIdstringRequired

ID of the custom service

Body
statusstring · enumOptionalPossible values:
executionTimeInMinintegerOptional

Time in minutes the custom service takes to be executed

Example: 100
versioninteger · int64Required

Version of the documentSet you want to update a document of

Example: 42
Responses
200
The custom service connection was successfully created.
application/json
400
Invalid input. See response for details
application/json
401
Your user is not allowed to operate against this API instance
application/json
403
Your user, although recognized, is not authorized to use this endpoint
application/json
patch
PATCH /api/facilities/{facilityId}/customservices/{customServiceId} HTTP/1.1
Host: 
Content-Type: application/json
Accept: */*
Content-Length: 57

{
  "status": "ACTIVE",
  "executionTimeInMin": 100,
  "version": 42
}
{
  "id": "text",
  "status": "ACTIVE",
  "facilityRef": "text",
  "customServiceRef": "text",
  "executionTimeInMin": 1,
  "created": "2020-02-03T08:45:51.525Z",
  "lastModified": "2020-02-03T09:45:51.525Z",
  "version": 42
}

Create a service job

post

Body
operativeProcessRefstringOptional
customServiceRefstringOptional

ID of the Custom Service, the Service Job should reference. Either this and/or the tenantCustomServiceId must passed.

Example: 41d43211-g5a1-gg22-a716-ba095e30ds1d
tenantCustomServiceIdstringOptional

Tenant ID of the Custom Service, the Service Job should reference. Either this and/or the customServiceRef must passed.

Example: 41d43211-g5a1-gg22-a716-ba095e30ds1d
processRefstringOptional

ID of the Process, the Service Job belongs to.

Example: 550e8400-e29b-41d4-a716-446655440000
facilityRefstringRequired

ID of the Facility, the Service Job is executed in.

Example: ba095e30-879f-11ee-b9d1-0242ac120002
shortIdstringOptionalExample: KD-12-1
customAttributesobjectOptional

Attributes that can be added to the service job. These attributes cannot be used within fulfillment processes, but it could be useful to have the information carried here.

targetTimestring · date-timeRequired

At which time the service job is expected to be finished.

Example: 2020-02-03T09:45:51.525Z
tenantOrderIdstringOptional

ID of the tenant order, the linked service jobs are part of

Example: ocff-order-100
serviceJobLinkRefstringOptional

ID of the Service Job Link, the Service Job should reference.

Example: 41d43211-g5a1-gg22-a716-ba095e30ds1d
Responses
201
The service job was successfully created.
application/json
400
Invalid input. See response for details
application/json
401
Your user is not allowed to operate against this API instance
application/json
403
Your user, although recognized, is not authorized to use this endpoint
application/json
post
POST /api/servicejobs HTTP/1.1
Host: 
Content-Type: application/json
Accept: */*
Content-Length: 937

{
  "operativeProcessRef": "text",
  "customServiceRef": "41d43211-g5a1-gg22-a716-ba095e30ds1d",
  "tenantCustomServiceId": "41d43211-g5a1-gg22-a716-ba095e30ds1d",
  "processRef": "550e8400-e29b-41d4-a716-446655440000",
  "facilityRef": "ba095e30-879f-11ee-b9d1-0242ac120002",
  "shortId": "KD-12-1",
  "lineItems": [
    {
      "article": {},
      "customAttributes": {},
      "globalLineItemId": "text",
      "quantity": 1,
      "recordableAttributes": [
        {
          "group": "general",
          "keyLocalized": {
            "de_DE": "Wert",
            "en_US": "Value",
            "ru_RU": "значение"
          },
          "recordingRule": "MANDATORY",
          "value": "Germany"
        }
      ],
      "scannableCodes": [
        "text"
      ]
    }
  ],
  "additionalInformation": [
    {
      "additionalInformationRef": "41d43211-g5a1-gg22-a716-ba095e30ds1d",
      "tenantAdditionalInformationRef": "41d43211-g5a1-gg22-a716-ba095e30ds1d",
      "value": "some value"
    }
  ],
  "customAttributes": {},
  "targetTime": "2020-02-03T09:45:51.525Z",
  "tenantOrderId": "ocff-order-100",
  "serviceJobLinkRef": "41d43211-g5a1-gg22-a716-ba095e30ds1d",
  "assignedUsers": [
    {
      "username": "text"
    }
  ]
}
{
  "editor": {
    "userId": "text",
    "username": "text"
  },
  "operativeProcessRef": "text",
  "id": "text",
  "name": "text",
  "description": "text",
  "lineItems": [
    {
      "article": {},
      "customAttributes": {},
      "globalLineItemId": "text",
      "id": "17ebfdfb-e1b4-4913-9962-3aef2b49f16f",
      "quantity": 1,
      "recordableAttributes": [
        {
          "group": "general",
          "id": "17ebfdfb-e1b4-4913-9962-3aef2b49f16f",
          "key": "country of origin",
          "keyLocalized": {
            "de_DE": "Wert",
            "en_US": "Value",
            "ru_RU": "значение"
          },
          "originId": "17ebfdfb-e1b4-4913-9962-3aef2b49f16f",
          "recordingRule": "MANDATORY",
          "value": "Germany"
        }
      ],
      "scannableCodes": [
        "text"
      ]
    }
  ],
  "processRef": "text",
  "facilityRef": "text",
  "status": "OPEN",
  "statusInformation": {
    "cancelReason": {
      "reasonLocalized": {
        "de_DE": "Wert",
        "en_US": "Value",
        "ru_RU": "значение"
      },
      "reason": "Broken Item"
    }
  },
  "nameLocalized": {
    "de_DE": "Wert",
    "en_US": "Value",
    "ru_RU": "значение"
  },
  "descriptionLocalized": {
    "de_DE": "Wert",
    "en_US": "Value",
    "ru_RU": "значение"
  },
  "executionTimeInMin": 1,
  "itemsReturnable": true,
  "itemsRequired": "MANDATORY",
  "shortId": "KD-12-1",
  "additionalInformation": [
    {
      "id": "text",
      "name": "text",
      "description": "text",
      "nameLocalized": {
        "de_DE": "Wert",
        "en_US": "Value",
        "ru_RU": "значение"
      },
      "descriptionLocalized": {
        "de_DE": "Wert",
        "en_US": "Value",
        "ru_RU": "значение"
      },
      "valueType": "STRING",
      "isMandatory": true,
      "tenantAdditionalInformationId": "AddInfoABC123"
    }
  ],
  "customAttributes": {},
  "targetTime": "2020-02-03T09:45:51.525Z",
  "customServiceRef": "41d43211-g5a1-gg22-a716-ba095e30ds1d",
  "tenantCustomServiceId": "41d43211-g5a1-gg22-a716-ba095e30ds1d",
  "linkedServiceJobsRef": "41d43211-g5a1-gg22-a716-ba095e30ds1d",
  "tenantOrderId": "ocff-order-100",
  "inheritedLineItems": [
    {
      "article": {},
      "customAttributes": {},
      "globalLineItemId": "text",
      "id": "17ebfdfb-e1b4-4913-9962-3aef2b49f16f",
      "quantity": 1,
      "recordableAttributes": [
        {
          "group": "general",
          "id": "17ebfdfb-e1b4-4913-9962-3aef2b49f16f",
          "key": "country of origin",
          "keyLocalized": {
            "de_DE": "Wert",
            "en_US": "Value",
            "ru_RU": "значение"
          },
          "originId": "17ebfdfb-e1b4-4913-9962-3aef2b49f16f",
          "recordingRule": "MANDATORY",
          "value": "Germany"
        }
      ],
      "scannableCodes": [
        "text"
      ]
    }
  ],
  "assignedUsers": [
    {
      "userId": "text",
      "username": "text"
    }
  ],
  "created": "2020-02-03T08:45:51.525Z",
  "lastModified": "2020-02-03T09:45:51.525Z",
  "version": 42
}

Update a service job

post

Path parameters
serviceJobIdstringRequired

ID of service job you want to update

Body
any ofOptional
or
or
or
or
or
or
or
or
Responses
200
The service job was successfully updated.
application/json
400
Invalid input. See response for details
application/json
401
Your user is not allowed to operate against this API instance
application/json
403
Your user, although recognized, is not authorized to use this endpoint
application/json
post
POST /api/servicejobs/{serviceJobId}/actions HTTP/1.1
Host: 
Content-Type: application/json
Accept: */*
Content-Length: 225

{
  "name": "StartServiceJob",
  "version": 1,
  "additionalInformation": [
    {
      "additionalInformationRef": "41d43211-g5a1-gg22-a716-ba095e30ds1d",
      "tenantAdditionalInformationRef": "41d43211-g5a1-gg22-a716-ba095e30ds1d",
      "value": "some value"
    }
  ]
}
{
  "editor": {
    "userId": "text",
    "username": "text"
  },
  "operativeProcessRef": "text",
  "id": "text",
  "name": "text",
  "description": "text",
  "lineItems": [
    {
      "article": {},
      "customAttributes": {},
      "globalLineItemId": "text",
      "id": "17ebfdfb-e1b4-4913-9962-3aef2b49f16f",
      "quantity": 1,
      "recordableAttributes": [
        {
          "group": "general",
          "id": "17ebfdfb-e1b4-4913-9962-3aef2b49f16f",
          "key": "country of origin",
          "keyLocalized": {
            "de_DE": "Wert",
            "en_US": "Value",
            "ru_RU": "значение"
          },
          "originId": "17ebfdfb-e1b4-4913-9962-3aef2b49f16f",
          "recordingRule": "MANDATORY",
          "value": "Germany"
        }
      ],
      "scannableCodes": [
        "text"
      ]
    }
  ],
  "processRef": "text",
  "facilityRef": "text",
  "status": "OPEN",
  "statusInformation": {
    "cancelReason": {
      "reasonLocalized": {
        "de_DE": "Wert",
        "en_US": "Value",
        "ru_RU": "значение"
      },
      "reason": "Broken Item"
    }
  },
  "nameLocalized": {
    "de_DE": "Wert",
    "en_US": "Value",
    "ru_RU": "значение"
  },
  "descriptionLocalized": {
    "de_DE": "Wert",
    "en_US": "Value",
    "ru_RU": "значение"
  },
  "executionTimeInMin": 1,
  "itemsReturnable": true,
  "itemsRequired": "MANDATORY",
  "shortId": "KD-12-1",
  "additionalInformation": [
    {
      "id": "text",
      "name": "text",
      "description": "text",
      "nameLocalized": {
        "de_DE": "Wert",
        "en_US": "Value",
        "ru_RU": "значение"
      },
      "descriptionLocalized": {
        "de_DE": "Wert",
        "en_US": "Value",
        "ru_RU": "значение"
      },
      "valueType": "STRING",
      "isMandatory": true,
      "tenantAdditionalInformationId": "AddInfoABC123"
    }
  ],
  "customAttributes": {},
  "targetTime": "2020-02-03T09:45:51.525Z",
  "customServiceRef": "41d43211-g5a1-gg22-a716-ba095e30ds1d",
  "tenantCustomServiceId": "41d43211-g5a1-gg22-a716-ba095e30ds1d",
  "linkedServiceJobsRef": "41d43211-g5a1-gg22-a716-ba095e30ds1d",
  "tenantOrderId": "ocff-order-100",
  "inheritedLineItems": [
    {
      "article": {},
      "customAttributes": {},
      "globalLineItemId": "text",
      "id": "17ebfdfb-e1b4-4913-9962-3aef2b49f16f",
      "quantity": 1,
      "recordableAttributes": [
        {
          "group": "general",
          "id": "17ebfdfb-e1b4-4913-9962-3aef2b49f16f",
          "key": "country of origin",
          "keyLocalized": {
            "de_DE": "Wert",
            "en_US": "Value",
            "ru_RU": "значение"
          },
          "originId": "17ebfdfb-e1b4-4913-9962-3aef2b49f16f",
          "recordingRule": "MANDATORY",
          "value": "Germany"
        }
      ],
      "scannableCodes": [
        "text"
      ]
    }
  ],
  "assignedUsers": [
    {
      "userId": "text",
      "username": "text"
    }
  ],
  "created": "2020-02-03T08:45:51.525Z",
  "lastModified": "2020-02-03T09:45:51.525Z",
  "version": 42
}

Add a ServiceJobLink to an LinkedServiceJobs on root level

post

Path parameters
linkedServiceJobsIdstringRequired

ID of LinkedServiceJobs you want to alter

Body
serviceJobRefstringRequiredExample: 0ed803c2-fa20-48d9-9c1b-0d243937a9ad
Responses
201
The ServiceJobLink was successfully added to the LinkedServiceJobs.
application/json
400
Invalid input. See response for details
application/json
401
Your user is not allowed to operate against this API instance
application/json
403
Your user, although recognized, is not authorized to use this endpoint
application/json
post
POST /api/linkedservicejobs/{linkedServiceJobsId}/servicejoblinks HTTP/1.1
Host: 
Content-Type: application/json
Accept: */*
Content-Length: 56

{
  "serviceJobRef": "0ed803c2-fa20-48d9-9c1b-0d243937a9ad"
}
{
  "id": "9a14e183-ff86-4b6e-a2dc-eb4c7e312ab1",
  "processRef": "9a14e183-ff86-4b6e-a2dc-eb4c7e312ab1",
  "facilityRef": "cdb1dfc4-8361-4ba9-b3c2-33a6f2fc8d05",
  "targetTime": "2025-05-12T09:43:52.641Z",
  "includedServiceJobLinkIds": [
    "cdb1dfc4-8361-4ba9-b3c2-33a6f2fc8d05"
  ],
  "includedServiceJobRefs": [
    "cdb1dfc4-8361-4ba9-b3c2-33a6f2fc8d05"
  ],
  "status": "OPEN",
  "serviceJobLinks": [],
  "operativeProcessRef": "text",
  "fullIdentifier": "240429_lorem-42",
  "usersModificationHistory": [
    {
      "userId": "text",
      "username": "text",
      "modificationDate": "2025-05-12T09:43:52.641Z"
    }
  ],
  "created": "2020-02-03T08:45:51.525Z",
  "lastModified": "2020-02-03T09:45:51.525Z",
  "version": 42
}

Add a ServiceJobLink to an ServiceJobLInk inside the LinkedServiceJobs

post

Path parameters
linkedServiceJobsIdstringRequired

ID of LinkedServiceJobs you want to alter

serviceJobLinkIdstringRequired

ID of ServiceJobLink you want to add the new ServiceJobLink underneath

Body
serviceJobRefstringRequiredExample: 0ed803c2-fa20-48d9-9c1b-0d243937a9ad
Responses
201
The ServiceJobLink was successfully added nested inside the LinkedServiceJobs.
application/json
400
Invalid input. See response for details
application/json
401
Your user is not allowed to operate against this API instance
application/json
403
Your user, although recognized, is not authorized to use this endpoint
application/json
post
POST /api/linkedservicejobs/{linkedServiceJobsId}/servicejoblinks/{serviceJobLinkId} HTTP/1.1
Host: 
Content-Type: application/json
Accept: */*
Content-Length: 56

{
  "serviceJobRef": "0ed803c2-fa20-48d9-9c1b-0d243937a9ad"
}
{
  "id": "9a14e183-ff86-4b6e-a2dc-eb4c7e312ab1",
  "processRef": "9a14e183-ff86-4b6e-a2dc-eb4c7e312ab1",
  "facilityRef": "cdb1dfc4-8361-4ba9-b3c2-33a6f2fc8d05",
  "targetTime": "2025-05-12T09:43:52.641Z",
  "includedServiceJobLinkIds": [
    "cdb1dfc4-8361-4ba9-b3c2-33a6f2fc8d05"
  ],
  "includedServiceJobRefs": [
    "cdb1dfc4-8361-4ba9-b3c2-33a6f2fc8d05"
  ],
  "status": "OPEN",
  "serviceJobLinks": [],
  "operativeProcessRef": "text",
  "fullIdentifier": "240429_lorem-42",
  "usersModificationHistory": [
    {
      "userId": "text",
      "username": "text",
      "modificationDate": "2025-05-12T09:43:52.641Z"
    }
  ],
  "created": "2020-02-03T08:45:51.525Z",
  "lastModified": "2020-02-03T09:45:51.525Z",
  "version": 42
}