jsn / ServiceNow, simplified.
AustraliaREFERENCE GUIDE

Product Inventory Open API

On this page

Product Inventory Open API

The Product Inventory Open API provides endpoints to create and retrieve product inventories.

Use this API to manage product inventory information between external systems and the ServiceNow AI Platform.

This API is included in the Product Inventory Advanced application, which is available on the ServiceNow Store.

This API is provided within the sn_prd_invt namespace.

The calling user must have the sn_prd_invt.product_inventory_integrator role.

This API creates and updates data in the following tables.

  • Product Characteristics [sn_prd_invt_product_characteristics]

  • Product Inventory [sn_prd_invt_product_inventory]

  • Product Model [cmdb_model]

  • Product Model Characteristic [sn_prd_pm_product_model_characteristic]

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

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

Note: By default, POST /sn_prd_invt/product accepts and returns a single JSON object. GET endpoints return status as a display label, such as Installation pending, and the product reference field is named product. To change the default behavior, create a system property sn_prd_invt.tmf637.version4 and set the value to true. When true, POST /sn_prd_invt/product accepts and returns a JSON array. GET endpoints return status as an internal value, such as installation_pending, and the product reference field is named productId. Set the property to false to return to the default behavior.

Parent Topic:REST API reference

Product Inventory Open API – DELETE /sn_prd_invt/order/product/{id}

Deletes a specified product inventory record.

URL format

Default URL: /api/sn_prd_invt/order/product/{id}

Supported request parameters

<table class=“rest_api_path_parameters”><thead><tr><th>

Name

</th><th>

Description

</th></tr></thead><tbody><tr><td>

id

</td><td>

Sys_id of the product inventory to delete.Data type: String

Table: Product Inventory [sn_prd_invt_product_inventory]

</td></tr></tbody> </table>|Name|Description| |—-|———–| |None| |

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 204 No Content. Record successfully deleted. 400 Bad Request. A bad request type or malformed request was detected.

Response body parameters (JSON)

|Name|Description| |—-|———–| |None||

cURL request

This example deletes a product inventory record.

curl "https://instance.service-now.com/api/sn_prd_invt/product/01b2f9972b8c72d07a83f395f291bf53" \
--request DELETE \
--header "Accept:application/json" \
--user 'username':'password'

No response body is returned when a product inventory record is successfully deleted.

Product Inventory Open API - GET /sn_prd_invt/product

Retrieves a list of all product inventories.

URL format

Default URL: api/sn_prd_invt/product

Supported request parameters

Name Description None  

<table id=“table_pfr_vgy_fsb” class=“rest_api_query_parameters”><thead><tr><th>

Name

</th><th>

Description

</th></tr></thead><tbody><tr><td>

customer

</td><td>

Filter product inventories by customer. Only product offerings with a customer sys_id or external ID matching the value of this parameter are returned in the response.Data type: String

Default: Don’t filter by customer.

</td></tr><tr><td>

fields

</td><td>

List of fields to return in the response. Invalid fields are ignored.Data type: String

Default: Return all fields.

</td></tr><tr><td>

limit

</td><td>

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

Default: 20

Maximum: 100

</td></tr><tr><td>

offset

</td><td>

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

</td></tr><tr><td>

place

</td><td>

Filter product inventories by location.Data type: Object

"place": {
  "id": "String"
}

</td></tr><tr><td>

place.id

</td><td>

Sys_id or external id of the location associated with the product inventory record.Data type: String

Table: Location [cmn_location]

Field: sys_id or sn_tmt_core_external_id

</td></tr><tr><td>

status

</td><td>

Filter product inventories by status. Only product inventories with a status matching the value of this parameter are returned in the response.Data type: String

Default: Don’t filter by status.

</td></tr></tbody> </table>|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  

<table id=“table_idy_qgm_lsb” class=“rest_api_response_headers”><thead><tr><th>

Header

</th><th>

Description

</th></tr></thead><tbody><tr id=“content-range-row”><td>

Content-Range

</td><td>

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.

</td></tr><tr id=“content-type-row”><td>

Content-Type

</td><td>

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

</td></tr><tr id=“links-pagination-row”><td>

Link

</td><td>

Contains the following links to navigate through query results.- first - last - next - previous

</td></tr><tr id=“x-total-count-row”><td id=“x-total-count”>

X-Total-Count

</td><td>

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

</td></tr></tbody> </table>### 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.

<table id=“table_hl1_rcm_lsb”><thead><tr><th>

Status code

</th><th>

Description

</th></tr></thead><tbody><tr><td>

200

</td><td id=“tmf-get-status-200-entry”>

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

</td></tr><tr><td>

206

</td><td id=“tmf-get-status-206-entry”>

Partial resource returned in response (with pagination).

</td></tr><tr><td>

400

</td><td id=“tmf-get-status-400-entry”>

Bad request. Possible reasons:

  • Invalid path parameter

  • Invalid URI

</td></tr><tr><td>

404

</td><td id=“tmf-get-status-404-entry”>

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

</td></tr></tbody> </table>### Response body parameters (JSON)

<table id=“table_shr_nvy_3sb”><thead><tr><th>

Name

</th><th>

Description

</th></tr></thead><tbody><tr><td>

href

</td><td>

Relative link to the product inventory record.Data type: String

</td></tr><tr><td>

id

</td><td>

Sys_id of the product inventory.Data type: String

Table: Product Inventory [sn_prd_invt_product_inventory]

</td></tr><tr><td>

externalId

</td><td>

External ID of the product inventory.Table: Product Inventory [sn_prd_invt_product_inventory]

Data type: String

</td></tr><tr><td>

name

</td><td>

Name of the product inventory.Data type: String

</td></tr><tr><td>

place

</td><td>

Location of the product.Data type: Array

"place": [
   {
      "id": "String",
      "name": "String"
   }
]

</td></tr><tr><td>

place.id

</td><td>

Location sys_id or external id.Data type: String

Table: Location [cmn_location]

Field: sys_id or sn_tmt_core_external_id

</td></tr><tr><td>

place.name

</td><td>

Name of the location.Data type: String

Table: Location [cmn_location]

Field: name

</td></tr><tr><td>

productCharacteristic

</td><td>

List of product characteristics.For additional information on product characteristics, see Create a product offering category.

Data type: Array of Objects

"productCharacteristic": [
 {
  "name": "String",
  "value": "String",
  "valueType": "String"
 }
]

</td></tr><tr><td>

productCharacteristic.name

</td><td>

Name of the characteristic.Data type: String

</td></tr><tr><td>

productCharacteristic.value

</td><td>

Value of the characteristic.Data type: String

</td></tr><tr><td>

productCharacteristic.valueType

</td><td>

Type of characteristic value.Accepted values:

  • address

  • array.date

  • array.datetime

  • array.decimal

  • array.integer

  • array.object

  • array.single_line_text

  • attachment

  • checkbox

  • choice

  • date

  • date_time

  • decimal

  • duration

  • email

  • integer

  • object

  • single_line_text

  • yes_no

Data type: String

</td></tr><tr><td>

productId

</td><td>

Sys_id of the product model for the product inventory.Data type: String

Table: Product Model [cmdb_model]

</td></tr><tr><td>

productOffering

</td><td>

Product offering that the product inventory is associated with.Data type: Object

"productOffering": {
   "id": "String",
   "internalId": "String",
   "internalVersion": "String",
   "name": "String",
   "version": "String"
}

</td></tr><tr><td>

productOffering.id

</td><td>

Initial version or external ID of the product offering. Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

Field: initial_version or external_id

</td></tr><tr><td>

productOffering.internalId

</td><td>

Internal version of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

Field: internal_version

</td></tr><tr><td>

productOffering.internalVersion

</td><td>

Version of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

Field: version

</td></tr><tr><td>

productOffering.name

</td><td>

Name of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

</td></tr><tr><td>

productOffering.version

</td><td>

External version of the product offering. Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

Field: external_version

</td></tr><tr><td>

productPrice

</td><td>

Returns an empty array.Data type: Array

</td></tr><tr><td>

productRelationship

</td><td>

List of related products.Data type: Array of Objects

"productRelationship": [
  {
    "productId": "String",
    "relationshipType": "String"
  }
]

</td></tr><tr><td>

productRelationship.productId

</td><td>

Sys_id of the related product.Data type: String

Table: Product Inventory [sn_prd_invt_product_inventory]

</td></tr><tr><td>

productRelationship.relationshipType

</td><td>

Type of relationship.Data type: String

</td></tr><tr><td>

productSpecification

</td><td>

Product specification for the product.Data type: Object

"productSpecification": {
  "id": "String",
  "internalId": "String",
  "internalVersion": "String",
  "version": "String"
}

</td></tr><tr><td>

productSpecification.id

</td><td>

Initial version or external ID of the product specification.Data type: String

Table: Product Specification [sn_prd_pm_product_specification]

Field: internal_version or external_id

</td></tr><tr><td>

productSpecification.internalId

</td><td>

Initial version of the product specification.Data type: String

Table: Product Specification [sn_prd_pm_product_specification]

Field: initial_version

</td></tr><tr><td>

productSpecification.internalVersion

</td><td>

Version of the product specification.Data type: String

Table: Product Specification [sn_prd_pm_product_specification]

Field: version

</td></tr><tr><td>

productSpecification.version

</td><td>

External version of the product specification.Data type: String

Table: Product Specification [sn_prd_pm_product_specification]

Field: external_version

</td></tr><tr><td>

realizingResource

</td><td>

Resource that realizes the product. The realizing resource is a child product inventory of this product inventory.Data type: Object

"realizingResource": {
  "id": "String",
  "name": "String",
  "type": "String"
}

</td></tr><tr><td>

realizingResource.id

</td><td>

Sys_id of the realizing resource. Data type: String

Table: Product Inventory [sn_prd_invt_product_inventory]

</td></tr><tr><td>

realizingResource.name

</td><td>

Name of the realizing resource. Data type: String

</td></tr><tr><td>

realizingResource.type

</td><td>

Type of the realizing resource.Valid value: child

Data type: String

</td></tr><tr><td>

realizingService

</td><td>

Service that realizes the product. The realizing service is a child product inventory of this product inventory.Data type: Object

"realizingService": {
  "id": "String",
  "name": "String",
  "type": "String"
}

</td></tr><tr><td>

realizingService.id

</td><td>

Sys_id of the realizing service. Data type: String

Table: Product Inventory [sn_prd_invt_product_inventory]

