NextGen APIs

POST /integration/assets/r1/notifications

Http Verb

POST

Url

/integration/assets/r1/notifications

Permissions required

Core Additional Parameters: Edit (fsm.core.additionalparameter.edit)

Organizational Structure Entities: View (fsm.core.structure.view)

Organizational Structure Entities: Edit (fsm.core.structure.edit)

Structure: View (fsm.organizationalstructures.structure.view)

Structure: Edit (fsm.organizationalstructures.structure.edit)

Technical Object: View (fsm.core.technicalobject.facility.view)

Technical Object: Edit (fsm.core.technicalobject.facility.edit)

WorkOrder: View (fsm.core.workorder.view)

WorkOrder: Edit (fsm.core.workorder.edit)

Notification: Edit (fsm.notification.edit)

Last Modified Version

r1

Tech Tags

PAGINATION ORDERING-SERVER-SIDE

Available Async

No

BPMN Diagram (TBD)


Business Logic

This Integration API creates or updates a Notification for Asset.

One of code or externalCode must be present. If code is provided it has the precedence among the other fields.

One of statusCode or externalSystemStatusCode must be present. If statusCode is provided it has the precedence among the other fields.

One of (workOrderCode or workOrderExternalCode) or neither must be present. If workOrderCode is provided, it has the precedence among the other field.

If the input specifies these objects:

  • Failure Mode Catalog → Then system verifies that the triplet failureModeType, failureModeGroup, failureModeCode is provided.

  • Failure Effect Catalog → Then system verifies that the triplet failureEffectType, failureEffectGroup, failureEffectCode is provided.

  • Asset Catalog → Then system verifies that the triplet assetCatalogType, assetCatalogGroup, assetCatalogCode is provided.

  • Breakdown Catalog → Then system verifies that the triplet breakdownCatalogType, breakdownCatalogGroup, breakdownCatalogCode is provided.

  • Fault Catalog → Then system verifies that the triplet faultCatalogType, faultCatalogGroup, faultCatalogCode is provided.

  • Activity Catalog → Then system verifies that the triplet activityCatalogType, activityCatalogGroup, activityCatalogCode is provided.

System verifies Permission Required and starts the elaboration that is organized in steps.

STEP 1 - External System Validation

System takes Input fields and checks their existence in internal configuration.

API Verb: GET

Resource: External Systems

Input: externalSystemCode, active=true

Output: externalSystemId

If System can obtain the Output fields → continue to next step.

If System can’t obtain the Output fields → responds with error. Elaboration is stopped.

Error Type:

STEP 2 - Operation Center Validation

System takes Input fields and checks their existence in internal configuration.

API Verb: GET

Resource: Operations Center

Input: operationCenterCode, active=true

Output: operationCenterId

If System can obtain the Output fields → continue to next step.

If System can’t obtain the Output fields → responds with error. Elaboration is stopped.

Error Type:

STEP 3 - Work Center Validation

System takes Input fields and checks their existence in internal configuration.

This step is skipped if Input fields are null or absent.

API Verb: GET

Resource: Work Center

Input: workCenterCode, active=true

Output: workCenterId

If System can obtain the Output fields → continue to next step.

If System can’t obtain the Output fields → responds with error. Elaboration is stopped.

Error Type:

STEP 4 - Notification Type Validation

System takes Input fields and checks their existence in internal configuration.

API Verb: GET

Resource: Notifications Type

Input: typeCode, active=true

Output: typeId

If System can obtain the Output fields → continue to next step.

If System can’t obtain the Output fields → responds with error. Elaboration is stopped.

Error Type:

STEP 5 - Notification Status Retrieval

System takes Input fields and checks their existence in internal configuration.

STEP 5a - Notification Status Validation

System takes Input fields and checks their existence in internal configuration.

These steps are skipped if externalStatusCode is provided in Input.

API Verb: GET

Resource: Status

Input: statusCode

Output: statusId

If System can obtain the Output fields → continue to next step.

If System can’t obtain the Output fields → responds with error. Elaboration is stopped.

