Trouble Ticket Open API

concept brazil Updated Sep 30, 2026 32 min read trouble-ticket-open-api.md
Raw file servicenow.com

The Trouble Ticket Open API provides endpoints to create, update, and retrieve data from the Case [sn_customerservice_case], Incident [incident], and Service Problem Case [sn_sprb_mgmt_case] tables.

API overview

Use this API to manage ticket information between external ticketing systems and the ServiceNow AI Platform.

The Trouble Ticket Open API is a ServiceNow® implementation of the TM Forum Trouble Ticket Management API REST specification. This implementation is based on the TMF621 Trouble Ticket Management API User Guide v5.0.0, September 2024. The Trouble Ticket Open API is conformance certified by TM Forum.

[Omitted image "tmf-conformance.png"] Alt text: TMF conformance logo

Scope changes (November 2026 store)

Important:

Endpoint migration: Starting with the November 2026 release, this API transitions from sn_ind_tsm_sdwan to sn_ind_tsm_core. URL endpoint paths change from /api/sn_ind_tsm_sdwan/ticket/troubleTicket to /api/sn_ind_tsm_core/ticket/troubleTicket.

Deprecation timeline:

  • October–November 2026: Both endpoint paths are active. Plan and test your migration to the new endpoints.
  • November 2026: New sn_ind_tsm_core endpoints live. Existing sn_ind_tsm_sdwan endpoints are deprecated but still available.
  • Before Denmark release: Switch all integrations to the new sn_ind_tsm_core endpoints.
  • Denmark release: Old sn_ind_tsm_sdwan endpoints are officially removed and sunset from use.

See 'Migration Guidance' for details about how to upgrade to use the new endpoints.

Operation New endpoint Deprecated endpoint (to be removed in Denmark release)
Create ticket POST /api/sn_ind_tsm_core/ticket/troubleTicket POST /api/sn_ind_tsm_sdwan/ticket/troubleTicket
List tickets GET /api/sn_ind_tsm_core/ticket/troubleTicket GET /api/sn_ind_tsm_sdwan/ticket/troubleTicket
Get ticket by ID GET /api/sn_ind_tsm_core/ticket/troubleTicket/{id} GET /api/sn_ind_tsm_sdwan/ticket/troubleTicket/{id}
Update ticket PATCH /api/sn_ind_tsm_core/ticket/troubleTicket/{id} PATCH /api/sn_ind_tsm_sdwan/ticket/troubleTicket/{id}

Access requirements

This API requires the following applications which are available on the ServiceNow Store:

  • Service Experience Workflows / SD-WAN (sn_ind_tsm_sdwan) or Telecom Core (sn_ind_tsm_core)
  • Case Management Core (com.sn_customerservice) and Customer Service Install Base Management (com.snc.install_base) applications when interacting with data in the Case [sn_customerservice_case] table.

The calling user must have the ticket_integrator role.

Migration guidance

New users: Use the new /api/sn_ind_tsm_core/ticket/troubleTicket endpoints immediately.

Existing SD-WAN users: If your integrations currently use the /api/sn_ind_tsm_sdwan/ticket/troubleTicket endpoints, prepare for the transition to sn_ind_tsm_core before Denmark. To upgrade, simply install or upgrade Telecom Service Management Core. A one-time fix script runs on install.

The installation script automatically:

  • Moves the Trouble Ticket API records (flows, script includes, ACLs, roles, properties, rate limits, REST operations and so on) from the SD-WAN scope to TSM Core.
  • Renames the identifiers listed below from sn_ind_tsm_sdwan to sn_ind_tsm_core.

After installing or upgrading to use the new scope, use the following checklist to keep your endpoints running properly:

  • Update endpoint URLs in all custom integrations, REST calls, and scripts from sn_ind_tsm_sdwan to sn_ind_tsm_core.
  • Update any custom script references to scope identifiers from sn_ind_tsm_sdwan to sn_ind_tsm_core (for example, gs.getProperty() or gs.hasRole() calls).
  • Review and update ACL definitions and role references.
  • Test integrations against the new endpoints before the mid-Denmark release.
  • When you install or upgrade Telecom Service Management Core, a one-time fix script automatically moves all API records and renames scope identifiers. Verify that any customized property values are preserved after upgrade.

Request and response payloads, authentication, and access control remain unchanged.

Extensible options

This API can be extended to make customizations around required parameters, request body validation, additional REST operations, and field mappings. For more information, see the Trouble Ticket Open API Developer Guide.

Parent Topic:REST API reference

Trouble Ticket - GET /api/sn_ind_tsm_core/ticket/troubleTicket

Retrieves a list of all trouble ticket records from the Case [sn_customerservice_case], Incident [incident], and Service Problem Case [sn_sprb_mgmt_case] tables.

Scope migration (November 2026)

Starting with the November 2026 store release, Trouble Ticket Open API endpoints transition from sn_ind_tsm_sdwan to sn_ind_tsm_core. Both endpoint sets work identically until the Denmark release, when the sdwan endpoints are officially removed. See Trouble Ticket Open API for migration details and timelines.

Note: Request and response payloads, authentication, and access control remain unchanged between both sets of endpoints. API behavior is identical between both sets.

URL format

TSM Core default URL: /api/sn_ind_tsm_core/ticket/troubleTicket