</td></tr><tr><td>

realizingService.name

</td><td>

Name of the realizing service. Data type: String

Table: Product Inventory [sn_prd_invt_product_inventory]

</td></tr><tr><td>

realizingService.type

</td><td>

Type of the realizing service.Valid value: child

Data type: String

</td></tr><tr><td>

relatedParty

</td><td>

List of parties associated with the ticket.Data type: Array of Objects

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

</td></tr><tr><td>

relatedParty.id

</td><td>

Sys_id of the account or customer contact associated with the ticket.Data type: String

Table: Account [customer_account], Contact [customer_contact], or Consumer [csm_consumer]

</td></tr><tr><td>

relatedParty.@referredType

</td><td>

Type of customer.Possible values:

  • Consumer

  • Customer

  • CustomerContact

Data type: String

</td></tr><tr><td>

state

</td><td>

Current state of the product.Data type: String

</td></tr></tbody> </table>### cURL request

This example retrieves all product inventories.

curl --location --request GET "https://instance.service-now.com/api/sn_prd_invt/product" \
--user 'username':'password'

Response body.

[
  {
    "id": "23562ee2e445b5443110f87235736620",
    "externalId": "LOC-SF-HQ-2026",
    "relatedParty": [
      {
        "id": "9e2fd2ee11b43110f877366201dea674",
        "name": "Startech svcs",
        "@type": "RelatedParty",
        "@referredType": "Customer"
      },
      {
        "id": "dca96eaa11f43110f877366201dea6c1",
        "name": "Alex Star",
        "@type": "RelatedParty",
        "@referredType": "CustomerContact"
      }
    ],
    "name": "test_098 PI0001002",
    "productSpecification": {
      "id": "test_123",
      "name": "test_123",
      "version": "",
      "internalVersion": "1",
      "internalId": "c9b6a51221590f50f877be98c79c230b",
      "@type": "productSpecificationRef"
    },
    "status": "installation_pending",
    "productOffering": {
      "id": "test_123",
      "name": "test_123",
      "version": "",
      "internalVersion": "1",
      "internalId": "0308a5d221590f50f877be98c79c2303",
      "@type": "productOfferingRef"
    },
    "productId": "",
    "place": [
      {
        "id": "6774fee611383110f877366201dea64f",
        "name": "222 Star St, Santa Clara, CA 94560"
      }
    ],
    "productRelationship": [],
    "realizingService": [],
    "realizingResource": [],
    "horizontalRelationship": [],
    "@type": "Product",
    "productPrice": [],
    "href": "/api/sn_prd_invt/product/testt21313",
    "billingAccount": "Not Specified."
  },
  {
    "id": "02917c3577b301108e191e599a5a99cf",
    "relatedParty": [
      {
        "id": "ffc68911c35420105252716b7d40dd55",
        "name": "Funco Intl",
        "@type": "RelatedParty",
        "@referredType": "Customer"
      },
      {
        "id": "eaf68911c35420105252716b7d40ddde",
        "name": "Sally Thomas",
        "@type": "RelatedParty",
        "@referredType": "CustomerContact"
      }
    ],
    "name": "SD WAN Optimization Service PI0000045",
    "productSpecification": {
      "id": "16d79ec3532520103b6bddeeff7b12a6",
      "name": "SD WAN Optimization Service",
      "version": "",
      "internalVersion": "1",
      "internalId": "16d79ec3532520103b6bddeeff7b12a6",
      "@type": "productSpecificationRef"
    },
    "status": "active",
    "productOffering": {
      "id": "ff93e80477f301108b2a1e599a5a9901",
      "name": "Premium SD-WAN Offering",
      "version": "",
      "internalVersion": "2",
      "internalId": "69017a0f536520103b6bddeeff7b127d",
      "@type": "productOfferingRef"
    },
    "productId": "28adfdf15b7520102dff5e92dc81c75d",
    "productCharacteristic": [
      {
        "name": "SSL Optimization",
        "valueType": "Choice",
        "value": "",
        "@type": "productCharacteristicRef"
      },
      {
        "name": "CIFS Optimization",
        "valueType": "Choice",
        "value": "",
        "@type": "productCharacteristicRef"
      }
    ],
    "productRelationship": [],
    "realizingService": [
      {
        "id": "42917c3577b301108e191e599a5a99ee",
        "name": "Deduplication and Compression PI0000046",
        "@type": "realizingServiceRef"
      }
    ],
    "realizingResource": [],
    "horizontalRelationship": [],
    "@type": "Product",
    "productPrice": [],
    "href": "/api/sn_prd_invt/product/02917c3577b301108e191e599a5a99cf",
    "billingAccount": "Not Specified."
  },
  {
    "id": "test_post_new_002",
    "relatedParty": [
      {
        "id": "1d253ada77250110531ba8e48f5a996d",
        "name": "Valeire Hunt",
        "@type": "RelatedParty",
        "@referredType": "Consumer"
      }
    ],
    "name": "test_123 PI0001031 PI0001051",
    "productSpecification": {
      "id": "268b81f621e9c314f877be98c79c2362",
      "name": "test_invt",
      "version": "",
      "internalVersion": "1",
      "internalId": "268b81f621e9c314f877be98c79c2362",
      "@type": "productSpecificationRef"
    },
    "status": "active",
    "productOffering": {
      "id": "",
      "name": "",
      "version": "",
      "internalVersion": "",
      "internalId": "",
      "@type": "productOfferingRef"
    },
    "productId": "027ddeb13710200044e0bfc8bcbe5d00",
    "place": [
      {
        "id": "729fd006212d0fd0f877be98c79c23a8",
        "name": "123"
      }
    ],
    "productRelationship": [],
    "realizingService": [],
    "realizingResource": [
      {
        "id": "c6d1b09f21edc714f877be98c79c236b",
        "name": "test_hunt_2 PI0001047",
        "@type": "realizingResourceRef"
      }
    ],
    "horizontalRelationship": [],
    "@type": "Product",
    "productPrice": [],
    "href": "/api/sn_prd_invt/product/test_post_new_002",
    "billingAccount": "Not Specified."
  }
]

Product Inventory Open API - GET /sn_prd_invt/product/{id}

Retrieves a specified product inventory record.

URL format

Default URL: /api/sn_prd_invt/product/{id}

Supported request parameters

<table id=“table_apt_nkz_gsb” class=“rest_api_path_parameters”><thead><tr><th>

Name

</th><th>

Description

</th></tr></thead><tbody><tr><td>

id

</td><td>

Sys_id of the product inventory to retrieve.Data type: String

Table: Product Inventory [sn_prd_invt_product_inventory]

</td></tr></tbody> </table><table id=“table_pfr_vgy_fsb” class=“rest_api_query_parameters”><thead><tr><th>

Name

</th><th>

Description

</th></tr></thead><tbody><tr><td>

customer

</td><td>

Filter product inventories by customer. Only product offerings with a customer sys_id or external ID matching the value of this parameter are returned in the response.Data type: String

Default: Don’t filer y customer.

</td></tr><tr><td>

fields

</td><td>

List of fields to return in the response. Invalid fields are ignored.Data type: String

Default: All fields returned.

</td></tr><tr><td>

place

</td><td>

Filter product inventories by location.Data type: Object

"place": {
  "id": "String"
}

</td></tr><tr><td>

place.id

</td><td>

Sys_id or external id of the location associated with the product inventory record.Data type: String

Table: Location [cmn_location]

Field: sys_id or sn_tmt_core_external_id

</td></tr><tr><td>

status

</td><td>

Filter product inventories by status. Only product inventories with a status matching the value of this parameter are returned in the response.Data type: String

Default: Don’t filter by status.

</td></tr></tbody> </table>|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-Type Data format of the response body. Only supports application/json.

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.

<table id=“table_nxj_ykz_gsb”><thead><tr><th>

Status code

</th><th>

Description

</th></tr></thead><tbody><tr><td>

200

</td><td>

Request successfully processed.

</td></tr><tr><td>

400

</td><td>

Bad Request. Could be any of the following reasons:

  • Invalid path parameter

  • Invalid URI

</td></tr><tr><td>

404

</td><td>

Record not found. Record associated with the ID is not found in the table.

</td></tr></tbody> </table>### Response body parameters (JSON)

<table id=“table_shr_nvy_3sb”><thead><tr><th>

Name

</th><th>

Description

</th></tr></thead><tbody><tr><td>

billingAccount

</td><td>

Billing account of the product inventory record.Data type: String

</td></tr><tr><td>

externalId

</td><td>

External ID of the product inventory.Table: Product Inventory [sn_prd_invt_product_inventory]

Data type: String

</td></tr><tr><td>

href

</td><td>

Relative link to the product inventory record.Data type: String

</td></tr><tr><td>

id

</td><td>

Sys_id of the product inventoryData type: String

Table: Product Inventory [sn_prd_invt_product_inventory]

</td></tr><tr><td>

name

</td><td>

Name of the product inventory.Data type: String

</td></tr><tr><td>

place

</td><td>

Location of the product.Data type: Array

"place": [
   {
      "id": "String",
      "name": "String"
   }
]

</td></tr><tr><td>

place.id

</td><td>

Location sys_id or external id.Data type: String

Table: Location [cmn_location]

Field: sys_id or sn_tmt_core_external_id

</td></tr><tr><td>

place.name

</td><td>

Name of the location.Data type: String

Table: Location [cmn_location]

Field: name

</td></tr><tr><td>

productCharacteristic

</td><td>

List of product characteristics.For additional information on product characteristics, see Create a product offering category.

Data type: Array of Objects

"productCharacteristic": [
 {
  "name": "String",
  "value": "String",
  "valueType": "String"
 }
]

</td></tr><tr><td>

productCharacteristic.name

</td><td>

Name of the characteristic.Data type: String

</td></tr><tr><td>

productCharacteristic.value

</td><td>

Value of the characteristic.Data type: String

</td></tr><tr><td>

productCharacteristic.valueType

</td><td>

Type of characteristic value.Accepted values:

  • address

  • array.date

  • array.datetime

  • array.decimal

  • array.integer

  • array.object

  • array.single_line_text

  • attachment

  • checkbox

  • choice

  • date

  • date_time

  • decimal

  • duration

  • email

  • integer

  • object

  • single_line_text

  • yes_no

Data type: String

</td></tr><tr><td>

productId

</td><td>

Sys_id of the product model for the product inventory.Data type: String

Table: Product Model [cmdb_model]