Error Type:

STEP 5b - External Status Validation

System takes Input fields and checks their existence in internal configuration.

These steps are skipped if statusCode is provided in Input.

API Verb: GET

Resource: External Status

Input: externalSystemStatusCode

Output: externalSystemStatusId

If System can obtain the Output fields → continue to next step.

If System can’t obtain the Output fields → responds with error. Elaboration is stopped.

Error Type:

STEP 5c - Status from External Status Retrieval

System takes Input fields and checks the existence of status conversion rules in internal configuration.

These steps are skipped if statusCode is provided in Input.

API Verb: GET

Resource: Status Rules

Input: externalSystemStatusId

Output: statusId

If System can obtain the Output fields → continue to next step.

If System can’t obtain the Output fields → responds with error. Elaboration is stopped.

Error Type:

STEP 6 - Asset Validation

System takes Input fields and checks their existence in internal configuration.

API Verb: GET

Resource: Assets

Input: assetCode

Output: assetId

If System can obtain the Output fields → continue to next step.

If System can’t obtain the Output fields → responds with error. Elaboration is stopped.

Error Type:

STEP 7 - Notification Priority Validation

System takes Input fields and checks their existence in internal configuration.

API Verb: GET

Resource: Priority

Input: priorityCode, active=true

Output: priorityId

If System can obtain the Output fields → continue to next step.

If System can’t obtain the Output fields → responds with error. Elaboration is stopped.

Error Type:

STEP 8 - Catalog Profile Validation

System takes Input fields and checks their existence in internal configuration.

API Verb: GET

Resource: Catalog Profile

Input: catalogProfileCode, active=true

Output: catalogProfileId

If System can obtain the Output fields → continue to next step.

If System can’t obtain the Output fields → responds with error. Elaboration is stopped.

Error Type:

STEP 9 - Catalog Retrieve

These steps are the same for all “object” Catalog provided in Input:

  • Failure Mode Catalog

  • Failure Effect Catalog

  • Object Catalog

  • Breakdown Catalog

  • Fault Catalog

  • Activity Catalog

These steps are skipped if one of the “object” Catalog is not provided.

STEP 9a - Catalog Type Validation

System takes Input fields and checks their existence in internal configuration.

API Verb: GET

Resource: Catalog Group Type

Input: catalogType, active = true

Output: catalogTypeId

If System can obtain the Output fields → continue to the next step.

If System can’t obtain the Output fields → responds with error. Elaboration is stopped.

Error Type:

STEP 9b - Catalog Group Validation

System takes Input fields and checks their existence in internal configuration.

API Verb: GET

Resource: Catalog Group

Input: catalogTypeId, catalogGroup, active = true

Output: catalogGroupId

If System can obtain the Output fields → continue to the next step.

If System can’t obtain the Output fields → responds with error. Elaboration is stopped.

Error Type:

STEP 9c - Catalog Code Validation

System takes Input fields and checks their existence in internal configuration.

API Verb: GET

Resource: Catalog Code

Input: catalogTypeId, catalogGroupId, catalogCode, active = true

Output: catalogCodeId

If System can obtain the Output fields → continue to the next step.

If System can’t obtain the Output fields → responds with error. Elaboration is stopped.

Error Type:

STEP 10 - Work Order Validation

System takes Input fields and checks their existence in internal configuration.

API Verb: GET

Resource: Work Orders

Input: workOrderCode OR {externalSystemId, workOrderExternalCode}

Output: workOrderId

If System can obtain the Output fields → continue to next step.

If System can’t obtain the Output fields → responds with error. Elaboration is stopped.

Error Type:

STEP 11 - User Validation

System takes Input fields and checks their existence in internal configuration.

API Verb: GET

Resource: Users

Input: username

Output: userId

If System can obtain the Output fields → continue to next step.

If System can’t obtain the Output fields → responds with error. Elaboration is stopped.

Error Type:

STEP 12 - Notification Existence

System takes Input fields and checks their existence in internal configuration.