S-DWAN default URL: /api/sn_ind_tsm_sdwan/ticket/troubleTicket

Supported request parameters

Name Description
None

Name

Description

fields

List of fields to return in the response. Invalid fields are ignored.Valid fields:

  • channel
  • creationDate
  • description
  • href
  • id
  • lastUpdate
  • name
  • note
  • relatedEntity
  • relatedParty
  • severity
  • status
  • ticketType
  • @type

Default: Returns all fields.

Data type: String

id

Filter trouble tickets by sys_id. Only tickets with the specified sys_id are returned in the response.Data type: String

limit

Maximum number of records to return. For requests that exceed this number of records, use the offset parameter to paginate record retrieval. Default: 25

Maximum: 100

You can change the default and maximum values by updating the sn_ind_tsm_core.pagination.set_limit and sn_ind_tsm_core.pagination.max_limit system properties.

Data type: Number

offset

Starting index at which to begin retrieving records. Use this value to paginate record retrieval. This functionality enables the retrieval of all records, regardless of the number of records, in small manageable chunks.Data type: Number

Default: 0

severity

Filter trouble tickets by severity. Only tickets with the specified severity are returned in the response.Data type: String

status

Filter trouble tickets by status. Only tickets with the specified status are returned in the response.Data type: String

ticketType

Filter trouble tickets by ticket type. Only tickets of the specified type are returned in the response.Valid values:

  • Case
  • Incident
  • Service Problem Case

Data type: String

|Name|Description| |----|-----------| |None| |

Headers

The following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see Supported REST API headers.

Header Description
None

Header

Description

Content-Range

Range of content returned in a paginated call. For example, if offset=2 and limit=3, the value of the Content-Range header is items 3-5.

Content-Type

Data format of the response body. Only supports application/json.

X-Total-Count

For paginated queries, this header specifies the total number of records available on the server.

### Status codes

The following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see REST API HTTP response codes.

Status code

Description

200

Request successfully processed. Full resource returned in response (no pagination).

206

Partial resource returned in response (with pagination).

400

Bad request. Possible reasons:

  • Invalid path parameter
  • Invalid URI

404

Record not found. No records matching the query parameters are found in the table.

### Response body parameters \(JSON\)

Name

Description

channel

Method of contact that the ticket was created through.Data type: Object

Text
"channel":{  "name": "String"}

channel.name

The name of the contact method. Maps to the Channel [contact_type] field for cases and the Contact type [contact_type] field for incidents.Data type: String

creationDate

The date that the case or incident record was created. Maps to the Created field.Data type: String

description

The description of the issue from the ticket. Maps to the Description field.Data type: String

href

Relative link to the case or incident record.Data type: String

id

The sys_id of the case or incident record.Data type: String

lastUpdate

The date the record was last updated. Maps to the Updated field.Data type: String

name

The name of the trouble ticket, typically a short description of the issue. Maps to the Short description field.Data type: String

note

A list of all comments on the ticket. This list does not include work notes.Data type: Array

JSON
"note":[ {   "author": "String",   "date": "String",   "text": "String",   "@type": "String" }]

note.@type

The type of note. Only comments are returned (not work notes) so this value is always comments.Data type: String

note.author

The name of the ServiceNow integration user who made the POST or PATCH request that created the comment.Data type: String

note.date

The date the comment was created in the ServiceNow instance.Data type: String

note.text

The comment text.Data type: String

relatedEntity

List of impacted assets, products, sold products (product inventory), configuration items, or services.Data type: Array of Objects

JSON
"relatedEntity": [  {    "id": "String",    "href": "String",    "name": "String",    "role": "String",    "@referredType": "String",    "@type": "String"  }]

relatedEntity.id

Sys_id of the impacted item or service.For cases, this value is from one of the following tables:

  • Asset [alm_asset]
  • Product Inventory [sn_prd_invt_product_inventory], which extends the Sold Product [sn_install_base_sold_product] table
  • Product Model [cmdb_model]
  • Sold Product [sn_install_base_sold_product]

For incidents, this value is from one of the following tables:

  • Configuration Item [cmdb_ci]
  • Service [cmdb_ci_service]

Data type: String

relatedEntity.href

Returns an empty string.Data type: String

relatedEntity.name

Name of the impacted item or service.Data type: String

relatedEntity.role

Description of the impacted item or service.Data type: String

relatedEntity.@referredType

Type of item or service.Valid values for case tickets:

  • asset
  • product
  • product_inventory

Valid values for incident tickets:

  • cmdb_ci
  • cmdb_ci_service

Data type: String

relatedEntity.@type

This value is always relatedEntity.Data type: String

relatedParty

Details about contacts for the ticket.Data type: Array of Objects

JSON
"relatedParty": [  {    "id": "String",    "name": "String",    "@referredType": "String"  }]

relatedParty.id

Sys_id of the related party. The sys_id can be from the following tables depending on the ticket type and the related party type.Case:

  • Account [customer_account]; Related party type is customer
  • Contact [customer_contact]; Related party type is customer_contact

Incident:

  • Company [core_company]; Related party type is customer
  • User [sys_user]; Related party type is customer_contact

Case or incident:

  • Group [sys_user_group]; Related party type is assignment_group
  • User [sys_user]; Related party type is assigned_to

Data type: String

relatedParty.name

Name of the related party.Data type: String