</td></tr><tr><td>

productOffering

</td><td>

Product offering that the product inventory is associated with.Data type: Object

"productOffering": {
   "id": "String",
   "internalId": "String",
   "internalVersion": "String",
   "name": "String",
   "version": "String"
}

</td></tr><tr><td>

productOffering.id

</td><td>

Initial version or external ID of the product offering. Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

Field: initial_version or external_id

</td></tr><tr><td>

productOffering.internalId

</td><td>

Internal version of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

Field: internal_version

</td></tr><tr><td>

productOffering.internalVersion

</td><td>

Version of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

Field: version

</td></tr><tr><td>

productOffering.name

</td><td>

Name of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

</td></tr><tr><td>

productOffering.version

</td><td>

External version of the product offering. Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

Field: external_version

</td></tr><tr><td>

productPrice

</td><td>

Returns an empty array.Data type: Array

</td></tr><tr><td>

productRelationship

</td><td>

List of related products.Data type: Array of Objects

"productRelationship": [
  {
    "productId": "String",
    "relationshipType": "String"
  }
]

</td></tr><tr><td>

productRelationship.productId

</td><td>

Sys_id of the related product.Data type: String

Table: Product Inventory [sn_prd_invt_product_inventory]

</td></tr><tr><td>

productRelationship.relationshipType

</td><td>

Type of relationship.Data type: String

</td></tr><tr><td>

productSpecification

</td><td>

Product specification for the product.Data type: Object

"productSpecification": {
  "id": "String",
  "internalId": "String",
  "internalVersion": "String",
  "version": "String"
}

</td></tr><tr><td>

productSpecification.id

</td><td>

Initial version or external ID of the product specification.Data type: String

Table: Product Specification [sn_prd_pm_product_specification]

Field: internal_version or external_id

</td></tr><tr><td>

productSpecification.internalId

</td><td>

Initial version of the product specification.Data type: String

Table: Product Specification [sn_prd_pm_product_specification]

Field: initial_version

</td></tr><tr><td>

productSpecification.internalVersion

</td><td>

Version of the product specification.Data type: String

Table: Product Specification [sn_prd_pm_product_specification]

Field: version

</td></tr><tr><td>

productSpecification.version

</td><td>

External version of the product specification.Data type: String

Table: Product Specification [sn_prd_pm_product_specification]

Field: external_version

</td></tr><tr><td>

realizingResource

</td><td>

Resource that realizes the product. The realizing resource is a child product inventory of this product inventory.Data type: Object

"realizingResource": {
  "id": "String",
  "name": "String",
  "type": "String"
}

</td></tr><tr><td>

realizingResource.id

</td><td>

Sys_id of the realizing resource. Data type: String

Table: Product Inventory [sn_prd_invt_product_inventory]

</td></tr><tr><td>

realizingResource.name

</td><td>

Name of the realizing resource. Data type: String

</td></tr><tr><td>

realizingResource.type

</td><td>

Type of the realizing resource.Valid value: child

Data type: String

</td></tr><tr><td>

realizingService

</td><td>

Service that realizes the product. The realizing service is a child product inventory of this product inventory.Data type: Object

"realizingService": {
  "id": "String",
  "name": "String",
  "type": "String"
}

</td></tr><tr><td>

realizingService.id

</td><td>

Sys_id of the realizing service. Data type: String

Table: Product Inventory [sn_prd_invt_product_inventory]

</td></tr><tr><td>

realizingService.name

</td><td>

Name of the realizing service. Data type: String

Table: Product Inventory [sn_prd_invt_product_inventory]

</td></tr><tr><td>

realizingService.type

</td><td>

Type of the realizing service.Valid value: child

Data type: String

</td></tr><tr><td>

relatedParty

</td><td>

List of parties associated with the ticket.Data type: Array of Objects

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

</td></tr><tr><td>

relatedParty.id

</td><td>

Sys_id of the account or customer contact associated with the ticket.Data type: String

Table: Account [customer_account], Contact [customer_contact], or Consumer [csm_consumer]

</td></tr><tr><td>

relatedParty.type

</td><td>

Type of related party. Value is always Related Party.Data type: String

</td></tr><tr><td>

relatedParty.@referredType

</td><td>

Type of customer, such as a customer or customer contact.Data type: String

</td></tr><tr><td>

status

</td><td>

Current state of the product.Data type: String

</td></tr></tbody> </table>### cURL request

This example retrieves a specified product inventory.

curl -X GET 'https://instance.service-now.com/api/sn_prd_invt/product/037fd87ec3603010abc8b5183c40ddf2' \
--user 'username':'password'

Output:

{
  "id": "209aa30421710354f877be98c79c2364",
  "externalId": "LOC-SF-HQ-2026",
  "relatedParty": [
    {
      "id": "1d253ada77250110531ba8e48f5a996d",
      "name": "Valeire Hunt",
      "@type": "RelatedParty",
      "@referredType": "Consumer"
    }
  ],
  "name": "trert_terewt PI0001072",
  "productSpecification": {
    "id": "e9f13b0421b10354f877be98c79c234e",
    "name": "test_wert",
    "version": "",
    "internalVersion": "1",
    "internalId": "e9f13b0421b10354f877be98c79c234e",
    "@type": "productSpecificationRef"
  },
  "status": "active",
  "productOffering": {
    "id": "9732b34421b10354f877be98c79c2378",
    "name": "test_wert",
    "version": "",
    "internalVersion": "1",
    "internalId": "9732b34421b10354f877be98c79c2378",
    "@type": "productOfferingRef"
  },
  "productId": "ed44fb4821b10354f877be98c79c23c9",
  "productCharacteristic": [
    {
      "name": "ASN Information",
      "valueType": "Object",
      "value": {
        "ASN Type": "",
        "ASN": "65500",
        "Area": "42",
        "Downstream ASNs": []
      },
      "@type": "productCharacteristicRef"
    }
  ],
  "productRelationship": [],
  "realizingService": [
    {
      "id": "848de83d21f18f54f877be98c79c2357",
      "name": "Premium SD-WAN Offering PI0001023 PI0001077",
      "@type": "realizingServiceRef"
    }
  ],
  "realizingResource": [
    {
      "id": "286da0f921f18f54f877be98c79c23b3",
      "name": "SD WAN INVENTORY PI0001076",
      "@type": "realizingResourceRef"
    }
  ],
  "horizontalRelationship": [],
  "@type": "Product",
  "productPrice": [],
  "href": "/api/sn_prd_invt/product/209aa30421710354f877be98c79c2364",
  "billingAccount": "Not Specified."
}

Product Inventory Open API - GET /sn_prd_invt/productinventory

Retrieves a list of all product inventories.

Important: Starting with the Tokyo release, this endpoint is deprecated. The new version of this endpoint is Product Inventory Open API - GET /sn_prd_invt/product.

URL format

Default URL: api/sn_prd_invt/productinventory

Supported request parameters

Name Description None  

<table id=“table_pfr_vgy_fsb” class=“rest_api_query_parameters”><thead><tr><th>

Name

</th><th>

Description

</th></tr></thead><tbody><tr><td>

customer

</td><td>

Filter product inventories by customer. Only product offerings with a customer sys_id or external ID matching the value of this parameter are returned in the response.Data type: String

Default: Don’t filter by customer.

</td></tr><tr><td>

fields

</td><td>

List of fields to return in the response. Invalid fields are ignored.Data type: String

Default: All fields are returned.

</td></tr><tr><td>

limit

</td><td>

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

Default: 20

Maximum: 100

</td></tr><tr><td>

offset

</td><td>

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

</td></tr><tr><td>

place

</td><td>

Filter product inventories by location.Data type: Object

"place": {
  "id": "String"
}

</td></tr><tr><td>

place.id

</td><td>

Sys_id or external id of the location associated with the product inventory record.Data type: String

Table: Location [cmn_location]

Field: sys_id or sn_tmt_core_external_id

</td></tr><tr><td>

status

</td><td>

Filter product inventories by status. Only product inventories with a status matching the value of this parameter are returned in the response.Data type: String

Default: Don’t filter by inventory status.

</td></tr></tbody> </table>|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  

<table id=“table_idy_qgm_lsb” class=“rest_api_response_headers”><thead><tr><th>

Header

</th><th>

Description

</th></tr></thead><tbody><tr id=“content-range-row”><td>

Content-Range

</td><td>

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.

</td></tr><tr id=“content-type-row”><td>

Content-Type

</td><td>

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

</td></tr><tr id=“links-pagination-row”><td>

Link

</td><td>

Contains the following links to navigate through query results.- first - last - next - previous

</td></tr><tr id=“x-total-count-row”><td id=“x-total-count”>

X-Total-Count

</td><td>

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

</td></tr></tbody> </table>### 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.

<table id=“table_hl1_rcm_lsb”><thead><tr><th>

Status code

</th><th>

Description

</th></tr></thead><tbody><tr><td>

200

</td><td id=“tmf-get-status-200-entry”>

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

</td></tr><tr><td>

206

</td><td id=“tmf-get-status-206-entry”>

Partial resource returned in response (with pagination).

</td></tr><tr><td>

400

</td><td id=“tmf-get-status-400-entry”>

Bad request. Possible reasons:

  • Invalid path parameter

  • Invalid URI

</td></tr><tr><td>

404

</td><td id=“tmf-get-status-404-entry”>

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

</td></tr></tbody> </table>### Response body parameters (JSON)

<table id=“table_shr_nvy_3sb”><thead><tr><th>

Name

</th><th>

Description

</th></tr></thead><tbody><tr><td>

externalId

</td><td>

External ID of the product inventory.Table: Product Inventory [sn_prd_invt_product_inventory]

Data type: String

</td></tr><tr><td>

id

</td><td>

Sys_id of the product inventory.Data type: String

Table: Product Inventory [sn_prd_invt_product_inventory]

</td></tr><tr><td>

name

</td><td>

Name of the product inventory.Data type: String

</td></tr><tr><td>

place

</td><td>

Place associated with the product.Data type: Object

"place": {
  "id": "String",
  "name": "String"
}

</td></tr><tr><td>

place.id

</td><td>

Location sys_id or external_id of the product inventory.Table: Location [cmn_location]

Data: String

</td></tr><tr><td>

place.name

</td><td>

Name of the location associated with the product inventory.Table: Location [cmn_location]

Data: String

</td></tr><tr><td>

productCharacteristic

</td><td>