API Verb: GET

Resource: Notification

Input: code OR {externalSystemId, externalCode}

Output: notificationId

If System can obtain the Output fields → Update → continue to step Notification Update.

If System can’t obtain the Output fields → Create → continue to step Notification Creation.

Error Type:

STEP 13 - Notification Creation

System takes Input fields and creates a Notification and its dependencies.

STEP 13a - Notification Creation

System takes Input fields and creates a Notification.

API Verb: POST

Resource: Notification

Input: externalCode, description, workCenterId, operationCenterId, priorityId, typeId, userId, assetId, downtime, breakdownStartDate, breakdownEndDate, generationDate, expectedStartDate, expectedEndDate, catalogProfileId, externalSystemId, statusId, externalSystemStatusId, failureModeId, failureEffectId

Output: Response State, notificationId

If Response State is SUCCESS → continue to next step.

If Response State is ERROR → elaboration is stopped. See Response payload fields.

Error Type:

  • Others - see link in Resource

STEP 13b - Notification Position Creation

System takes Input fields and creates Notification Positions.

API Verb: POST

Resource: Notification Positions

Input: notificationId, positionDescription, assetCatalogCodeId, assetDescription, breakdownCatalogCodeId, breakdownDescription, externalCode

Output: Response State, positionId

If Response State is SUCCESS → continue to next step.

If Response State is ERROR → elaboration is stopped. See Response payload fields.

Error Type:

  • Others - see link in Resource

STEP 13c - Notification Position Cause Creation

System takes Input fields and creates Notification Causes.

API Verb: POST

Resource: Notification Position Faults

Input: notificationId, positionId, faultCatalogCodeId, faultDescription

Output: Response State

If Response State is SUCCESS → continue to next step.

If Response State is ERROR → elaboration is stopped. See Response payload fields.

Error Type:

  • Others - see link in Resource

STEP 13d - Notification Position Activity Creation

System takes Input fields and creates Notification Activities.

API Verb: POST

Resource: Notification Position Activities

Input: notificationId, positionId, activityCatalogCodeId, activityDescription

Output: Response State

If Response State is SUCCESS → continue to next step.

If Response State is ERROR → elaboration is stopped. See Response payload fields.

Error Type:

  • Others - see link in Resource

STEP 13e - Relationship Notification and Work Order Creation

System takes Input fields and creates the relationship between Notification and Work Order.

API Verb: POST

Resource: /notifications/work-orders

Input: notificationId, workOrderId

Output: Response State

If Response State is SUCCESS → elaboration is stopped. See Response payload fields.

If Response State is ERROR → elaboration is stopped. See Response payload fields.

Error Type:

  • Others - see link in Resource

STEP 14 - Notification Update

System takes Input fields and modifies a Notification and its dependencies.

STEP 14a - Notification Update

System takes Input fields and updates the Notification.

This step is used also to logically cancel the Notification by updating the StatusCode to E0006.

API Verb: PATCH

Resource: Notification

Input: notificationId, description, downtime, breakdownStartDate, breakdownEndDate, expectedStartDate, expectedEndDate, closureDate, statusId, externalSystemStatusId

Output: Response State, notificationId

If Response State is SUCCESS and StatusCode <> E0006→ continue to next step.

If Response State is SUCCESS and StatusCode = E0006→ elaboration is stopped. See Response payload fields.

If Response State is ERROR → elaboration is stopped. See Response payload fields.

Error Type:

  • Others - see link in Resource

STEP 14b - Notification Position Retrieve

System takes Input fields and checks their existence.

API Verb: GET

Resource: /{notificationId}/positions

Input: notificationId

Output: list of [positionId, positionExternalCode]

If System can obtain the Output fields, compares the positionExternalCode list in output with positionExternalCode list in input body:

  • If there are positionExternalCode in output not present in input body → Delete → go to step Notification Position Deletion.

  • If there are positionExternalCode in output present also in input body → Update → go to next step Notification Position Update.

  • If there are positionExternalCode in input body not present in output → Create → go to step Notification Position Creation in Notification Creation case.