relatedParty.@referredType

Type of related party.Possible values:

  • assigned_to: User assigned to work on the ticket.
  • assignment_group: Group assigned to work on the ticket.
  • customer: Company or account for the ticket.
  • customer_contact: Caller or contact for the ticket.

Data type: String

severity

The severity of the issue described by the trouble ticket. Maps to the Priority field.Data type: String

status

The current status of the trouble ticket. Maps to the State field.Data type: String

ticketType

The type of ticket.Possible values:

  • Case
  • Incident
  • Service Problem Case

Data type: String

@type

This value is always TroubleTicket.Data type: String

### cURL request

This example returns specified fields for the first five trouble ticket case records.

Shell
curl "https://instance.servicenow.com/api/sn_ind_tsm_core/ticket/troubleTicket?limit=5&fields=id%2Cname%2Cdescription%2Cstatus%2Cseverity%2CticketType&ticketType=case" \--request GET \--user 'username':'password'

Response body.

JSON
[   {      "id": "0004609eb9830110f877b3758cd21d37",      "name": "Compliant Over 2796",      "description": "checkNo2796",      "status": "New",      "severity": "3 - Moderate",      "ticketType": "Case"   },   {      "id": "000560d2b9c30110f877b3758cd21d36",      "name": "Compliant Over 4696",      "description": "checkNo4696",      "status": "New",      "severity": "3 - Moderate",      "ticketType": "Case"   },   {      "id": "0007ac5eb9c30110f877b3758cd21d34",      "name": "Compliant Over 8817",      "description": "checkNo8817",      "status": "New",      "severity": "3 - Moderate",      "ticketType": "Case"   },   {      "id": "0007ac5eb9c30110f877b3758cd21d39",      "name": "Compliant Over 8819",      "description": "checkNo8819",      "status": "New",      "severity": "3 - Moderate",      "ticketType": "Case"   },   {      "id": "0007ac5eb9c30110f877b3758cd21d3e",      "name": "Compliant Over 8821",      "description": "checkNo8821",      "status": "New",      "severity": "3 - Moderate",      "ticketType": "Case"   }]

Trouble Ticket - GET /api/sn_ind_tsm_core/ticket/troubleTicket/{id}

Retrieves a specified record from the Case [sn_customerservice_case], Incident [incident], or Service Problem Case [sn_sprb_mgmt_case] table.

Scope migration (November 2026)

Starting with the November 2026 store release, Trouble Ticket Open API endpoints transition from sn_ind_tsm_sdwan to sn_ind_tsm_core. Both endpoint sets work identically until the Denmark release, when the sdwan endpoints are officially removed. See Trouble Ticket Open API for migration details and timelines.

Note: Request and response payloads, authentication, and access control remain unchanged between both sets of endpoints. API behavior is identical between both sets.

URL format

TSM Core default URL: /api/sn_ind_tsm_core/ticket/troubleTicket/{id}

S-DWAN default URL: /api/sn_ind_tsm_sdwan/ticket/troubleTicket/{id}

Supported request parameters

Name

Description

id

Sys_id of the case or incident record to retrieve. Data type: String

Table: Case [sn_customerservice_case] or Incident [incident]

Name

Description

fields

List of fields to return in the response. Invalid fields are ignored.Valid values:

  • channel
  • creationDate
  • description
  • href
  • id
  • lastUpdate
  • name
  • note
  • relatedEntity
  • relatedParty
  • severity
  • status
  • ticketType
  • @type

Data type: String

Default: Returns all fields.

|Name|Description| |----|-----------| |None| |

Headers

The following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see Supported REST API headers.

Header Description
Accept Data format of the response body. Only supports application/json.
Header Description
None

Status codes

The following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see REST API HTTP response codes.

Status code

Description

200

Successful. The request was successfully processed.

400

Bad Request. A bad request type or malformed request was detected for one or more of the following reasons.- Invalid path parameter.

  • Invalid URI.

404

Record not found. A record associated with the ID is not found in the Case [sn_customerservice_case] or Incident [incident] table.

### Response body parameters \(JSON\)

Name

Description

channel

Method of contact that the ticket was created through.Data type: Object

Text
"channel":{  "name": "String"}

channel.name

Name of the contact method. Maps to the Channel [contact_type] field for cases and the Contact type [contact_type] field for incidents.Data type: String

creationDate

Date that the case or incident record was created. Maps to the Created field.Data type: String

description

Description of the issue from the ticket. Maps to the Description field.Data type: String

href

Relative link to the case or incident record.Data type: String

id

Sys_id of the case or incident record.Data type: String

lastUpdate

Date the record was last updated. Maps to the Updated field.Data type: String

name

Name of the trouble ticket, typically a short description of the issue. Maps to the Short description field.Data type: String

note

List of all comments on the ticket. This list does not include work notes.Data type: Array of Objects

JSON
"note":[  {    "author": "String",    "date": "String",    "text": "String",    "@type": "String"  }]

note.@type

Type of note. Only comments are returned (not work notes) so this value is always comments.Data type: String

note.author

Name of the user who wrote the comment.Data type: String

note.date

Date the comment was created in the ServiceNow instance.Data type: String

note.text

Comment text.Data type: String

relatedEntity

List of impacted assets, products, sold products (product inventory), configuration items, or services.Data type: Array of Objects