List of product characteristics.For additional information on product characteristics, see Create a product offering category.

Data type: Array of Objects

"productCharacteristic": [
 {
  "name": "String",
  "value": "String",
  "valueType": "String"
 }
]

</td></tr><tr><td>

productCharacteristic.name

</td><td>

Name of the characteristic.Data type: String

</td></tr><tr><td>

productCharacteristic.value

</td><td>

Value of the characteristic.Data type: String

</td></tr><tr><td>

productCharacteristic.valueType

</td><td>

Type of characteristic value.Accepted values:

  • address

  • array.date

  • array.datetime

  • array.decimal

  • array.integer

  • array.object

  • array.single_line_text

  • attachment

  • checkbox

  • choice

  • date

  • date_time

  • decimal

  • duration

  • email

  • integer

  • object

  • single_line_text

  • yes_no

Data type: String

</td></tr><tr><td>

productOffering

</td><td>

Product offering that the product inventory is associated with.Data type: Object

"productOffering": {
  "id": "String",
  "name": "String"
}

</td></tr><tr><td>

productOffering.id

</td><td>

Sys_id of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

</td></tr><tr><td>

productOffering.name

</td><td>

Name of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

</td></tr><tr><td>

productRelationship

</td><td>

List of related products.Data type: Array of Objects

"productRelationship": [
  {
    "productId": "String",
    "relationshipType": "String"
  }
]

</td></tr><tr><td>

productRelationship.productId

</td><td>

Sys_id of the related product.Data type: String

Table: Product Inventory [sn_prd_invt_product_inventory]

</td></tr><tr><td>

productRelationship.relationshipType

</td><td>

Type of relationship.Data type: String

</td></tr><tr><td>

productSpecification

</td><td>

Product specification for the product.Data type: Object

"productSpecification": {
  "id": "String"
}

</td></tr><tr><td>

productSpecification.id

</td><td>

Sys_id of the product specification.Data type: String

Table: Product Specification [sn_prd_pm_product_specification]

</td></tr><tr><td>

realizingResource

</td><td>

Realizing resource.Data type: Object

"realizingResource": {
  "id": "String",
  "type": "String"
}

</td></tr><tr><td>

realizingResource.id

</td><td>

Sys_id of the realizing resource.Data type: String

Table: Product Inventory [sn_prd_invt_product_inventory]

</td></tr><tr><td>

realizingResource.type

</td><td>

Type of the realizing resource.Data type: String

</td></tr><tr><td>

realizingService

</td><td>

Realizing service.Data type: Object

"realizingService": {
  "id": "String",
  "type": "String"
}

</td></tr><tr><td>

realizingService.id

</td><td>

Sys_id of the realizing service.Data type: String

Table: Product Inventory [sn_prd_invt_product_inventory]

</td></tr><tr><td>

realizingService.type

</td><td>

Type of the realizing service.Data type: String

</td></tr><tr><td>

relatedParty

</td><td>

List of parties associated with the ticket.Data type: Array of Objects

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

</td></tr><tr><td>

relatedParty.id

</td><td>

Sys_id of the account or customer contact associated with the ticket.Data type: String

Table: Account [customer_account], Contact [customer_contact] or Consumer [csm_consumer]

</td></tr><tr><td>

relatedParty.@referredType

</td><td>

Type of related party. Value is always Related Party.Data type: String

</td></tr><tr><td>

relatedParty.type

</td><td>

Type of customer.Possible values:

  • consumer

  • customer

  • customerContact

Data type: String

</td></tr><tr><td>

status

</td><td>

Current state of the product.Data type: String

</td></tr></tbody> </table>### cURL request

This example retrieves all product inventories.

curl "https://instance.servicenow.com/api/sn_prd_invt/productinventory" \
--request GET \
--user 'username':'password'

Response body.

[
   {
      "id": "075072aec3a83010abc8b5183c40dd44",
      "externalId": "LOC-SF-HQ-2026",
      "relatedParty": [
         {
            "id": "ffc68911c35420105252716b7d40dd55",
            "name": "Funco Intl",
            "@type": "RelatedParty",
            "@referredType": "Customer"
         },
         {
            "id": "eaf68911c35420105252716b7d40ddde",
            "name": "Sally Thomas",
            "@type": "RelatedParty",
            "@referredType": "CustomerContact"
         }
      ],
      "name": "Firewall Administration PI0000300",
      "productSpecification": {
         "id": "31c5caff07266010a7955b7e0ad3006b",
         "name": "Firewall Administration"
      },
      "status": "Active",
      "productOffering": {
         "id": "",
         "name": ""
      },
      "place": {
         "id": "920cf6ac73d423002728660c4cf6a799",
         "name": "200 South James street,Atlanta, GA"
      },
      "productCharacteristic": [
         {
            "name": "Firewall Administration CPE Type",
            "valueType": "Choice",
            "value": "Physical"
         },
         {
            "name": "Configuration and Policy backup",
            "valueType": "Choice",
            "value": ""
         },
         {
            "name": "Firewall Administration CPE ID",
            "valueType": "Single Line Text",
            "value": "CPE123456789"
         },
         {
            "name": "Remote CLI troubleshoot support",
            "valueType": "Choice",
            "value": ""
         },
         {
            "name": "Firewall Administration CPE Model",
            "valueType": "Choice",
            "value": "9300 series"
         }
      ],
      "productRelationship": [],
      "realizingService": [],
      "realizingResource": [
         {
            "id": "3546463307666010a7955b7e0ad3005d",
            "name": "Cisco Firewall Management system"
         }
      ]
   },
   {
      "id": "0303a8ea74418510f877ca57242ff96d",
      "relatedParty": [
         {
            "id": "ffc68911c35420105252716b7d40dd55",
            "name": "Funco Intl",
            "@type": "RelatedParty",
            "@referredType": "Customer"
         },
         {
            "id": "eaf68911c35420105252716b7d40ddde",
            "name": "Sally Thomas",
            "@type": "RelatedParty",
            "@referredType": "CustomerContact"
         }
      ],
      "name": "SD-WAN Edge Device PI0001114",
      "productSpecification": {
         "id": "39b627aa53702010cd6dddeeff7b1202",
         "name": "SD-WAN Edge Device"
      },
      "status": "Installation Pending",
      "productOffering": {
         "id": "69017a0f536520103b6bddeeff7b127d",
         "name": "Premium SD-WAN Offering"
      },
      "place": "",
      "productCharacteristic": [],
      "productRelationship": [],
      "realizingService": [
         {
            "id": "bf65eadc1b7420106ba59acf034bcb57",
            "name": "SD-WAN Routing"
         },
         {
            "id": "16d79ec3532520103b6bddeeff7b12a6",
            "name": "SD WAN Optimization Service"
         },
         {
            "id": "16d79ec3532520103b6bddeeff7b12a6",
            "name": "SD WAN Optimization Service"
         },
         {
            "id": "bf65eadc1b7420106ba59acf034bcb57",
            "name": "SD-WAN Routing"
         },
         {
            "id": "bf65eadc1b7420106ba59acf034bcb57",
            "name": "SD-WAN Routing"
         },
         {
            "id": "bf65eadc1b7420106ba59acf034bcb57",
            "name": "SD-WAN Routing"
         }
      ],
      "realizingResource": [
         {
            "id": "493fa60b536520103b6bddeeff7b12b6",
            "name": "Customer Premise SD-WAN Router"
         }
      ]
   }
]

Product Inventory Open API - GET /sn_prd_invt/productinventory/{inventoryId}

Retrieves a product inventory.

Important: Starting with the Tokyo release, this endpoint is deprecated. The new version of this endpoint is Product Inventory Open API - GET /sn_prd_invt/product/{id}.

URL format

Default URL: /api/sn_prd_invt/productinventory/{inventoryId}

Supported request parameters

<table id=“table_apt_nkz_gsb” class=“rest_api_path_parameters”><thead><tr><th>

Name

</th><th>

Description

</th></tr></thead><tbody><tr><td>

inventoryId

</td><td>

Sys_id of the product inventory to retrieve.Data type: String

Table: Product Inventory [sn_prd_invt_product_inventory]

</td></tr></tbody> </table><table id=“table_pfr_vgy_fsb” class=“rest_api_query_parameters”><thead><tr><th>

Name

</th><th>

Description

</th></tr></thead><tbody><tr><td>

customer

</td><td>

Filter product inventories by customer. Only product offerings with a customer sys_id or external ID matching the value of this parameter are returned in the response.Data type: String

</td></tr><tr><td>

fields

</td><td>

List of fields to return in the response. Invalid fields are ignored.Data type: String

Default: All fields returned.

</td></tr><tr><td>

place

</td><td>

Filter product inventories by location.Data type: Object

"place": {
  "id": "String"
}

</td></tr><tr><td>

place.id

</td><td>

Sys_id or external id of the location associated with the product inventory record.Data type: String

Table: Location [cmn_location]

Field: sys_id or sn_tmt_core_external_id

</td></tr><tr><td>

status

</td><td>

Filter product inventories by status. Only product inventories with a status matching the value of this parameter are returned in the response.Data type: String

</td></tr></tbody> </table>|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-Type Data format of the response body. Only supports application/json.

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.

<table id=“table_nxj_ykz_gsb”><thead><tr><th>

Status code

</th><th>

Description

</th></tr></thead><tbody><tr><td>

200

</td><td>

Request successfully processed.

</td></tr><tr><td>

400

</td><td>

Bad Request. Could be any of the following reasons: - Invalid path parameter - Invalid URI

</td></tr><tr><td>

404

</td><td>

Record not found. Record associated with the ID is not found in the table.

</td></tr></tbody> </table>### Response body parameters (JSON)

<table id=“table_shr_nvy_3sb”><thead><tr><th>

Name

</th><th>

Description

</th></tr></thead><tbody><tr><td>

externalId

</td><td>

External ID of the product inventory.Table: Product Inventory [sn_prd_invt_product_inventory]

Data type: String

</td></tr><tr><td>

id

</td><td>

Sys_id of the product inventory Data type: String

Table: Product Inventory [sn_prd_invt_product_inventory]

</td></tr><tr><td>

name

</td><td>

Name of the product inventory.Data type: String

</td></tr><tr><td>

place

</td><td>

Place associated with the product.Data type: Object

"place": {
  "id": "String",
  "name": "String"
}

</td></tr><tr><td>

place.id

</td><td>

Location sys_id or external_id of the product inventory.Table: Location [cmn_location]

Data: String