If System can’t obtain the Output fields → responds with error. Elaboration is stopped.

Error Type:

  • Others - see link in Resource

STEP 14c - Notification Position Deletion

System takes Input fields and sets status ‘Logically deleted' for Notification Positions. It is not a physical deletion.

This step is skipped if Input fields are null or absent.

API Verb: PATCH

Resource: Positions

Input: notificationId, positionId, statusId=2701102 (CANCELLED)

Output: Response State

If Response State is SUCCESS → continue to next step.

If Response State is ERROR → elaboration is stopped. See Response payload fields.

Error Type:

  • Others - see link in Resource

STEP 14d - Notification Position Update

System takes Input fields and updates Notification Positions.

This step is skipped if Input fields are null or absent.

API Verb: PATCH

Resource: Positions

Input: notificationId, positionId, positionDescription, assetCatalogCodeId, assetDescription, breakdownCatalogCodeId, breakdownDescription

Output: Response State, positionId

If Response State is SUCCESS → continue to next step.

If Response State is ERROR → elaboration is stopped. See Response payload fields.

Error Type:

  • Others - see link in Resource

STEP 14e - Notification Position Activity Retrieve

System takes Input fields and checks their existence.

API Verb: GET

Resource: Position Activities

Input: notificationId, positionId

Output: notificationActivityId, catalogCodeId

If System can obtain the Output fields, compares the catalogCodeId list in output with catalogCodeId list in input body for “Activities” object:

  • If there are catalogCodeId in output not present in input body → Delete → go to step Notification Position Activity Deletion.

  • If there are catalogCodeId in output present also in input body → Update → go to next step Notification Position Activity Update.

  • If there are catalogCodeId in input body not present in output → Create → go to step Notification Position Activity Creation in Notification Creation case.

If System can’t obtain the Output fields → responds with error. Elaboration is stopped.

Error Type:

  • Others - see link in Resource

STEP 14f - Notification Position Activity Deletion

System takes Input fields and deletes Position Activities.

This step is skipped if Input fields are null or absent.

API Verb: DELETE

Resource: /{positionId}/activities/{notificationActivityId}

Input: notificationId, positionId, notificationActivityId

Output: Response State

If Response State is SUCCESS → continue to next step.

If Response State is ERROR → elaboration is stopped. See Response payload fields.

Error Type:

  • Others - see link in Resource

STEP 14g - Notification Position Activity Update

System takes Input fields and updates Position Activities.

This step is skipped if Input fields are null or absent.

API Verb: PATCH

Resource: /{positionId}/activities/{notificationActivityId}

Input: notificationId, positionId, notificationActivityId, activityDescription

Output: Response State

If Response State is SUCCESS → continue to next step.

If Response State is ERROR → elaboration is stopped. See Response payload fields.

Error Type:

  • Others - see link in Resource

STEP 14h- Notification Position Cause Retrieve

System takes Input fields and checks their existence.

API Verb: GET

Resource: Position Faults

Input: notificationId, positionId

Output: notificationFaultId, catalogCodeId

If System can obtain the Output fields, compares the catalogCodeId list in output with catalogCodeId list in input body for “Faults” object:

  • If there are catalogCodeId in output not present in input body → Delete → go to step Notification Position Cause Deletion.

  • If there are catalogCodeId in output present also in input body → Update → go to next step Notification Position Cause Update.

  • If there are catalogCodeId in input body not present in output → Create → go to step Notification Position Cause Creation in Notification Creation case.

If System can’t obtain the Output fields → responds with error. Elaboration is stopped.

Error Type:

  • Others - see link in Resource

STEP 14i - Notification Position Cause Deletion

System takes Input fields and deletes Position Causes.

This step is skipped if Input fields are null or absent.

API Verb: DELETE

Resource: /{positionId}/faults/{notificationFaultId}

Input: notificationId, positionId, notificationFaultId

Output: Response State

If Response State is SUCCESS → continue to next step.