JSON
"relatedEntity": [  {    "id": "String",    "href": "String",    "name": "String",    "role": "String",    "@referredType": "String",    "@type": "String"  }]

relatedEntity.id

Sys_id of the impacted item or service.For cases, this value is from one of the following tables:

  • Asset [alm_asset]
  • Product Inventory [sn_prd_invt_product_inventory], which extends the Sold Product [sn_install_base_sold_product] table
  • Product Model [cmdb_model]
  • Sold Product [sn_install_base_sold_product]

For incidents, this value is from one of the following tables:

  • Configuration Item [cmdb_ci]
  • Service [cmdb_ci_service]

Data type: String

relatedEntity.href

Returns an empty string.Data type: String

relatedEntity.name

Name of the impacted item or service.Data type: String

relatedEntity.role

Description of the impacted item or service.Data type: String

relatedEntity.@referredType

Type of item or service.Valid values for case tickets:

  • asset
  • product
  • product_inventory

Valid values for incident tickets:

  • cmdb_ci
  • cmdb_ci_service

Data type: String

relatedEntity.@type

This value is always relatedEntity.Data type: String

relatedParty

Details about contacts for the ticket.Data type: Array of Objects

JSON
"relatedParty": [  {    "id": "String",    "name": "String",    "@referredType": "String"  }]

relatedParty.id

Sys_id of the related party. The sys_id can be from the following tables depending on the ticket type and the related party type.Case:

  • Account [customer_account]; Related party type is customer
  • Contact [customer_contact]; Related party type is customer_contact

Incident:

  • Company [core_company]; Related party type is customer
  • User [sys_user]; Related party type is customer_contact

Case or incident:

  • Group [sys_user_group]; Related party type is assignment_group
  • User [sys_user]; Related party type is assigned_to

Data type: String

relatedParty.name

Name of the related party.Data type: String

relatedParty.@referredType

Type of related party.Possible values:

  • assigned_to: User assigned to work on the ticket.
  • assignment_group: Group assigned to work on the ticket.
  • customer: Company or account for the ticket.
  • customer_contact: Caller or contact for the ticket.

Data type: String

severity

Severity of the issue described by the trouble ticket. Maps to the Priority field.Data type: String

status

Current status of the trouble ticket. Maps to the State field.Data type: String

ticketType

Type of ticket.Possible values:

  • Case
  • Incident
  • Service Problem Case

Data type: String

@type

This value is always TroubleTicket.Data type: String

### cURL request

This example retrieves a trouble ticket record from the Case [sn_customerservice_case] table.

Shell
curl "https://instance.servicenow.com/api/sn_ind_tsm_core/ticket/troubleTicket/6467508d47e345508761b955d36d43f6" \--request GET \--header "Accept:application/json" \--user 'username':'password'

Response body.

JSON
{    "id": "370415f03c20e910f8772f1bc332b31b",    "href": "/api/sn_ind_tsm_core/ticket/troubleTicket/370415f03c20e910f8772f1bc332b31b",    "creationDate": "2023-01-19 22:39:28",    "lastUpdate": "2023-01-19 22:41:39",    "description": "Router is not working, my devices cannot detect any signals from the router. First button from the left is flashing red, all others are black. Resetting the router does not solve the problem, I need urgent assistance.",    "severity": "2 - High",    "ticketType": "Case",    "name": "My router is not working properly",    "status": "Open",    "channel": {        "name": "e_bonding"    },    "relatedParty": [        {            "id": "ffc68911c35420105252716b7d40dd55",            "name": "Funco Intl",            "@referredType": "customer"        },        {            "id": "eaf68911c35420105252716b7d40ddde",            "name": "Sally Thomas",            "@referredType": "customer_contact"        },        {            "id": "",            "name": "",            "@referredType": "assignment_group"        },        {            "id": "",            "name": "",            "@referredType": "assigned_to"        }    ],    "relatedEntity": [        {            "id": "b7fa12c7532520103b6bddeeff7b123b",            "href": "",            "name": "Deduplication and Compression PRD00001965",            "role": "This is the product associated with the case.",            "@type": "relatedEntity",            "@referredType": "product"        },        {            "id": "71e73d87c3e23010ff00ed23a140dde8",            "href": "",            "name": "",            "role": "This is the asset associated with the case.",            "@type": "relatedEntity",            "@referredType": "asset"        },        {            "id": "a1913c3577b301108e191e599a5a99e8",            "href": "",            "name": "Deduplication and Compression PI0000037",            "role": "This is the product inventory associated with the case.",            "@type": "relatedEntity",            "@referredType": "product_inventory"        }    ],    "note": [        {            "text": "This is a testing comment<script>gs.info('Hello World')</script>",            "date": "2023-01-19 14:41:39",            "author": "System Administrator",            "@type": "comments"        },        {            "text": "This is a testing comment<script>gs.info('Hello World')</script>",            "date": "2023-01-19 14:39:28",            "author": "System Administrator",            "@type": "comments"        }    ],    "@type": "TroubleTicket"}

Trouble Ticket - PATCH /api/sn_ind_tsm_core/ticket/troubleTicket/{id}

Updates a specified record in the Case [sn_customerservice_case], Incident [incident], or Service Problem Case [sn_sprb_mgmt_case] table.

Scope migration (November 2026)