</td></tr><tr><td>

place.name

</td><td>

Name of the location associated with the product inventory.Table: Location [cmn_location]

Data: String

</td></tr><tr><td>

productCharacteristic

</td><td>

List of product characteristics.For additional information on product characteristics, see Create a product offering category.

Data type: Array of Objects

"productCharacteristic": [
 {
  "name": "String",
  "value": "String",
  "valueType": "String"
 }
]

</td></tr><tr><td>

productCharacteristic.name

</td><td>

Name of the characteristic.Data type: String

</td></tr><tr><td>

productCharacteristic.value

</td><td>

Value of the characteristic.Data type: String

</td></tr><tr><td>

productCharacteristic.valueType

</td><td>

Type of characteristic value.Accepted values:

  • address

  • array.date

  • array.datetime

  • array.decimal

  • array.integer

  • array.object

  • array.single_line_text

  • attachment

  • checkbox

  • choice

  • date

  • date_time

  • decimal

  • duration

  • email

  • integer

  • object

  • single_line_text

  • yes_no

Data type: String

</td></tr><tr><td>

productOffering

</td><td>

Product offering that the product inventory is associated with.Data type: Object

"productOffering": {
  "id": "String",
  "name": "String"
}

</td></tr><tr><td>

productOffering.id

</td><td>

Sys_id of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

</td></tr><tr><td>

productOffering.name

</td><td>

Name of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

</td></tr><tr><td>

productRelationship

</td><td>

List of related products.Data type: Array of Objects

"productRelationship": [
  {
    "productId": "String",
    "relationshipType": "String"
  }
]

</td></tr><tr><td>

productRelationship.productId

</td><td>

Sys_id of the related product.Data type: String

Table: Product Inventory [sn_prd_invt_product_inventory]

</td></tr><tr><td>

productRelationship.relationshipType

</td><td>

Type of relationship.Data type: String

</td></tr><tr><td>

productSpecification

</td><td>

Product specification for the product.Data type: Object

"productSpecification": {
  "id": "String"
}

</td></tr><tr><td>

productSpecification.id

</td><td>

Sys_id of the product specification.Data type: String

Table: Product Specification [sn_prd_pm_product_specification]

</td></tr><tr><td>

realizingResource

</td><td>

Realizing resource.Data type: Object

"realizingResource": {
  "id": "String",
  "type": "String"
}

</td></tr><tr><td>

realizingResource.id

</td><td>

Sys_id of the realizing resource.Data type: String

Table: Product Inventory [sn_prd_invt_product_inventory]

</td></tr><tr><td>

realizingResource.type

</td><td>

Type of the realizing resource.Data type: String

</td></tr><tr><td>

realizingService

</td><td>

Realizing service.Data type: Object

"realizingService": {
  "id": "String",
  "type": "String"
}

</td></tr><tr><td>

realizingService.id

</td><td>

Sys_id of the realizing service.Data type: String

Table: Product Inventory [sn_prd_invt_product_inventory]

</td></tr><tr><td>

realizingService.type

</td><td>

Type of the realizing service.Data type: String

</td></tr><tr><td>

relatedParty

</td><td>

List of parties associated with the ticket.Data type: Array of Objects

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

</td></tr><tr><td>

relatedParty.id

</td><td>

Sys_id of the account or customer contact associated with the ticket.Data type: String

Table: Account [customer_account], Contact [customer_contact], or Consumer [csm_consumer]

</td></tr><tr><td>

relatedParty.@referredType

</td><td>

Type of related party. Value is always Related Party.Data type: String

</td></tr><tr><td>

relatedParty.type

</td><td>

Type of customer.Possible values:

  • consumer

  • customer

  • customerContact

Data type: String

</td></tr><tr><td>

status

</td><td>

Current state of the product.Data type: String

</td></tr></tbody> </table>### cURL request

This example retrieves a product inventory for an SD-WAN service package.

curl --location --request GET 'https:// instance.servicenow.com/api/sn_prd_invt/productinventory/074450fc74918d10f877ca57242ff9e3' \
--user 'username':'password'

Output:

{
   "id": "074450fc74918d10f877ca57242ff9e3",
   "externalId": "LOC-SF-HQ-2026",
   "relatedParty": [
      {
         "id": "ffc68911c35420105252716b7d40dd55",
         "name": "Funco Intl",
         "@type": "RelatedParty",
         "@referredType": "Customer"
      },
      {
         "id": "eaf68911c35420105252716b7d40ddde",
         "name": "Sally Thomas",
         "@type": "RelatedParty",
         "@referredType": "CustomerContact"
      }
   ],
   "name": "SD-WAN Service Package PI0001576",
   "productSpecification": {
      "id": "cfe5ef6a53702010cd6dddeeff7b12f6",
      "name": "SD-WAN Service Package"
   },
   "status": "Installation Pending",
   "productOffering": {
      "id": "69017a0f536520103b6bddeeff7b127d",
      "name": "Premium SD-WAN Offering"
   },
   "place": "",
   "productCharacteristic": [],
   "productRelationship": [
      {
         "id": "a74490fc74918d10f877ca57242ff942",
         "name": "SD-WAN Edge Device PI0001582",
         "relationshipType": "Bundles"
      },
      {
         "id": "b85414fc74918d10f877ca57242ff90e",
         "name": "SD-WAN Controller PI0001602",
         "relationshipType": "Bundles"
      },
      {
         "id": "d74490fc74918d10f877ca57242ff907",
         "name": "SD-WAN Security PI0001577",
         "relationshipType": "Bundles"
      }
   ],
   "realizingService": [],
   "realizingResource": []
}

Product Inventory Open API – PATCH /sn_prd_invt/order/product/{id}

Updates a specified product inventory record.

URL format

Default URL: /api/sn_prd_invt/order/product/{id}

Supported request parameters

<table id=“table_vvs_bvr_1hc” class=“rest_api_path_parameters”><thead><tr><th>

Name

</th><th>

Description

</th></tr></thead><tbody><tr><td>

id

</td><td>

Sys_id of the product inventory to update.Data type: String

Table: Product Inventory [sn_prd_invt_product_inventory]

</td></tr></tbody> </table>|Name|Description| |—-|———–| |None| |

<table class=“rest_api_request_body”><thead><tr><th>

Name

</th><th>

Description

</th></tr></thead><tbody><tr><td>

bundle

</td><td>

Flag that indicates whether the product inventory record is part of a bundled product.Valid values:

  • true: Is part of a bundle.

  • false: Isn’t part of a bundle.

Data type: Boolean

</td></tr><tr><td>

name

</td><td>

Name of the product inventory.Data type: String

</td></tr><tr><td>

place

</td><td>

Location of the product.Data type: Array

"place": [
   {
      "id": "String",
      "name": "String"
   }
]

</td></tr><tr><td>

place.id

</td><td>

Location sys_id or external id.Data type: String

Table: Location [cmn_location]

Field: sys_id or sn_tmt_core_external_id

</td></tr><tr><td>

place.name

</td><td>

Name of the location.Data type: String

Table: Location [cmn_location]

Field: name

</td></tr><tr><td>

productOffering

</td><td>

Product offering that the product inventory is associated with.Data type: Object

"productOffering": {
   "@referredType": "String",
   "id": "String",
   "internalId": "String",
   "internalVersion": "String",
   "name": "String",
   "status": "String",
   "version": "String"
}

</td></tr><tr><td>

productOffering.@referredType

</td><td>

This value is always ProductOffering.Data type: String

</td></tr><tr><td>

productOffering.id

</td><td>

Initial version or external ID of the product offering. Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

Field: initial_version or external_id

</td></tr><tr><td>

productOffering.internalId

</td><td>

Internal version of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

Field: internal_version

</td></tr><tr><td>

productOffering.internalVersion

</td><td>

Version of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

Field: version

</td></tr><tr><td>

productOffering.name

</td><td>

Name of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

Field: name

</td></tr><tr><td>

productOffering.status

</td><td>

Status of the product offering.Possible values:

  • archived

  • draft

  • published

  • retired

Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

Field: status

</td></tr><tr><td>

productOffering.version

</td><td>

External version of the product offering. Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

Field: external_version

</td></tr><tr><td>

relatedParty

</td><td>

List of parties associated with the ticket.Data type: Array of Objects

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

</td></tr><tr><td>

relatedParty.@referredType

</td><td>

Type of related party.Possible values:

  • Consumer

  • Customer

  • CustomerContact

Data type: String

</td></tr><tr><td>

relatedParty.@type

</td><td>

This value is always RelatedParty.Data type: String

</td></tr><tr><td>

relatedParty.id

</td><td>

Sys_id of the account or customer contact associated with the ticket.Data type: String

Table: Account [customer_account], Contact [customer_contact], or Consumer [csm_consumer]

</td></tr><tr><td>

relatedParty.name

</td><td>

Name of the of the account or customer contact associated with the ticket.Data type: String

Table: Account [customer_account], Contact [customer_contact], or Consumer [csm_consumer]

</td></tr></tbody> </table>### 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. 404 Not found. The requested item wasn’t found.

Response body parameters (JSON)

<table><thead><tr><th>

Name

</th><th>

Description

</th></tr></thead><tbody><tr><td>

bundle

</td><td>

Flag that indicates whether the product inventory record is part of a bundled product.Valid values:

  • true: Is part of a bundle.

  • false: Isn’t part of a bundle.

Data type: Boolean

</td></tr><tr><td>

name

</td><td>

Name of the product inventory.Data type: String

</td></tr><tr><td>

place

</td><td>

Location of the product.Data type: Array

"place": [
   {
      "id": "String",
      "name": "String"
   }
]

</td></tr><tr><td>

place.id

</td><td>

Location sys_id or external id.Data type: String

Table: Location [cmn_location]

Field: sys_id or sn_tmt_core_external_id

</td></tr><tr><td>

place.name

</td><td>

Name of the location.Data type: String

Table: Location [cmn_location]

Field: name

</td></tr><tr><td>

productOffering

</td><td>

Product offering that the product inventory is associated with.Data type: Object

"productOffering": {
   "@referredType": "String",
   "id": "String",
   "internalId": "String",
   "internalVersion": "String",
   "name": "String",
   "status": "String",
   "version": "String"
}

</td></tr><tr><td>

productOffering.@referredType

</td><td>

This value is always ProductOffering.Data type: String

</td></tr><tr><td>

productOffering.id

</td><td>

Initial version or external ID of the product offering. Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