If Response State is ERROR → elaboration is stopped. See Response payload fields.

Error Type:

  • Others - see link in Resource

STEP 14l - Notification Position Cause Update

System takes Input fields and updates Position Causes.

This step is skipped if Input fields are null or absent.

API Verb: PATCH

Resource: /{positionId}/faults/{notificationFaultId}

Input: notificationId, positionId, notificationFaultId, faultDescription

Output: Response State

If Response State is SUCCESS → continue to next step.

If Response State is ERROR → elaboration is stopped. See Response payload fields.

Error Type:

  • Others - see link in Resource

STEP 14m - Relationship Notification and Work Order Deletion

System takes Input fields and deletes the relationship between Notification and the old Work Order. It is not a physical deletion.

This step is skipped if Input fields are null or absent.

API Verb: DELETE

Resource: /notifications/work-orders

Input: notificationId, newStatusId=2701005 (CLOSED)

Output: Response State

If Response State is SUCCESS → continue to next step.

If Response State is ERROR → elaboration is stopped. See Response payload fields.

Error Type:

  • Others - see link in Resource

STEP 14n - Relationship Notification and Work Order Creation

System takes Input fields and creates the relationship between Notification and the new Work Order.

This step is skipped if Input fields are null or absent.

API Verb: POST

Resource: /notifications/work-orders

Input: notificationId, workOrderId

Output: Response State

If Response State is SUCCESS → elaboration is stopped. See Response payload fields.

If Response State is ERROR → elaboration is stopped. See Response payload fields.

Error Type:

  • Others - see link in Resource

Path Parameters

As their name suggests, they are included in the URL path of the endpoint.

Not applicable.

Query String Parameters

Start with a ? and includes parameters listed one after the another separated by &.

Not applicable.

Header Parameters

Parameters included in the request headers. Generally, request headers are used to keep authorization parameters.

Default.

Request Body Parameters

Request body parameters are used when clients send data to the API. They are shipped in a JSON Object only in POST, PUT, or PATCH requests.

 


Field

Description

Mandatory

Constraint

1

notification


externalSystemCode

External System Code

Y

Not Blank

2


externalCode

External Notification Code

N

Absent or Not Blank

3


code

Internal Notification Code

N

Absent or Not Blank

4


operationCenterCode

Operation Center Code

(Mandatory for creation)

N

Absent or Not Blank

5


workCenterCode

Work Center Code

(Mandatory for creation)

N

Absent or Not Blank

6


typeCode

Notification Type Code

(Mandatory for creation)

N

Absent or Not Blank

7


description

Notification Description

(Mandatory for creation)

N

Absent or Not Blank

8


statusCode

Internal Notification Status Code

(Mandatory for creation if externalSystemStatusCode is null)

N


9


externalSystemStatusCode

External Notification Status Code

(Mandatory for creation if statusCode is null)

N


10


assetCode

Asset Code

(Mandatory for creation)

N

Absent or Not Blank

11


priorityCode

Notification Priority Code

(Mandatory for creation)

N

Absent or Not Blank

12


username

Creator Username

(Mandatory for creation)

N

Absent or Not Blank

13


downtime

Flag to indicate whether downtime occurred (default = false)

N


14


breakdownStartDate

Breakdown Start DateTime

N


15


breakdownEndDate

Breakdown End DateTime

N


16


expectedStartDate

Request Start DateTime

N


17


expectedEndDate

Request End DateTime

N


18


generationDate

Notification Creation DateTime

N


19


catalogProfileCode

Catalog Profile Code

N


20


workOrderCode

Internal Work Order Code

N


21


workOrderExternalCode

External Work Order Code

N


22


closureDate

Closure DateTime

N


23


failureModeType

Failure ModeType

N


24


failureModeGroup

Failure ModeGroup

N


25


failureModeCode

Failure Mode Code

N


26


failureEffectType

Failure Effect Type

N


27


failureEffectGroup

Failure Effect Group

N


28


failureEffectCode

Failure Effect Code

N


29

notificationPositions

