> ## Documentation Index
> Fetch the complete documentation index at: https://docs.energy.nayax.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Merge incidents into a primary

> Merge one or more incidents into the primary named in the path. Every merged incident must be at the same location and of the same alertType as the primary. Merged incidents drop out of the default list.



## OpenAPI

````yaml /api/specs/incident-management-api.json post /incident-management/v1/incidents/{id}/merge
openapi: 3.0.0
info:
  title: Lynkwell API
  version: 1.377.0
  description: API Documentation for the Incident Management Service
servers:
  - url: https://api.lynkwell.com
security: []
tags: []
paths:
  /incident-management/v1/incidents/{id}/merge:
    post:
      tags:
        - Incidents
      summary: Merge incidents into a primary
      description: >-
        Merge one or more incidents into the primary named in the path. Every
        merged incident must be at the same location and of the same alertType
        as the primary. Merged incidents drop out of the default list.
      parameters:
        - in: path
          name: id
          required: true
          description: The primary incident the others merge into.
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MergeIncidentsParams'
      responses:
        '200':
          description: The updated primary incident.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Incident'
        '400':
          description: Bad Request (e.g. a target at a different location or alertType)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IncidentBadRequestError'
        '401':
          description: Missing or invalid token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IncidentUnauthorizedError'
        '403':
          description: Insufficient scope. The body is a plain-text message, not JSON.
          content:
            text/plain:
              schema:
                type: string
        '404':
          description: Primary incident not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IncidentNotFoundError'
        '409':
          description: The primary was modified concurrently
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IncidentConflictError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IncidentInternalServerError'
      security:
        - oauth2:
            - write:incident