Field: initial_version or external_id

</td></tr><tr><td>

productOffering.internalId

</td><td>

Internal version of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

Field: internal_version

</td></tr><tr><td>

productOffering.internalVersion

</td><td>

Version of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

Field: version

</td></tr><tr><td>

productOffering.name

</td><td>

Name of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

Field: name

</td></tr><tr><td>

productOffering.status

</td><td>

Status of the product offering.Possible values:

  • archived

  • draft

  • published

  • retired

Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

Field: status

</td></tr><tr><td>

productOffering.version

</td><td>

External version of the product offering. Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

Field: external_version

</td></tr><tr><td>

relatedParty

</td><td>

List of parties associated with the ticket.Data type: Array of Objects

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

</td></tr><tr><td>

relatedParty.@referredType

</td><td>

Type of related party.Possible values:

  • Consumer

  • Customer

  • CustomerContact

Data type: String

</td></tr><tr><td>

relatedParty.@type

</td><td>

This value is always RelatedParty.Data type: String

</td></tr><tr><td>

relatedParty.id

</td><td>

Sys_id of the account or customer contact associated with the ticket.Data type: String

Table: Account [customer_account], Contact [customer_contact], or Consumer [csm_consumer]

</td></tr><tr><td>

relatedParty.name

</td><td>

Name of the of the account or customer contact associated with the ticket.Data type: String

Table: Account [customer_account], Contact [customer_contact], or Consumer [csm_consumer]

</td></tr></tbody> </table>### cURL request

This example updates a product inventory record.

curl "https://instance.service-now.com/api/sn_prd_invt/product/036e506510322250f8777d910acbd77f" \ 
--request PATCH \ 
--header "Accept:application/json" \ 
--header "Content-Type:application/json" \ 
--data "{ 
   \"name\": \"Internet Plan\", 
   \"productOffering\": { 
      \"@referredType\": \"ProductOffering\", 
      \"name\": \"Premium SD-WAN Offering\", 
      \"id\": \"0361dd9fd0a63110f8770dbf976be16f\" 
   }, 
   \"relatedParty\": [ 
      { 
         \"@referredType\": \"CustomerContact\", 
         \"@type\": \"RelatedParty\", 
         \"name\": \"Sally Thomas\", 
         \"id\": \"f3af54c413651200042ab3173244b053\" 
      }, 
      {
         \"@referredType\": \"Customer\", 
         \"@type\": \"RelatedParty\", 
         \"name\": \"Funco Intl\", 
         \"id\": \"ffc68911c35420105252716b7d40dd55\" 
      } 
   ], 
   \"bundle\": false, 
   \"place\": [ 
      { 
         \"id\": \"25ab9c4d0a0a0bb300f7dabdc0ca7c1c\", 
         \"name\": \"100 South Charles Street, Baltimore, MD\" 
      } 
   ] 
}" \ 
--user 'username':'password'

Response body.

{
   "name": "Internet Plan",
   "productOffering": {
      "@referredType": "ProductOffering",
      "name": "Premium SD-WAN Offering",
      "id": "0361dd9fd0a63110f8770dbf976be16f",
      "internalVersion": "1",
      "version": "",
      "status": "published",
      "internalId": "0361dd9fd0a63110f8770dbf976be16f"
   },
   "relatedParty": [
      {
         "@referredType": "CustomerContact",
         "@type": "RelatedParty",
         "name": "Sally Thomas",
         "id": "f3af54c413651200042ab3173244b053"
      },
      {
         "@referredType": "Customer",
         "@type": "RelatedParty",
         "name": "Funco Intl",
         "id": "ffc68911c35420105252716b7d40dd55"
      }
   ],
   "bundle": false,
   "place": [
      {
         "id": "25ab9c4d0a0a0bb300f7dabdc0ca7c1c",
         "name": "100 South Charles Street, Baltimore, MD"
      }
   ],
   "productPrice": [],
   "id": "036e506510322250f8777d910acbd77f",
   "href": "/api/sn_prd_invt/product/036e506510322250f8777d910acbd77f"
}

Product Inventory Open API - POST /sn_prd_invt/product

Creates a product inventory record.

URL format

Default URL: /api/sn_prd_invt/product

Supported request parameters

Name Description None   Name Description None  

<table class=“rest_api_request_body”><thead><tr><th>

Name

</th><th>

Description

</th></tr></thead><tbody><tr><td>

bundle

</td><td>

Flag that indicates whether the product inventory record is part of a bundled product.Valid values:

  • true: Is part of a bundle.

  • false: Isn’t part of a bundle.

Data type: Boolean

Default: false

</td></tr><tr><td>

isBundle

</td><td>

Flag that indicates whether the product inventory record is part of a bundled product.Valid values:

  • true: Is part of a bundle.

  • false: Isn’t part of a bundle.

Data type: Boolean

Default: false

</td></tr><tr><td>

name

</td><td>

Required. Name of the product inventory.Data type: String

</td></tr><tr><td>

pid

</td><td>

Unique identifier for the product inventory from the external system.Data type: String

Default: Blank string

</td></tr><tr><td>

productCharacteristic

</td><td>

List of product characteristics.For additional information on product characteristics, see Create a product offering category.

Data type: Array of Objects

"productCharacteristic": [
 {
  "name": "String",
  "value": "String",
  "valueType": "String"
 }
]

</td></tr><tr><td>

productCharacteristic.name

</td><td>

Name of the characteristic.Data type: String

Default: Blank string

</td></tr><tr><td>

productCharacteristic.value

</td><td>

Value of the characteristic.Data type: String

Default: Blank string

</td></tr><tr><td>

productCharacteristic.valueType

</td><td>

Type of characteristic value.Accepted values:

  • address

  • array.date

  • array.datetime

  • array.decimal

  • array.integer

  • array.object

  • array.single_line_text

  • attachment

  • checkbox

  • choice

  • date

  • date_time

  • decimal

  • duration

  • email

  • integer

  • object

  • single_line_text

  • yes_no

Data type: String

</td></tr><tr><td>

productOffering

</td><td>

Required. Product offering that the product inventory is associated with.Data type: Object

"productOffering": { "id": "String", "internalVersion": "String", "name": "String", "version": "String" }

</td></tr><tr><td>

productOffering.id

</td><td>

Required. Initial_version or external_id of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

</td></tr><tr><td>

productOffering.internalVersion

</td><td>

Version of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

Field: version

</td></tr><tr><td>

productOffering.name

</td><td>

Name of the product offering.Data type: String

Default: Blank string

Table: Product Offering [sn_prd_pm_product_offering]

</td></tr><tr><td>

productOffering.version

</td><td>

External version of the product offering. Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

Field: external_version

</td></tr><tr><td>

productRelationship

</td><td>

List of related products.Data type: Array of Objects

"productRelationship": [
  {
    "productId": "String",
    "relationshipType": "String"
  }
]

</td></tr><tr><td>

productRelationship.productId

</td><td>

Required if using the productRelationship parameter. Sys_id of the related product.Data type: String

Table: Product Inventory [sn_prd_invt_product_inventory]

</td></tr><tr><td>

productRelationship.relationshipType

</td><td>

Type of relationship. The only valid value is child.

Data type: String

Default: Blank string

</td></tr><tr><td>

productSpecification

</td><td>

Required. Product specification for the product.Data type: Object

"productSpecification": {
  "id": "String",
  "internalVersion": "String",
  "version": "String"
}

</td></tr><tr><td>

productSpecification.id

</td><td>

Required. Initial_version or external_id of the product specification.Data type: String

Table: Product Specification [sn_prd_pm_product_specification]

</td></tr><tr><td>

productSpecification.internalVersion

</td><td>

Version of the product specification.Data type: String

Table: Product Specification [sn_prd_pm_product_specification]

Field: version

</td></tr><tr><td>

productSpecification.version

</td><td>

External version of the product specification.Data type: String

Table: Product Specification [sn_prd_pm_product_specification]

Field: external_version

</td></tr><tr><td>

realizingResource

</td><td>

Resource that realizes the product. The realizing resource is a child product inventory of this product inventory.Data type: Object

"realizingResource": {
  "id": "String",
  "name": "String",
  "type": "String"
}

</td></tr><tr><td>

realizingResource.id

</td><td>

Required if using the realizingResource parameter. Sys_id of the realizing resource. Data type: String

</td></tr><tr><td>

realizingResource.type

</td><td>

Type of the realizing resource.Valid value: child

Data type: String

</td></tr><tr><td>

realizingService

</td><td>

Service that realizes the product. The realizing service is a child product inventory of this product inventory.Data type: Object

"realizingService": {
  "id": "String",
  "name": "String",
  "type": "String"
}

</td></tr><tr><td>

realizingService.id

</td><td>

Required if using the realizingService parameter. Sys_id of the realizing service. Data type: String

</td></tr><tr><td>

realizingService.type

</td><td>

Type of the realizing service.Valid value: child

Data type: String

</td></tr><tr><td>

relatedParty

</td><td>

List of parties associated with the ticket.Data type: Array of Objects

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

</td></tr><tr><td>

relatedParty.@referredType

</td><td>

Type of customer.Possible values:

  • consumer

  • customer

  • customer_contact

Data type: String

Default: Blank string

</td></tr><tr><td>

relatedParty.id

</td><td>

Required if using the relatedParty parameter. Sys_id of the account or customer contact associated with the ticket.Data type: String

Table: Account [customer_account], Contact [customer_contact], or Consumer [csm_consumer]

</td></tr><tr><td>

state

</td><td>

Current state of the product.Possible values:

  • active

  • change_pending

  • inactivation_pending

  • inactive

  • installation_pending

Data type: String

Default: installation_pending

</td></tr></tbody> </table>### 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 Content-Type Data format of the response body. Only supports application/json.

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.

<table id=“table_fbw_k3z_gsb”><thead><tr><th>

Status code

</th><th>

Description

</th></tr></thead><tbody><tr><td>

201

</td><td>

Request successfully processed.

</td></tr><tr><td>

400

</td><td>

Bad Request. Could be any of the following reasons: - Empty payload. - Invalid payload. Mandatory field missing: <field name>

</td></tr></tbody> </table>### Response body parameters (JSON)

<table><thead><tr><th>

Name

</th><th>

Description

</th></tr></thead><tbody><tr><td>

bundle

</td><td>

Flag that indicates whether the product inventory record is part of a bundled product.Valid values:

  • true: Is part of a bundle.

  • false: Isn’t part of a bundle.