Starting with the November 2026 store release, Trouble Ticket Open API endpoints transition from sn_ind_tsm_sdwan to sn_ind_tsm_core. Both endpoint sets work identically until the Denmark release, when the sdwan endpoints are officially removed. See Trouble Ticket Open API for migration details and timelines.

Note: Request and response payloads, authentication, and access control remain unchanged between both sets of endpoints. API behavior is identical between both sets.

URL format

TSM Core default URL: /api/sn_ind_tsm_core/ticket/troubleTicket/{id}

S-DWAN default URL: /api/sn_ind_tsm_sdwan/ticket/troubleTicket/{id}

Supported request parameters

Name

Description

id

Sys_id of the case or incident record to update.Data type: String

Table: Case [sn_customerservice_case] or Incident [incident]

|Name|Description| |----|-----------| |None| |

Name

Description

channel

Method of contact that the ticket was created through.Data type: Object

Text
"channel":{  "name": "String"}

channel.name

Name of the contact method. Maps to the Channel [contact_type] field for cases and the Contact type [contact_type] field for incidents.Valid values are the choices for the contact_type field. You can provide the choice label or value. For example, Virtual Agent or virtual_agent.

Data type: String

description

Description of the issue. Maps to the Description field.Data type: String

name

Name of the trouble ticket, typically a short description of the issue. Maps to the Short description field.Data type: String

note

List of work notes and comments to add to the ticket.Data type: Array of Objects

CSS
"note":[  {    "text": "String",    "@type": "String"  }]

note.@type

Type of note. This value determines whether the note is recorded in the Work notes or Additional comments field.Valid values:

  • comments
  • work_notes

Data type: String

note.text

Note text. Maps to the Work notes or Additional comments field.Data type: String

relatedEntity

List of impacted assets, products, sold products (product inventory), configuration items, or services.Data type: Array of Objects

Text
"relatedEntity": [  {    "id": "String",    "@referredType": "String"  }]

relatedEntity.id

Sys_id of the impacted item or service.For cases, this value is from one of the following tables:

  • Asset [alm_asset]
  • Product Inventory [sn_prd_invt_product_inventory], which extends the Sold Product [sn_install_base_sold_product] table
  • Product Model [cmdb_model]
  • Sold Product [sn_install_base_sold_product]

For incidents, this value is from one of the following tables:

  • Configuration Item [cmdb_ci]
  • Service [cmdb_ci_service]

Data type: String

relatedEntity.@referredType

Type of item or service.Valid values for case tickets:

  • asset
  • product
  • product_inventory

Valid values for incident tickets:

  • cmdb_ci
  • cmdb_ci_service

Data type: String

relatedParty

Details about contacts for the ticket. For cases, this parameter populates the Contact or Account field. For incidents, this parameter populates the Caller or Company field.Data type: Array of Objects

Text
"relatedParty": [  {    "id": "String",    "@referredType": "String"  }]

relatedParty.id

Sys_id of the related party. If you provide a contact or a user (caller), their account or company is automatically populated on the ticket. Data type: String

Table: For cases, the sys_id is from the Contact [customer_contact] or Account [customer_account] tables. For incidents, the sys_id is from the User [sys_user] or Company [core_company] tables.

relatedParty.@referredType

Type of related party.Valid values:

  • customer: Company or account for the ticket.
  • customer_contact: Caller or contact for the ticket.

Data type: String

severity

Severity of the issue described by the trouble ticket. Maps to the Priority field.Valid values:

  • 1: Critical
  • 2: High
  • 3: Moderate
  • 4: Low
  • 5: Planning. Incident only.

Valid values are the choices for the Priority field. You must provide the choice value only. For example, 1. If an invalid value is provided, the severity is set to Low.

Data type: String

status

Current status of the trouble ticket. Maps to the State field.Valid values are the choices for the State field. You can provide the choice label or value. For example, New or 1.

Data type: String

### Headers

The following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see Supported REST API headers.

Header Description
Accept Data format of the response body. Only supports application/json.
Content-Type Data format of the request body. Only supports application/json.
Header Description
None

Status codes

The following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see REST API HTTP response codes.

Status code

Description

200

Successful. The request was successfully processed.

400

Bad Request. A bad request type or malformed request was detected for one or more of the following reasons.- Invalid path parameter.

  • Invalid URI.

404

Record not found. A record associated with the ID is not found in the Case [sn_customerservice_case] or Incident [incident] table.

### Response body parameters \(JSON\)

Name

Description

channel

Method of contact that the ticket was created through.Data type: Object

Text
"channel":{  "name": "String"}

channel.name

Name of the contact method.Data type: String

creationDate

Date the record was created.Data type: String

description

Description of the issue from the ticket.Data type: String

href

Relative link to the case or incident record.Data type: String

id

Sys_id of the case or incident record.Data type: String

lastUpdate

Date the record was last updated.Data type: String

name

Name of the trouble ticket, typically a short description of the issue.Data type: String

note

List of all comments on the ticket. This list does not include work notes.Data type: Array of Objects

JSON
"note":[  {    "author": "String",    "date": "String",    "text": "String",    "@type": "String"  }]

note.@type

Type of note. Only comments are returned (not work notes) so this value is always comments.Data type: String

note.author

Name of the user who wrote the comment.Data type: String

note.date

Date the comment was created in the ServiceNow instance.Data type: String