(minOccurs=0, maxOccurs=N)


positionExternalCode

External Position Code

N


30

positionDescription

Position Description

N


31

assetCatalogType

Object Catalog Type Code

N


32

assetCatalogGroup

Object Catalog Group Code

N


33

assetCatalogCode

Object Catalog Code

N


34

assetDescription

Object Description

N


35

breakdownCatalogType

Breakdown Catalog Type Code

N


36

breakdownCatalogGroup

Breakdown Catalog Group Code

N


37

breakdownCatalogCode

Breakdown Catalog Code

N


38

breakdownDescription

Breakdown Description

N


39

faults

(minOccurs=0, maxOccurs=N)

faultCatalogType

Cause Catalog Type Code

N


40

faultCatalogGroup

Cause Catalog Group Code

N


41

faultCatalogCode

Cause Catalog Code

N


42

faultDescription

Cause Description

N


43

activities

(minOccurs=0, maxOccurs=N)

activityCatalogType

Activity Catalog Type Code

N


44

activityCatalogGroup

Activity Catalog Group Code

N


45

activityCatalogCode

Activity Catalog Code

N


46

activityDescription

Activity Description

N


The objects in input could have also the extension object that allows to add additional, customized data to this API. More info here How to use APIs: Custom data via Extension.

Request example

JSON
{
  "externalSystemCode": "SAP_S4",
  "externalCode": "NOTIF-00123",
  "operationCenterCode": "OC_NORTH_WEST",
  "workCenterCode": "WC_ELECTRIC_01",
  "typeCode": "M1",
  "description": "Electrical fault detected on transformer unit",
  "externalSystemStatusCode": "OPEN",
  "assetCode": "ASSET-TRANSF-042",
  "priorityCode": "H1",
  "username": "john.doe",
  "downtime": true,
  "breakdownStartDate": "2026-06-28T08:30:00Z",
  "breakdownEndDate": "2026-06-28T14:00:00Z",
  "expectedStartDate": "2026-06-28T09:00:00Z",
  "expectedEndDate": "2026-06-29T17:00:00Z",
  "generationDate": "2026-06-28T08:35:00Z",
  "catalogProfileCode": "ELEC-FAULT-PROFILE",
  "workOrderExternalCode": "WO-EXT-98765",
  "failureCatalogType": "fc_type_1",
  "failureCatalogGroup": "fc_group_1",
  "failureCatalogCode": "failure_1",
  "notificationPositions": [
    {
      "positionExternalCode":"EXTPOSITION-001",
      "positionDescription": "Main coil winding failure",
      "assetCatalogType": "B",
      "assetCatalogGroup": "ELEC-OBJ",
      "assetCatalogCode": "E001",
      "assetDescription": "High voltage coil",
      "breakdownCatalogType": "B",
      "breakdownCatalogGroup": "ELEC-OBJ",
      "breakdownCatalogCode": "E001",
      "breakdownDescription": "Note",
      "faults": [
        {
          "faultCatalogType": "C",
          "faultCatalogGroup": "ELEC-CAUSE",
          "faultCatalogCode": "C-INSUL-01",
          "faultDescription": "Insulation degradation over time"
        }
      ],
      "activity": [
        {
          "activityCatalogType": "A",
          "activityCatalogGroup": "MAINT-ACT",
          "activityCatalogCode": "ACT-REPL",
          "activityDescription": "Replace coil winding unit"
        }
      ]
    }
  ]
}

Response documentation

Response payload fields

Compliant with RFC Standard https://www.rfc-editor.org/rfc/rfc9457.html

Extension fields:

Field

Description

Note

id

Id of the resource created

Only for SUCCESS

code

Extension member of a Problem Details Object that contains the error code

Only for ERROR

Response example

JSON
{
  "id": 1010
}
JSON
{
  "type": "about:blank",
  "title": "Not Found",
  "status": 404,
  "detail": "External system string does not exist",
  "instance": "/integration/configurations/r1/characteristics",
  "code": "IA001_001"
}

 

Response error codes