Data type: Boolean

</td></tr><tr><td>

href

</td><td>

Relative link to the product inventory record.Data type: String

</td></tr><tr><td>

id

</td><td>

Sys_id of the product inventory.Data type: String

Table: Product Inventory [sn_prd_invt_product_inventory]

</td></tr><tr><td>

isBundle

</td><td>

Flag that indicates whether the product inventory record is part of a bundled product.Valid values:

  • true: Is part of a bundle.

  • false: Isn’t part of a bundle.

Data type: Boolean

</td></tr><tr><td>

name

</td><td>

Name of the product inventory.Data type: String

</td></tr><tr><td>

pid

</td><td>

Unique identifier for the product inventory from the external system.Data type: String

</td></tr><tr><td>

productCharacteristic

</td><td>

List of product characteristics.Data type: Array of Objects

"productCharacteristic": [
  {
    "name": "String",
    "value": "String"
  }
]

</td></tr><tr><td>

productCharacteristic.name

</td><td>

Name of the characteristic.Data type: String

</td></tr><tr><td>

productCharacteristic.value

</td><td>

Value of the characteristic.Data type: String

</td></tr><tr><td>

productOffering

</td><td>

Product offering that the product inventory is associated with.Data type: Object

"productOffering": {
   "id": "String",
   "internalId": "String",
   "internalVersion": "String",
   "name": "String",
   "version": "String"
}

</td></tr><tr><td>

productOffering.id

</td><td>

Initial version or external ID of the product offering. Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

Field: initial_version or external_id

</td></tr><tr><td>

productOffering.internalId

</td><td>

Internal version of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

Field: internal_version

</td></tr><tr><td>

productOffering.internalVersion

</td><td>

Version of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

Field: version

</td></tr><tr><td>

productOffering.name

</td><td>

Name of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

</td></tr><tr><td>

productOffering.version

</td><td>

External version of the product offering. Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

Field: external_version

</td></tr><tr><td>

productPrice

</td><td>

Returns an empty array.Data type: Array

</td></tr><tr><td>

productRelationship

</td><td>

List of related products.Data type: Array of Objects

"productRelationship": [
  {
    "productId": "String",
    "relationshipType": "String"
  }
]

</td></tr><tr><td>

productRelationship.productId

</td><td>

Sys_id of the related product.Data type: String

Table: Product Inventory [sn_prd_invt_product_inventory]

</td></tr><tr><td>

productRelationship.relationshipType

</td><td>

Type of relationship.Data type: String

</td></tr><tr><td>

productSpecification

</td><td>

Product specification for the product.Data type: Object

"productSpecification": {
  "id": "String",
  "internalId": "String",
  "internalVersion": "String",
  "version": "String"
}

</td></tr><tr><td>

productSpecification.id

</td><td>

Initial version or external ID of the product specification.Data type: String

Table: Product Specification [sn_prd_pm_product_specification]

Field: internal_version or external_id

</td></tr><tr><td>

productSpecification.internalId

</td><td>

Initial version of the product specification.Data type: String

Table: Product Specification [sn_prd_pm_product_specification]

Field: initial_version

</td></tr><tr><td>

productSpecification.internalVersion

</td><td>

Version of the product specification.Data type: String

Table: Product Specification [sn_prd_pm_product_specification]

Field: version

</td></tr><tr><td>

productSpecification.version

</td><td>

External version of the product specification.Data type: String

Table: Product Specification [sn_prd_pm_product_specification]

Field: external_version

</td></tr><tr><td>

realizingResource

</td><td>

Resource that realizes the product. The realizing resource is a child product inventory of this product inventory.Data type: Object

"realizingResource": {
  "id": "String",
  "name": "String",
  "type": "String"
}

</td></tr><tr><td>

realizingResource.id

</td><td>

Sys_id of the realizing resource. Data type: String

Table: Product Inventory [sn_prd_invt_product_inventory]

</td></tr><tr><td>

realizingResource.type

</td><td>

Type of the realizing resource.Valid value: child

Data type: String

</td></tr><tr><td>

realizingService

</td><td>

Service that realizes the product. The realizing service is a child product inventory of this product inventory.Data type: Object

"realizingService": {
  "id": "String",
  "name": "String",
  "type": "String"
}

</td></tr><tr><td>

realizingService.id

</td><td>

Sys_id of the realizing service. Data type: String

Table: Product Inventory [sn_prd_invt_product_inventory]

</td></tr><tr><td>

realizingService.type

</td><td>

Type of the realizing service.Valid value: child

Data type: String

</td></tr><tr><td>

relatedParty

</td><td>

List of parties associated with the ticket.Data type: Array of Objects

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

</td></tr><tr><td>

relatedParty.@referredType

</td><td>

Type of related party. Value is always Related Party.Data type: String

</td></tr><tr><td>

relatedParty.id

</td><td>

Sys_id of the account or customer contact associated with the ticket.Data type: String

Table:Account [customer_account], Contact [customer_contact], or Consumer [csm_consumer]

</td></tr><tr><td>

relatedParty.type

</td><td>

Type of customer.Possible values:

  • consumer

  • customer

  • customerContact

Data type: String

</td></tr><tr><td>

status

</td><td>

Current state of the product.Data type: String

</td></tr></tbody> </table>### cURL request

This example creates a product inventory for a voice over IP solution for a user.

curl -X POST "https://instance.service-now.com/api/sn_prd_invt/product" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--user "username":"password" \
--data "[
   {
      "pid": "PO-456",
      "description": "inventory description",
      "isBundle": false,
      "name": "Voice Over IP Basic instance for Jean",
      "productOffering": {
         "@referredType": "ProductOffering",
         "name": "Premium SD-WAN Offering",
         "id": "69017a0f536520103b6bddeeff7b127d"
      },
      "productCharacteristic": [],
      "productRelationship": [
         {
            "productId": "fa6d13f45b5620102dff5e92dc81c77f",
            "relationshipType": "child"
         }
      ],
      "realizingService": {
         "id": "fe6d13f45b5620102dff5e92dc81c786",
         "relationshipType": "child"
      },
      "realizingResource": {
         "id": "326d13f45b5620102dff5e92dc81c78c",
         "relationshipType": "child"
      },
      "relatedParty": [
         {
            "@referredType": "CustomerContact",
            "@type": "RelatedParty",
            "name": "Sally Thomas",
            "id": "eaf68911c35420105252716b7d40ddde"
         },
         {
            "@referredType": "Customer",
            "@type": "RelatedParty",
            "name": "Funco Intl",
            "id": "ffc68911c35420105252716b7d40dd55"
         }
      ],
      "productSpecification": {
         "@referredType": "ProductSpecification",
         "@type": null,
         "name": null,
         "id": "3ee1fdb1c3331010d216b5183c40dd81",
         "internalVersion": "1"
      },
      "bundle": false
   }
]"

Response body.

{
   "pid": "PO-456",
   "description": "inventory description",
   "isBundle": false,
   "name": "Voice Over IP Basic instance for Jean",
   "productOffering": {
      "@referredType": "ProductOffering",
      "name": "Premium SD-WAN Offering",
      "id": "69017a0f536520103b6bddeeff7b127d",
      "internalVersion": "1",
      "version": null,
      "status": "published",
      "internalId": "69017a0f536520103b6bddeeff7b127d"
   },
   "productCharacteristic": [],
   "productRelationship": [
      {
         "productId": "fa6d13f45b5620102dff5e92dc81c77f",
         "relationshipType": "child"
      }
   ],
   "realizingService": {
      "id": "fe6d13f45b5620102dff5e92dc81c786",
      "relationshipType": "child"
   },
   "realizingResource": {
      "id": "326d13f45b5620102dff5e92dc81c78c",
      "relationshipType": "child"
   },
   "relatedParty": [
      {
         "@referredType": "CustomerContact",
         "@type": "RelatedParty",
         "name": "Sally Thomas",
         "id": "eaf68911c35420105252716b7d40ddde"
      },
      {
         "@referredType": "Customer",
         "@type": "RelatedParty",
         "name": "Example Company",
         "id": "ffc68911c35420105252716b7d40dd55"
      }
   ],
   "productSpecification": {
      "@referredType": "ProductSpecification",
      "@type": null,
      "name": null,
      "id": "3ee1fdb1c3331010d216b5183c40dd81",
      "internalVersion": "1",
      "version": null,
      "status": "published",
      "internalId": "3ee1fdb1c3331010d216b5183c40dd81"
   },
   "bundle": false,
   "productPrice": [],
   "id": "25b07475471789108761b955d36d439d",
   "href": "/api/sn_prd_invt/product/25b07475471789108761b955d36d439d"
}

Product Inventory Open API - POST /sn_prd_invt/productinventory

Creates a product inventory.

Important: Starting with the Tokyo release, this endpoint is deprecated. The new version of this endpoint is Product Inventory Open API - POST /sn_prd_invt/product.

URL format

Default URL: /api/sn_prd_invt/productinventory

Supported request parameters

Name Description None   Name Description None  

<table class=“rest_api_request_body”><thead><tr><th>

Name

</th><th>

Description

</th></tr></thead><tbody><tr><td>

isBundle

</td><td>

Flag that indicates whether the product inventory record is part of a bundled product.Valid values:

  • true: Is part of a bundle.

  • false: Isn’t part of a bundle.

Data type: Boolean

Default: false

</td></tr><tr><td>

name

</td><td>

Required. Name of the product inventory.Data type: String

</td></tr><tr><td>

pid

</td><td>

Unique identifier for the product inventory from the external system.Data type: String

Default: Blank string

</td></tr><tr><td>

productCharacteristic

</td><td>

List of product characteristics.For additional information on product characteristics, see Create a product offering category.

Data type: Array of Objects

"productCharacteristic": [
 {
  "name": "String",
  "value": "String",
  "valueType": "String"
 }
]

</td></tr><tr><td>

productCharacteristic.name

</td><td>

Name of the characteristic.Data type: String

Default: Blank string

</td></tr><tr><td>

productCharacteristic.value

</td><td>

Value of the characteristic.Data type: String

Default: Blank string

</td></tr><tr><td>

productCharacteristic.valueType

</td><td>

Type of characteristic value.Accepted values:

  • address

  • array.date

  • array.datetime

  • array.decimal

  • array.integer

  • array.object

  • array.single_line_text

  • attachment

  • checkbox

  • choice

  • date

  • date_time

  • decimal

  • duration

  • email

  • integer

  • object

  • single_line_text

  • yes_no