note.text

Comment text.Data type: String

relatedEntity

List of impacted assets, products, sold products (product inventory), configuration items, or services.Data type: Array of Objects

JSON
"relatedEntity": [  {    "id": "String",    "href": "String",    "name": "String",    "role": "String",    "@referredType": "String",    "@type": "String"  }]

relatedEntity.id

Sys_id of the impacted item or service.For cases, this value is from one of the following tables:

  • Asset [alm_asset]
  • Product Inventory [sn_prd_invt_product_inventory], which extends the Sold Product [sn_install_base_sold_product] table
  • Product Model [cmdb_model]
  • Sold Product [sn_install_base_sold_product]

For incidents, this value is from one of the following tables:

  • Configuration Item [cmdb_ci]
  • Service [cmdb_ci_service]

Data type: String

relatedEntity.href

Returns an empty string.Data type: String

relatedEntity.name

Name of the impacted item or service.Data type: String

relatedEntity.role

Description of the impacted item or service.Data type: String

relatedEntity.@referredType

Type of item or service.Valid values for case tickets:

  • asset
  • product
  • product_inventory

Valid values for incident tickets:

  • cmdb_ci
  • cmdb_ci_service

Data type: String

relatedEntity.@type

This value is always relatedEntity.Data type: String

relatedParty

Details about contacts for the ticket.Data type: Array of Objects

JSON
"relatedParty": [  {    "id": "String",    "name": "String",    "@referredType": "String"  }]

relatedParty.id

Sys_id of the related party. The sys_id can be from the following tables depending on the ticket type and the related party type.Case:

  • Account [customer_account]; Related party type is customer
  • Contact [customer_contact]; Related party type is customer_contact

Incident:

  • Company [core_company]; Related party type is customer
  • User [sys_user]; Related party type is customer_contact

Case or incident:

  • Group [sys_user_group]; Related party type is assignment_group
  • User [sys_user]; Related party type is assigned_to

Data type: String

relatedParty.name

Name of the related party.Data type: String

relatedParty.@referredType

Type of related party.Possible values:

  • assigned_to: User assigned to work on the ticket.
  • assignment_group: Group assigned to work on the ticket.
  • customer: Company or account for the ticket.
  • customer_contact: Caller or contact for the ticket.

Data type: String

severity

Severity of the issue described by the trouble ticket.Data type: String

status

Current status of the trouble ticket.Data type: String

ticketType

Type of ticket.Possible values:

  • Case
  • Incident
  • Service Problem Case

Data type: String

@type

This value is always TroubleTicket.Data type: String

### cURL request

This example updates a case record.

Shell
curl "https://instance.servicenow.com/api//api/sn_ind_tsm_core/ticket/troubleTicket/6467508d47e345508761b955d36d43f6" \--request PATCH \--header "Accept:application/json" \--header "Content-Type:application/json" \--data "{   description: "Updated description",   "note": [      {         "text": "Adding another comment",         "@type": "comments"      }   ]}" \--user 'username':'password'

Response body.

JSON
{   "id": "6467508d47e345508761b955d36d43f6",   "href": "/api/sn_ind_tsm_core/ticket/troubleTicket/6467508d47e345508761b955d36d43f6",   "creationDate": "2022-05-16 23:38:55",   "lastUpdate": "2022-05-16 23:48:42",   "description": "Updated description",   "severity": "2 - High",   "ticketType": "Case",   "name": "Laptop problem",   "status": "New",   "channel": {      "name": "web"   },   "relatedParty": [      {         "id": "",         "name": "",         "@referredType": "customer"      },      {         "id": "62826bf03710200044e0bfc8bcbe5df1",         "name": "",         "@referredType": "customer_contact"      },      {         "id": "",         "name": "",         "@referredType": "assignment_group"      },      {         "id": "",         "name": "",         "@referredType": "assigned_to"      }   ],   "relatedEntity": [      {         "id": "",         "href": "",         "name": "",         "role": "This is the product associated with the case",         "@type": "relatedEntity",         "@referredType": "product"      },      {         "id": "74a9ec0d3790200044e0bfc8bcbe5d7f",         "href": "",         "name": "P1000597 - Apple MacBook Pro 15\"",         "role": "This is the asset associated with the case",         "@type": "relatedEntity",         "@referredType": "asset"      }      {         "id": "a1913c3577b301108e191e599a5a99e8",         "href": "",         "name": "Deduplication and Compression PI0000037",         "role": "This is the product inventory associated with the case.",         "@type": "relatedEntity",         "@referredType": "product_inventory"      }   ],   "note": [      {         "text": "Adding another comment",         "date": "2022-05-16 16:48:42",         "author": "admin",         "@type": "comments"      },      {         "text": "Comment about this case",         "date": "2022-05-16 16:38:55",         "author": "admin",         "@type": "comments"      }   ],   "@type": "TroubleTicket"}

Trouble Ticket - POST /api/sn_ind_tsm_core/ticket/troubleTicket

Creates a record in the Case [sn_customerservice_case], Incident [incident], or Service Problem Case [sn_sprb_mgmt_case] table.

Scope migration (November 2026)

Starting with the November 2026 store release, Trouble Ticket Open API endpoints transition from sn_ind_tsm_sdwan to sn_ind_tsm_core. Both endpoint sets work identically until the Denmark release, when the sdwan endpoints are officially removed. See Trouble Ticket Open API for migration details and timelines.