components:
  schemas:
    MergeIncidentsParams:
      type: object
      description: >-
        Merge one or more incidents into the primary named in the path. All must
        be at the same location and of the same alertType as the primary. At
        most 50 per call.
      properties:
        mergedIncidentIds:
          type: array
          items:
            type: string
          minItems: 1
          maxItems: 50
        changedByUserId:
          type: string
          description: >-
            NetworkUser id of the acting Support Operator. Required on every
            write; attributes the change.
        networkId:
          type: string
          description: >-
            Network id. Required for machine (M2M) callers whose token carries
            no network claim; ignored when the token has one.
      required:
        - mergedIncidentIds
        - changedByUserId
    Incident:
      type: object
      description: >-
        An incident: a period of degraded or lost service on one or more
        stations. The roster of affected stations lives on the affected-stations
        sub-resource; the incident carries only the cached affectedStationCount.
      properties:
        id:
          type: string
          description: Incident id, e.g. INC_2026_a1b2c3.
        networkId:
          type: string
        detectedAt:
          type: string
          format: date-time
          description: >-
            When the underlying condition began, per the source event. The SLA
            clock runs from here. Distinct from createdAt (when the incident was
            persisted).
        status:
          $ref: '#/components/schemas/IncidentStatus'
        summary:
          type: string
          description: Short human title.
        description:
          type: string
        alertType:
          type: string
          description: >-
            The family of condition that opened the incident. Current values
            include HARDWARE_FAULT and CONNECTIVITY_LOSS; treated as an open
            string so new families do not break clients.
        locationId:
          type: string
        affectedStationCount:
          type: integer
          description: >-
            Number of stations currently on the roster. Greater than 1 marks a
            multi-station incident. Read the roster itself from GET
            /incidents/{id}/affected-stations.
        faults:
          type: array
          items:
            $ref: '#/components/schemas/IncidentFault'
        faultInstances:
          type: array
          items:
            $ref: '#/components/schemas/IncidentFaultInstance'
        rootCause:
          type: string
        resolutionNotes:
          type: string
        assigneeUserId:
          type: string
          description: NetworkUser id of the assigned Support Operator, when assigned.
        slaResolutionDeadline:
          type: string
          format: date-time
          description: >-
            When the incident must be resolved by, per the matched SLA rule at
            creation.
        slaState:
          $ref: '#/components/schemas/SlaState'
        slaBreached:
          type: boolean
          description: 'Sticky: set once the deadline is first crossed, and never cleared.'
        linkedIncidentIds:
          type: array
          items:
            type: string
          description: Ids of related incidents linked to this one. Links are symmetric.
        mergedIntoIncidentId:
          type: string
          description: >-
            Set when this incident was merged away into a primary. Merged
            incidents are excluded from the default list; follow this id to the
            primary.
        metadata:
          type: object
          additionalProperties: true
          description: >-
            Detection context recorded by whatever opened the incident. Keys
            vary by alertType and may grow. CONNECTIVITY_LOSS records
            offlineSince (ISO-8601, when the station's disconnect was recorded —
            the start of the offline episode) and thresholdMinutes (how long it
            had to stay offline before the incident opened); HARDWARE_FAULT
            records status, rawStatus, and stationLevel (true when the fault was
            reported against the charge point rather than a connector). An empty
            object on manually created incidents.
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        lastActivityAt:
          type: string
          format: date-time
          description: >-
            Last activity a triaging Support Operator would care about — any
            update, or a new comment.
        resolvedAt:
          type: string
          format: date-time
        autoResolved:
          type: boolean
          description: >-
            true when the platform closed the incident automatically on
            recovery.
      required:
        - id
        - networkId
        - detectedAt
        - status
        - summary
        - description
        - alertType
        - affectedStationCount
        - faults
        - faultInstances
        - slaState
        - slaBreached
        - linkedIncidentIds
        - metadata
        - createdAt
        - updatedAt
        - autoResolved
    IncidentBadRequestError:
      type: object
      description: The response body for a 400 request.
      properties:
        type:
          type: string
          enum:
            - BAD_REQUEST
        code:
          type: string
          description: >-
            A stable machine-readable error code identifying the specific
            validation failure.
        message:
          type: string
      required:
        - type
        - code
        - message
    IncidentUnauthorizedError:
      type: object
      description: The response body for a 401 request (missing or invalid token).
      properties:
        message:
          type: string
      required:
        - message
    IncidentNotFoundError:
      type: object
      description: The response body for a 404 request.
      properties:
        type:
          type: string
          enum:
            - NOT_FOUND
        code:
          type: string
        message:
          type: string
      required:
        - type
        - code
        - message
    IncidentConflictError:
      type: object
      description: >-
        The response body for a 409 request. Some conflicts carry an extra id
        field naming the conflicting resource.
      properties:
        type:
          type: string
          enum:
            - CONFLICT
        code:
          type: string
        message:
          type: string
      required:
        - type
        - code
        - message
    IncidentInternalServerError:
      type: object
      description: The response body for a 500 request.
      properties:
        type:
          type: string
          enum:
            - INTERNAL_ERROR
        message:
          type: string
      required:
        - type
        - message
    IncidentStatus:
      type: string
      description: >-
        Lifecycle state. NEW, INVESTIGATING, MITIGATING, WAITING_ON_OEM,
        POST_MORTEM, RESOLVED, MERGED. RESOLVED and MERGED are terminal; MERGED
        is set only by a merge, never by a status update.
      enum:
        - NEW
        - INVESTIGATING
        - MITIGATING
        - WAITING_ON_OEM
        - POST_MORTEM
        - RESOLVED
        - MERGED
    IncidentFault:
      type: object
      description: >-
        A diagnosis on the incident — one per distinct error code, not per
        charger. Ten chargers reporting the same code share one fault with ten
        fault instances.
      properties:
        id:
          type: string
        errorCode:
          type: string
          description: OCPP standard error code, when reported.
        vendorErrorCode:
          type: string
          description: The OEM's own error code, when reported.
        vendorId:
          type: string
        faultCatalogEntryId:
          type: string
          description: The matched fault catalog entry, when the code is recognized.
        mergedFromIncidentId:
          type: string
          description: >-
            The incident this row originally belonged to, when a merge moved it
            here. Absent on rows native to this incident.
      required:
        - id
    IncidentFaultInstance:
      type: object
      description: 'Where a diagnosis landed: one entry per (fault, station, connector).'
      properties:
        incidentFaultId:
          type: string
        stationId:
          type: string
        connectorId:
          type: integer
          description: The connector, with 0 meaning the charge point itself.
        firstReportedAt:
          type: string
          format: date-time
        lastReportedAt:
          type: string
          format: date-time
        occurrenceCount:
          type: integer
        mergedFromIncidentId:
          type: string
          description: >-
            The incident this row originally belonged to, when a merge moved it
            here. Absent on rows native to this incident.
      required:
        - incidentFaultId
        - stationId
        - connectorId
        - firstReportedAt
        - lastReportedAt
        - occurrenceCount
    SlaState:
      type: string
      description: Where the incident stands against its resolution deadline.
      enum:
        - ON_TRACK
        - AT_RISK
        - PAUSED
        - BREACHED
        - RESOLVED
  securitySchemes:
    oauth2:
      type: oauth2
      description: OAuth2 Client Credentials Flow
      flows:
        clientCredentials:
          tokenUrl: https://lynkwell-prod.us.auth0.com/oauth/token
          scopes:
            read:asset: Retrieve assets
            write:asset: Create and update assets
            read:assetgroup: Retrieve asset groups
            write:assetgroup: Create and update asset groups
            read:assetstatus: Retrieve asset statuses
            read:chargingstationmodel: Retrieve charging station models
            write:chargingstationmodel: Create and update charging station models
            write:network: Create and update networks
            write:sitepartner: Create and update site partners
            read:sitepartner: Retrieve site partners
            write:sitepartneruser: Create and update site partner users
            read:sitepartneruser: Retrieve site partner users
            read:networkaccessprofile: Retrieve network access profiles
            write:paymentprofile: Create payment profile
            write:onboardinglink: Create an onboarding link
            read:invoice: Retrieve an invoice
            write:session: Create or update a session
            read:session: Retrieve a session
            write:ticket: Create a ticket
            write:verificationcode: Send and confirm verification codes
            write:driver: Create and update drivers
            read:driver: Retrieve drivers
            write:token: Create and update tokens
            read:token: Retrieve tokens
            read:tokenvalue: Retrieve token by ID including its value
            write:invitecode: Create and update invite codes
            write:invitation: Create and update invitations
            read:invitation: Retrieve invitations
            read:payment_terminals_payment: Read payments from payment terminal
            abort:session: Abruptly end session
            read:paymentprofile: Retrieve payment profile from payment terminal
            write:ocpp: Sends request over OCPP
            write:ocpp.raw_request: Sends raw request over OCPP
            write:notification.email: Create and update email
            read:invoiceitem: Retrieve invoice item
            read:subscription: Retrieve subscription
            write:plugandcharge_enrollment: Update Plug and Charge enrollment status
            write:projects: Create and update projects
            read:projects: Retrieve projects
            write:project_stations: Create and update project stations
            write:panel: Create and update panels.
            read:panel: Retrieve panels.
            write:webhooks: Create, update, and delete webhooks
            read:webhooks: Retrieve webhooks
            read:incident: Retrieve incidents and their sub-resources
            write:incident: Create, update, comment on, merge, split, and link incidents

````