Data type: String

</td></tr><tr><td>

productOffering

</td><td>

Required. Product offering that the product inventory is associated with.Data type: Object

"productOffering": { "id": "String", "name": "String" }

</td></tr><tr><td>

productOffering.id

</td><td>

Required. Sys_id of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

</td></tr><tr><td>

productOffering.name

</td><td>

Name of the product offering.Data type: String

Default: Blank string

Table: Product Offering [sn_prd_pm_product_offering]

</td></tr><tr><td>

productRelationship

</td><td>

List of related products.Data type: Array of Objects

"productRelationship": [
  {
    "productId": "String",
    "relationshipType": "String"
  }
]

</td></tr><tr><td>

productRelationship.productId

</td><td>

Required if using the productRelationship parameter. Sys_id of the related product.Data type: String

Table: Product Inventory [sn_prd_invt_product_inventory]

</td></tr><tr><td>

productRelationship.relationshipType

</td><td>

Type of relationship. The only valid value is child.

Data type: String

Default: Blank string

</td></tr><tr><td>

productSpecification

</td><td>

Required. Product specification for the product.Data type: Object

"productSpecification": {
  "id": "String"
}

</td></tr><tr><td>

productSpecification.id

</td><td>

Required. Sys_id of the product specification.Data type: String

Table: Product Specification [sn_prd_pm_product_specification]

</td></tr><tr><td>

realizingResource

</td><td>

Realizing resource.Data type: Object

"realizingResource": {
  "id": "String",
  "type": "String"
}

</td></tr><tr><td>

realizingResource.id

</td><td>

Required if using the realizingResource parameter. Sys_id of the realizing resource.Data type: String

Table: Product Inventory [sn_prd_invt_product_inventory]

</td></tr><tr><td>

realizingResource.type

</td><td>

Type of the realizing resource.The only valid value is child.

Data type: String

Default: Blank string

</td></tr><tr><td>

realizingService

</td><td>

Realizing service.Data type: Object

"realizingService": {
      "id": "String",
      "type": "String"
}

</td></tr><tr><td>

realizingService.id

</td><td>

Required if using the realizingService parameter. Sys_id of the realizing service.Data type: String

Table: Product Inventory [sn_prd_invt_product_inventory]

</td></tr><tr><td>

realizingService.type

</td><td>

Type of the realizing service.The only valid value is child.

Data type: String

Default: Blank string

</td></tr><tr><td>

relatedParty

</td><td>

List of parties associated with the ticket.Data type: Array of Objects

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

</td></tr><tr><td>

relatedParty.@referredType

</td><td>

Type of customer.Possible values:

  • consumer

  • customer

  • customer_contact

Data type: String

Default: Blank string

</td></tr><tr><td>

relatedParty.id

</td><td>

Required if using the relatedParty parameter. Sys_id of the account or customer contact associated with the ticket.Data type: String

Table: Account [customer_account], Contact [customer_contact], or Consumer [csm_Consumer]

</td></tr><tr><td>

state

</td><td>

Current state of the product.Possible values:

  • active

  • change_pending

  • inactivation_pending

  • inactive

  • installation_pending

Data type: String

Default: installation_pending

</td></tr></tbody> </table>### 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 Content-Type Data format of the response body. Only supports application/json.

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.

<table id=“table_fbw_k3z_gsb”><thead><tr><th>

Status code

</th><th>

Description

</th></tr></thead><tbody><tr><td>

201

</td><td>

Request successfully processed.

</td></tr><tr><td>

400

</td><td>

Bad Request. Could be any of the following reasons: - Empty payload. - Invalid payload. Mandatory field missing: <field name>

</td></tr></tbody> </table>### Response body parameters (JSON)

<table><thead><tr><th>

Name

</th><th>

Description

</th></tr></thead><tbody><tr><td>

id

</td><td>

Sys_id of the product inventory.Data type: String

Table: Product Inventory [sn_prd_invt_product_inventory]

</td></tr><tr><td>

isBundle

</td><td>

Flag that indicates whether the product inventory record is part of a bundled product.Valid values:

  • true: Is part of a bundle.

  • false: Isn’t part of a bundle.

Data type: Boolean

</td></tr><tr><td>

name

</td><td>

Name of the product inventory.Data type: String

</td></tr><tr><td>

pid

</td><td>

Unique identifier for the product inventory from the external system.Data type: String

</td></tr><tr><td>

productCharacteristic

</td><td>

List of product characteristics.Data type: Array of Objects

"productCharacteristic": [
  {
    "name": "String",
    "value": "String"
  }
]

</td></tr><tr><td>

productCharacteristic.name

</td><td>

Name of the characteristic.Data type: String

</td></tr><tr><td>

productCharacteristic.value

</td><td>

Value of the characteristic.Data type: String

</td></tr><tr><td>

productOffering

</td><td>

Product offering that the product inventory is associated with.Data type: Object

"productOffering": {
   "id": "String",
   "name": "String"
}

</td></tr><tr><td>

productOffering.id

</td><td>

Sys_id of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

</td></tr><tr><td>

productOffering.name

</td><td>

Name of the product offering.Data type: String

Table: Product Offering [sn_prd_pm_product_offering]

</td></tr><tr><td>

productRelationship

</td><td>

List of related products.Data type: Array of Objects

"productRelationship": [
  {
    "productId": "String",
    "relationshipType": "String"
  }
]

</td></tr><tr><td>

productRelationship.productId

</td><td>

Sys_id of the related product.Data type: String

Table: Product Inventory [sn_prd_invt_product_inventory]

</td></tr><tr><td>

productRelationship.relationshipType

</td><td>

Type of relationship.Data type: String

</td></tr><tr><td>

productSpecification

</td><td>

Product specification for the product.Data type: Object

"productSpecification": {
  "id": "String"
}

</td></tr><tr><td>

productSpecification.id

</td><td>

Sys_id of the product specification.Data type: String

Table: Product Specification [sn_prd_pm_product_specification]

</td></tr><tr><td>

realizingResource

</td><td>

Realizing resource.Data type: Object

"realizingResource": {
  "id": "String",
  "type": "String"
}

</td></tr><tr><td>

realizingResource.id

</td><td>

Sys_id of the realizing resourceData type: String

Table: Product Inventory [sn_prd_invt_product_inventory]

</td></tr><tr><td>

realizingResource.type

</td><td>

Type of the realizing resource.Data type: String

</td></tr><tr><td>

realizingService

</td><td>

Realizing service.Data type: Object

"realizingService": {
  "id": "String",
  "type": "String"
}

</td></tr><tr><td>

realizingService.id

</td><td>

Sys_id of the realizing service.Data type: String

Table: Product Inventory [sn_prd_invt_product_inventory]

</td></tr><tr><td>

realizingService.type

</td><td>

Type of the realizing service.Data type: String

</td></tr><tr><td>

relatedParty

</td><td>

List of parties associated with the ticket.Data type: Array of Objects

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

</td></tr><tr><td>

relatedParty.id

</td><td>

Sys_id of the account or customer contact associated with the ticket.Data type: String

Table: Account [customer_account], Contact [customer_contact], or Consumer [csm_consumer]

</td></tr><tr><td>

relatedParty.@referredType

</td><td>

Type of customer.Possible values:

  • Consumer

  • Customer

  • CustomerContact

Data type: String

</td></tr><tr><td>

state

</td><td>

Current state of the product.Data type: String

</td></tr></tbody> </table>### cURL request

This example creates a product inventory for a voice over IP solution for a user.

curl --location --request POST "https://instance.servicenow.com/api/sn_prd_invt/productinventory" \
--header "Content-Type: application/json" \
--data-raw '[
    {
        "pid": "demoInventory",
        "description": "inventory description",
        "isBundle": false,
        "name": "Voice Over IP Basic instance for Jean",
        "productOffering": {
            "id": "69017a0f536520103b6bddeeff7b127d",
            "name": "Premium SD-WAN Offering",
            "@referredType": "ProductOffering"
        },
        "productCharacteristic": [
            {
                "name": "CPE Type",
                "valueType": "choice",
                "value": "Virtual"
            },
            {
                "name":"Routing",
                "valueType": "choice",
                "value": "Premium"
            }
        ],
        "productRelationship": [
            {
                "productId": "7e6d13f45b5620102dff5e92dc81c787",
                "relationshipType": "child"
            }
        ],
        "relatedParty": [
            {
                "id": "eaf68911c35420105252716b7d40ddde",
                "name": "Sally Thomas",
                "role": "User",
                "@type": "RelatedParty",
                "@referredType": "CustomerContact"
            },
            {
                "id": "ffc68911c35420105252716b7d40dd55",
                "name": "Funco Intl",
                "@type": "RelatedParty",
                "@referredType": "Customer"
            }
        ],
        "productSpecification": {
            "id": "cfe5ef6a53702010cd6dddeeff7b12f6",
            "@referredType": "ProductSpecification",
            "version": "1"
        }
    }
]'
--user 'username':'password'

Response body.

{
   "pid": "demoInventory",
   "description": "inventory description",
   "isBundle": false,
   "name": "Voice Over IP Basic instance for Jean",
   "productOffering": {
      "id": "69017a0f536520103b6bddeeff7b127d",
      "name": "Premium SD-WAN Offering",
      "@referredType": "ProductOffering"
   },
   "productCharacteristic": [
      {
         "name": "CPE Type",
         "valueType": "choice",
         "value": "Virtual"
      },
      {
         "name": "Routing",
         "valueType": "choice",
         "value": "Premium"
      }
   ],
   "productRelationship": [
      {
         "productId": "7e6d13f45b5620102dff5e92dc81c787",
         "relationshipType": "child"
      }
   ],
   "relatedParty": [
      {
         "id": "eaf68911c35420105252716b7d40ddde",
         "name": "Sally Thomas",
         "role": "User",
         "@type": "RelatedParty",
         "@referredType": "CustomerContact"
      },
      {
         "id": "ffc68911c35420105252716b7d40dd55",
         "name": "Funco Intl",
         "@type": "RelatedParty",
         "@referredType": "Customer"
      }
   ],
   "productSpecification": {
      "id": "cfe5ef6a53702010cd6dddeeff7b12f6",
      "@referredType": "ProductSpecification",
      "version": "1"
   },
   "id": "3ac715c6745d8150f877ca57242ff97a"
}

Keep exploring.

Find another answer, or bring this documentation into your own tools.