Note: Request and response payloads, authentication, and access control remain unchanged between both sets of endpoints. API behavior is identical between both sets.

URL format

TSM Core default URL: /api/sn_ind_tsm_core/ticket/troubleTicket

S-DWAN default URL: /api/sn_ind_tsm_sdwan/ticket/troubleTicket

Supported request parameters

Name Description
None
Name Description
None

Name

Description

channel

Method of contact that the ticket was created through.Data type: Object

Text
"channel":{  "name": "String"}

channel.name

Name of the contact method. Maps to the Channel [contact_type] field for cases and the Contact type [contact_type] field for incidents.Valid values are the choices for the contact_type field. You can provide the choice label or value. For example, Virtual Agent or virtual_agent.

Data type: String

description

Required. A description of the issue. Maps to the Description field.Data type: String

name

Name of the trouble ticket, typically a short description of the issue. Maps to the Short description field.Data type: String

note

List of work notes and comments to add to the ticket.Data type: Array of Objects

CSS
"note":[  {    "text": "String",    "@type": "String"  }]

note.@type

Type of note. This value determines whether the note is recorded in the Work notes or Additional comments field.Valid values:

  • comments
  • work_notes

Data type: String

note.text

Note text. Maps to the Work notes or Additional comments field.Data type: String

relatedEntity

List of impacted assets, products, sold products (product inventory), configuration items, or services.Data type: Array of Objects

Text
"relatedEntity": [  {    "id": "String",    "@referredType": "String"  }]

relatedEntity.id

Sys_id of the impacted item or service.For cases, this value is from one of the following tables:

  • Asset [alm_asset]
  • Product Inventory [sn_prd_invt_product_inventory], which extends the Sold Product [sn_install_base_sold_product] table
  • Product Model [cmdb_model]
  • Sold Product [sn_install_base_sold_product]

For incidents, this value is from one of the following tables:

  • Configuration Item [cmdb_ci]
  • Service [cmdb_ci_service]

Data type: String

relatedEntity.@referredType

Type of item or service.Valid values for case tickets:

  • asset
  • product
  • product_inventory

Valid values for incident tickets:

  • cmdb_ci
  • cmdb_ci_service

Data type: String

relatedParty

Details about contacts for the ticket. For cases, this parameter populates the Contact or Account field. For incidents, this parameter populates the Caller or Company field.Data type: Array of Objects

Text
"relatedParty": [  {    "id": "String",    "@referredType": "String"  }]

relatedParty.id

Sys_id of the related party. If you provide a contact or a user (caller), their account or company is automatically populated on the ticket. Data type: String

Table: For cases, the sys_id is from the Contact [customer_contact] or Account [customer_account] tables. For incidents, the sys_id is from the User [sys_user] or Company [core_company] tables.

relatedParty.@referredType

Type of related party.Valid values:

  • customer: Company or account for the ticket.
  • customer_contact: Caller or contact for the ticket.

Data type: String

severity

Required. The severity of the issue described by the trouble ticket. Maps to the Priority field.Valid values:

  • 1: Critical
  • 2: High
  • 3: Moderate
  • 4: Low
  • 5: Planning. Incident only.

Valid values are the choices for the Priority field. You must provide the choice value only. For example, 1. If an invalid value is provided, the severity is set to Low.

Data type: String

status

Required. The current status of the trouble ticket. Maps to the State field.Valid values are the choices for the State field. You can provide the choice label or value. For example, New or 1. If you provide an invalid value, the status is set to New.

Data type: String

ticketType

The type of ticket. This value determines whether the record is created in the Case [sn_customerservice_case], Incident [incident], or Service Problem Case [sn_sprb_mgmt_case] table.Valid values:

  • Case
  • Incident
  • Service Problem Case

Data type: String

Default: Incident

### Headers

The following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see Supported REST API headers.

Header Description
Accept Data format of the response body. Only supports application/json.
Content-Type Data format of the request body. Only supports application/json.
Header Description
None

Status codes

The following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see REST API HTTP response codes.

Status code

Description

201

Successful. The request was successfully processed.

400

Bad Request. A bad request type or malformed request was detected for one or more of the following reasons.- Empty payload.

  • Invalid payload. Mandatory field missing.
  • Invalid ticketType.
### Response body parameters \(JSON\)

Name

Description

@type

This value is always TroubleTicket.Data type: String

channel

Method of contact that the ticket was created through.Data type: Object

Text
"channel":{  "name": "String"}

channel.name

The name of the contact method.Data type: String

creationDate

The date that the case or incident record was created.Data type: String

description

The description of the issue from the ticket.Data type: String

href

Relative link to the case or incident record.Data type: String

id

The sys_id of the case or incident record that was created.Data type: String

lastUpdate

The date that the case or incident record was last updated.Data type: String

name

The name of the trouble ticket, typically a short description of the issue.Data type: String

note

A list of all comments on the ticket. This list does not include work notes.Data type: Array

JSON
"note":[   {      "author": "String",      "date": "String",      "text": "String",      "@type": "String"   }]

note.@type

The type of note. Only comments are returned (not work notes) so this value is always comments.Data type: String

note.author

The name of the user who wrote the comment.Data type: String

note.date

The date the comment was created in the ServiceNow instance.Data type: String

note.text

The comment text.Data type: String

relatedEntity

List of impacted assets, products, sold products (product inventory), configuration items, or services.Data type: Array of Objects

JSON
"relatedEntity": [  {    "id": "String",    "href": "String",    "name": "String",    "role": "String",    "@referredType": "String",    "@type": "String"  }]

relatedEntity.id

Sys_id of the impacted item or service.For cases, this value is from one of the following tables:

  • Asset [alm_asset]
  • Product Inventory [sn_prd_invt_product_inventory], which extends the Sold Product [sn_install_base_sold_product] table
  • Product Model [cmdb_model]
  • Sold Product [sn_install_base_sold_product]

For incidents, this value is from one of the following tables:

  • Configuration Item [cmdb_ci]
  • Service [cmdb_ci_service]

Data type: String

relatedEntity.href

Returns an empty string.Data type: String

relatedEntity.name

Name of the impacted item or service.Data type: String

relatedEntity.role

Description of the impacted item or service.Data type: String

relatedEntity.@referredType

Type of item or service.Valid values for case tickets:

  • asset
  • product
  • product_inventory

Valid values for incident tickets:

  • cmdb_ci
  • cmdb_ci_service

Data type: String

relatedEntity.@type

This value is always relatedEntity.Data type: String

relatedParty

Details about contacts for the ticket.Data type: Array of Objects

JSON
"relatedParty": [  {    "id": "String",    "name": "String",    "@referredType": "String"  }]

relatedParty.id

Sys_id of the related party. The sys_id can be from the following tables depending on the ticket type and the related party type.Case:

  • Account [customer_account]; Related party type is customer
  • Contact [customer_contact]; Related party type is customer_contact

Incident:

  • Company [core_company]; Related party type is customer
  • User [sys_user]; Related party type is customer_contact

Case or incident:

  • Group [sys_user_group]; Related party type is assignment_group
  • User [sys_user]; Related party type is assigned_to

Data type: String

relatedParty.name

Name of the related party.Data type: String

relatedParty.@referredType

Type of related party.Possible values:

  • assigned_to: User assigned to work on the ticket.
  • assignment_group: Group assigned to work on the ticket.
  • customer: Company or account for the ticket.
  • customer_contact: Caller or contact for the ticket.

Data type: String

severity

The severity of the issue described by the trouble ticket.Data type: String

status

The current status of the trouble ticket.Data type: String

ticketType

The type of ticket.Possible values:

  • Case
  • Incident
  • Service Problem Case

Data type: String

### cURL request

This example creates a trouble ticket case record.

Shell
curl "https://instance.servicenow.com/api/sn_ind_tsm_core/ticket/troubleTicket" \--request POST \--header "Accept:application/json" \--header "Content-Type:application/json" \--data "{   "name": "Laptop problem",   "description": "Laptop keeps shutting off unexpectedly",   "severity": "2",   "status": "New",   "ticketType": "Case",   "channel": {      "name": "Web"   },   "note": [      {         "text": "Work note about this case",         "@type": "work_notes"      },      {         "text": "Comment about this case",         "@type": "comments"      }   ],   "relatedEntity": [      {         "id": "74a9ec0d3790200044e0bfc8bcbe5d7f",         "@referredType": "asset"      }   ],   "relatedParty": [      {         "id": "62826bf03710200044e0bfc8bcbe5df1",         "@referredType": "customer_contact"      }   ]}" \--user 'username':'password'

Response body.

JSON
{   "id": "6467508d47e345508761b955d36d43f6",   "href": "/api/sn_ind_tsm_core/ticket/troubleTicket/6467508d47e345508761b955d36d43f6",   "creationDate": "2022-05-16 23:38:55",   "lastUpdate": "2022-05-16 23:38:55",   "description": "Laptop keeps shutting off unexpectedly",   "severity": "2 - High",   "ticketType": "Case",   "name": "Laptop problem",   "status": "New",   "channel": {      "name": "web"   },   "relatedParty": [      {         "id": "",         "name": "",         "@referredType": "customer"      },      {         "id": "62826bf03710200044e0bfc8bcbe5df1",         "name": "",         "@referredType": "customer_contact"      },      {         "id": "",         "name": "",         "@referredType": "assignment_group"      },      {         "id": "",         "name": "",         "@referredType": "assigned_to"      }   ],   "relatedEntity": [      {         "id": "",         "href": "",         "name": "",         "role": "This is the product associated with the case.",         "@type": "relatedEntity",         "@referredType": "product"      },      {         "id": "74a9ec0d3790200044e0bfc8bcbe5d7f",         "href": "",         "name": "P1000597 - Apple MacBook Pro 15\"",         "role": "This is the asset associated with the case.",         "@type": "relatedEntity",         "@referredType": "asset"      }      {         "id": "a1913c3577b301108e191e599a5a99e8",         "href": "",         "name": "Deduplication and Compression PI0000037",         "role": "This is the product inventory associated with the case.",         "@type": "relatedEntity",         "@referredType": "product_inventory"      }   ],   "note": [      {         "text": "Comment about this case",         "date": "2022-05-16 16:38:55",         "author": "admin",         "@type": "comments"      }   ],   "@type": "TroubleTicket"}
Search documentation
Search document titles and file paths on the brazil branch