Skip to content
Release: Australia · Updated: 2026-03-12 · Official documentation · View source

Product Order Open API

The Product Order Open API provides endpoints that enable a standardized mechanism for placing product orders.

A product order is created based on a product offering that is defined and published in a product catalog. The product offering identifies the product or set of products that are available to a customer and includes the relevant product characteristics that capture the unique options of a product, and other relevant attributes such as pricing, contract terms, and availability.

To access this API, the Order Management for Telecommunications (sn_ind_tmt_orm) plugin must be activated. For more information, see Install Order Management. For information about Order Management tables and roles, see Components installed with Order Management.

This API is provided within the sn_ind_tmt_orm namespace.

The calling user must have the sn_ind_tmt_orm.order_integrator role.

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

The Product Order Open API is a ServiceNow® implementation of the TM Forum Product Ordering Management API Specification. This implementation is based on the TMF622 Product Ordering Management API User Guide v5.0.0, September 2024. The Product Order Open API is conformance certified by TM Forum.

Image omitted: tmf-conformance.png
TMF conformance logo

Parent Topic:REST API reference

Product Order Open API - GET /sn_ind_tmt_orm/order/productOrder

Retrieves all product orders.

This endpoint retrieves order information from the following tables:

  • Customer Order [sn_ind_tmt_orm_order]
  • Order Line Item [sn_ind_tmt_orm_order_line_item]
  • Order Characteristic [sn_ind_tmt_orm_order_characteristic_value]
  • Order Line Item Contact [sn_ind_tmt_orm_order_line_item_contact]
  • Order Line Related Items [sn_ind_tmt_orm_order_line_related_items]

URL format

Default URL: /api/sn_ind_tmt_orm/order/productOrder

Supported request parameters

NameDescription
None 
NameDescription
fieldsList of fields to return in the response. Invalid fields are ignored. Data type: String Default: All fields returned.
limit

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

offsetStarting 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
stateFilter orders by state. Only orders with a state matching the value of this parameter are returned in the response.Data type: String Default: Don't order by state.
NameDescription
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.

HeaderDescription
None 
HeaderDescription
Content-RangeRange of content returned in a paginated call. For example, if offset=2 and limit=3, the value of the Content-Range header is items 3-5.
Content-TypeData format of the response body. Only supports application/json.
X-Total-CountFor paginated queries, this header specifies the total number of records available on the server.

Status codes

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

Status codeDescription
200Request successfully processed. Full resource returned in response \(no pagination\).
206Partial resource returned in response \(with pagination\).
400Bad request. Possible reasons: - Invalid path parameter - Invalid URI
404Record not found. No records matching the query parameters are found in the table.

Response body parameters (JSON)

NameDescription
channelList of channels to use for selling the products. Data type: Array of Objects
"channel": [
  {
    "id": "String",
    "name": "String"
  }
]
channel.idUnique identifier of the channel to use to sell the associated products. Data type: String
channel.nameName of the channel to use to sell the associated products. Data type: String
committedDueDate

Date and time when the action must be performed on the order.

This value must be the same as or later than the committedDueDate values for each order line item.

Data type: String

expectedCompletionDateDate on which the order will be completed.Data type: String
hrefRelative link to the product order record.Data type: String
idSys\_id of the product order. Data type: String
noteOptional. List of additional notes made by the customer when ordering. Data type: Array of Objects
"note": [
  {
    "author": "String",
    "date": "String",
    "text": "String"
  }
]
note.authorUser name of the person that authored the associated note.Data type: String
note.dateDate that the note was created.Data type: String
note.textAdditional notes/comments made by the customer while ordering. Data type: String
orderCurrencyCurrency code for the order and order line items.Data type: String
ponrFlag that indicates whether the point of no return for the order has been reached.Possible values: - true: The point of no return for the order has been reached. - false: The point of no return for the order hasn't been reached. Data type: Boolean
productOrderItemList that describes items associated with the product order and their associated action. Data type: Array of Objects
"productOrderItem:" [
  {
    "action": "String",
    "committedDueDate": "String",
    "externalProductInventory": [Array],
    "id": "String",
    "itemPrice": [Array],
    "product": {Object},
    "productOffering": {Object},
    "productOrderItemReleationship": [Array],
    "quantity": Number,
    "state": "String",
    "@type": "String"
  }
]
productOrderItem.actionAction to carry out on the product. Possible actions are defined on the Choice List tab in the Action Dictionary Entry of the sn\_ind\_tmt\_orm\_order\_line\_item table. Data type: String
productOrderItem.actionReasonReason for adding the order line item.Data type: String Stored in: The action\_reason field of the sn\_ind\_tmt\_orm\_order\_line\_item table.
productOrderItem.committedDueDateOptional. Date and time when the action must be performed on the order line item. Data type: String
productOrderItem.externalProductInventory

Conditional. List of external IDs mapped to the product inventories created for the order. If supplied, each entry requires externalProductInventoryId.Data type: Array of Objects

"externalProductInventory": [
  {
    "externalProductInventoryId": "String"
  }
]
productOrderItem.externalProductInventory.externalProductInventoryIdExternal ID mapped to the product inventory.Data type: String
productOrderItem.idUnique identifier of the line item. Located in the sn\_ind\_tmt\_orm\_external\_id field of the Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\] table. Data type: String
productOrderItem.itemPriceList that describes the price associated with the product. Data type: Array of Objects ``` "itemPrice": [ { "price": {Object}, "priceType": "String", "recurringChargePeriod": "String" } ]
</td></tr><tr><td>

productOrderItem.itemPrice.price

</td><td>

Description of the price of the associated product. Data type: Object

 ```
"price": {
  "taxIncludedAmount": {Object}
}
productOrderItem.itemPrice.price.taxIncludedAmountDescription of the price of the associated product, including the tax. Data type: Object ``` "taxIncludedAmount": { "unit": "String", "value": Number }
</td></tr><tr><td>

productOrderItem.itemPrice.price.taxIncludedAmount.unit

</td><td>

Currency code in which the price is depicted. Data type: String

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

productOrderItem.itemPrice.price.taxIncludedAmount.value

</td><td>

Price of product, including any tax. Data type: Number

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

productOrderItem.itemPrice.priceType

</td><td>

Type of item price, recurring or non-recurring. Data type: String

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

productOrderItem.itemPrice.recurringChargePeriod

</td><td>

If the price is recurring, the recurring period, such as `month`. Data type: String

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

productOrderItem.ponr

</td><td>

Flag that indicates whether the point of no return for the order has been reached.Possible values:

-   true: The point of no return for the order has been reached.
-   false: The point of no return for the order hasn't been reached.

Data type: Boolean

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

productOrderItem.product

</td><td>

Description of the instance details of the product purchased by the customer. Data type: Object

 ```
"product:" {
  "place": {Object},
  "productCharacteristic": [Array],
  "productRelationship": [Array],
  "productSpecification": {Object},
  "relatedParty": {Object},
  "@type": "String"
}
productOrderItem.product.placeMaps of the locations on which to install the product. Data type: Object ``` "place": { "id": "String", "@type": "String" }
</td></tr><tr><td>

productOrderItem.product.place.id

</td><td>Sys_id of the associated location record in the Location [cmn_location] table. When employing the change action on a product order item (via the<strong>productOrderItem.action</strong> parameter), updating the request with a new place sys_id creates a move order, where the order is not changed but is fulfilled in a new location. Data type: String</td></tr><tr><td>

productOrderItem.product.place.@type

</td><td>

Part of TMF Open API standard. Annotation for order line item contact. This value is always `Place`. This information is not stored. Data type: String

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

productOrderItem.product.productCharacteristic

</td><td><p>List of characteristics of the associated product. Only product characteristics whose <strong>value</strong> are different than the <strong>previousValue</strong> are returned.</p>
<p>Data type: Array of Objects</p>
<div class="highlight"><pre><span></span><code>&quot;productCharacteristic&quot;: [ 
 {
  &quot;name&quot;: &quot;String&quot;,
  &quot;previousValue&quot;: &quot;String&quot;,
  &quot;value&quot;: &quot;String&quot;,
  &quot;valueType&quot;: &quot;String&quot;
 }
]
</code></pre></div></td></tr><tr><td>

productOrderItem.product.productCharacteristic.name

</td><td>

Name of the characteristic record to associate with the product. Located in the Characteristic \[sn\_prd\_pm\_characteristic\] table. Data type: String

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

productOrderItem.product.productCharacteristic.previousValue

</td><td>Previous characteristic option values if the update is for a change order. The request is a change order if the <strong>productOrderItem.action</strong> parameter is other than <code>add</code>. For additional information on characteristic option values, see <a href="../../../order-management/som-product-config-add-characteristics/">Create product characteristics and characteristic options</a>. Data type: String</td></tr><tr><td>

productOrderItem.product.productCharacteristic.value

</td><td>

Characteristic option values associated with the product. For additional information on characteristic option values, see <a href="../../../order-management/som-product-config-add-characteristics/">Create product characteristics and characteristic options</a>. Data type: String

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

productOrderItem.product.productCharacteristic.valueType

</td><td>

Type of characteristic value.Possible values:

-   Array.Date
-   Array.Datetime
-   Array.Decimal
-   Array.Integer
-   Array.Object
-   Array.Single Line Test
-   Checkbox
-   Choice
-   Date,Address
-   Email
-   Integer,Date/time
-   Object
-   Single Line Text
-   Yes/No

Data type: String

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

productOrderItem.product.productRelationship

</td><td>

List of product relationship details for an order line item.Data type: Array of Objects
"productRelationship": [ { "id": "String", "relationshipType": "String" } ]
</td></tr><tr><td>

productOrderItem.product.productRelationship.id

</td><td>

Sys\_id or sn\_prd\_invt\_external\_id of the product inventory.Data type: String

Table: In the sys\_id or sn\_prd\_invt\_external\_id field of the Product Inventory \[sn\_prd\_invt\_product\_inventory\] table.

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

productOrderItem.product.productRelationship.relationshipType

</td><td>

Type of relationship between the order line item and the product inventory.Possible value: Requires

Data type: String

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

productOrderItem.product.productSpecification

</td><td>

Description of the product specification associated with the product. Data type: Object
"productSpecification:" { "id": "String", "internalId": "String", "internalVersion": "String", "name": "String", "version": "String", "@type": "String" }
</td></tr><tr><td>

productOrderItem.product.productSpecification.id

</td><td>

Initial\_version or external\_id of the product specification. The initial\_version is the sys\_id of the first version of the specification. Located in the sys\_id or external\_id field of the Product Specification \[sn\_prd\_pm\_product\_specification\] table. Data type: String

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

productOrderItem.product.productSpecification.internalId

</td><td>

Initial version of the product specification. The initial version is the sys\_id of the first version of the specification.Data type: String

Table: Product Specification \[sn\_prd\_pm\_product\_specification\]

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

productOrderItem.product.productSpecification.internalVersion

</td><td>

Version of the product specification.Data type: String

Table: In the version field of the Product Specification \[sn\_prd\_pm\_product\_specification\] table.

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

productOrderItem.product.productSpecification.name

</td><td>

Name of the product specification. Located in the Product Specification \[sn\_prd\_pm\_product\_specification\] table. Data type: String

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

productOrderItem.product.productSpecification.version

</td><td>

External version of the product specification.Data type: String

Table: In the external\_version field of the Product Specification \[sn\_prd\_pm\_product\_specification\] table.

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

productOrderItem.product.productSpecification.@type

</td><td>

Part of the TMF Open API standard. This value is always `ProductSpecificationRef`. This information is not stored. Data type: String

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

productOrderItem.product.relatedParty

</td><td>

Optional. List of contacts for line items. Data type: Array of Objects
"relatedParty:" [ { "email": "String", "firstName": "String", "id": "String", "lastName": "String", "phone": "String", "@referredType": "String", "@type": "String" } ]
</td></tr><tr><td>

productOrderItem.product.relatedParty.email

</td><td>

Email address of the contact. Data type: String

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

productOrderItem.product.relatedParty.firstName

</td><td>

First name of the contact. Data type: String

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

productOrderItem.product.relatedParty.id

</td><td>

Required. Sys\_id of the line item contact associated with the order line item. Located in the Order Line Item Contact \[sn\_ind\_tmt\_orm\_order\_line\_item\_contact\] table. Data type: String

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

productOrderItem.product.relatedParty.lastName

</td><td>

Last name of the contact. Data type: String

Data type: String

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

productOrderItem.product.relatedParty.phone

</td><td>

Business phone number of the contact. Data type: String

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

productOrderItem.product.relatedParty.@referredType

</td><td>

Type of customer. Possible value: OrderLineItemContact

Data type: String

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

productOrderItem.product.relatedParty.@type

</td><td>

Part of TMF Open API standard. Annotation for order line item contact. This value is always `RelatedParty`. This information is not stored. Data type: String

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

productOrderItem.productOffering

</td><td>

Description of the product offering associated with the product. Data type: Object
"productOffering:" { "id": "String", "internalId": "String", "internalVersion": "String", "name": "String", "version": "String" }
</td></tr><tr><td>

productOrderItem.productOffering.id

</td><td>

Initial\_version or external\_id of the product offering. The initial\_version is the sys\_id of the first version of the offering. Located in the sys\_id or external\_id field of the Product Offering \[sn\_prd\_pm\_product\_offering\] table. Data type: String

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

productOrderItem.productOffering.internalId

</td><td>

Initial version of the product offering. The initial version is the sys\_id of the first version of the offering.Data type: String

Table: Product Offering \[sn\_prd\_pm\_product\_offering\]

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

productOrderItem.productOffering.internalVersion

</td><td>

Version of the product offering.Data type: String

Table: Product Offering \[sn\_prd\_pm\_product\_offering\] table, field version.

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

productOrderItem.productOffering.name

</td><td>

Name of the product offering. Located in the Product Offering \[sn\_prd\_pm\_product\_offering\] table. Data type: String

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

productOrderItem.productOffering.version

</td><td>

External version of the product offering.Data type: String

Table: In the external\_version field of the Product Offering \[sn\_prd\_pm\_product\_offering\] table.

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

productOrderItem.quantity

</td><td>

Number of product items purchased.Data type: Number

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

productOrderItem.productOrderItemRelationship

</td><td><p>Conditional. Item-level relationships. If supplied, each entry requires an <strong>id</strong> and <strong>relationshipType</strong>. Data type: Array of Objects</p>
<div class="highlight"><pre><span></span><code>&quot;productOrderItemRelationship&quot;: [
  {
    &quot;id&quot;: &quot;String&quot;,
    &quot;relationshipType&quot;: &quot;String&quot;
  }
]
</code></pre></div></td></tr><tr><td>

productOrderItem.productOrderItemRelationship.id

</td><td>

Unique identifier of the related line item. Located in the sn\_ind\_tmt\_orm\_external\_id field of the Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\] table. Data type: String

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

productOrderItem.productOrderItemRelationship.relationshipType

</td><td>

Required. Type of relationship between the two line items. This information is used to identify the relationship hierarchy. Possible values:

-   HasChild
-   HasParent
-   Requires

`HasChild` and `HasParent` are used for parent/child relationships. `Requires` is used for horizontal relationships \(a line item requires another line item\).

Data type: String

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

productOrderItem.state

</td><td>

State of the order of the associated product item.Data type: String

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

productOrderItem.version

</td><td>

Order version.Data type: String

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

productOrderItem.@type

</td><td>

Part of TMF Open API standard. Annotation for the product. This value is always `ProductOrderItem`. This information is not stored.Data type: String

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

relatedParty

</td><td>

List of contacts for the order. Each contact is an object in the array. Must list at least one item which contains customer account or consumer account information. Data type: Array of Objects
"relatedParty:" [ { "id": "String", "name": "String", "@referredType": "String", "@type": "String" } ]
</td></tr><tr><td>

relatedParty.id

</td><td>

Sys\_id or external\_id of the account, customer contact, or consumer associated with the order. Located in the Account \[customer\_account\], Contact \[customer\_contact\] table, or Consumer \[csm\_consumer\] table. Data type: String

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

relatedParty.name

</td><td>

Name of the account, customer, or consumer.Data type: String

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

relatedParty.@referredType

</td><td>

Type of customer. Possible values:

-   Consumer
-   Customer
-   CustomerContact

Data type: String

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

relatedParty.@type

</td><td>

Part of TMF Open API standard. Annotation for the product. This value is always `RelatedParty`. This information is not stored. Data type: String

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

requestedCompletionDate

</td><td>

Optional. Delivery date requested by the customer. Data type: String

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

requestedStartDate

</td><td>

Optional. Order start date requested by the customer. Data type: String

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

state

</td><td>

Current state of the order. Data type: String

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

version

</td><td>

Order version.Data type: String

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

@type

</td><td>

Part of TMF Open API standard. Annotation for the product. This value is always `ProductOrder`. This information is not stored.Data type: String

</td></tr></tbody>
</table>

### cURL request

This example retrieves all product orders.
curl --location --request GET 'https://instance.service-now.com/api/sn_ind_tmt_orm/order/productOrder' \ --user 'username':'password'
Response body.
[ { "id": "8d75939453126010a795ddeeff7b126a", "href": "/api/sn_ind_tmt_orm/order/productOrder/8d75939453126010a795ddeeff7b126a", "ponr": "false", "orderCurrency": "USD", "expectedCompletionDate": "2021-05-02T08:13:59.000Z", "requestedCompletionDate": "2021-05-02T08:13:59.000Z", "requestedStartDate": "2020-05-03T08:13:59.000Z", "channel": [ { "id": "1", "name": "Agent Assist" } ], "note": [ { "author": "System Administrator", "date": "2021-02-25T14:22:07.000Z", "text": "This is a TMF product order illustration no 2" }, { "author": "System Administrator", "date": "2021-02-25T14:22:06.000Z", "text": "This is a TMF product order illustration" } ], "productOrderItem": [ { "id": "POI130", "ponr": "false", "quantity": 1, "action": "add", "actionReason": "adding service package OLI", "itemPrice": [ { "priceType": "recurring", "price": { "taxIncludedAmount": { "unit": "USD", "value": 20 } } }, { "priceType": "nonRecurring", "price": { "taxIncludedAmount": { "unit": "INR", "value": 0 } } } ], "product": { "@type": "Product", "productCharacteristic": [ { "name": "Security Type", "valueType": "Choice", "value": "Base", "previousValue": "" } ], "productSpecification": { "id": "a6514bd3534560102f18ddeeff7b1247", "name": "SD-WAN Security", "version": "v1", "internalVersion": "1", "internalId": "a6514bd3534560102f18ddeeff7b1247", "@type": "ProductSpecificationRef" }, "relatedParty": [ { "id": "4175939453126010a795ddeeff7b127d", "name": "John Smith", "email": "abc2@example.com", "phone": "32456768", "@type": "RelatedParty", "@referredType": "OrderLineItemContact" }, { "id": "c175939453126010a795ddeeff7b127c", "name": "Joe Doe", "email": "abc@example.com", "phone": "1234567890", "@type": "RelatedParty", "@referredType": "OrderLineItemContact" } ] }, "productOffering": { "id": "69017a0f536520103b6bddeeff7b127d", "name": "Premium SD-WAN Offering", "version": "v1", "internalId": "69017a0f536520103b6bddeeff7b127d", "internalVersion": "1" }, "productOrderItemRelationship": [ { "id": "POI100", "relationshipType": "HasParent" } ], "state": "in_progress", "version": "1", "@type": "ProductOrderItem" }, { "id": "POI100", "ponr": "false", "quantity": 1, "action": "add", "itemPrice": [ { "priceType": "recurring", "price": { "taxIncludedAmount": { "unit": "INR", "value": 0 } } }, { "priceType": "nonRecurring", "price": { "taxIncludedAmount": { "unit": "INR", "value": 0 } } } ], "product": { "@type": "Product", "productSpecification": { "id": "cfe5ef6a53702010cd6dddeeff7b12f6", "name": "SD-WAN Service Package", "version": "v1", "internalVersion": "1", "internalId": "cfe5ef6a53702010cd6dddeeff7b12f6", "@type": "ProductSpecificationRef" } }, "productOffering": { "id": "69017a0f536520103b6bddeeff7b127d", "name": "Premium SD-WAN Offering", "version": "v1", "internalId": "69017a0f536520103b6bddeeff7b127d", "internalVersion": "1" }, "productOrderItemRelationship": [ { "id": "POI130", "relationshipType": "HasChild" }, { "id": "POI120", "relationshipType": "HasChild" }, { "id": "POI110", "relationshipType": "HasChild" } ], "state": "in_progress", "version": "1", "@type": "ProductOrderItem" }, { "id": "POI120", "ponr": "false", "quantity": 1, "action": "add", "itemPrice": [ { "priceType": "recurring", "price": { "taxIncludedAmount": { "unit": "USD", "value": 20 } } }, { "priceType": "nonRecurring", "price": { "taxIncludedAmount": { "unit": "INR", "value": 0 } } } ], "product": { "@type": "Product", "productCharacteristic": [ { "name": "CPE Type", "valueType": "Choice", "value": "Physical", "previousValue": "" }, { "name": "WAN Optimization", "valueType": "Choice", "value": "Advance", "previousValue": "" }, { "name": "Routing", "valueType": "Choice", "value": "Premium", "previousValue": "" }, { "name": "CPE Model", "valueType": "Choice", "value": "ASR", "previousValue": "" } ], "productSpecification": { "id": "39b627aa53702010cd6dddeeff7b1202", "name": "SD-WAN Edge Device", "version": "v1", "internalVersion": "1", "internalId": "39b627aa53702010cd6dddeeff7b1202", "@type": "ProductSpecificationRef" }, "productRelationship": [ { "id": "326d13f45b5620102dff5e92dc81c785", "relationshipType": "Requires" } ] }, "productOffering": { "id": "69017a0f536520103b6bddeeff7b127d", "name": "Premium SD-WAN Offering", "version": "v1", "internalVersion": "1", "internalId": "69017a0f536520103b6bddeeff7b127d" }, "productOrderItemRelationship": [ { "id": "POI100", "relationshipType": "HasParent" }, { "id": "POI110", "relationshipType": "Requires" } ], "state": "in_progress", "version": "1", "@type": "ProductOrderItem" }, { "id": "POI110", "ponr": "false", "quantity": 1, "action": "add", "itemPrice": [ { "priceType": "recurring", "price": { "taxIncludedAmount": { "unit": "INR", "value": 0 } } }, { "priceType": "nonRecurring", "price": { "taxIncludedAmount": { "unit": "USD", "value": 5 } } } ], "product": { "@type": "Product", "productCharacteristic": [ { "name": "Tenancy", "valueType": "Choice", "value": "Base (10 site)", "previousValue": "" } ], "productSpecification": { "id": "216663aa53702010cd6dddeeff7b12b5", "name": "SD-WAN Controller", "version": "v1", "internalVersion": "1", "internalId": "216663aa53702010cd6dddeeff7b12b5", "@type": "ProductSpecificationRef" }, "place": { "id": "25ab9c4d0a0a0bb300f7dabdc0ca7c1c", "@type": "Place" } }, "productOffering": { "id": "69017a0f536520103b6bddeeff7b127d", "name": "Premium SD-WAN Offering", "version": "v1", "internalId": "69017a0f536520103b6bddeeff7b127d", "internalVersion": "1" }, "productOrderItemRelationship": [ { "id": "POI100", "relationshipType": "HasParent" } ], "state": "in_progress", "version": "1", "@type": "ProductOrderItem" } ], "relatedParty": [ { "id": "eaf68911c35420105252716b7d40ddde", "name": "Sally Thomas", "@type": "RelatedParty", "@referredType": "CustomerContact" }, { "id": "ffc68911c35420105252716b7d40dd55", "name": "Funco Intl", "@type": "RelatedParty", "@referredType": "Customer" }, { "id": "59f16de1c3b67110ff00ed23a140dd9e", "name": "Funco External", "@type": "RelatedParty", "@referredType": "Consumer" } ], "state": "in_progress", "version": "1", "@type": "ProductOrder" } ]
## Product Order Open API - GET /sn\_ind\_tmt\_orm/productorder

Retrieves all product orders.

**Important:** Starting with the Tokyo release, this endpoint is deprecated. The new version of this endpoint is [Product Order Open API - GET /sn\_ind\_tmt\_orm/order/productOrder](tmf622_product_ordering-api.md).

This endpoint retrieves order information from the following tables:

-   Customer Order \[sn\_ind\_tmt\_orm\_order\]
-   Order Characteristic \[sn\_ind\_tmt\_orm\_order\_characteristic\_value\]
-   Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\]
-   Order Line Item Contact \[sn\_ind\_tmt\_orm\_order\_line\_item\_contact\]

### URL format

Default URL: `/api/sn_ind_tmt_orm/productorder`

### 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>

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>

limit

</td><td><p>Maximum number of records to return. For requests that exceed this number of records, use the <strong>offset</strong> parameter to paginate record retrieval. Data type: Number</p>
<p>Default: 20</p>
<p>Maximum: 100</p></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>

state

</td><td>

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

Default: All states returned.

</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](../rest-api-explorer/c_RESTAPI.md).

|Header|Description|
|------|-----------|
|None| |

<table id="table_h4r_fxr_nsb" 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 <code>offset=2</code> and <code>limit=3</code>, the value of the <strong>Content-Range</strong> header is <code>items 3-5</code>.</td></tr><tr id="content-type-row"><td>

Content-Type

</td><td>Data format of the response body. Only supports <strong>application/json</strong>.</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](../rest-api-explorer/c_RESTAPI.md).

<table id="table_wdl_3xr_nsb"><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_inf_kxr_nsb"><thead><tr><th>

Name

</th><th>

Description

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

channel

</td><td>

List of channels to use for selling the products. Data type: Array of Objects
"channel": [ { "id": "String", "name": "String" } ]
</td></tr><tr><td>

channel.id

</td><td>

Unique identifier of the channel to use to sell the associated products. Data type: String

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

channel.name

</td><td>

Name of the channel to use to sell the associated products. Data type: String

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

expectedCompletionDate

</td><td>

Date on which the order will be completed.Data type: String

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

note

</td><td>

Optional. List of additional notes made by the customer when ordering. Data type: Array of Objects
"note": { "author": "String", "date": "String", "text": "String" }
</td></tr><tr><td>

note.author

</td><td>

User name of the person that authored the associated note.Data type: String

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

note.date

</td><td>

Date that the note was created.Data type: String

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

note.text

</td><td>

Additional notes/comments made by the customer while ordering. Data type: String

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

ponr

</td><td>

Flag that indicates whether the point of no return for the order has been reached.Possible values:

-   true: The point of no return for the order has been reached.
-   false: The point of no return for the order hasn't been reached.

Data type: Boolean

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

productOrderItem

</td><td>

List that describes items associated with the product order and their associated action. Data type: Array of Objects
"productOrderItem:" [ { "action": "String", "actionReason": "String", "id": "String", "itemPrice": [Array], "product": {Object}, "productOffering": {Object}, "productOrderItemReleationship": [Array], "quantity": Number, "state": "String", "@type": "String" } ]
</td></tr><tr><td>

productOrderItem.action

</td><td>

Action to carry out on the product. Possible actions are defined on the Choice List tab in the Action Dictionary Entry of the sn\_ind\_tmt\_orm\_order\_line\_item table. Data type: String

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

productOrderItem.actionReason

</td><td>

Reason for adding the order line item.Data type: String

Stored in: The action\_reason field of the sn\_ind\_tmt\_orm\_order\_line\_item table.

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

productOrderItem.id

</td><td>

Unique identifier of the line item. Located in the sn\_ind\_tmt\_orm\_external\_id field of the Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\] table. Data type: String

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

productOrderItem.itemPrice

</td><td>

List that describes the price associated with the product. Data type: Array of Objects
"itemPrice": [ { "price": {Object}, "priceType": "String", "recurringChargePeriod": "String" } ]
</td></tr><tr><td>

productOrderItem.itemPrice.price

</td><td>

Description of the price of the associated product. Data type: Object
"price": { "taxIncludedAmount": {Object} }
</td></tr><tr><td>

productOrderItem.itemPrice.price.taxIncludedAmount

</td><td>

Description of the price of the associated product, including the tax. Data type: Object
"taxIncludedAmount": { "unit": "String", "value": Number }
</td></tr><tr><td>

productOrderItem.itemPrice.price.taxIncludedAmount.unit

</td><td>

Currency code in which the price is depicted. Data type: String

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

productOrderItem.itemPrice.price.taxIncludedAmount.value

</td><td>

Price of product, including any tax. Data type: Number

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

productOrderItem.itemPrice.priceType

</td><td>

Type of item price, recurring or non-recurring. Data type: String

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

productOrderItem.itemPrice.recurringChargePeriod

</td><td>

If the price is recurring, the recurring period, such as `month`. Data type: String

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

productOrderItem.ponr

</td><td>

Flag that indicates whether the point of no return for the order has been reached.Possible values:

-   true: The point of no return for the order has been reached.
-   false: The point of no return for the order hasn't been reached.

Data type: Boolean

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

productOrderItem.product

</td><td>

Description of the instance details of the product purchased by the customer. Data type: Object
"product:" { "place": {Object}, "productCharacteristic": [Array], "productSpecification": {Object}, "relatedParty": {Object}, "@type": "String" }
</td></tr><tr><td>

productOrderItem.product.place

</td><td>

Maps of the locations on which to install the product. Data type: Object
"place": { "id": "String", "@type": "String" }
</td></tr><tr><td>

productOrderItem.product.place.id

</td><td>Sys_id of the associated location record in the Location [cmn_location] table. When employing the change action on a product order item (via the<strong>productOrderItem.action</strong> parameter), updating the request with a new place sys_id creates a move order, where the order is not changed but is fulfilled in a new location. Data type: String</td></tr><tr><td>

productOrderItem.product.place.@type

</td><td>

Part of TMF Open API standard. Annotation for order line item contact. This value is always `Place`. This information is not stored. Data type: String

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

productOrderItem.product.productCharacteristic

</td><td><p>List of characteristics of the associated product. Only product characteristics whose <strong>value</strong> are different than the <strong>previousValue</strong> are returned.</p>
<p>Data type: Array of Objects</p>
<div class="highlight"><pre><span></span><code>&quot;productCharacteristic&quot;: [ 
 {
  &quot;name&quot;: &quot;String&quot;,
  &quot;previousValue&quot;: &quot;String&quot;,
  &quot;value&quot;: &quot;String&quot;,
  &quot;valueType&quot;: &quot;String&quot;
 }
]
</code></pre></div></td></tr><tr><td>

productOrderItem.product.productCharacteristic.name

</td><td>

Name of the characteristic record to associate with the product. Located in the Characteristic \[sn\_prd\_pm\_characteristic\] table. Data type: String

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

productOrderItem.product.productCharacteristic.previousValue

</td><td>Previous characteristic option values if the update is for a change order. The request is a change order if the <strong>productOrderItem.action</strong> parameter is other than <code>add</code>. For additional information on characteristic option values, see <a href="../../../order-management/som-product-config-add-characteristics/">Create product characteristics and characteristic options</a>. Data type: String</td></tr><tr><td>

productOrderItem.product.productCharacteristic.value

</td><td>

Characteristic option values associated with the product. For additional information on characteristic option values, see <a href="../../../order-management/som-product-config-add-characteristics/">Create product characteristics and characteristic options</a>. Data type: String

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

productOrderItem.product.productCharacteristic.valueType

</td><td>

Type of characteristic value.Possible values:

-   Array.Date
-   Array.Datetime
-   Array.Decimal
-   Array.Integer
-   Array.Object
-   Array.Single Line Test
-   Checkbox
-   Choice
-   Date,Address
-   Email
-   Integer,Date/time
-   Object
-   Single Line Text
-   Yes/No

Data type: String

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

productOrderItem.product.productSpecification

</td><td>

Description of the product specification associated with the product. Data type: Object
"productSpecification:" { "id": "String", "name": "String", "@type": "String" }
</td></tr><tr><td>

productOrderItem.product.productSpecification.id

</td><td>

Initial\_version or external\_id of the product specification. The initial\_version is the sys\_id of the first version of the specification. Located in the sys\_id or external\_id field of the Product Specification \[sn\_prd\_pm\_product\_specification\] table. Data type: String

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

productOrderItem.product.productSpecification.name

</td><td>

Name of the product specification. Located in the Product Specification \[sn\_prd\_pm\_product\_specification\] table. Data type: String

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

productOrderItem.product.productSpecification.@type

</td><td>

Part of the TMF Open API standard. This value is always `ProductSpecificationRef`. This information is not stored. Data type: String

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

productOrderItem.product.relatedParty

</td><td>

Optional. List of contacts for line items. Data type: Array of Objects
"relatedParty:" { "email": "String", "firstName": "String", "id": "String", "lastName": "String", "phone": "String", "@referredType": "String", "@type": "String" }
</td></tr><tr><td>

productOrderItem.product.relatedParty.email

</td><td>

Email address of the contact. Data type: String

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

productOrderItem.product.relatedParty.firstName

</td><td>

First name of the contact. Data type: String

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

productOrderItem.product.relatedParty.id

</td><td>

Required. Sys\_id of the line item contact associated with the order line item. Located in the Order Line Item Contact \[sn\_ind\_tmt\_orm\_order\_line\_item\_contact\] table. Data type: String

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

productOrderItem.product.relatedParty.lastName

</td><td>

Last name of the contact. Data type: String

Data type: String

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

productOrderItem.product.relatedParty.phone

</td><td>

Business phone number of the contact. Data type: String

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

productOrderItem.product.relatedParty.@referredType

</td><td>

Type of customer. Possible value: OrderLineItemContact

Data type: String

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

productOrderItem.product.relatedParty.@type

</td><td>

Part of TMF Open API standard. Annotation for order line item contact. This value is always `RelatedParty`. This information is not stored. Data type: String

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

productOrderItem.productOffering

</td><td>

Description of the product offering associated with the product. Data type: Object
"productOffering": { "id": "String", "internalVersion": "String", "name": "String", "version": "String" }
</td></tr><tr><td>

productOrderItem.productOffering.id

</td><td>

Initial\_version or external\_id of the product offering. The initial\_version is the sys\_id of the first version of the offering. Located in the sys\_id or external\_id field of the Product Offering \[sn\_prd\_pm\_product\_offering\] table. Data type: String

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

productOrderItem.productOffering.name

</td><td>

Name of the product offering. Located in the Product Offering \[sn\_prd\_pm\_product\_offering\] table. Data type: String

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

productOrderItem.quantity

</td><td>

Number of product items purchased.Data type: Number

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

productOrderItem.productOrderItemRelationship

</td><td><p>Conditional. Item-level relationships. If supplied, each entry requires an <strong>id</strong> and <strong>relationshipType</strong>. Data type: Array of Objects</p>
<div class="highlight"><pre><span></span><code>&quot;productOrderItemRelationship&quot;: [
  {
    &quot;id&quot;: &quot;String&quot;,
    &quot;relationshipType&quot;: &quot;String&quot;
  }
]
</code></pre></div></td></tr><tr><td>

productOrderItem.productOrderItemRelationship.id

</td><td>

Unique identifier of the related line item. Located in the sn\_ind\_tmt\_orm\_external\_id field of the Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\] table. Data type: String

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

productOrderItem.productOrderItemRelationship.relationshipType

</td><td>

Required. Type of relationship between the two line items. This information is used to identify the relationship hierarchy. Possible values:

-   HasChild
-   HasParent
-   Requires

`HasChild` and `HasParent` are used for parent/child relationships. `Requires` is used for horizontal relationships \(a line item requires another line item\).

Data type: String

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

productOrderItem.state

</td><td>

State of the order of the associated product item.Data type: String

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

productOrderItem.version

</td><td>

Order version.Data type: String

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

productOrderItem.@type

</td><td>

Part of TMF Open API standard. Annotation for the product. This value is always `ProductOrderItem`. This information is not stored.Data type: String

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

relatedParty

</td><td>

List of contacts for the order. Each contact is an object in the array. Must list at least one item which contains customer account or consumer account information. Data type: Array of Objects
"relatedParty:" [ { "id": "String", "name": "String", "@referredType": "String", "@type": "String" } ]
</td></tr><tr><td>

relatedParty.id

</td><td>

Sys\_id or external\_id of the account, customer contact, or consumer associated with the order. Located in the Account \[customer\_account\], Contact \[customer\_contact\] table, or Consumer \[csm\_consumer\] table. Data type: String

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

relatedParty.name

</td><td>

Name of the account, customer, or consumer.Data type: String

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

relatedParty.@referredType

</td><td>

Type of customer. Possible values:

-   Consumer
-   Customer
-   CustomerContact

Data type: String

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

relatedParty.@type

</td><td>

Part of TMF Open API standard. Annotation for the product. This value is always `RelatedParty`. This information is not stored. Data type: String

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

requestedCompletionDate

</td><td>

Optional. Delivery date requested by the customer. Data type: String

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

requestedStartDate

</td><td>

Optional. Order start date requested by the customer. Data type: String

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

state

</td><td>

Current state of the order. Data type: String

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

version

</td><td>

Order version.Data type: String

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

@type

</td><td>

Part of TMF Open API standard. Annotation for the product. This value is always `ProductOrder`. This information is not stored.Data type: String

</td></tr></tbody>
</table>

### cURL request

This example retrieves all product orders.
curl --location --request GET 'https://instance.servicenow.com/api/sn_ind_tmt_orm/productorder' \ --user 'username':'password'
Response body.
[ { "id": "8d75939453126010a795ddeeff7b126a", "ponr": "false", "expectedCompletionDate": "2021-05-02T08:13:59.000Z", "requestedCompletionDate": "2021-05-02T08:13:59.000Z", "requestedStartDate": "2020-05-03T08:13:59.000Z", "channel": [ { "id": "1", "name": "Agent Assist" } ], "note": [ { "author": "System Administrator", "date": "2021-02-25T14:22:07.000Z", "text": "This is a TMF product order illustration no 2" }, { "author": "System Administrator", "date": "2021-02-25T14:22:06.000Z", "text": "This is a TMF product order illustration" } ], "productOrderItem": [ { "id": "POI130", "ponr": "false", "quantity": 1, "action": "add", "actionReason": "adding service package OLI", "itemPrice": [ { "priceType": "recurring", "price": { "taxIncludedAmount": { "unit": "USD", "value": 20 } } }, { "priceType": "nonRecurring", "price": { "taxIncludedAmount": { "unit": "INR", "value": 0 } } } ], "product": { "@type": "Product", "productCharacteristic": [ { "name": "Security Type", "valueType": "Choice", "value": "Base", "previousValue": "" } ], "productSpecification": { "id": "a6514bd3534560102f18ddeeff7b1247", "name": "SD-WAN Security", "@type": "ProductSpecificationRef" }, "relatedParty": [ { "id": "4175939453126010a795ddeeff7b127d", "name": "John Smith", "email": "abc2@example.com", "phone": "32456768", "@type": "RelatedParty", "@referredType": "OrderLineItemContact" }, { "id": "c175939453126010a795ddeeff7b127c", "name": "Joe Doe", "email": "abc@example.com", "phone": "1234567890", "@type": "RelatedParty", "@referredType": "OrderLineItemContact" } ] }, "productOffering": { "id": "69017a0f536520103b6bddeeff7b127d", "name": "Premium SD-WAN Offering" }, "productOrderItemRelationship": [ { "id": "POI100", "relationshipType": "HasParent" } ], "state": "in_progress", "version": "1", "@type": "ProductOrderItem" }, { "id": "POI100", "ponr": "false", "quantity": 1, "action": "add", "itemPrice": [ { "priceType": "recurring", "price": { "taxIncludedAmount": { "unit": "INR", "value": 0 } } }, { "priceType": "nonRecurring", "price": { "taxIncludedAmount": { "unit": "INR", "value": 0 } } } ], "product": { "@type": "Product", "productSpecification": { "id": "cfe5ef6a53702010cd6dddeeff7b12f6", "name": "SD-WAN Service Package", "@type": "ProductSpecificationRef" } }, "productOffering": { "id": "69017a0f536520103b6bddeeff7b127d", "name": "Premium SD-WAN Offering" }, "productOrderItemRelationship": [ { "id": "POI130", "relationshipType": "HasChild" }, { "id": "POI120", "relationshipType": "HasChild" }, { "id": "POI110", "relationshipType": "HasChild" } ], "state": "in_progress", "version": "1", "@type": "ProductOrderItem" }, { "id": "POI120", "ponr": "false", "quantity": 1, "action": "add", "actionReason":"adding service package OLI", "itemPrice": [ { "priceType": "recurring", "price": { "taxIncludedAmount": { "unit": "USD", "value": 20 } } }, { "priceType": "nonRecurring", "price": { "taxIncludedAmount": { "unit": "INR", "value": 0 } } } ], "product": { "@type": "Product", "productCharacteristic": [ { "name": "CPE Type", "valueType": "Choice", "value": "Physical", "previousValue": "" }, { "name": "WAN Optimization", "valueType": "Choice", "value": "Advance", "previousValue": "" }, { "name": "Routing", "valueType": "Choice", "value": "Premium", "previousValue": "" }, { "name": "CPE Model", "valueType": "Choice", "value": "ASR", "previousValue": "" } ], "productSpecification": { "id": "39b627aa53702010cd6dddeeff7b1202", "name": "SD-WAN Edge Device", "@type": "ProductSpecificationRef" } }, "productOffering": { "id": "69017a0f536520103b6bddeeff7b127d", "name": "Premium SD-WAN Offering" }, "productOrderItemRelationship": [ { "id": "POI100", "relationshipType": "HasParent" } ], "state": "in_progress", "version": "1", "@type": "ProductOrderItem" }, { "id": "POI110", "ponr": "false", "quantity": 1, "action": "add", "actionReason": "adding service package OLI", "itemPrice": [ { "priceType": "recurring", "price": { "taxIncludedAmount": { "unit": "INR", "value": 0 } } }, { "priceType": "nonRecurring", "price": { "taxIncludedAmount": { "unit": "USD", "value": 5 } } } ], "product": { "@type": "Product", "productCharacteristic": [ { "name": "Tenancy", "valueType": "Choice", "value": "Base (10 site)", "previousValue": "" } ], "productSpecification": { "id": "216663aa53702010cd6dddeeff7b12b5", "name": "SD-WAN Controller", "@type": "ProductSpecificationRef" }, "place": { "id": "25ab9c4d0a0a0bb300f7dabdc0ca7c1c", "@type": "Place" } }, "productOffering": { "id": "69017a0f536520103b6bddeeff7b127d", "name": "Premium SD-WAN Offering" }, "productOrderItemRelationship": [ { "id": "POI100", "relationshipType": "HasParent" } ], "state": "in_progress", "version": "1", "@type": "ProductOrderItem" } ], "relatedParty": [ { "id": "eaf68911c35420105252716b7d40ddde", "name": "Sally Thomas", "@type": "RelatedParty", "@referredType": "CustomerContact" }, { "id": "ffc68911c35420105252716b7d40dd55", "name": "Funco Intl", "@type": "RelatedParty", "@referredType": "Customer" }, { "id": "59f16de1c3b67110ff00ed23a140dd9e", "name": "Funco External", "@type": "RelatedParty", "@referredType": "Consumer" } ], "state": "in_progress", "version": "1", "@type": "ProductOrder" } ]
## Product Order Open API - GET /sn\_ind\_tmt\_orm/productorder/\{id\}

Retrieves the specified product order.

**Important:** Starting with the Tokyo release, this endpoint is deprecated. The new version of this endpoint is [Product Order Open API - GET /sn\_ind\_tmt\_orm/productorder/\{id\}](tmf622_product_ordering-api.md).

This endpoint retrieves order information from the following tables:

-   Customer Order \[sn\_ind\_tmt\_orm\_order\]
-   Order Characteristic \[sn\_ind\_tmt\_orm\_order\_characteristic\_value\]
-   Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\]
-   Order Line Item Contact \[sn\_ind\_tmt\_orm\_order\_line\_item\_contact\]

### URL format

Default URL: `/api/sn_ind_tmt_orm/productorder/{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 or external\_id of the customer order to retrieve.Data type: String

Table: Customer Order \[sn\_ind\_tmt\_orm\_order\]

</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](../rest-api-explorer/c_RESTAPI.md).

|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](../rest-api-explorer/c_RESTAPI.md).

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

Status code

</th><th>

Description

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

201

</td><td>

Successful. The request was successfully processed.

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

400

</td><td>

Bad Request. Can be for any of the following reasons:-   Missing query parameter
-   Invalid URI

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

404

</td><td id="entry-404-status-code">

Not found. The requested item wasn't found.

</td></tr></tbody>
</table>

### Response body parameters \(JSON\)

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

Name

</th><th>

Description

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

channel

</td><td>

List of channels to use for selling the products. Data type: Array of Objects
"channel": [ { "id": "String", "name": "String" } ]
</td></tr><tr><td>

channel.id

</td><td>

Unique identifier of the channel to use to sell the associated products. Data type: String

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

channel.name

</td><td>

Name of the channel to use to sell the associated products. Data type: String

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

expectedCompletionDate

</td><td>

Date on which the order will be completed.Data type: String

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

note

</td><td>

Optional. List of additional notes made by the customer when ordering. Data type: Object
"note": { "author": "String", "date": "String", "text": "String" }
</td></tr><tr><td>

note.author

</td><td>

User name of the person that authored the associated note.Data type: String

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

note.date

</td><td>

Date that the note was created.Data type: String

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

note.text

</td><td>

Additional notes/comments made by the customer while ordering. Data type: String

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

ponr

</td><td>

Flag that indicates whether the point of no return for the order has been reached.Possible values:

-   true: The point of no return for the order has been reached.
-   false: The point of no return for the order hasn't been reached.

Data type: Boolean

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

productOrderItem

</td><td>

List that describes items associated with the product order and their associated action. Data type: Array of Objects
"productOrderItem:" [ { "action": "String", "actionReason": "String", "id": "String", "itemPrice": [Array], "product": {Object}, "productOffering": {Object}, "productOrderItemReleationship": [Array], "quantity": Number, "state": "String", "@type": "String" } ]
</td></tr><tr><td>

productOrderItem.action

</td><td>

Action to carry out on the product. Possible actions are defined on the Choice List tab in the Action Dictionary Entry of the sn\_ind\_tmt\_orm\_order\_line\_item table. Data type: String

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

productOrderItem.actionReason

</td><td>

Reason for adding the order line item.Data type: String

Stored in: The action\_reason field of the sn\_ind\_tmt\_orm\_order\_line\_item table.

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

productOrderItem.id

</td><td>

Unique identifier of the line item. Located in the sn\_ind\_tmt\_orm\_external\_id field of the Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\] table. Data type: String

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

productOrderItem.itemPrice

</td><td>

List that describes the price associated with the product. Data type: Array of Objects
"itemPrice": [ { "price": {Object}, "priceType": "String", "recurringChargePeriod": "String" } ]
</td></tr><tr><td>

productOrderItem.itemPrice.price

</td><td>

Description of the price of the associated product. Data type: Object
"price": { "taxIncludedAmount": {Object} }
</td></tr><tr><td>

productOrderItem.itemPrice.price.taxIncludedAmount

</td><td>

Description of the price of the associated product, including the tax. Data type: Object
"taxIncludedAmount": { "unit": "String", "value": Number }
</td></tr><tr><td>

productOrderItem.itemPrice.price.taxIncludedAmount.unit

</td><td>

Currency code in which the price is depicted. Data type: String

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

productOrderItem.itemPrice.price.taxIncludedAmount.value

</td><td>

Price of product, including any tax. Data type: Number

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

productOrderItem.itemPrice.priceType

</td><td>

Type of item price, recurring or non-recurring. Data type: String

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

productOrderItem.itemPrice.recurringChargePeriod

</td><td>

If the price is recurring, the recurring period, such as `month`. Data type: String

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

productOrderItem.ponr

</td><td>

Flag that indicates whether the point of no return for the order has been reached.Possible values:

-   true: The point of no return for the order has been reached.
-   false: The point of no return for the order hasn't been reached.

Data type: Boolean

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

productOrderItem.product

</td><td>

Description of the instance details of the product purchased by the customer. Data type: Object
"product:" { "place": {Object}, "productCharacteristic": [Array], "productSpecification": {Object}, "relatedParty": {Object}, "@type": "String" }
</td></tr><tr><td>

productOrderItem.product.place

</td><td>

Maps of the locations on which to install the product. Data type: Object
"place": { "id": "String", "@type": "String" }
</td></tr><tr><td>

productOrderItem.product.place.id

</td><td>Sys_id of the associated location record in the Location [cmn_location] table. When employing the change action on a product order item (via the<strong>productOrderItem.action</strong> parameter), updating the request with a new place sys_id creates a move order, where the order is not changed but is fulfilled in a new location. Data type: String</td></tr><tr><td>

productOrderItem.product.place.@type

</td><td>

Part of TMF Open API standard. Annotation for order line item contact. This value is always `Place`. This information is not stored. Data type: String

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

productOrderItem.product.productCharacteristic

</td><td><p>List of characteristics of the associated product. Only product characteristics whose <strong>value</strong> are different than the <strong>previousValue</strong> are returned.</p>
<p>Data type: Array of Objects</p>
<div class="highlight"><pre><span></span><code>&quot;productCharacteristic&quot;: [ 
 {
  &quot;name&quot;: &quot;String&quot;,
  &quot;previousValue&quot;: &quot;String&quot;,
  &quot;value&quot;: &quot;String&quot;,
  &quot;valueType&quot;: &quot;String&quot;
 }
]
</code></pre></div></td></tr><tr><td>

productOrderItem.product.productCharacteristic.name

</td><td>

Name of the characteristic record to associate with the product. Located in the Characteristic \[sn\_prd\_pm\_characteristic\] table. Data type: String

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

productOrderItem.product.productCharacteristic.previousValue

</td><td>Previous characteristic option values if the update is for a change order. The request is a change order if the <strong>productOrderItem.action</strong> parameter is other than <code>add</code>. For additional information on characteristic option values, see <a href="../../../order-management/som-product-config-add-characteristics/">Create product characteristics and characteristic options</a>. Data type: String</td></tr><tr><td>

productOrderItem.product.productCharacteristic.value

</td><td>

Characteristic option values associated with the product. For additional information on characteristic option values, see <a href="../../../order-management/som-product-config-add-characteristics/">Create product characteristics and characteristic options</a>. Data type: String

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

productOrderItem.product.productCharacteristic.valueType

</td><td>

Type of characteristic value.Possible values:

-   Array.Date
-   Array.Datetime
-   Array.Decimal
-   Array.Integer
-   Array.Object
-   Array.Single Line Test
-   Checkbox
-   Choice
-   Date,Address
-   Email
-   Integer,Date/time
-   Object
-   Single Line Text
-   Yes/No

Data type: String

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

productOrderItem.product.productSpecification

</td><td>

Description of the product specification associated with the product. Data type: Object
"productSpecification:" { "id": "String", "name": "String", "@type": "String" }
</td></tr><tr><td>

productOrderItem.product.productSpecification.id

</td><td>

Initial\_version or external\_id of the product specification. The initial\_version is the sys\_id of the first version of the specification. Located in the sys\_id or external\_id field of the Product Specification \[sn\_prd\_pm\_product\_specification\] table. Data type: String

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

productOrderItem.product.productSpecification.name

</td><td>

Name of the product specification. Located in the Product Specification \[sn\_prd\_pm\_product\_specification\] table. Data type: String

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

productOrderItem.product.productSpecification.@type

</td><td>

Part of the TMF Open API standard. This value is always `ProductSpecificationRef`. This information is not stored. Data type: String

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

productOrderItem.product.relatedParty

</td><td>

Optional. List of contacts for line items. Data type: Object
"relatedParty:" { "email": "String", "firstName": "String", "id": "String", "lastName": "String", "phone": "String", "@referredType": "String", "@type": "String" }
</td></tr><tr><td>

productOrderItem.product.relatedParty.email

</td><td>

Email address of the contact. Data type: String

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

productOrderItem.product.relatedParty.firstName

</td><td>

First name of the contact. Data type: String

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

productOrderItem.product.relatedParty.id

</td><td>

Required. Sys\_id of the line item contact associated with the order line item. Located in the Order Line Item Contact \[sn\_ind\_tmt\_orm\_order\_line\_item\_contact\] table. Data type: String

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

productOrderItem.product.relatedParty.lastName

</td><td>

Last name of the contact. Data type: String

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

productOrderItem.product.relatedParty.phone

</td><td>

Business phone number of the contact. Data type: String

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

productOrderItem.product.relatedParty.@referredType

</td><td>

Type of customer. Possible value: OrderLineItemContact

Data type: String

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

productOrderItem.product.relatedParty.@type

</td><td>

Part of TMF Open API standard. Annotation for order line item contact. This value is always `RelatedParty`. This information is not stored. Data type: String

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

productOrderItem.productOffering

</td><td>

Description of the product offering associated with the product. Data type: Object
"productOffering": { "id": "String", "internalVersion": "String", "name": "String", "version": "String" }
</td></tr><tr><td>

productOrderItem.productOffering.id

</td><td>

Initial\_version or external\_id of the product offering. The initial\_version is the sys\_id of the first version of the offering. Located in the sys\_id or external\_id field of the Product Offering \[sn\_prd\_pm\_product\_offering\] table. Data type: String

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

productOrderItem.productOffering.name

</td><td>

Name of the product offering. Located in the Product Offering \[sn\_prd\_pm\_product\_offering\] table. Data type: String

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

productOrderItem.quantity

</td><td>

Number of product items purchased.Data type: Number

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

productOrderItem.productOrderItemRelationship

</td><td><p>Conditional. Item-level relationships. If supplied, each entry requires an <strong>id</strong> and <strong>relationshipType</strong>. Data type: Array of Objects</p>
<div class="highlight"><pre><span></span><code>&quot;productOrderItemRelationship&quot;: [
  {
    &quot;id&quot;: &quot;String&quot;,
    &quot;relationshipType&quot;: &quot;String&quot;
  }
]
</code></pre></div></td></tr><tr><td>

productOrderItem.productOrderItemRelationship.id

</td><td>

Unique identifier of the related line item. Located in the sn\_ind\_tmt\_orm\_external\_id field of the Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\] table. Data type: String

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

productOrderItem.productOrderItemRelationship.relationshipType

</td><td>

Required. Type of relationship between the two line items. This information is used to identify the relationship hierarchy. Possible values:

-   HasChild
-   HasParent
-   Requires

`HasChild` and `HasParent` are used for parent/child relationships. `Requires` is used for horizontal relationships \(a line item requires another line item\).

Data type: String

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

productOrderItem.state

</td><td>

State of the order of the associated product item.Data type: String

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

productOrderItem.version

</td><td>

Order version.Data type: String

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

productOrderItem.@type

</td><td>

Part of TMF Open API standard. Annotation for the product. This value is always `ProductOrderItem`. This information is not stored.Data type: String

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

relatedParty

</td><td>

List of contacts for the order. Each contact is an object in the array. Must list at least one item which contains customer account or consumer account information. Data type: Array of Objects
"relatedParty:" [ { "id": "String", "name": "String", "@referredType": "String", "@type": "String" } ]
</td></tr><tr><td>

relatedParty.id

</td><td>

Sys\_id or external\_id of the account, customer contact, or consumer associated with the order. Located in the Account \[customer\_account\], Contact \[customer\_contact\] table, or Consumer \[csm\_consumer\] table. Data type: String

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

relatedParty.name

</td><td>

Name of the account, customer, or consumer.Data type: String

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

relatedParty.@referredType

</td><td>

Type of customer. Possible values:

-   Consumer
-   Customer
-   CustomerContact

Data type: String

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

relatedParty.@type

</td><td>

Part of TMF Open API standard. Annotation for the product. This value is always `RelatedParty`. This information is not stored. Data type: String

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

requestedCompletionDate

</td><td>

Optional. Delivery date requested by the customer. Data type: String

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

requestedStartDate

</td><td>

Optional. Order start date requested by the customer. Data type: String

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

state

</td><td>

Current state of the order. Data type: String

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

version

</td><td>

Order version.Data type: String

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

@type

</td><td>

Part of TMF Open API standard. Annotation for the product. This value is always `ProductOrder`. This information is not stored.Data type: String

</td></tr></tbody>
</table>

### cURL request

The following code example requests an existing customer order.
curl -X GET "https://servicenow-instance/api/sn_ind_tmt_orm/productorder/8d75939453126010a795ddeeff7b126a" \ -u "username":"password"
Response body.
{ "id": "8d75939453126010a795ddeeff7b126a", "ponr": "false", "expectedCompletionDate": "2021-05-02T08:13:59.000Z", "requestedCompletionDate": "2021-05-02T08:13:59.000Z", "requestedStartDate": "2020-05-03T08:13:59.000Z", "channel": [ { "id": "1", "name": "Agent Assist" } ], "note": [ { "author": "System Administrator", "date": "2021-02-25T14:22:07.000Z", "text": "This is a TMF product order illustration no 2" }, { "author": "System Administrator", "date": "2021-02-25T14:22:06.000Z", "text": "This is a TMF product order illustration" } ], "productOrderItem": [ { "id": "POI130", "ponr": "false", "quantity": 1, "action": "add", "actionReason":"adding service package OLI", "itemPrice": [ { "priceType": "recurring", "price": { "taxIncludedAmount": { "unit": "USD", "value": 20 } } }, { "priceType": "nonRecurring", "price": { "taxIncludedAmount": { "unit": "INR", "value": 0 } } } ], "product": { "@type": "Product", "productCharacteristic": [ { "name": "Security Type", "valueType": "Choice", "value": "Base", "previousValue": "" } ], "productSpecification": { "id": "a6514bd3534560102f18ddeeff7b1247", "name": "SD-WAN Security", "@type": "ProductSpecificationRef" }, "relatedParty": [ { "id": "4175939453126010a795ddeeff7b127d", "name": "John Smith", "email": "abc2@example.com", "phone": "32456768", "@type": "RelatedParty", "@referredType": "OrderLineItemContact" }, { "id": "c175939453126010a795ddeeff7b127c", "name": "Joe Doe", "email": "abc@example.com", "phone": "1234567890", "@type": "RelatedParty", "@referredType": "OrderLineItemContact" } ] }, "productOffering": { "id": "69017a0f536520103b6bddeeff7b127d", "name": "Premium SD-WAN Offering" }, "productOrderItemRelationship": [ { "id": "POI100", "relationshipType": "HasParent" } ], "state": "in_progress", "version": "1", "@type": "ProductOrderItem" }, { "id": "POI100", "ponr": "false", "quantity": 1, "action": "add", "itemPrice": [ { "priceType": "recurring", "price": { "taxIncludedAmount": { "unit": "INR", "value": 0 } } }, { "priceType": "nonRecurring", "price": { "taxIncludedAmount": { "unit": "INR", "value": 0 } } } ], "product": { "@type": "Product", "productSpecification": { "id": "cfe5ef6a53702010cd6dddeeff7b12f6", "name": "SD-WAN Service Package", "@type": "ProductSpecificationRef" } }, "productOffering": { "id": "69017a0f536520103b6bddeeff7b127d", "name": "Premium SD-WAN Offering" }, "productOrderItemRelationship": [ { "id": "POI130", "relationshipType": "HasChild" }, { "id": "POI120", "relationshipType": "HasChild" }, { "id": "POI110", "relationshipType": "HasChild" } ], "state": "in_progress", "version": "1", "@type": "ProductOrderItem" }, { "id": "POI120", "ponr": "false", "quantity": 1, "action": "add", "itemPrice": [ { "priceType": "recurring", "price": { "taxIncludedAmount": { "unit": "USD", "value": 20 } } }, { "priceType": "nonRecurring", "price": { "taxIncludedAmount": { "unit": "INR", "value": 0 } } } ], "product": { "@type": "Product", "productCharacteristic": [ { "name": "CPE Type", "valueType": "Choice", "value": "Physical", "previousValue": "" }, { "name": "WAN Optimization", "valueType": "Choice", "value": "Advance", "previousValue": "" }, { "name": "Routing", "valueType": "Choice", "value": "Premium", "previousValue": "" }, { "name": "CPE Model", "valueType": "Choice", "value": "ASR", "previousValue": "" } ], "productSpecification": { "id": "39b627aa53702010cd6dddeeff7b1202", "name": "SD-WAN Edge Device", "@type": "ProductSpecificationRef" } }, "productOffering": { "id": "69017a0f536520103b6bddeeff7b127d", "name": "Premium SD-WAN Offering" }, "productOrderItemRelationship": [ { "id": "POI100", "relationshipType": "HasParent" } ], "state": "in_progress", "version": "1", "@type": "ProductOrderItem" }, { "id": "POI110", "ponr": "false", "quantity": 1, "action": "add", "actionReason":"adding service package OLI", "itemPrice": [ { "priceType": "recurring", "price": { "taxIncludedAmount": { "unit": "INR", "value": 0 } } }, { "priceType": "nonRecurring", "price": { "taxIncludedAmount": { "unit": "USD", "value": 5 } } } ], "product": { "@type": "Product", "productCharacteristic": [ { "name": "Tenancy", "valueType": "Choice", "value": "Base (10 site)", "previousValue": "" } ], "productSpecification": { "id": "216663aa53702010cd6dddeeff7b12b5", "name": "SD-WAN Controller", "@type": "ProductSpecificationRef" }, "place": { "id": "25ab9c4d0a0a0bb300f7dabdc0ca7c1c", "@type": "Place" } }, "productOffering": { "id": "69017a0f536520103b6bddeeff7b127d", "name": "Premium SD-WAN Offering" }, "productOrderItemRelationship": [ { "id": "POI100", "relationshipType": "HasParent" } ], "state": "in_progress", "version": "1", "@type": "ProductOrderItem" } ], "relatedParty": [ { "id": "eaf68911c35420105252716b7d40ddde", "name": "Sally Thomas", "@type": "RelatedParty", "@referredType": "CustomerContact" }, { "id": "ffc68911c35420105252716b7d40dd55", "name": "Funco Intl", "@type": "RelatedParty", "@referredType": "Customer" }, { "id": "59f16de1c3b67110ff00ed23a140dd9e", "name": "Funco External", "@type": "RelatedParty", "@referredType": "Consumer" } ], "state": "in_progress", "version": "1", "@type": "ProductOrder" }
## Product Order Open API - GET /sn\_ind\_tmt\_orm/order/productOrder/\{id\}

Updates the specified customer order.

### URL format

Default URL: `/api/sn_ind_tmt_orm/order/productOrder/{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 customer order to update.Data type: String

Table: Customer Order \[sn\_ind\_tmt\_orm\_order\]

</td></tr></tbody>
</table>

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

<table id="id_vk2_p5n_t4b" class="rest_api_request_body"><thead><tr><th>

Name

</th><th>

Description

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

@type

</td><td id="type-entry-tmf622">

Part of TMF Open API standard. Annotation for the product. This value is always `ProductOrder`. This information is not stored.Data type: String

</td></tr><tr id="channel-row-tmf622"><td>

channel

</td><td>

List of channels to use for selling the products. Data type: Array of Objects
"channel": [ { "id": "String", "name": "String" } ]
Stored in: sn\_ind\_tmt\_orm\_order

</td></tr><tr id="channel_id-row-tmf622"><td>

channel.id

</td><td><p>Required if the <strong>channel</strong> parameter is used. Unique identifier of the channel to use to sell the associated products. Data type: String</p>
<p>Table: In the external_id field of the Distribution Channel [sn_prd_pm_distribution_channel] table.</p>
<p>Stored in: The channel field of the sn_ind_tmt_orm_order table.</p>
<p>Default: Blank string</p></td></tr><tr id="channel_name-row-tmf622"><td>

channel.name

</td><td>

Name of the channel to use to sell the associated products. Possible channel names are defined on the Choice List tab in the Channel Dictionary Entry of the sn\_ind\_tmt\_orm\_order table.Data type: String

Default: Blank string

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

committedDueDate

</td><td id="due-date-PATCH"><p>Date and time when the action must be performed on the order.This value must be the same as or later than the <strong>committedDueDate</strong> values for each order line item.</p>
<p>If the action for order line items is <code>suspend</code> or <code>resume</code>, this parameter can't be updated.</p>
<p>Data type: String</p>
<p>Stored in: The committed_due_date field of the sn_ind_tmt_orm_order table.</p></td></tr><tr id="externalId-row-tmf622"><td>

externalId

</td><td>

Unique identifier for the customer order. This value is determined by an external system. Data type: String

Stored in: The external\_id field of the sn\_ind\_tmt\_orm\_order table.

Default: Blank string

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

externalSystem

</td><td id="tmf622-response-externalSystem"><p>External system of the service order, appended with <code>TMF622</code>. For example, if the external system is ABC then enter the value in <strong>externalSystem</strong> as <code>ABC-TMF622</code>.</p>
<p>Data Type: String</p></td></tr><tr id="note-row-tmf622"><td>

note

</td><td>

Optional. List of additional notes made by the customer when ordering. Data type: Array of Objects
"note": [ { "text": "String" } ]
Stored in: sn\_ind\_tmt\_orm\_order

</td></tr><tr id="note_text-row-tmf622"><td>

note.text

</td><td>

Additional notes/comments made by the customer while ordering. Data type: String

Stored in: The comments field of the sn\_ind\_tmt\_orm\_order table.

Default: Blank string

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

orderCurrency

</td><td>

Currency code for the order and order line items. Updating the currency code of an existing order is not supported. Providing any value other than the currency code already associated with the order causes the update to be rejected.Data type: String

</td></tr><tr id="productOrderItem-row-tmf622"><td>

productOrderItem

</td><td>

List that describes items associated with the product order and their associated action. Data type: Array of Objects
"productOrderItem": [ { "action": "String", "actionReason": "String", "committedDueDate": "String", "externalProductInventory": [Array], "id": "String", "itemPrice": [Array], "product": {Object}, "productOffering": {Object}, "productOrderItemRelationship": [Array], "quantity": Number, "revisionOperation": "String", "@type": "String" } ]
Stored in: sn\_ind\_tmt\_orm\_order\_line\_item

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

productOrderItem.@type

</td><td id="prodOrdItem_type-entry-tmf622">

Part of TMF Open API standard. Annotation for the product. This value is always `ProductOrderItem`. This information is not stored.Data type: String

</td></tr><tr id="productOrderItem_action-row-tmf622"><td>

productOrderItem.action

</td><td><p>Required if the <strong>productOrderItem</strong> parameter is used. Action to carry out on the product. Possible actions are defined on the Choice List tab in the Action Dictionary Entry of the sn_ind_tmt_orm_order_line_item table. Possible values:</p>
<ul>
<li>add</li>
<li>change</li>
</ul>
<p><strong>Note:</strong> Submitting a change payload that includes a new service location via <strong>productOrderItem.product.place.id</strong> is processed as a move order.</p>
<ul>
<li>delete</li>
<li>no-change</li>
<li>resume</li>
<li>suspend</li>
</ul>
<p>Data type: String</p>
<p>Stored in: The action field of the sn_ind_tmt_orm_order_line_item table.</p>
<p>Default: add</p></td></tr><tr><td>

productOrderItem.actionReason

</td><td id="prodOrdItem_actionReason-response-tmf622">

Reason for adding the order line item.Data type: String

Stored in: The action\_reason field of the sn\_ind\_tmt\_orm\_order\_line\_item table.

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

productOrderItem.committedDueDate

</td><td id="due-date-item-PATCH">

Date and time when the action must be performed on the order line item.If the action for the item is `suspend` or `resume`, this parameter can't be updated.

Data type: String

Stored in: The committed\_due\_date field of the sn\_ind\_tmt\_orm\_order\_line\_item table.

</td></tr><tr id="externalProdInvId"><td>

productOrderItem.externalProductInventory.externalProductInventoryId

</td><td id="externalProdInvId-decsr">

External ID to map to the product inventory.Data type: String

Stored in: The external\_inventory\_id field of the sn\_ind\_tmt\_orm\_order\_line\_item table and the sn\_prd\_invt\_external\_id field of the sn\_prd\_invt\_product\_inventory table.

</td></tr><tr id="externalProdInv-PATCH"><td>

productOrderItem.externalProductInventory

</td><td id="externalProdInv-descr-PATCH"><p>Conditional. If supplied, each entry requires <strong>externalProductInventoryId</strong>. List of external IDs to map to the product inventories created for the order. Data type: Array of Objects</p>
<div class="highlight"><pre><span></span><code>&quot;externalProductInventory&quot;: [
  {
    &quot;externalProductInventoryId&quot;: &quot;String&quot;
  }
]
</code></pre></div>
<p><strong>Note:</strong> Previously, when creating a PATCH order with an external product inventory ID that already existed, the operation was aborted and returned an error. With the Xanadu release, this parameter is simply ignored when an existing external product inventory ID is supplied and an error is not thrown.</p></td></tr><tr id="productOrderItem_id-row-tmf622"><td>

productOrderItem.id

</td><td><p>Required if the <strong>productOrderItem</strong> parameter is used. Unique identifier of the line item. Located in the sn_ind_tmt_orm_external_id field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table. Data type: String</p>
<p>Stored in: The external_id field of the sn_ind_tmt_orm_order_line_item table.</p>
<p>Maximum length: 40</p>
<p>Default: Blank string</p></td></tr><tr id="itemPrice-row-tmf622"><td>

productOrderItem.itemPrice

</td><td id="itemPrice-entry-tmf622">

List that describes the price associated with the product. Data type: Array of Objects
"itemPrice": [ { "price": {Object}, "priceType": "String", "recurringChargePeriod": "String" } ]
Stored in: sn\_ind\_tmt\_orm\_order

Default: Blank string

</td></tr><tr id="itemPrice_price-row-tmf622"><td>

productOrderItem.itemPrice.price

</td><td id="itemPrice_price-entry-tmf622">

Description of the price of the associated product. Data type: Object
"price": { "taxIncludedAmount": {Object} }
Stored in: sn\_ind\_tmt\_orm\_order\_line\_item

Default: Blank string

</td></tr><tr id="itemPrice_price_taxIncludedAmt-row-tmf622"><td>

productOrderItem.itemPrice.price.taxIncludedAmount

</td><td id="itemPrice_price_taxIncludedAmt-entry-tmf622">

Description of the price of the associated product, including the tax. Data type: Object
"taxIncludedAmount": { "unit": "String", "value": Number }
Stored in: sn\_ind\_tmt\_orm\_order\_line\_item

</td></tr><tr id="itemPrice_price_taxIncludedAmt_unit-row-tmf622"><td>

productOrderItem.itemPrice.price.taxIncludedAmount.unit

</td><td id="itemPrice_price_taxIncludedAmt_unit-entry-tmf622">

Currency code in which the price is depicted. Data type: String

Stored in: The mrc or nrc field in the sn\_ind\_tmt\_orm\_order\_line\_item table.

</td></tr><tr id="itemPrice_price_taxIncludedAmt_value-row-tmf622"><td>

productOrderItem.itemPrice.price.taxIncludedAmount.value

</td><td id="itemPrice_price_taxIncludedAmt_value-entry-tmf622">

Price of product, including any tax. Data type: Number

Stored in: The mrc or nrc field in the sn\_ind\_tmt\_orm\_order\_line\_item table.

</td></tr><tr id="itemPrice_priceType-row-tmf622"><td>

productOrderItem.itemPrice.priceType

</td><td id="itemPrice_priceType-entry-tmf622">

Type of item price, recurring or non-recurring. Data type: String

</td></tr><tr id="itemPrice_recurringChargePeriod-row-tmf622"><td>

productOrderItem.itemPrice.recurringChargePeriod

</td><td id="itemPrice_recurringChargePeriod-entry-tmf622">

If the price is recurring, the recurring period, such as `month`. Data type: String

</td></tr><tr id="product-row-tmf622"><td>

productOrderItem.product

</td><td><p>Required if <strong>productOrderItem.action</strong> is change or delete. Description of the instance details of the product purchased by the customer. Data type: Object</p>
<div class="highlight"><pre><span></span><code>&quot;product&quot;: {
  &quot;id&quot;: &quot;String&quot;,
  &quot;place&quot;: {Object},
  &quot;productCharacteristic&quot;: [Array],
  &quot;productSpecification&quot;: {Object},
  &quot;relatedParty&quot;: {Object},
  &quot;@type&quot;: &quot;String&quot;
}
</code></pre></div>
<p>Stored in: sn_ind_tmt_orm_order_line_item</p></td></tr><tr id="product_type-row-tmf622"><td>

productOrderItem.product.@type

</td><td>

Part of TMF Open API standard. Annotation for the product. This value is always `Product`. This information is not stored. Data type: String

</td></tr><tr id="product_id-row-tmf622"><td>

productOrderItem.product.id

</td><td><p>Required if <strong>productOrderItem.action</strong> is change or delete. Unique identifier of the product sold. Located in the sys_id or sn_ind_tmt_orm_external_id field of the Product Inventory [sn_ind_tmt_orm_product_inventory] table. Data type: String</p>
<p>Default: Blank string</p></td></tr><tr id="product_place-row-tmf622"><td>

productOrderItem.product.place

</td><td>

Maps of the locations on which to install the product. Data type: Object
"place": { "id": "String", "@type": "String" }
Stored in: sn\_ind\_tmt\_orm\_order\_line\_item

</td></tr><tr id="product_place_type-row-tmf622"><td>

productOrderItem.product.place.@type

</td><td>

Part of TMF Open API standard. Annotation for order line item contact. This value is always `Place`. This information is not stored. Data type: String

</td></tr><tr id="product_place_id-row-tmf622"><td>

productOrderItem.product.place.id

</td><td><p>Required if the <strong>productOrderItem.product.place</strong> parameter is used. Sys_id of the associated location record in the Location [cmn_location] table. When employing the change action on a product order item (via the<strong>productOrderItem.action</strong> parameter), updating the request with a new place sys_id creates a move order, where the order is not changed but is fulfilled in a new location. Data type: String</p>
<p>Stored in: The location field of the sn_ind_tmt_orm_order_line_item table.</p>
<p>Default: Blank string</p></td></tr><tr id="prod_prodChar-row-tmf622"><td>

productOrderItem.product.productCharacteristic

</td><td>

List of characteristics of the associated product. Data type: Array of Objects
"productCharacteristic": [ { "name": "String", "previousValue": "String", "value": "String", "valueType": "String" } ]
Stored in: sn\_ind\_tmt\_orm\_order\_characteristic\_value

</td></tr><tr id="prod_prodChar_name-row-tmf622"><td>

productOrderItem.product.productCharacteristic.name

</td><td>

Name of the characteristic record to associate with the product. Located in the Characteristic \[sn\_prd\_pm\_characteristic\] table. Data type: String

Stored in: The characteristics field of the sn\_ind\_tmt\_orm\_order\_characteristic\_value table.

Default: Blank string

</td></tr><tr id="prod_prodChar_previousValue-row-tmf622"><td>

productOrderItem.product.productCharacteristic.previousValue

</td><td><p>Previous characteristic option values if the update is for a change order. The request is a change order if the <strong>productOrderItem.action</strong> parameter is other than <code>add</code>. For additional information on characteristic option values, see <a href="../../../order-management/som-product-config-add-characteristics/">Create product characteristics and characteristic options</a>. Data type: String</p>
<p>Stored in: The previous_characteristic_option_value of the sn_ind_tmt_orm_order_characteristic_value table.</p>
<p>Default: Blank string</p></td></tr><tr id="prod_prodChar_value-row-tmf622"><td>

productOrderItem.product.productCharacteristic.value

</td><td>

Characteristic option values associated with the product. For additional information on characteristic option values, see <a href="../../../order-management/som-product-config-add-characteristics/">Create product characteristics and characteristic options</a>. Data type: String

Stored in: The characteristic\_option\_value field of the sn\_ind\_tmt\_orm\_order\_characteristic\_value table.

Default: Blank string

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

productOrderItem.product.productCharacteristic.valueType

</td><td>

Type of characteristic value.Data type: String

Possible values:

-   array.date
-   array.datetime
-   array.decimal
-   array.integer
-   array.object
-   array.single line test
-   checkbox
-   choice
-   date,address
-   email
-   integer,date/time
-   object
-   single line text
-   yes/no

</td></tr><tr id="product_productSpecification-row-tmf622"><td>

productOrderItem.product.productSpecification

</td><td><p>Description of the product specification associated with the product. <strong>Note:</strong> Change orders (<strong>productOrderItem.action</strong> is <code>change</code>) are processed differently based on the value of the <strong>sn_ind_tmt_orm.allowSpecVersionUpdateInChangeOrder</strong> system property. The value of this system property determines how the order is processed if the product inventory is a different version than indicated in the order.</p>
<ul>
<li>When this system property is set to true (default), the product inventory is automatically upgraded to the version in the order by changing the referenced product specification. This allows the order to be successfully processed.</li>
<li>When this system property is set to false, if the product inventory is a different version than indicated in the order, the order fails due to the version mismatch.</li>
</ul>
<p>Data type: Object</p>
<div class="highlight"><pre><span></span><code>&quot;productSpecification&quot;: {
  &quot;id&quot;: &quot;String&quot;,
  &quot;internalVersion&quot;: &quot;String&quot;,
  &quot;name&quot;: &quot;String&quot;,
  &quot;version&quot;: &quot;String&quot;,
  &quot;@type&quot;: &quot;String&quot;
}
</code></pre></div>
<p>Stored in: sn_ind_tmt_orm_order_line_item</p></td></tr><tr id="product_productSpecification_type-row-tmf622"><td>

productOrderItem.product.productSpecification.@type

</td><td>

Part of the TMF Open API standard. This value is always `ProductSpecificationRef`. This information is not stored. Data type: String

</td></tr><tr id="product_productSpecification_id-row-tmf622"><td>

productOrderItem.product.productSpecification.id

</td><td>Required if the <strong>productOrderItem.product.productSpecification</strong> parameter is used. Initial_version or external_id of the product specification. The initial_version is the sys_id of the first version of the specification. Located in the sys_id or external_id field of the Product Specification [sn_prd_pm_product_specification] table.Data type: String</td></tr><tr><td>

productOrderItem.product.productSpecification.internalVersion

</td><td id="tmf622-response-internalVersion"><p>Internal version of the product specification. Must match the value of <strong>version</strong> otherwise an error is thrown.Data Type: String</p>
<p>Table: Product Specification [sn_prd_pm_product_specification]</p></td></tr><tr id="product_productSpecification_name-row-tmf622"><td>

productOrderItem.product.productSpecification.name

</td><td>

Name of the product specification. Located in the Product Specification \[sn\_prd\_pm\_product\_specification\] table. Data type: String

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

productOrderItem.product.productSpecification.version

</td><td id="tmf622-response-version"><p>External version of the product specification. Must match the value of <strong>internalVersion</strong> otherwise an error is thrown.Data Type: String</p>
<p>Table: Product Specification [sn_prd_pm_product_specification]</p></td></tr><tr id="product_relatedParty-row-tmf622"><td>

productOrderItem.product.relatedParty

</td><td>

Optional. List of contacts for line items. Data type: Array of Objects
"relatedParty": [ { "email": "String", "firstName": "String", "id": "String", "lastName": "String", "phone": "String", "@referredType": "String", "@type": "String" } ]
Stored in: sn\_ind\_tmt\_orm\_order\_line\_item\_contact

</td></tr><tr id="product_relatedParty_referredType-row-tmf622"><td>

productOrderItem.product.relatedParty.@referredType

</td><td>

Type of customer. Possible value: OrderLineItemContact

Data type: String

</td></tr><tr id="product_relatedParty_type-row-tmf622"><td>

productOrderItem.product.relatedParty.@type

</td><td>

Part of TMF Open API standard. Annotation for order line item contact. This value is always `RelatedParty`. This information is not stored. Data type: String

</td></tr><tr id="product_relatedParty_email-row-tmf622"><td>

productOrderItem.product.relatedParty.email

</td><td>

Email address of the contact. Data type: String

Stored in: The email field of the sn\_ind\_tmt\_orm\_order\_line\_item\_contact table.

Default: Blank string

</td></tr><tr id="product_relatedParty_firstName-row-tmf622"><td>

productOrderItem.product.relatedParty.firstName

</td><td>

First name of the contact. Data type: String

Stored in: The first\_name field of the sn\_ind\_tmt\_orm\_order\_line\_item\_contact table.

Default: Blank string

</td></tr><tr id="product_relatedParty_id-row-tmf622"><td>

productOrderItem.product.relatedParty.id

</td><td>

Required. Sys\_id of the line item contact associated with the order line item. Located in the Order Line Item Contact \[sn\_ind\_tmt\_orm\_order\_line\_item\_contact\] table. Data type: String

Stored in: The sys\_id field of the sn\_ind\_tmt\_orm\_order\_line\_item\_contact table.

Default: Blank string

</td></tr><tr id="product_relatedParty_lastName-row-tmf622"><td>

productOrderItem.product.relatedParty.lastName

</td><td>

Last name of the contact. Data type: String

Stored in: The lastName field of the sn\_ind\_tmt\_orm\_order\_line\_item\_contact table.

Default: Blank string

</td></tr><tr id="product_relatedParty_phone-row-tmf622"><td>

productOrderItem.product.relatedParty.phone

</td><td>

Business phone number of the contact. Data type: String

Stored in: The business\_phone field of the sn\_ind\_tmt\_orm\_order\_line\_item\_contact table.

Default: Blank string

</td></tr><tr id="productOffering-row-tmf622"><td>

productOrderItem.productOffering

</td><td>

Description of the product offering associated with the product. Data type: Object
"productOffering": { "id": "String", "internalVersion": "String", "name": "String", "version": "String" }
Stored in: sn\_ind\_tmt\_orm\_order\_line\_item

</td></tr><tr id="productOffering_id-row-tmf622"><td>

productOrderItem.productOffering.id

</td><td>Required if the <strong>productOrderItem.productOffering</strong> parameter is used. Initial_version or external_id of the product offering. The initial_version is the sys_id of the first version of the offering. Located in the sys_id or external_id field of the Product Offering [sn_prd_pm_product_offering] table. Data type: String</td></tr><tr><td>

productOrderItem.productOffering.internalVersion

</td><td>

Version of the product offering.Data type: String

Table: Product Offering \[sn\_prd\_pm\_product\_offering\]

</td></tr><tr id="productOffering_name-row-tmf622"><td>

productOrderItem.productOffering.name

</td><td>

Name of the product offering. Located in the Product Offering \[sn\_prd\_pm\_product\_offering\] table. Data type: String

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

productOrderItem.productOffering.version

</td><td>

External\_version of the product offering.Data type: String

Table: Product Offering \[sn\_prd\_pm\_product\_offering\]

</td></tr><tr id="productOrdItem_quantity-row-tmf622"><td>

productOrderItem.productOrderItem.quantity

</td><td>

Number of the associated items to order. Data type: Number

Stored in: The quantity field of the sn\_ind\_tmt\_orm\_order.

Default: null

</td></tr><tr id="productOrderItemRelationship-row-tmf622"><td>

productOrderItem.productOrderItemRelationship

</td><td><p>Conditional. Item-level relationships. If supplied, each entry requires an <strong>id</strong> and <strong>relationshipType</strong>. Data type: Array of Objects</p>
<div class="highlight"><pre><span></span><code>&quot;productOrderItemRelationship&quot;: [
  {
    &quot;id&quot;: &quot;String&quot;,
    &quot;relationshipType&quot;: &quot;String&quot;
  }
]
</code></pre></div>
<p>Stored in: sn_ind_tmt_orm_order_line_item</p></td></tr><tr id="productOrderItemRelationship_id-row-tmf622"><td>

productOrderItem.productOrderItemRelationship.id

</td><td><p>Required if the <strong>productOrderItem.productOrderItemRelationship</strong> parameter is used. Unique identifier of the related line item. Located in the sn_ind_tmt_orm_external_id field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table. Data type: String</p>
<p>Stored in: The parent_line_item field of thebsn_ind_tmt_orm_order_line_item table.</p>
<p>Default: Blank string</p></td></tr><tr id="productOrderItemRelationship_relType-row-tmf622"><td>

productOrderItem.productOrderItemRelationship.relationshipType

</td><td>

Required. Type of relationship between the two line items. This information is used to identify the relationship hierarchy. Possible values:

-   HasChild
-   HasParent
-   Requires

`HasChild` and `HasParent` are used for parent/child relationships. `Requires` is used for horizontal relationships \(a line item requires another line item\).

Data type: String

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

productOrderItem.quantity

</td><td>

Number of items ordered.Data type: Number

Stored in: The quantity field of the sn\_ind\_tmt\_orm\_order table.

Default: Blank string

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

productOrderItem.revisionOperation

</td><td>

Type of update to perform on the line item. If this value is empty, the existing line item is updated, or a new line item is added if it does not already exist. If this value is `cancel`, the line item is canceled.Data type: String

Default: Blank string

</td></tr><tr id="relatedParty-row-tmf622"><td>

relatedParty

</td><td>

List of contacts for the order. Each contact is an object in the array. Must list at least one item which contains customer account or consumer account information. Data type: Array of Objects
"relatedParty": [ { "id": "String", "name": "String", "@referredType": "String", "@type": "String" } ]
</td></tr><tr id="relatedParty_referredType-row-tmf622"><td>

relatedParty.@referredType

</td><td>

Type of customer. Possible values:

-   Consumer
-   Customer
-   CustomerContact

Data type: String

</td></tr><tr id="relatedParty_type-row-tmf622"><td>

relatedParty.@type

</td><td>

Part of TMF Open API standard. Annotation for the product. This value is always `RelatedParty`. This information is not stored. Data type: String

</td></tr><tr id="relatedParty_id-row-tmf622"><td>

relatedParty.id

</td><td>

Sys\_id or external\_id of the account, customer contact, or consumer associated with the order. Located in the Account \[customer\_account\], Contact \[customer\_contact\] table, or Consumer \[csm\_consumer\] table. Data type: String

</td></tr><tr id="relatedParty_name-row-tmf622"><td>

relatedParty.name

</td><td>

Name of the account, customer, or consumer. Data type: String

</td></tr><tr id="requestedCompletionDate-row-tmf622"><td>

requestedCompletionDate

</td><td>

Optional. Delivery date requested by the customer. Data type: String

Stored in: The expected\_end\_date field of the sn\_ind\_tmt\_orm\_order table.

Default: Blank string

</td></tr><tr id="requestedStartDate-row-tmf622"><td>

requestedStartDate

</td><td>

Optional. Order start date requested by the customer. Data type: String

Stored in: The expected\_start\_date field of the sn\_ind\_tmt\_orm\_order table.

Default: Blank string

</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](../rest-api-explorer/c_RESTAPI.md).

|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](../rest-api-explorer/c_RESTAPI.md).

<table id="table_xfv_2vk_5rb"><thead><tr><th>

Status code

</th><th>

Description

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

201

</td><td><p>Successful. If there are any issues with the characteristics or characteristics option information, the endpoint stores the following comments in the work notes fields of the associated Customer Order Line Item record:</p>
<ul>
<li><code>The following Order Item characteristics does not exist: Review specification &lt;**characteristic.name**&gt; and correct the characteristic and characteristic option in the order line item prior to approving the order.</code></li>
<li><code>Order Item characteristic: &lt;**characteristic.name**&gt; with characteristic value: &lt;**characteristic.value**&gt;is invalid. Correct the characteristic values before approving the order.</code></li>
</ul></td></tr><tr><td>

400

</td><td>Bad Request. Could be any of the following reasons:-   <code>Invalid payload: Request body missing</code> - Payload was not passed in the request body.
-   <code>Invalid payload: productOrderItem is missing</code> - Product order line item object or JSON is missing.
-   <code>Invalid payload: productOrderItem id is missing</code> - The <strong>id</strong> parameter is missing in the product order line item of the payload.
-   <code>Invalid payload: productOrderItem action is missing</code> - The <strong>action</strong> parameter is missing in the product order line item of the payload.
-   <code>Invalid payload: productOrderItem productOffering is missing</code> - The product offering object or JSON is missing from the product order line item in the payload.
-   <code>Invalid payload: productOffering id is missing</code> - The <strong>id</strong> parameter is missing in the product order line item of the product offering object in the payload.
-   <code>Invalid payload: Product offering does not exist</code> - The product offering in the product order line item is not valid.
-   <code>Invalid payload: productOrderItem product is missing</code> - The product object or JSON in the product order line item is missing from the payload.
-   <code>Invalid payload: product productSpecification is missing</code> - The product specification object or JSON in the product order line item is missing from the payload.
-   <code>Invalid payload: productSpecification id is missing</code> - The <strong>id</strong> parameter in the product order line item of the product specification object is missing from the payload.
-   <code>Invalid payload: Product specification does not exist</code> - The product specification in the product order line item is not valid.
-   <code>Invalid payload: Product Inventory does not exist</code> - In a change order (action = change), the quantity of an item is greater than what is in stock.
-   <code>Invalid payload: Product inventory ID is missing</code> - In a change order, the <strong>product.id</strong> is missing in the payload.
-   <code>Invalid payload: Sold Product is inactive</code> - In a change order, a product specified in the payload is inactive.
-   <code>Invalid payload: relatedParty is missing</code> - The related party object is missing from the payload.
-   <code>Customer Account or Consumer is missing</code> - The related party customer or consumer object is missing from the payload.
-   <code>Invalid payload: Consumer does not exist</code> - The specified related party consumer does not exist in the ServiceNow instance.
-   <code>Invalid payload: Customer Account does not exist</code> - The specified related party customer does not exist in the ServiceNow instance.
-   <code>Invalid payload: Order creation failed</code> - Not able to create the requested order.
-   <code>In-flight revision to order currency not supported</code> - The <strong>orderCurrency</strong> parameter can't be updated after the order is created.
-   <code>This order is yet to be created in customer order table. Please check in inbound queue for more details.</code> – The order ID provided is not in the customer order table.
-   <code>Patch request cannot be made as the order's fulfillment type is not 'deliver.</code> – The patch request was made on an order which has a fulfillment type other than deliver.</td></tr></tbody>
</table>

### Response body parameters \(JSON\)

<table id="table_c1v_xpk_5rb"><thead><tr><th>

Name

</th><th>

Description

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

channel

</td><td>

List of channels to use for selling the products. Data type: Array of Objects
"channel": [ { "id": "String", "name": "String" } ]
</td></tr><tr><td>

channel.id

</td><td>

Unique identifier of the channel to use to sell the associated products. Data type: String

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

channel.name

</td><td>

Name of the channel to use to sell the associated products. Data type: String

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

committedDueDate

</td><td><p>Date and time when the action must be performed on the order.</p>
<p>This value must be the same as or later than the <strong>committedDueDate</strong> values for each order line item.</p>
<p>Data type: String</p></td></tr><tr><td>

externalId

</td><td>

External identifier for the customer order, such as a purchase order number.Data type: String

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

href

</td><td>

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

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

id

</td><td>

Sys\_id of the customer order updated for this request. Data type: String

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

note

</td><td>

Optional. List of additional notes made by the customer when ordering. Data type: Array of Objects
"note": [ { "text": "String" } ]
</td></tr><tr><td>

note.text

</td><td>

Additional notes/comments made by the customer while ordering. Data type: String

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

orderCurrency

</td><td>

Currency code for the order and order line items.Data type: String

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

productOrderItem

</td><td>

List that describes items associated with the product order and their associated action. Data type: Array of Objects
"productOrderItem:" [ { "action": "String", "committedDueDate": "String", "externalProductInventory": [Array], "id": "String", "itemPrice": [Array], "product": {Object}, "productOffering": {Object}, "productOrderItemReleationship": [Array], "quantity": Number, "state": "String", "@type": "String" } ]
</td></tr><tr><td>

productOrderItem.action

</td><td>

Action to carry out on the product. Possible actions are defined on the Choice List tab in the Action Dictionary Entry of the sn\_ind\_tmt\_orm\_order\_line\_item table. Data type: String

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

productOrderItem.actionReason

</td><td>

Reason for adding the order line item.Data type: String

Stored in: The action\_reason field of the sn\_ind\_tmt\_orm\_order\_line\_item table.

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

productOrderItem.committedDueDate

</td><td>

Optional. Date and time when the action must be performed on the order line item.

Data type: String

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

productOrderItem.externalProductInventory

</td><td id="d3288e1801"><p>Conditional. If supplied, each entry requires <strong>externalProductInventoryId</strong>. List of external IDs to map to the product inventories created for the order. Data type: Array of Objects</p>
<div class="highlight"><pre><span></span><code>&quot;externalProductInventory&quot;: [
  {
    &quot;externalProductInventoryId&quot;: &quot;String&quot;
  }
]
</code></pre></div>
<p><strong>Note:</strong> Previously, when creating a PATCH order with an external product inventory ID that already existed, the operation was aborted and returned an error. With the Xanadu release, this parameter is simply ignored when an existing external product inventory ID is supplied and an error is not thrown.</p></td></tr><tr><td>

productOrderItem.externalProductInventory.externalProductInventoryId

</td><td id="externalProdInvId-resp-descr">

External ID mapped to the product inventory.Data type: String

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

productOrderItem.id

</td><td>

Unique identifier of the line item. Located in the sn\_ind\_tmt\_orm\_external\_id field of the Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\] table. Data type: String

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

productOrderItem.itemPrice

</td><td>

List that describes the price associated with the product. Data type: Array of Objects
"itemPrice": [ { "price": {Object}, "priceType": "String", "recurringChargePeriod": "String" } ]
</td></tr><tr><td>

productOrderItem.itemPrice.price

</td><td>

Description of the price of the associated product. Data type: Object
"price": { "taxIncludedAmount": {Object} }
</td></tr><tr><td>

productOrderItem.itemPrice.price.taxIncludeAmount

</td><td>

Description of the price of the associated product, including the tax. Data type: Object
"taxIncludedAmount": { "unit": "String", "value": Number }
</td></tr><tr><td>

productOrderItem.itemPrice.price.taxIncludeAmount.unit

</td><td>

Currency code in which the price is depicted. Data type: String

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

productOrderItem.itemPrice.price.taxIncludeAmount.value

</td><td>

Price of product, including any tax. Data type: Number

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

productOrderItem.itemPrice.priceType

</td><td>

Type of item price, recurring or non-recurring. Data type: String

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

productOrderItem.itemPrice.recurringChargePeriod

</td><td>

If the price is recurring, the recurring period, such as `month`. Data type: String

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

productOrderItem.product

</td><td>

Description of the instance details of the product purchased by the customer. Data type: Object
"product": { "id": "String", "place": {Object}, "productCharacteristic": [Array], "productSpecification": {Object}, "relatedParty": {Object}, "@type": "String" }
</td></tr><tr><td>

productOrderItem.product.id

</td><td>

Unique identifier of the product sold. Located in the sys\_id or sn\_ind\_tmt\_orm\_external\_id field of the Product Inventory \[sn\_ind\_tmt\_orm\_product\_inventory\] table. Data type: String

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

productOrderItem.product.place

</td><td>

Maps of the locations on which to install the product. Data type: Object
"place": { "id": "String", "@type": "String" }
</td></tr><tr><td>

productOrderItem.product.place.id

</td><td>Sys_id of the associated location record in the Location [cmn_location] table. When employing the change action on a product order item (via the<strong>productOrderItem.action</strong> parameter), updating the request with a new place sys_id creates a move order, where the order is not changed but is fulfilled in a new location. Data type: String</td></tr><tr><td>

productOrderItem.product.productCharacteristic

</td><td>

List of characteristics of the associated product. Data type: Array of Objects
"productCharacteristic": [ { "name": "String", "previousValue": "String", "value": "String", "valueType": "String" } ]
</td></tr><tr><td>

productOrderItem.product.productCharacteristic.name

</td><td>

Name of the characteristic record to associate with the product. Located in the Characteristic \[sn\_prd\_pm\_characteristic\] table. Data type: String

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

productOrderItem.product.productCharacteristic.previousValue

</td><td>Previous characteristic option values if the update is for a change order. The request is a change order if the <strong>productOrderItem.action</strong> parameter is other than <code>add</code>. For additional information on characteristic option values, see <a href="../../../order-management/som-product-config-add-characteristics/">Create product characteristics and characteristic options</a>. Data type: String</td></tr><tr><td>

productOrderItem.product.productCharacteristic.value

</td><td>

Characteristic option values associated with the product. For additional information on characteristic option values, see <a href="../../../order-management/som-product-config-add-characteristics/">Create product characteristics and characteristic options</a>. Data type: String

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

productOrderItem.product.productSpecification

</td><td>

Description of the product specification associated with the product. Data type: Object
"productSpecification:" { "id": "String", "internalId": "String", "internalVersion": "String", "name": "String", "version": "String", "@type": "String" }
</td></tr><tr><td>

productOrderItem.product.productSpecification.id

</td><td>

Initial\_version or external\_id of the product specification. The initial\_version is the sys\_id of the first version of the specification. Located in the sys\_id or external\_id field of the Product Specification \[sn\_prd\_pm\_product\_specification\] table. Data type: String

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

productOrderItem.product.productSpecification.internalId

</td><td>

Initial version of the product specification. The initial version is the sys\_id of the first version of the specification.Data type: String

Table: Product Specification \[sn\_prd\_pm\_product\_specification\]

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

productOrderItem.product.productSpecification.internalVersion

</td><td>

Version of the product specification.Data type: String

Table: In the version field of the Product Specification \[sn\_prd\_pm\_product\_specification\] table.

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

productOrderItem.product.productSpecification.name

</td><td>

Name of the product specification. Located in the Product Specification \[sn\_prd\_pm\_product\_specification\] table. Data type: String

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

productOrderItem.product.productSpecification.version

</td><td>

External version of the product specification.Data type: String

Table: In the external\_version field of the Product Specification \[sn\_prd\_pm\_product\_specification\] table.

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

productOrderItem.product.productSpecification.@type

</td><td>

Part of the TMF Open API standard. This value is always `ProductSpecificationRef`. This information is not stored. Data type: String

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

productOrderItem.product.relatedParty

</td><td>

Optional. List of contacts for line items. Data type: Array of Objects
"relatedParty": [ { "email": "String", "firstName": "String", "id": "String", "lastName": "String", "phone": "String", "@referredType": "String", "@type": "String" } ]
</td></tr><tr><td>

productOrderItem.product.relatedParty.email

</td><td>

Email address of the contact. Data type: String

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

productOrderItem.product.relatedParty.firstName

</td><td>

First name of the contact. Data type: String

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

productOrderItem.product.relatedParty.id

</td><td>

Required. Sys\_id of the line item contact associated with the order line item. Located in the Order Line Item Contact \[sn\_ind\_tmt\_orm\_order\_line\_item\_contact\] table. Data type: String

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

productOrderItem.product.relatedParty.lastName

</td><td>

Last name of the contact. Data type: String

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

productOrderItem.product.relatedParty.phone

</td><td>

Business phone number of the contact. Data type: String

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

productOrderItem.product.relatedParty.@referredType

</td><td>

Type of customer. Possible value: OrderLineItemContact

Data type: String

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

productOrderItem.product.relatedParty.@type

</td><td>

Part of TMF Open API standard. Annotation for order line item contact. This value is always `RelatedParty`. This information is not stored. Data type: String

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

productOrderItem.product.@type

</td><td>

Part of TMF Open API standard. Annotation for the product. This value is always `Product`. This information is not stored. Data type: String

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

productOrderItem.productOffering

</td><td>

Description of the product offering associated with the product. Data type: Object
"productOffering:" { "id": "String", "internalId": "String", "internalVersion": "String", "name": "String", "version": "String" }
</td></tr><tr><td>

productOrderItem.productOffering.id

</td><td>

Initial\_version or external\_id of the product offering. The initial\_version is the sys\_id of the first version of the offering. Located in the sys\_id or external\_id field of the Product Offering \[sn\_prd\_pm\_product\_offering\] table. Data type: String

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

productOrderItem.productOffering.internalId

</td><td>

Initial version of the product offering. The initial version is the sys\_id of the first version of the offering.Data type: String

Table: Product Offering \[sn\_prd\_pm\_product\_offering\]

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

productOrderItem.productOffering.internalVersion

</td><td>

Version of the product offering.Data type: String

Table: Product Offering \[sn\_prd\_pm\_product\_offering\] table, field version.

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

productOrderItem.productOffering.name

</td><td>

Name of the product offering. Located in the Product Offering \[sn\_prd\_pm\_product\_offering\] table. Data type: String

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

productOrderItem.productOffering.version

</td><td>

External version of the product offering.Data type: String

Table: In the external\_version field of the Product Offering \[sn\_prd\_pm\_product\_offering\] table.

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

productOrderItem.productOrderItemRelationship

</td><td><p>Conditional. Item-level relationships. If supplied, each entry requires an <strong>id</strong> and <strong>relationshipType</strong>. Data type: Array of Objects</p>
<div class="highlight"><pre><span></span><code>&quot;productOrderItemRelationship&quot;: [
  {
    &quot;id&quot;: &quot;String&quot;,
    &quot;relationshipType&quot;: &quot;String&quot;
  }
]
</code></pre></div></td></tr><tr><td>

productOrderItem.productOrderItemRelationship.id

</td><td>

Unique identifier of the related line item. Located in the sn\_ind\_tmt\_orm\_external\_id field of the Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\] table. Data type: String

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

productOrderItem.productOrderItemRelationship.relationshipType

</td><td>

Required. Type of relationship between the two line items. This information is used to identify the relationship hierarchy. Data type: String

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

productOrderItem.quantity

</td><td>

Number of the associated items to order. Data type: Number

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

productOrderItem.state

</td><td>

Current state of the product order item.Data type: String

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

productOrderItem.@type

</td><td>

Part of TMF Open API standard. Annotation for the product. This value is always `ProductOrderItem`. This information is not stored.Data type: String

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

relatedParty

</td><td>

List of contacts for the order. Each contact is an object in the array. Must list at least one item which contains customer account or consumer account information. Data type: Array of Objects
"relatedParty": [ { "id": "String", "name": "String", "@referredType": "String", "@type": "String" } ]
</td></tr><tr><td>

relatedParty.id

</td><td>

Sys\_id or external\_id of the account, customer contact, or consumer associated with the order. Located in the Account \[customer\_account\], Contact \[customer\_contact\] table, or Consumer \[csm\_consumer\] table. Data type: String

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

relatedParty.name

</td><td>

Name of the account, customer, or consumer. 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>

requestedCompletionDate

</td><td>

Optional. Delivery date requested by the customer. Data type: String

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

requestedStartDate

</td><td>

Optional. Order start date requested by the customer. Data type: String

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

state

</td><td>

Current state of the order.Data type: String

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

@type

</td><td>

Part of TMF Open API standard. Annotation for the product. This value is always `ProductOrder`. This information is not stored.Data type: String

</td></tr></tbody>
</table>

### cURL request

This example retrieves the given product order associated with the ID 8d75939453126010a795ddeeff7b126a.
curl -X GET "https://instance.service-now.com/api/sn_ind_tmt_orm/order/productOrder/8d75939453126010a795ddeeff7b126a" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -u "username":"password" \ -d { "channel": [ { "id": "1", "name": "Agent Assist" } ] }
Response body.
{ "id": "8d75939453126010a795ddeeff7b126a", "href": "/api/sn_ind_tmt_orm/order/productOrder/8d75939453126010a795ddeeff7b126a", "expectedCompletionDate": "2021-05-02T08:13:59.000Z", "requestedCompletionDate": "2021-05-02T08:13:59.000Z", "requestedStartDate": "2020-05-03T08:13:59.000Z", "externalId": "PO-456", "orderCurrency": "USD", "channel": [ { "id": "1", "name": "Agent Assist" } ], "note": [ { "author": "System Administrator", "date": "2021-02-25T14:22:07.000Z", "text": "This is a TMF product order illustration no 2" }, { "author": "System Administrator", "date": "2021-02-25T14:22:06.000Z", "text": "This is a TMF product order illustration" } ], "productOrderItem": [ { "id": "POI130", "ponr": "false", "quantity": 1, "action": "add", "actionReason": "adding service package OLI", "itemPrice": [ { "priceType": "recurring", "price": { "taxIncludedAmount": { "unit": "USD", "value": 20 } } }, { "priceType": "nonRecurring", "price": { "taxIncludedAmount": { "unit": "INR", "value": 0 } } } ], "product": { "@type": "Product", "productCharacteristic": [ { "name": "Security Type", "valueType": "Choice", "value": "Base", "previousValue": "" } ], "productSpecification": { "id": "a6514bd3534560102f18ddeeff7b1247", "name": "SD-WAN Security", "version": "v1", "internalVersion": "1", "internalId": "a6514bd3534560102f18ddeeff7b1247", "@type": "ProductSpecificationRef" }, "relatedParty": [ { "id": "4175939453126010a795ddeeff7b127d", "name": "John Smith", "email": "abc2@example.com", "phone": "32456768", "@type": "RelatedParty", "@referredType": "OrderLineItemContact" }, { "id": "c175939453126010a795ddeeff7b127c", "name": "Joe Doe", "email": "abc@example.com", "phone": "1234567890", "@type": "RelatedParty", "@referredType": "OrderLineItemContact" } ] }, "productOffering": { "id": "69017a0f536520103b6bddeeff7b127d", "name": "Premium SD-WAN Offering", "version": "v1", "internalId": "69017a0f536520103b6bddeeff7b127d", "internalVersion": "1" }, "productOrderItemRelationship": [ { "id": "POI100", "relationshipType": "HasParent" } ], "state": "in_progress", "version": "1", "@type": "ProductOrderItem" }, { "id": "POI100", "ponr": "false", "quantity": 1, "action": "add", "itemPrice": [ { "priceType": "recurring", "price": { "taxIncludedAmount": { "unit": "INR", "value": 0 } } }, { "priceType": "nonRecurring", "price": { "taxIncludedAmount": { "unit": "INR", "value": 0 } } } ], "product": { "@type": "Product", "productSpecification": { "id": "cfe5ef6a53702010cd6dddeeff7b12f6", "name": "SD-WAN Service Package", "version": "v1", "internalVersion": "1", "internalId": "cfe5ef6a53702010cd6dddeeff7b12f6", "@type": "ProductSpecificationRef" } }, "productOffering": { "id": "69017a0f536520103b6bddeeff7b127d", "name": "Premium SD-WAN Offering", "version": "v1", "internalId": "69017a0f536520103b6bddeeff7b127d", "internalVersion": "1" }, "productOrderItemRelationship": [ { "id": "POI130", "relationshipType": "HasChild" }, { "id": "POI120", "relationshipType": "HasChild" }, { "id": "POI110", "relationshipType": "HasChild" } ], "state": "in_progress", "version": "1", "@type": "ProductOrderItem" }, { "id": "POI120", "ponr": "false", "quantity": 1, "action": "add", "actionReason": "adding service package OLI", "itemPrice": [ { "priceType": "recurring", "price": { "taxIncludedAmount": { "unit": "USD", "value": 20 } } }, { "priceType": "nonRecurring", "price": { "taxIncludedAmount": { "unit": "INR", "value": 0 } } } ], "product": { "@type": "Product", "productCharacteristic": [ { "name": "CPE Type", "valueType": "Choice", "value": "Physical", "previousValue": "" }, { "name": "WAN Optimization", "valueType": "Choice", "value": "Advance", "previousValue": "" }, { "name": "Routing", "valueType": "Choice", "value": "Premium", "previousValue": "" }, { "name": "CPE Model", "valueType": "Choice", "value": "ASR", "previousValue": "" } ], "productSpecification": { "id": "39b627aa53702010cd6dddeeff7b1202", "name": "SD-WAN Edge Device", "version": "v1", "internalVersion": "1", "internalId": "39b627aa53702010cd6dddeeff7b1202", "@type": "ProductSpecificationRef" } }, "productOffering": { "id": "69017a0f536520103b6bddeeff7b127d", "name": "Premium SD-WAN Offering", "version": "v1", "internalVersion": "1", "internalId": "69017a0f536520103b6bddeeff7b127d" }, "productOrderItemRelationship": [ { "id": "POI100", "relationshipType": "HasParent" } ], "state": "in_progress", "version": "1", "@type": "ProductOrderItem" }, { "id": "POI110", "ponr": "false", "quantity": 1, "action": "add", "actionReason":"adding service package OLI", "itemPrice": [ { "priceType": "recurring", "price": { "taxIncludedAmount": { "unit": "INR", "value": 0 } } }, { "priceType": "nonRecurring", "price": { "taxIncludedAmount": { "unit": "USD", "value": 5 } } } ], "product": { "@type": "Product", "productCharacteristic": [ { "name": "Tenancy", "valueType": "Choice", "value": "Base (10 site)", "previousValue": "" } ], "productSpecification": { "id": "216663aa53702010cd6dddeeff7b12b5", "name": "SD-WAN Controller", "version": "v1", "internalVersion": "1", "internalId": "216663aa53702010cd6dddeeff7b12b5", "@type": "ProductSpecificationRef" }, "place": { "id": "25ab9c4d0a0a0bb300f7dabdc0ca7c1c", "@type": "Place" } }, "productOffering": { "id": "69017a0f536520103b6bddeeff7b127d", "name": "Premium SD-WAN Offering", "version": "v1", "internalId": "69017a0f536520103b6bddeeff7b127d", "internalVersion": "1" }, "productOrderItemRelationship": [ { "id": "POI100", "relationshipType": "HasParent" } ], "state": "in_progress", "version": "1", "@type": "ProductOrderItem" } ], "relatedParty": [ { "id": "eaf68911c35420105252716b7d40ddde", "name": "Sally Thomas", "@type": "RelatedParty", "@referredType": "CustomerContact" }, { "id": "ffc68911c35420105252716b7d40dd55", "name": "Funco Intl", "@type": "RelatedParty", "@referredType": "Customer" }, { "id": "59f16de1c3b67110ff00ed23a140dd9e", "name": "Funco External", "@type": "RelatedParty", "@referredType": "Consumer" } ], "state": "in_progress", "@type": "ProductOrder" }
## Product Order Open API - PATCH /sn\_ind\_tmt\_orm/order/productOrder/\{id\}

Updates the specified customer order.

### URL format

Default URL: `/api/sn_ind_tmt_orm/order/productOrder/{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 customer order to update.Data type: String

Table: Customer Order \[sn\_ind\_tmt\_orm\_order\]

</td></tr></tbody>
</table>

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

<table id="id_vk2_p5n_t4b" class="rest_api_request_body"><thead><tr><th>

Name

</th><th>

Description

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

@type

</td><td id="type-entry-tmf622">

Part of TMF Open API standard. Annotation for the product. This value is always `ProductOrder`. This information is not stored.Data type: String

</td></tr><tr id="channel-row-tmf622"><td>

channel

</td><td>

List of channels to use for selling the products. Data type: Array of Objects
"channel": [ { "id": "String", "name": "String" } ]
Stored in: sn\_ind\_tmt\_orm\_order

</td></tr><tr id="channel_id-row-tmf622"><td>

channel.id

</td><td><p>Required if the <strong>channel</strong> parameter is used. Unique identifier of the channel to use to sell the associated products. Data type: String</p>
<p>Table: In the external_id field of the Distribution Channel [sn_prd_pm_distribution_channel] table.</p>
<p>Stored in: The channel field of the sn_ind_tmt_orm_order table.</p>
<p>Default: Blank string</p></td></tr><tr id="channel_name-row-tmf622"><td>

channel.name

</td><td>

Name of the channel to use to sell the associated products. Possible channel names are defined on the Choice List tab in the Channel Dictionary Entry of the sn\_ind\_tmt\_orm\_order table.Data type: String

Default: Blank string

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

committedDueDate

</td><td id="due-date-PATCH"><p>Date and time when the action must be performed on the order.This value must be the same as or later than the <strong>committedDueDate</strong> values for each order line item.</p>
<p>If the action for order line items is <code>suspend</code> or <code>resume</code>, this parameter can't be updated.</p>
<p>Data type: String</p>
<p>Stored in: The committed_due_date field of the sn_ind_tmt_orm_order table.</p></td></tr><tr id="externalId-row-tmf622"><td>

externalId

</td><td>

Unique identifier for the customer order. This value is determined by an external system. Data type: String

Stored in: The external\_id field of the sn\_ind\_tmt\_orm\_order table.

Default: Blank string

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

externalSystem

</td><td id="tmf622-response-externalSystem"><p>External system of the service order, appended with <code>TMF622</code>. For example, if the external system is ABC then enter the value in <strong>externalSystem</strong> as <code>ABC-TMF622</code>.</p>
<p>Data Type: String</p></td></tr><tr id="note-row-tmf622"><td>

note

</td><td>

Optional. List of additional notes made by the customer when ordering. Data type: Array of Objects
"note": [ { "text": "String" } ]
Stored in: sn\_ind\_tmt\_orm\_order

</td></tr><tr id="note_text-row-tmf622"><td>

note.text

</td><td>

Additional notes/comments made by the customer while ordering. Data type: String

Stored in: The comments field of the sn\_ind\_tmt\_orm\_order table.

Default: Blank string

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

orderCurrency

</td><td>

Currency code for the order and order line items. Updating the currency code of an existing order is not supported. Providing any value other than the currency code already associated with the order causes the update to be rejected.Data type: String

</td></tr><tr id="productOrderItem-row-tmf622"><td>

productOrderItem

</td><td>

List that describes items associated with the product order and their associated action. Data type: Array of Objects
"productOrderItem": [ { "action": "String", "actionReason": "String", "committedDueDate": "String", "externalProductInventory": [Array], "id": "String", "itemPrice": [Array], "product": {Object}, "productOffering": {Object}, "productOrderItemRelationship": [Array], "quantity": Number, "revisionOperation": "String", "@type": "String" } ]
Stored in: sn\_ind\_tmt\_orm\_order\_line\_item

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

productOrderItem.@type

</td><td id="prodOrdItem_type-entry-tmf622">

Part of TMF Open API standard. Annotation for the product. This value is always `ProductOrderItem`. This information is not stored.Data type: String

</td></tr><tr id="productOrderItem_action-row-tmf622"><td>

productOrderItem.action

</td><td><p>Required if the <strong>productOrderItem</strong> parameter is used. Action to carry out on the product. Possible actions are defined on the Choice List tab in the Action Dictionary Entry of the sn_ind_tmt_orm_order_line_item table. Possible values:</p>
<ul>
<li>add</li>
<li>change</li>
</ul>
<p><strong>Note:</strong> Submitting a change payload that includes a new service location via <strong>productOrderItem.product.place.id</strong> is processed as a move order.</p>
<ul>
<li>delete</li>
<li>no-change</li>
<li>resume</li>
<li>suspend</li>
</ul>
<p>Data type: String</p>
<p>Stored in: The action field of the sn_ind_tmt_orm_order_line_item table.</p>
<p>Default: add</p></td></tr><tr><td>

productOrderItem.actionReason

</td><td id="prodOrdItem_actionReason-response-tmf622">

Reason for adding the order line item.Data type: String

Stored in: The action\_reason field of the sn\_ind\_tmt\_orm\_order\_line\_item table.

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

productOrderItem.committedDueDate

</td><td id="due-date-item-PATCH">

Date and time when the action must be performed on the order line item.If the action for the item is `suspend` or `resume`, this parameter can't be updated.

Data type: String

Stored in: The committed\_due\_date field of the sn\_ind\_tmt\_orm\_order\_line\_item table.

</td></tr><tr id="externalProdInvId"><td>

productOrderItem.externalProductInventory.externalProductInventoryId

</td><td id="externalProdInvId-decsr">

External ID to map to the product inventory.Data type: String

Stored in: The external\_inventory\_id field of the sn\_ind\_tmt\_orm\_order\_line\_item table and the sn\_prd\_invt\_external\_id field of the sn\_prd\_invt\_product\_inventory table.

</td></tr><tr id="externalProdInv-PATCH"><td>

productOrderItem.externalProductInventory

</td><td id="externalProdInv-descr-PATCH"><p>Conditional. If supplied, each entry requires <strong>externalProductInventoryId</strong>. List of external IDs to map to the product inventories created for the order. Data type: Array of Objects</p>
<div class="highlight"><pre><span></span><code>&quot;externalProductInventory&quot;: [
  {
    &quot;externalProductInventoryId&quot;: &quot;String&quot;
  }
]
</code></pre></div>
<p><strong>Note:</strong> Previously, when creating a PATCH order with an external product inventory ID that already existed, the operation was aborted and returned an error. With the Xanadu release, this parameter is simply ignored when an existing external product inventory ID is supplied and an error is not thrown.</p></td></tr><tr id="productOrderItem_id-row-tmf622"><td>

productOrderItem.id

</td><td><p>Required if the <strong>productOrderItem</strong> parameter is used. Unique identifier of the line item. Located in the sn_ind_tmt_orm_external_id field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table. Data type: String</p>
<p>Stored in: The external_id field of the sn_ind_tmt_orm_order_line_item table.</p>
<p>Maximum length: 40</p>
<p>Default: Blank string</p></td></tr><tr id="itemPrice-row-tmf622"><td>

productOrderItem.itemPrice

</td><td id="itemPrice-entry-tmf622">

List that describes the price associated with the product. Data type: Array of Objects
"itemPrice": [ { "price": {Object}, "priceType": "String", "recurringChargePeriod": "String" } ]
Stored in: sn\_ind\_tmt\_orm\_order

Default: Blank string

</td></tr><tr id="itemPrice_price-row-tmf622"><td>

productOrderItem.itemPrice.price

</td><td id="itemPrice_price-entry-tmf622">

Description of the price of the associated product. Data type: Object
"price": { "taxIncludedAmount": {Object} }
Stored in: sn\_ind\_tmt\_orm\_order\_line\_item

Default: Blank string

</td></tr><tr id="itemPrice_price_taxIncludedAmt-row-tmf622"><td>

productOrderItem.itemPrice.price.taxIncludedAmount

</td><td id="itemPrice_price_taxIncludedAmt-entry-tmf622">

Description of the price of the associated product, including the tax. Data type: Object
"taxIncludedAmount": { "unit": "String", "value": Number }
Stored in: sn\_ind\_tmt\_orm\_order\_line\_item

</td></tr><tr id="itemPrice_price_taxIncludedAmt_unit-row-tmf622"><td>

productOrderItem.itemPrice.price.taxIncludedAmount.unit

</td><td id="itemPrice_price_taxIncludedAmt_unit-entry-tmf622">

Currency code in which the price is depicted. Data type: String

Stored in: The mrc or nrc field in the sn\_ind\_tmt\_orm\_order\_line\_item table.

</td></tr><tr id="itemPrice_price_taxIncludedAmt_value-row-tmf622"><td>

productOrderItem.itemPrice.price.taxIncludedAmount.value

</td><td id="itemPrice_price_taxIncludedAmt_value-entry-tmf622">

Price of product, including any tax. Data type: Number

Stored in: The mrc or nrc field in the sn\_ind\_tmt\_orm\_order\_line\_item table.

</td></tr><tr id="itemPrice_priceType-row-tmf622"><td>

productOrderItem.itemPrice.priceType

</td><td id="itemPrice_priceType-entry-tmf622">

Type of item price, recurring or non-recurring. Data type: String

</td></tr><tr id="itemPrice_recurringChargePeriod-row-tmf622"><td>

productOrderItem.itemPrice.recurringChargePeriod

</td><td id="itemPrice_recurringChargePeriod-entry-tmf622">

If the price is recurring, the recurring period, such as `month`. Data type: String

</td></tr><tr id="product-row-tmf622"><td>

productOrderItem.product

</td><td><p>Required if <strong>productOrderItem.action</strong> is change or delete. Description of the instance details of the product purchased by the customer. Data type: Object</p>
<div class="highlight"><pre><span></span><code>&quot;product&quot;: {
  &quot;id&quot;: &quot;String&quot;,
  &quot;place&quot;: {Object},
  &quot;productCharacteristic&quot;: [Array],
  &quot;productSpecification&quot;: {Object},
  &quot;relatedParty&quot;: {Object},
  &quot;@type&quot;: &quot;String&quot;
}
</code></pre></div>
<p>Stored in: sn_ind_tmt_orm_order_line_item</p></td></tr><tr id="product_type-row-tmf622"><td>

productOrderItem.product.@type

</td><td>

Part of TMF Open API standard. Annotation for the product. This value is always `Product`. This information is not stored. Data type: String

</td></tr><tr id="product_id-row-tmf622"><td>

productOrderItem.product.id

</td><td><p>Required if <strong>productOrderItem.action</strong> is change or delete. Unique identifier of the product sold. Located in the sys_id or sn_ind_tmt_orm_external_id field of the Product Inventory [sn_ind_tmt_orm_product_inventory] table. Data type: String</p>
<p>Default: Blank string</p></td></tr><tr id="product_place-row-tmf622"><td>

productOrderItem.product.place

</td><td>

Maps of the locations on which to install the product. Data type: Object
"place": { "id": "String", "@type": "String" }
Stored in: sn\_ind\_tmt\_orm\_order\_line\_item

</td></tr><tr id="product_place_type-row-tmf622"><td>

productOrderItem.product.place.@type

</td><td>

Part of TMF Open API standard. Annotation for order line item contact. This value is always `Place`. This information is not stored. Data type: String

</td></tr><tr id="product_place_id-row-tmf622"><td>

productOrderItem.product.place.id

</td><td><p>Required if the <strong>productOrderItem.product.place</strong> parameter is used. Sys_id of the associated location record in the Location [cmn_location] table. When employing the change action on a product order item (via the<strong>productOrderItem.action</strong> parameter), updating the request with a new place sys_id creates a move order, where the order is not changed but is fulfilled in a new location. Data type: String</p>
<p>Stored in: The location field of the sn_ind_tmt_orm_order_line_item table.</p>
<p>Default: Blank string</p></td></tr><tr id="prod_prodChar-row-tmf622"><td>

productOrderItem.product.productCharacteristic

</td><td>

List of characteristics of the associated product. Data type: Array of Objects
"productCharacteristic": [ { "name": "String", "previousValue": "String", "value": "String", "valueType": "String" } ]
Stored in: sn\_ind\_tmt\_orm\_order\_characteristic\_value

</td></tr><tr id="prod_prodChar_name-row-tmf622"><td>

productOrderItem.product.productCharacteristic.name

</td><td>

Name of the characteristic record to associate with the product. Located in the Characteristic \[sn\_prd\_pm\_characteristic\] table. Data type: String

Stored in: The characteristics field of the sn\_ind\_tmt\_orm\_order\_characteristic\_value table.

Default: Blank string

</td></tr><tr id="prod_prodChar_previousValue-row-tmf622"><td>

productOrderItem.product.productCharacteristic.previousValue

</td><td><p>Previous characteristic option values if the update is for a change order. The request is a change order if the <strong>productOrderItem.action</strong> parameter is other than <code>add</code>. For additional information on characteristic option values, see <a href="../../../order-management/som-product-config-add-characteristics/">Create product characteristics and characteristic options</a>. Data type: String</p>
<p>Stored in: The previous_characteristic_option_value of the sn_ind_tmt_orm_order_characteristic_value table.</p>
<p>Default: Blank string</p></td></tr><tr id="prod_prodChar_value-row-tmf622"><td>

productOrderItem.product.productCharacteristic.value

</td><td>

Characteristic option values associated with the product. For additional information on characteristic option values, see <a href="../../../order-management/som-product-config-add-characteristics/">Create product characteristics and characteristic options</a>. Data type: String

Stored in: The characteristic\_option\_value field of the sn\_ind\_tmt\_orm\_order\_characteristic\_value table.

Default: Blank string

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

productOrderItem.product.productCharacteristic.valueType

</td><td>

Type of characteristic value.Data type: String

Possible values:

-   array.date
-   array.datetime
-   array.decimal
-   array.integer
-   array.object
-   array.single line test
-   checkbox
-   choice
-   date,address
-   email
-   integer,date/time
-   object
-   single line text
-   yes/no

</td></tr><tr id="product_productSpecification-row-tmf622"><td>

productOrderItem.product.productSpecification

</td><td><p>Description of the product specification associated with the product. <strong>Note:</strong> Change orders (<strong>productOrderItem.action</strong> is <code>change</code>) are processed differently based on the value of the <strong>sn_ind_tmt_orm.allowSpecVersionUpdateInChangeOrder</strong> system property. The value of this system property determines how the order is processed if the product inventory is a different version than indicated in the order.</p>
<ul>
<li>When this system property is set to true (default), the product inventory is automatically upgraded to the version in the order by changing the referenced product specification. This allows the order to be successfully processed.</li>
<li>When this system property is set to false, if the product inventory is a different version than indicated in the order, the order fails due to the version mismatch.</li>
</ul>
<p>Data type: Object</p>
<div class="highlight"><pre><span></span><code>&quot;productSpecification&quot;: {
  &quot;id&quot;: &quot;String&quot;,
  &quot;internalVersion&quot;: &quot;String&quot;,
  &quot;name&quot;: &quot;String&quot;,
  &quot;version&quot;: &quot;String&quot;,
  &quot;@type&quot;: &quot;String&quot;
}
</code></pre></div>
<p>Stored in: sn_ind_tmt_orm_order_line_item</p></td></tr><tr id="product_productSpecification_type-row-tmf622"><td>

productOrderItem.product.productSpecification.@type

</td><td>

Part of the TMF Open API standard. This value is always `ProductSpecificationRef`. This information is not stored. Data type: String

</td></tr><tr id="product_productSpecification_id-row-tmf622"><td>

productOrderItem.product.productSpecification.id

</td><td>Required if the <strong>productOrderItem.product.productSpecification</strong> parameter is used. Initial_version or external_id of the product specification. The initial_version is the sys_id of the first version of the specification. Located in the sys_id or external_id field of the Product Specification [sn_prd_pm_product_specification] table.Data type: String</td></tr><tr><td>

productOrderItem.product.productSpecification.internalVersion

</td><td id="tmf622-response-internalVersion"><p>Internal version of the product specification. Must match the value of <strong>version</strong> otherwise an error is thrown.Data Type: String</p>
<p>Table: Product Specification [sn_prd_pm_product_specification]</p></td></tr><tr id="product_productSpecification_name-row-tmf622"><td>

productOrderItem.product.productSpecification.name

</td><td>

Name of the product specification. Located in the Product Specification \[sn\_prd\_pm\_product\_specification\] table. Data type: String

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

productOrderItem.product.productSpecification.version

</td><td id="tmf622-response-version"><p>External version of the product specification. Must match the value of <strong>internalVersion</strong> otherwise an error is thrown.Data Type: String</p>
<p>Table: Product Specification [sn_prd_pm_product_specification]</p></td></tr><tr id="product_relatedParty-row-tmf622"><td>

productOrderItem.product.relatedParty

</td><td>

Optional. List of contacts for line items. Data type: Array of Objects
"relatedParty": [ { "email": "String", "firstName": "String", "id": "String", "lastName": "String", "phone": "String", "@referredType": "String", "@type": "String" } ]
Stored in: sn\_ind\_tmt\_orm\_order\_line\_item\_contact

</td></tr><tr id="product_relatedParty_referredType-row-tmf622"><td>

productOrderItem.product.relatedParty.@referredType

</td><td>

Type of customer. Possible value: OrderLineItemContact

Data type: String

</td></tr><tr id="product_relatedParty_type-row-tmf622"><td>

productOrderItem.product.relatedParty.@type

</td><td>

Part of TMF Open API standard. Annotation for order line item contact. This value is always `RelatedParty`. This information is not stored. Data type: String

</td></tr><tr id="product_relatedParty_email-row-tmf622"><td>

productOrderItem.product.relatedParty.email

</td><td>

Email address of the contact. Data type: String

Stored in: The email field of the sn\_ind\_tmt\_orm\_order\_line\_item\_contact table.

Default: Blank string

</td></tr><tr id="product_relatedParty_firstName-row-tmf622"><td>

productOrderItem.product.relatedParty.firstName

</td><td>

First name of the contact. Data type: String

Stored in: The first\_name field of the sn\_ind\_tmt\_orm\_order\_line\_item\_contact table.

Default: Blank string

</td></tr><tr id="product_relatedParty_id-row-tmf622"><td>

productOrderItem.product.relatedParty.id

</td><td>

Required. Sys\_id of the line item contact associated with the order line item. Located in the Order Line Item Contact \[sn\_ind\_tmt\_orm\_order\_line\_item\_contact\] table. Data type: String

Stored in: The sys\_id field of the sn\_ind\_tmt\_orm\_order\_line\_item\_contact table.

Default: Blank string

</td></tr><tr id="product_relatedParty_lastName-row-tmf622"><td>

productOrderItem.product.relatedParty.lastName

</td><td>

Last name of the contact. Data type: String

Stored in: The lastName field of the sn\_ind\_tmt\_orm\_order\_line\_item\_contact table.

Default: Blank string

</td></tr><tr id="product_relatedParty_phone-row-tmf622"><td>

productOrderItem.product.relatedParty.phone

</td><td>

Business phone number of the contact. Data type: String

Stored in: The business\_phone field of the sn\_ind\_tmt\_orm\_order\_line\_item\_contact table.

Default: Blank string

</td></tr><tr id="productOffering-row-tmf622"><td>

productOrderItem.productOffering

</td><td>

Description of the product offering associated with the product. Data type: Object
"productOffering": { "id": "String", "internalVersion": "String", "name": "String", "version": "String" }
Stored in: sn\_ind\_tmt\_orm\_order\_line\_item

</td></tr><tr id="productOffering_id-row-tmf622"><td>

productOrderItem.productOffering.id

</td><td>Required if the <strong>productOrderItem.productOffering</strong> parameter is used. Initial_version or external_id of the product offering. The initial_version is the sys_id of the first version of the offering. Located in the sys_id or external_id field of the Product Offering [sn_prd_pm_product_offering] table. Data type: String</td></tr><tr><td>

productOrderItem.productOffering.internalVersion

</td><td>

Version of the product offering.Data type: String

Table: Product Offering \[sn\_prd\_pm\_product\_offering\]

</td></tr><tr id="productOffering_name-row-tmf622"><td>

productOrderItem.productOffering.name

</td><td>

Name of the product offering. Located in the Product Offering \[sn\_prd\_pm\_product\_offering\] table. Data type: String

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

productOrderItem.productOffering.version

</td><td>

External\_version of the product offering.Data type: String

Table: Product Offering \[sn\_prd\_pm\_product\_offering\]

</td></tr><tr id="productOrdItem_quantity-row-tmf622"><td>

productOrderItem.productOrderItem.quantity

</td><td>

Number of the associated items to order. Data type: Number

Stored in: The quantity field of the sn\_ind\_tmt\_orm\_order.

Default: null

</td></tr><tr id="productOrderItemRelationship-row-tmf622"><td>

productOrderItem.productOrderItemRelationship

</td><td><p>Conditional. Item-level relationships. If supplied, each entry requires an <strong>id</strong> and <strong>relationshipType</strong>. Data type: Array of Objects</p>
<div class="highlight"><pre><span></span><code>&quot;productOrderItemRelationship&quot;: [
  {
    &quot;id&quot;: &quot;String&quot;,
    &quot;relationshipType&quot;: &quot;String&quot;
  }
]
</code></pre></div>
<p>Stored in: sn_ind_tmt_orm_order_line_item</p></td></tr><tr id="productOrderItemRelationship_id-row-tmf622"><td>

productOrderItem.productOrderItemRelationship.id

</td><td><p>Required if the <strong>productOrderItem.productOrderItemRelationship</strong> parameter is used. Unique identifier of the related line item. Located in the sn_ind_tmt_orm_external_id field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table. Data type: String</p>
<p>Stored in: The parent_line_item field of thebsn_ind_tmt_orm_order_line_item table.</p>
<p>Default: Blank string</p></td></tr><tr id="productOrderItemRelationship_relType-row-tmf622"><td>

productOrderItem.productOrderItemRelationship.relationshipType

</td><td>

Required. Type of relationship between the two line items. This information is used to identify the relationship hierarchy. Possible values:

-   HasChild
-   HasParent
-   Requires

`HasChild` and `HasParent` are used for parent/child relationships. `Requires` is used for horizontal relationships \(a line item requires another line item\).

Data type: String

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

productOrderItem.quantity

</td><td>

Number of items ordered.Data type: Number

Stored in: The quantity field of the sn\_ind\_tmt\_orm\_order table.

Default: Blank string

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

productOrderItem.revisionOperation

</td><td>

Type of update to perform on the line item. If this value is empty, the existing line item is updated, or a new line item is added if it does not already exist. If this value is `cancel`, the line item is canceled.Data type: String

Default: Blank string

</td></tr><tr id="relatedParty-row-tmf622"><td>

relatedParty

</td><td>

List of contacts for the order. Each contact is an object in the array. Must list at least one item which contains customer account or consumer account information. Data type: Array of Objects
"relatedParty": [ { "id": "String", "name": "String", "@referredType": "String", "@type": "String" } ]
</td></tr><tr id="relatedParty_referredType-row-tmf622"><td>

relatedParty.@referredType

</td><td>

Type of customer. Possible values:

-   Consumer
-   Customer
-   CustomerContact

Data type: String

</td></tr><tr id="relatedParty_type-row-tmf622"><td>

relatedParty.@type

</td><td>

Part of TMF Open API standard. Annotation for the product. This value is always `RelatedParty`. This information is not stored. Data type: String

</td></tr><tr id="relatedParty_id-row-tmf622"><td>

relatedParty.id

</td><td>

Sys\_id or external\_id of the account, customer contact, or consumer associated with the order. Located in the Account \[customer\_account\], Contact \[customer\_contact\] table, or Consumer \[csm\_consumer\] table. Data type: String

</td></tr><tr id="relatedParty_name-row-tmf622"><td>

relatedParty.name

</td><td>

Name of the account, customer, or consumer. Data type: String

</td></tr><tr id="requestedCompletionDate-row-tmf622"><td>

requestedCompletionDate

</td><td>

Optional. Delivery date requested by the customer. Data type: String

Stored in: The expected\_end\_date field of the sn\_ind\_tmt\_orm\_order table.

Default: Blank string

</td></tr><tr id="requestedStartDate-row-tmf622"><td>

requestedStartDate

</td><td>

Optional. Order start date requested by the customer. Data type: String

Stored in: The expected\_start\_date field of the sn\_ind\_tmt\_orm\_order table.

Default: Blank string

</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](../rest-api-explorer/c_RESTAPI.md).

|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](../rest-api-explorer/c_RESTAPI.md).

<table id="table_xfv_2vk_5rb"><thead><tr><th>

Status code

</th><th>

Description

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

201

</td><td><p>Successful. If there are any issues with the characteristics or characteristics option information, the endpoint stores the following comments in the work notes fields of the associated Customer Order Line Item record:</p>
<ul>
<li><code>The following Order Item characteristics does not exist: Review specification &lt;**characteristic.name**&gt; and correct the characteristic and characteristic option in the order line item prior to approving the order.</code></li>
<li><code>Order Item characteristic: &lt;**characteristic.name**&gt; with characteristic value: &lt;**characteristic.value**&gt;is invalid. Correct the characteristic values before approving the order.</code></li>
</ul></td></tr><tr><td>

400

</td><td>Bad Request. Could be any of the following reasons:-   <code>Invalid payload: Request body missing</code> - Payload was not passed in the request body.
-   <code>Invalid payload: productOrderItem is missing</code> - Product order line item object or JSON is missing.
-   <code>Invalid payload: productOrderItem id is missing</code> - The <strong>id</strong> parameter is missing in the product order line item of the payload.
-   <code>Invalid payload: productOrderItem action is missing</code> - The <strong>action</strong> parameter is missing in the product order line item of the payload.
-   <code>Invalid payload: productOrderItem productOffering is missing</code> - The product offering object or JSON is missing from the product order line item in the payload.
-   <code>Invalid payload: productOffering id is missing</code> - The <strong>id</strong> parameter is missing in the product order line item of the product offering object in the payload.
-   <code>Invalid payload: Product offering does not exist</code> - The product offering in the product order line item is not valid.
-   <code>Invalid payload: productOrderItem product is missing</code> - The product object or JSON in the product order line item is missing from the payload.
-   <code>Invalid payload: product productSpecification is missing</code> - The product specification object or JSON in the product order line item is missing from the payload.
-   <code>Invalid payload: productSpecification id is missing</code> - The <strong>id</strong> parameter in the product order line item of the product specification object is missing from the payload.
-   <code>Invalid payload: Product specification does not exist</code> - The product specification in the product order line item is not valid.
-   <code>Invalid payload: Product Inventory does not exist</code> - In a change order (action = change), the quantity of an item is greater than what is in stock.
-   <code>Invalid payload: Product inventory ID is missing</code> - In a change order, the <strong>product.id</strong> is missing in the payload.
-   <code>Invalid payload: Sold Product is inactive</code> - In a change order, a product specified in the payload is inactive.
-   <code>Invalid payload: relatedParty is missing</code> - The related party object is missing from the payload.
-   <code>Customer Account or Consumer is missing</code> - The related party customer or consumer object is missing from the payload.
-   <code>Invalid payload: Consumer does not exist</code> - The specified related party consumer does not exist in the ServiceNow instance.
-   <code>Invalid payload: Customer Account does not exist</code> - The specified related party customer does not exist in the ServiceNow instance.
-   <code>Invalid payload: Order creation failed</code> - Not able to create the requested order.
-   <code>In-flight revision to order currency not supported</code> - The <strong>orderCurrency</strong> parameter can't be updated after the order is created.
-   <code>This order is yet to be created in customer order table. Please check in inbound queue for more details.</code> – The order ID provided is not in the customer order table.
-   <code>Patch request cannot be made as the order's fulfillment type is not 'deliver.</code> – The patch request was made on an order which has a fulfillment type other than deliver.</td></tr></tbody>
</table>

### Response body parameters \(JSON\)

<table id="table_c1v_xpk_5rb"><thead><tr><th>

Name

</th><th>

Description

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

channel

</td><td>

List of channels to use for selling the products. Data type: Array of Objects
"channel": [ { "id": "String", "name": "String" } ]
</td></tr><tr><td>

channel.id

</td><td>

Unique identifier of the channel to use to sell the associated products. Data type: String

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

channel.name

</td><td>

Name of the channel to use to sell the associated products. Data type: String

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

committedDueDate

</td><td><p>Date and time when the action must be performed on the order.</p>
<p>This value must be the same as or later than the <strong>committedDueDate</strong> values for each order line item.</p>
<p>Data type: String</p></td></tr><tr><td>

externalId

</td><td>

External identifier for the customer order, such as a purchase order number.Data type: String

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

href

</td><td>

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

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

id

</td><td>

Sys\_id of the customer order updated for this request. Data type: String

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

note

</td><td>

Optional. List of additional notes made by the customer when ordering. Data type: Array of Objects
"note": [ { "text": "String" } ]
</td></tr><tr><td>

note.text

</td><td>

Additional notes/comments made by the customer while ordering. Data type: String

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

orderCurrency

</td><td>

Currency code for the order and order line items.Data type: String

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

productOrderItem

</td><td>

List that describes items associated with the product order and their associated action. Data type: Array of Objects
"productOrderItem:" [ { "action": "String", "committedDueDate": "String", "externalProductInventory": [Array], "id": "String", "itemPrice": [Array], "product": {Object}, "productOffering": {Object}, "productOrderItemReleationship": [Array], "quantity": Number, "state": "String", "@type": "String" } ]
</td></tr><tr><td>

productOrderItem.action

</td><td>

Action to carry out on the product. Possible actions are defined on the Choice List tab in the Action Dictionary Entry of the sn\_ind\_tmt\_orm\_order\_line\_item table. Data type: String

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

productOrderItem.actionReason

</td><td>

Reason for adding the order line item.Data type: String

Stored in: The action\_reason field of the sn\_ind\_tmt\_orm\_order\_line\_item table.

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

productOrderItem.committedDueDate

</td><td>

Optional. Date and time when the action must be performed on the order line item.

Data type: String

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

productOrderItem.externalProductInventory

</td><td id="d3288e1801"><p>Conditional. If supplied, each entry requires <strong>externalProductInventoryId</strong>. List of external IDs to map to the product inventories created for the order. Data type: Array of Objects</p>
<div class="highlight"><pre><span></span><code>&quot;externalProductInventory&quot;: [
  {
    &quot;externalProductInventoryId&quot;: &quot;String&quot;
  }
]
</code></pre></div>
<p><strong>Note:</strong> Previously, when creating a PATCH order with an external product inventory ID that already existed, the operation was aborted and returned an error. With the Xanadu release, this parameter is simply ignored when an existing external product inventory ID is supplied and an error is not thrown.</p></td></tr><tr><td>

productOrderItem.externalProductInventory.externalProductInventoryId

</td><td id="externalProdInvId-resp-descr">

External ID mapped to the product inventory.Data type: String

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

productOrderItem.id

</td><td>

Unique identifier of the line item. Located in the sn\_ind\_tmt\_orm\_external\_id field of the Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\] table. Data type: String

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

productOrderItem.itemPrice

</td><td>

List that describes the price associated with the product. Data type: Array of Objects
"itemPrice": [ { "price": {Object}, "priceType": "String", "recurringChargePeriod": "String" } ]
</td></tr><tr><td>

productOrderItem.itemPrice.price

</td><td>

Description of the price of the associated product. Data type: Object
"price": { "taxIncludedAmount": {Object} }
</td></tr><tr><td>

productOrderItem.itemPrice.price.taxIncludeAmount

</td><td>

Description of the price of the associated product, including the tax. Data type: Object
"taxIncludedAmount": { "unit": "String", "value": Number }
</td></tr><tr><td>

productOrderItem.itemPrice.price.taxIncludeAmount.unit

</td><td>

Currency code in which the price is depicted. Data type: String

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

productOrderItem.itemPrice.price.taxIncludeAmount.value

</td><td>

Price of product, including any tax. Data type: Number

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

productOrderItem.itemPrice.priceType

</td><td>

Type of item price, recurring or non-recurring. Data type: String

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

productOrderItem.itemPrice.recurringChargePeriod

</td><td>

If the price is recurring, the recurring period, such as `month`. Data type: String

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

productOrderItem.product

</td><td>

Description of the instance details of the product purchased by the customer. Data type: Object
"product": { "id": "String", "place": {Object}, "productCharacteristic": [Array], "productSpecification": {Object}, "relatedParty": {Object}, "@type": "String" }
</td></tr><tr><td>

productOrderItem.product.id

</td><td>

Unique identifier of the product sold. Located in the sys\_id or sn\_ind\_tmt\_orm\_external\_id field of the Product Inventory \[sn\_ind\_tmt\_orm\_product\_inventory\] table. Data type: String

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

productOrderItem.product.place

</td><td>

Maps of the locations on which to install the product. Data type: Object
"place": { "id": "String", "@type": "String" }
</td></tr><tr><td>

productOrderItem.product.place.id

</td><td>Sys_id of the associated location record in the Location [cmn_location] table. When employing the change action on a product order item (via the<strong>productOrderItem.action</strong> parameter), updating the request with a new place sys_id creates a move order, where the order is not changed but is fulfilled in a new location. Data type: String</td></tr><tr><td>

productOrderItem.product.productCharacteristic

</td><td>

List of characteristics of the associated product. Data type: Array of Objects
"productCharacteristic": [ { "name": "String", "previousValue": "String", "value": "String", "valueType": "String" } ]
</td></tr><tr><td>

productOrderItem.product.productCharacteristic.name

</td><td>

Name of the characteristic record to associate with the product. Located in the Characteristic \[sn\_prd\_pm\_characteristic\] table. Data type: String

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

productOrderItem.product.productCharacteristic.previousValue

</td><td>Previous characteristic option values if the update is for a change order. The request is a change order if the <strong>productOrderItem.action</strong> parameter is other than <code>add</code>. For additional information on characteristic option values, see <a href="../../../order-management/som-product-config-add-characteristics/">Create product characteristics and characteristic options</a>. Data type: String</td></tr><tr><td>

productOrderItem.product.productCharacteristic.value

</td><td>

Characteristic option values associated with the product. For additional information on characteristic option values, see <a href="../../../order-management/som-product-config-add-characteristics/">Create product characteristics and characteristic options</a>. Data type: String

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

productOrderItem.product.productSpecification

</td><td>

Description of the product specification associated with the product. Data type: Object
"productSpecification:" { "id": "String", "internalId": "String", "internalVersion": "String", "name": "String", "version": "String", "@type": "String" }
</td></tr><tr><td>

productOrderItem.product.productSpecification.id

</td><td>

Initial\_version or external\_id of the product specification. The initial\_version is the sys\_id of the first version of the specification. Located in the sys\_id or external\_id field of the Product Specification \[sn\_prd\_pm\_product\_specification\] table. Data type: String

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

productOrderItem.product.productSpecification.internalId

</td><td>

Initial version of the product specification. The initial version is the sys\_id of the first version of the specification.Data type: String

Table: Product Specification \[sn\_prd\_pm\_product\_specification\]

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

productOrderItem.product.productSpecification.internalVersion

</td><td>

Version of the product specification.Data type: String

Table: In the version field of the Product Specification \[sn\_prd\_pm\_product\_specification\] table.

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

productOrderItem.product.productSpecification.name

</td><td>

Name of the product specification. Located in the Product Specification \[sn\_prd\_pm\_product\_specification\] table. Data type: String

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

productOrderItem.product.productSpecification.version

</td><td>

External version of the product specification.Data type: String

Table: In the external\_version field of the Product Specification \[sn\_prd\_pm\_product\_specification\] table.

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

productOrderItem.product.productSpecification.@type

</td><td>

Part of the TMF Open API standard. This value is always `ProductSpecificationRef`. This information is not stored. Data type: String

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

productOrderItem.product.relatedParty

</td><td>

Optional. List of contacts for line items. Data type: Array of Objects
"relatedParty": [ { "email": "String", "firstName": "String", "id": "String", "lastName": "String", "phone": "String", "@referredType": "String", "@type": "String" } ]
</td></tr><tr><td>

productOrderItem.product.relatedParty.email

</td><td>

Email address of the contact. Data type: String

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

productOrderItem.product.relatedParty.firstName

</td><td>

First name of the contact. Data type: String

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

productOrderItem.product.relatedParty.id

</td><td>

Required. Sys\_id of the line item contact associated with the order line item. Located in the Order Line Item Contact \[sn\_ind\_tmt\_orm\_order\_line\_item\_contact\] table. Data type: String

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

productOrderItem.product.relatedParty.lastName

</td><td>

Last name of the contact. Data type: String

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

productOrderItem.product.relatedParty.phone

</td><td>

Business phone number of the contact. Data type: String

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

productOrderItem.product.relatedParty.@referredType

</td><td>

Type of customer. Possible value: OrderLineItemContact

Data type: String

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

productOrderItem.product.relatedParty.@type

</td><td>

Part of TMF Open API standard. Annotation for order line item contact. This value is always `RelatedParty`. This information is not stored. Data type: String

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

productOrderItem.product.@type

</td><td>

Part of TMF Open API standard. Annotation for the product. This value is always `Product`. This information is not stored. Data type: String

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

productOrderItem.productOffering

</td><td>

Description of the product offering associated with the product. Data type: Object
"productOffering:" { "id": "String", "internalId": "String", "internalVersion": "String", "name": "String", "version": "String" }
</td></tr><tr><td>

productOrderItem.productOffering.id

</td><td>

Initial\_version or external\_id of the product offering. The initial\_version is the sys\_id of the first version of the offering. Located in the sys\_id or external\_id field of the Product Offering \[sn\_prd\_pm\_product\_offering\] table. Data type: String

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

productOrderItem.productOffering.internalId

</td><td>

Initial version of the product offering. The initial version is the sys\_id of the first version of the offering.Data type: String

Table: Product Offering \[sn\_prd\_pm\_product\_offering\]

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

productOrderItem.productOffering.internalVersion

</td><td>

Version of the product offering.Data type: String

Table: Product Offering \[sn\_prd\_pm\_product\_offering\] table, field version.

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

productOrderItem.productOffering.name

</td><td>

Name of the product offering. Located in the Product Offering \[sn\_prd\_pm\_product\_offering\] table. Data type: String

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

productOrderItem.productOffering.version

</td><td>

External version of the product offering.Data type: String

Table: In the external\_version field of the Product Offering \[sn\_prd\_pm\_product\_offering\] table.

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

productOrderItem.productOrderItemRelationship

</td><td><p>Conditional. Item-level relationships. If supplied, each entry requires an <strong>id</strong> and <strong>relationshipType</strong>. Data type: Array of Objects</p>
<div class="highlight"><pre><span></span><code>&quot;productOrderItemRelationship&quot;: [
  {
    &quot;id&quot;: &quot;String&quot;,
    &quot;relationshipType&quot;: &quot;String&quot;
  }
]
</code></pre></div></td></tr><tr><td>

productOrderItem.productOrderItemRelationship.id

</td><td>

Unique identifier of the related line item. Located in the sn\_ind\_tmt\_orm\_external\_id field of the Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\] table. Data type: String

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

productOrderItem.productOrderItemRelationship.relationshipType

</td><td>

Required. Type of relationship between the two line items. This information is used to identify the relationship hierarchy. Data type: String

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

productOrderItem.quantity

</td><td>

Number of the associated items to order. Data type: Number

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

productOrderItem.state

</td><td>

Current state of the product order item.Data type: String

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

productOrderItem.@type

</td><td>

Part of TMF Open API standard. Annotation for the product. This value is always `ProductOrderItem`. This information is not stored.Data type: String

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

relatedParty

</td><td>

List of contacts for the order. Each contact is an object in the array. Must list at least one item which contains customer account or consumer account information. Data type: Array of Objects
"relatedParty": [ { "id": "String", "name": "String", "@referredType": "String", "@type": "String" } ]
</td></tr><tr><td>

relatedParty.id

</td><td>

Sys\_id or external\_id of the account, customer contact, or consumer associated with the order. Located in the Account \[customer\_account\], Contact \[customer\_contact\] table, or Consumer \[csm\_consumer\] table. Data type: String

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

relatedParty.name

</td><td>

Name of the account, customer, or consumer. 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>

requestedCompletionDate

</td><td>

Optional. Delivery date requested by the customer. Data type: String

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

requestedStartDate

</td><td>

Optional. Order start date requested by the customer. Data type: String

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

state

</td><td>

Current state of the order.Data type: String

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

@type

</td><td>

Part of TMF Open API standard. Annotation for the product. This value is always `ProductOrder`. This information is not stored.Data type: String

</td></tr></tbody>
</table>

### cURL request

This example updates the channel for a product order.
curl -X PATCH "https://instance.service-now.com/api/sn_ind_tmt_orm/order/productOrder/8d75939453126010a795ddeeff7b126a" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -u "username":"password" \ -d { "channel": [ { "id": "1", "name": "Agent Assist" } ] }
Response body.
{ "id": "8d75939453126010a795ddeeff7b126a", "href": "/api/sn_ind_tmt_orm/order/productOrder/8d75939453126010a795ddeeff7b126a", "expectedCompletionDate": "2021-05-02T08:13:59.000Z", "requestedCompletionDate": "2021-05-02T08:13:59.000Z", "requestedStartDate": "2020-05-03T08:13:59.000Z", "externalId": "PO-456", "orderCurrency": "USD", "channel": [ { "id": "1", "name": "Agent Assist" } ], "note": [ { "author": "System Administrator", "date": "2021-02-25T14:22:07.000Z", "text": "This is a TMF product order illustration no 2" }, { "author": "System Administrator", "date": "2021-02-25T14:22:06.000Z", "text": "This is a TMF product order illustration" } ], "productOrderItem": [ { "id": "POI130", "ponr": "false", "quantity": 1, "action": "add", "actionReason": "adding service package OLI", "itemPrice": [ { "priceType": "recurring", "price": { "taxIncludedAmount": { "unit": "USD", "value": 20 } } }, { "priceType": "nonRecurring", "price": { "taxIncludedAmount": { "unit": "INR", "value": 0 } } } ], "product": { "@type": "Product", "productCharacteristic": [ { "name": "Security Type", "valueType": "Choice", "value": "Base", "previousValue": "" } ], "productSpecification": { "id": "a6514bd3534560102f18ddeeff7b1247", "name": "SD-WAN Security", "version": "v1", "internalVersion": "1", "internalId": "a6514bd3534560102f18ddeeff7b1247", "@type": "ProductSpecificationRef" }, "relatedParty": [ { "id": "4175939453126010a795ddeeff7b127d", "name": "John Smith", "email": "abc2@example.com", "phone": "32456768", "@type": "RelatedParty", "@referredType": "OrderLineItemContact" }, { "id": "c175939453126010a795ddeeff7b127c", "name": "Joe Doe", "email": "abc@example.com", "phone": "1234567890", "@type": "RelatedParty", "@referredType": "OrderLineItemContact" } ] }, "productOffering": { "id": "69017a0f536520103b6bddeeff7b127d", "name": "Premium SD-WAN Offering", "version": "v1", "internalId": "69017a0f536520103b6bddeeff7b127d", "internalVersion": "1" }, "productOrderItemRelationship": [ { "id": "POI100", "relationshipType": "HasParent" } ], "state": "in_progress", "version": "1", "@type": "ProductOrderItem" }, { "id": "POI100", "ponr": "false", "quantity": 1, "action": "add", "itemPrice": [ { "priceType": "recurring", "price": { "taxIncludedAmount": { "unit": "INR", "value": 0 } } }, { "priceType": "nonRecurring", "price": { "taxIncludedAmount": { "unit": "INR", "value": 0 } } } ], "product": { "@type": "Product", "productSpecification": { "id": "cfe5ef6a53702010cd6dddeeff7b12f6", "name": "SD-WAN Service Package", "version": "v1", "internalVersion": "1", "internalId": "cfe5ef6a53702010cd6dddeeff7b12f6", "@type": "ProductSpecificationRef" } }, "productOffering": { "id": "69017a0f536520103b6bddeeff7b127d", "name": "Premium SD-WAN Offering", "version": "v1", "internalId": "69017a0f536520103b6bddeeff7b127d", "internalVersion": "1" }, "productOrderItemRelationship": [ { "id": "POI130", "relationshipType": "HasChild" }, { "id": "POI120", "relationshipType": "HasChild" }, { "id": "POI110", "relationshipType": "HasChild" } ], "state": "in_progress", "version": "1", "@type": "ProductOrderItem" }, { "id": "POI120", "ponr": "false", "quantity": 1, "action": "add", "actionReason": "adding service package OLI", "itemPrice": [ { "priceType": "recurring", "price": { "taxIncludedAmount": { "unit": "USD", "value": 20 } } }, { "priceType": "nonRecurring", "price": { "taxIncludedAmount": { "unit": "INR", "value": 0 } } } ], "product": { "@type": "Product", "productCharacteristic": [ { "name": "CPE Type", "valueType": "Choice", "value": "Physical", "previousValue": "" }, { "name": "WAN Optimization", "valueType": "Choice", "value": "Advance", "previousValue": "" }, { "name": "Routing", "valueType": "Choice", "value": "Premium", "previousValue": "" }, { "name": "CPE Model", "valueType": "Choice", "value": "ASR", "previousValue": "" } ], "productSpecification": { "id": "39b627aa53702010cd6dddeeff7b1202", "name": "SD-WAN Edge Device", "version": "v1", "internalVersion": "1", "internalId": "39b627aa53702010cd6dddeeff7b1202", "@type": "ProductSpecificationRef" } }, "productOffering": { "id": "69017a0f536520103b6bddeeff7b127d", "name": "Premium SD-WAN Offering", "version": "v1", "internalVersion": "1", "internalId": "69017a0f536520103b6bddeeff7b127d" }, "productOrderItemRelationship": [ { "id": "POI100", "relationshipType": "HasParent" } ], "state": "in_progress", "version": "1", "@type": "ProductOrderItem" }, { "id": "POI110", "ponr": "false", "quantity": 1, "action": "add", "actionReason":"adding service package OLI", "itemPrice": [ { "priceType": "recurring", "price": { "taxIncludedAmount": { "unit": "INR", "value": 0 } } }, { "priceType": "nonRecurring", "price": { "taxIncludedAmount": { "unit": "USD", "value": 5 } } } ], "product": { "@type": "Product", "productCharacteristic": [ { "name": "Tenancy", "valueType": "Choice", "value": "Base (10 site)", "previousValue": "" } ], "productSpecification": { "id": "216663aa53702010cd6dddeeff7b12b5", "name": "SD-WAN Controller", "version": "v1", "internalVersion": "1", "internalId": "216663aa53702010cd6dddeeff7b12b5", "@type": "ProductSpecificationRef" }, "place": { "id": "25ab9c4d0a0a0bb300f7dabdc0ca7c1c", "@type": "Place" } }, "productOffering": { "id": "69017a0f536520103b6bddeeff7b127d", "name": "Premium SD-WAN Offering", "version": "v1", "internalId": "69017a0f536520103b6bddeeff7b127d", "internalVersion": "1" }, "productOrderItemRelationship": [ { "id": "POI100", "relationshipType": "HasParent" } ], "state": "in_progress", "version": "1", "@type": "ProductOrderItem" } ], "relatedParty": [ { "id": "eaf68911c35420105252716b7d40ddde", "name": "Sally Thomas", "@type": "RelatedParty", "@referredType": "CustomerContact" }, { "id": "ffc68911c35420105252716b7d40dd55", "name": "Funco Intl", "@type": "RelatedParty", "@referredType": "Customer" }, { "id": "59f16de1c3b67110ff00ed23a140dd9e", "name": "Funco External", "@type": "RelatedParty", "@referredType": "Consumer" } ], "state": "in_progress", "@type": "ProductOrder" }
## Product Order Open API - PATCH /sn\_ind\_tmt\_orm/productorder/\{id\}

Updates the specified customer order.

**Important:** Starting with the Tokyo release, this endpoint is deprecated. The new version of this endpoint is [Product Order Open API - PATCH /sn\_ind\_tmt\_orm/order/productOrder/\{id\}](tmf622_product_ordering-api.md).

### URL format

Default URL: `/api/sn_ind_tmt_orm/productorder/{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 customer order to update.Data type: String

Table: Customer Order \[sn\_ind\_tmt\_orm\_order\]

</td></tr></tbody>
</table>

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

<table id="id_vk2_p5n_t4b" class="rest_api_request_body"><thead><tr><th>

Name

</th><th>

Description

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

@type

</td><td id="type-entry-tmf622">

Part of TMF Open API standard. Annotation for the product. This value is always `ProductOrder`. This information is not stored.Data type: String

</td></tr><tr id="channel-row-tmf622"><td>

channel

</td><td>

List of channels to use for selling the products. Data type: Array of Objects
"channel": [ { "id": "String", "name": "String" } ]
Stored in: sn\_ind\_tmt\_orm\_order

</td></tr><tr id="channel_id-row-tmf622"><td>

channel.id

</td><td><p>Required if the <strong>channel</strong> parameter is used. Unique identifier of the channel to use to sell the associated products. Data type: String</p>
<p>Table: In the external_id field of the Distribution Channel [sn_prd_pm_distribution_channel] table.</p>
<p>Stored in: The channel field of the sn_ind_tmt_orm_order table.</p>
<p>Default: Blank string</p></td></tr><tr id="channel_name-row-tmf622"><td>

channel.name

</td><td>

Name of the channel to use to sell the associated products. Possible channel names are defined on the Choice List tab in the Channel Dictionary Entry of the sn\_ind\_tmt\_orm\_order table.Data type: String

Default: Blank string

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

committedDueDate

</td><td id="due-date-PATCH"><p>Date and time when the action must be performed on the order.This value must be the same as or later than the <strong>committedDueDate</strong> values for each order line item.</p>
<p>If the action for order line items is <code>suspend</code> or <code>resume</code>, this parameter can't be updated.</p>
<p>Data type: String</p>
<p>Stored in: The committed_due_date field of the sn_ind_tmt_orm_order table.</p></td></tr><tr id="externalId-row-tmf622"><td>

externalId

</td><td>

Unique identifier for the customer order. This value is determined by an external system. Data type: String

Stored in: The external\_id field of the sn\_ind\_tmt\_orm\_order table.

Default: Blank string

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

externalSystem

</td><td id="tmf622-response-externalSystem"><p>External system of the service order, appended with <code>TMF622</code>. For example, if the external system is ABC then enter the value in <strong>externalSystem</strong> as <code>ABC-TMF622</code>.</p>
<p>Data Type: String</p></td></tr><tr id="note-row-tmf622"><td>

note

</td><td>

Optional. List of additional notes made by the customer when ordering. Data type: Array of Objects
"note": [ { "text": "String" } ]
Stored in: sn\_ind\_tmt\_orm\_order

</td></tr><tr id="note_text-row-tmf622"><td>

note.text

</td><td>

Additional notes/comments made by the customer while ordering. Data type: String

Stored in: The comments field of the sn\_ind\_tmt\_orm\_order table.

Default: Blank string

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

orderCurrency

</td><td>

Currency code for the order and order line items. Updating the currency code of an existing order is not supported. Providing any value other than the currency code already associated with the order causes the update to be rejected.Data type: String

</td></tr><tr id="productOrderItem-row-tmf622"><td>

productOrderItem

</td><td>

List that describes items associated with the product order and their associated action. Data type: Array of Objects
"productOrderItem": [ { "action": "String", "actionReason": "String", "committedDueDate": "String", "externalProductInventory": [Array], "id": "String", "itemPrice": [Array], "product": {Object}, "productOffering": {Object}, "productOrderItemRelationship": [Array], "quantity": Number, "revisionOperation": "String", "@type": "String" } ]
Stored in: sn\_ind\_tmt\_orm\_order\_line\_item

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

productOrderItem.@type

</td><td id="prodOrdItem_type-entry-tmf622">

Part of TMF Open API standard. Annotation for the product. This value is always `ProductOrderItem`. This information is not stored.Data type: String

</td></tr><tr id="productOrderItem_action-row-tmf622"><td>

productOrderItem.action

</td><td><p>Required if the <strong>productOrderItem</strong> parameter is used. Action to carry out on the product. Possible actions are defined on the Choice List tab in the Action Dictionary Entry of the sn_ind_tmt_orm_order_line_item table. Possible values:</p>
<ul>
<li>add</li>
<li>change</li>
</ul>
<p><strong>Note:</strong> Submitting a change payload that includes a new service location via <strong>productOrderItem.product.place.id</strong> is processed as a move order.</p>
<ul>
<li>delete</li>
<li>no-change</li>
<li>resume</li>
<li>suspend</li>
</ul>
<p>Data type: String</p>
<p>Stored in: The action field of the sn_ind_tmt_orm_order_line_item table.</p>
<p>Default: add</p></td></tr><tr><td>

productOrderItem.actionReason

</td><td id="prodOrdItem_actionReason-response-tmf622">

Reason for adding the order line item.Data type: String

Stored in: The action\_reason field of the sn\_ind\_tmt\_orm\_order\_line\_item table.

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

productOrderItem.committedDueDate

</td><td id="due-date-item-PATCH">

Date and time when the action must be performed on the order line item.If the action for the item is `suspend` or `resume`, this parameter can't be updated.

Data type: String

Stored in: The committed\_due\_date field of the sn\_ind\_tmt\_orm\_order\_line\_item table.

</td></tr><tr id="externalProdInvId"><td>

productOrderItem.externalProductInventory.externalProductInventoryId

</td><td id="externalProdInvId-decsr">

External ID to map to the product inventory.Data type: String

Stored in: The external\_inventory\_id field of the sn\_ind\_tmt\_orm\_order\_line\_item table and the sn\_prd\_invt\_external\_id field of the sn\_prd\_invt\_product\_inventory table.

</td></tr><tr id="externalProdInv-PATCH"><td>

productOrderItem.externalProductInventory

</td><td id="externalProdInv-descr-PATCH"><p>Conditional. If supplied, each entry requires <strong>externalProductInventoryId</strong>. List of external IDs to map to the product inventories created for the order. Data type: Array of Objects</p>
<div class="highlight"><pre><span></span><code>&quot;externalProductInventory&quot;: [
  {
    &quot;externalProductInventoryId&quot;: &quot;String&quot;
  }
]
</code></pre></div>
<p><strong>Note:</strong> Previously, when creating a PATCH order with an external product inventory ID that already existed, the operation was aborted and returned an error. With the Xanadu release, this parameter is simply ignored when an existing external product inventory ID is supplied and an error is not thrown.</p></td></tr><tr id="productOrderItem_id-row-tmf622"><td>

productOrderItem.id

</td><td><p>Required if the <strong>productOrderItem</strong> parameter is used. Unique identifier of the line item. Located in the sn_ind_tmt_orm_external_id field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table. Data type: String</p>
<p>Stored in: The external_id field of the sn_ind_tmt_orm_order_line_item table.</p>
<p>Maximum length: 40</p>
<p>Default: Blank string</p></td></tr><tr id="itemPrice-row-tmf622"><td>

productOrderItem.itemPrice

</td><td id="itemPrice-entry-tmf622">

List that describes the price associated with the product. Data type: Array of Objects
"itemPrice": [ { "price": {Object}, "priceType": "String", "recurringChargePeriod": "String" } ]
Stored in: sn\_ind\_tmt\_orm\_order

Default: Blank string

</td></tr><tr id="itemPrice_price-row-tmf622"><td>

productOrderItem.itemPrice.price

</td><td id="itemPrice_price-entry-tmf622">

Description of the price of the associated product. Data type: Object
"price": { "taxIncludedAmount": {Object} }
Stored in: sn\_ind\_tmt\_orm\_order\_line\_item

Default: Blank string

</td></tr><tr id="itemPrice_price_taxIncludedAmt-row-tmf622"><td>

productOrderItem.itemPrice.price.taxIncludedAmount

</td><td id="itemPrice_price_taxIncludedAmt-entry-tmf622">

Description of the price of the associated product, including the tax. Data type: Object
"taxIncludedAmount": { "unit": "String", "value": Number }
Stored in: sn\_ind\_tmt\_orm\_order\_line\_item

</td></tr><tr id="itemPrice_price_taxIncludedAmt_unit-row-tmf622"><td>

productOrderItem.itemPrice.price.taxIncludedAmount.unit

</td><td id="itemPrice_price_taxIncludedAmt_unit-entry-tmf622">

Currency code in which the price is depicted. Data type: String

Stored in: The mrc or nrc field in the sn\_ind\_tmt\_orm\_order\_line\_item table.

</td></tr><tr id="itemPrice_price_taxIncludedAmt_value-row-tmf622"><td>

productOrderItem.itemPrice.price.taxIncludedAmount.value

</td><td id="itemPrice_price_taxIncludedAmt_value-entry-tmf622">

Price of product, including any tax. Data type: Number

Stored in: The mrc or nrc field in the sn\_ind\_tmt\_orm\_order\_line\_item table.

</td></tr><tr id="itemPrice_priceType-row-tmf622"><td>

productOrderItem.itemPrice.priceType

</td><td id="itemPrice_priceType-entry-tmf622">

Type of item price, recurring or non-recurring. Data type: String

</td></tr><tr id="itemPrice_recurringChargePeriod-row-tmf622"><td>

productOrderItem.itemPrice.recurringChargePeriod

</td><td id="itemPrice_recurringChargePeriod-entry-tmf622">

If the price is recurring, the recurring period, such as `month`. Data type: String

</td></tr><tr id="product-row-tmf622"><td>

productOrderItem.product

</td><td><p>Required if <strong>productOrderItem.action</strong> is change or delete. Description of the instance details of the product purchased by the customer. Data type: Object</p>
<div class="highlight"><pre><span></span><code>&quot;product&quot;: {
  &quot;id&quot;: &quot;String&quot;,
  &quot;place&quot;: {Object},
  &quot;productCharacteristic&quot;: [Array],
  &quot;productSpecification&quot;: {Object},
  &quot;relatedParty&quot;: {Object},
  &quot;@type&quot;: &quot;String&quot;
}
</code></pre></div>
<p>Stored in: sn_ind_tmt_orm_order_line_item</p></td></tr><tr id="product_type-row-tmf622"><td>

productOrderItem.product.@type

</td><td>

Part of TMF Open API standard. Annotation for the product. This value is always `Product`. This information is not stored. Data type: String

</td></tr><tr id="product_id-row-tmf622"><td>

productOrderItem.product.id

</td><td><p>Required if <strong>productOrderItem.action</strong> is change or delete. Unique identifier of the product sold. Located in the sys_id or sn_ind_tmt_orm_external_id field of the Product Inventory [sn_ind_tmt_orm_product_inventory] table. Data type: String</p>
<p>Default: Blank string</p></td></tr><tr id="product_place-row-tmf622"><td>

productOrderItem.product.place

</td><td>

Maps of the locations on which to install the product. Data type: Object
"place": { "id": "String", "@type": "String" }
Stored in: sn\_ind\_tmt\_orm\_order\_line\_item

</td></tr><tr id="product_place_type-row-tmf622"><td>

productOrderItem.product.place.@type

</td><td>

Part of TMF Open API standard. Annotation for order line item contact. This value is always `Place`. This information is not stored. Data type: String

</td></tr><tr id="product_place_id-row-tmf622"><td>

productOrderItem.product.place.id

</td><td><p>Required if the <strong>productOrderItem.product.place</strong> parameter is used. Sys_id of the associated location record in the Location [cmn_location] table. When employing the change action on a product order item (via the<strong>productOrderItem.action</strong> parameter), updating the request with a new place sys_id creates a move order, where the order is not changed but is fulfilled in a new location. Data type: String</p>
<p>Stored in: The location field of the sn_ind_tmt_orm_order_line_item table.</p>
<p>Default: Blank string</p></td></tr><tr id="prod_prodChar-row-tmf622"><td>

productOrderItem.product.productCharacteristic

</td><td>

List of characteristics of the associated product. Data type: Array of Objects
"productCharacteristic": [ { "name": "String", "previousValue": "String", "value": "String", "valueType": "String" } ]
Stored in: sn\_ind\_tmt\_orm\_order\_characteristic\_value

</td></tr><tr id="prod_prodChar_name-row-tmf622"><td>

productOrderItem.product.productCharacteristic.name

</td><td>

Name of the characteristic record to associate with the product. Located in the Characteristic \[sn\_prd\_pm\_characteristic\] table. Data type: String

Stored in: The characteristics field of the sn\_ind\_tmt\_orm\_order\_characteristic\_value table.

Default: Blank string

</td></tr><tr id="prod_prodChar_previousValue-row-tmf622"><td>

productOrderItem.product.productCharacteristic.previousValue

</td><td><p>Previous characteristic option values if the update is for a change order. The request is a change order if the <strong>productOrderItem.action</strong> parameter is other than <code>add</code>. For additional information on characteristic option values, see <a href="../../../order-management/som-product-config-add-characteristics/">Create product characteristics and characteristic options</a>. Data type: String</p>
<p>Stored in: The previous_characteristic_option_value of the sn_ind_tmt_orm_order_characteristic_value table.</p>
<p>Default: Blank string</p></td></tr><tr id="prod_prodChar_value-row-tmf622"><td>

productOrderItem.product.productCharacteristic.value

</td><td>

Characteristic option values associated with the product. For additional information on characteristic option values, see <a href="../../../order-management/som-product-config-add-characteristics/">Create product characteristics and characteristic options</a>. Data type: String

Stored in: The characteristic\_option\_value field of the sn\_ind\_tmt\_orm\_order\_characteristic\_value table.

Default: Blank string

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

productOrderItem.product.productCharacteristic.valueType

</td><td>

Type of characteristic value.Data type: String

Possible values:

-   array.date
-   array.datetime
-   array.decimal
-   array.integer
-   array.object
-   array.single line test
-   checkbox
-   choice
-   date,address
-   email
-   integer,date/time
-   object
-   single line text
-   yes/no

</td></tr><tr id="product_productSpecification-row-tmf622"><td>

productOrderItem.product.productSpecification

</td><td><p>Description of the product specification associated with the product. <strong>Note:</strong> Change orders (<strong>productOrderItem.action</strong> is <code>change</code>) are processed differently based on the value of the <strong>sn_ind_tmt_orm.allowSpecVersionUpdateInChangeOrder</strong> system property. The value of this system property determines how the order is processed if the product inventory is a different version than indicated in the order.</p>
<ul>
<li>When this system property is set to true (default), the product inventory is automatically upgraded to the version in the order by changing the referenced product specification. This allows the order to be successfully processed.</li>
<li>When this system property is set to false, if the product inventory is a different version than indicated in the order, the order fails due to the version mismatch.</li>
</ul>
<p>Data type: Object</p>
<div class="highlight"><pre><span></span><code>&quot;productSpecification&quot;: {
  &quot;id&quot;: &quot;String&quot;,
  &quot;internalVersion&quot;: &quot;String&quot;,
  &quot;name&quot;: &quot;String&quot;,
  &quot;version&quot;: &quot;String&quot;,
  &quot;@type&quot;: &quot;String&quot;
}
</code></pre></div>
<p>Stored in: sn_ind_tmt_orm_order_line_item</p></td></tr><tr id="product_productSpecification_type-row-tmf622"><td>

productOrderItem.product.productSpecification.@type

</td><td>

Part of the TMF Open API standard. This value is always `ProductSpecificationRef`. This information is not stored. Data type: String

</td></tr><tr id="product_productSpecification_id-row-tmf622"><td>

productOrderItem.product.productSpecification.id

</td><td>Required if the <strong>productOrderItem.product.productSpecification</strong> parameter is used. Initial_version or external_id of the product specification. The initial_version is the sys_id of the first version of the specification. Located in the sys_id or external_id field of the Product Specification [sn_prd_pm_product_specification] table.Data type: String</td></tr><tr><td>

productOrderItem.product.productSpecification.internalVersion

</td><td id="tmf622-response-internalVersion"><p>Internal version of the product specification. Must match the value of <strong>version</strong> otherwise an error is thrown.Data Type: String</p>
<p>Table: Product Specification [sn_prd_pm_product_specification]</p></td></tr><tr id="product_productSpecification_name-row-tmf622"><td>

productOrderItem.product.productSpecification.name

</td><td>

Name of the product specification. Located in the Product Specification \[sn\_prd\_pm\_product\_specification\] table. Data type: String

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

productOrderItem.product.productSpecification.version

</td><td id="tmf622-response-version"><p>External version of the product specification. Must match the value of <strong>internalVersion</strong> otherwise an error is thrown.Data Type: String</p>
<p>Table: Product Specification [sn_prd_pm_product_specification]</p></td></tr><tr id="product_relatedParty-row-tmf622"><td>

productOrderItem.product.relatedParty

</td><td>

Optional. List of contacts for line items. Data type: Array of Objects
"relatedParty": [ { "email": "String", "firstName": "String", "id": "String", "lastName": "String", "phone": "String", "@referredType": "String", "@type": "String" } ]
Stored in: sn\_ind\_tmt\_orm\_order\_line\_item\_contact

</td></tr><tr id="product_relatedParty_referredType-row-tmf622"><td>

productOrderItem.product.relatedParty.@referredType

</td><td>

Type of customer. Possible value: OrderLineItemContact

Data type: String

</td></tr><tr id="product_relatedParty_type-row-tmf622"><td>

productOrderItem.product.relatedParty.@type

</td><td>

Part of TMF Open API standard. Annotation for order line item contact. This value is always `RelatedParty`. This information is not stored. Data type: String

</td></tr><tr id="product_relatedParty_email-row-tmf622"><td>

productOrderItem.product.relatedParty.email

</td><td>

Email address of the contact. Data type: String

Stored in: The email field of the sn\_ind\_tmt\_orm\_order\_line\_item\_contact table.

Default: Blank string

</td></tr><tr id="product_relatedParty_firstName-row-tmf622"><td>

productOrderItem.product.relatedParty.firstName

</td><td>

First name of the contact. Data type: String

Stored in: The first\_name field of the sn\_ind\_tmt\_orm\_order\_line\_item\_contact table.

Default: Blank string

</td></tr><tr id="product_relatedParty_id-row-tmf622"><td>

productOrderItem.product.relatedParty.id

</td><td>

Required. Sys\_id of the line item contact associated with the order line item. Located in the Order Line Item Contact \[sn\_ind\_tmt\_orm\_order\_line\_item\_contact\] table. Data type: String

Stored in: The sys\_id field of the sn\_ind\_tmt\_orm\_order\_line\_item\_contact table.

Default: Blank string

</td></tr><tr id="product_relatedParty_lastName-row-tmf622"><td>

productOrderItem.product.relatedParty.lastName

</td><td>

Last name of the contact. Data type: String

Stored in: The lastName field of the sn\_ind\_tmt\_orm\_order\_line\_item\_contact table.

Default: Blank string

</td></tr><tr id="product_relatedParty_phone-row-tmf622"><td>

productOrderItem.product.relatedParty.phone

</td><td>

Business phone number of the contact. Data type: String

Stored in: The business\_phone field of the sn\_ind\_tmt\_orm\_order\_line\_item\_contact table.

Default: Blank string

</td></tr><tr id="productOffering-row-tmf622"><td>

productOrderItem.productOffering

</td><td>

Description of the product offering associated with the product. Data type: Object
"productOffering": { "id": "String", "internalVersion": "String", "name": "String", "version": "String" }
Stored in: sn\_ind\_tmt\_orm\_order\_line\_item

</td></tr><tr id="productOffering_id-row-tmf622"><td>

productOrderItem.productOffering.id

</td><td>Required if the <strong>productOrderItem.productOffering</strong> parameter is used. Initial_version or external_id of the product offering. The initial_version is the sys_id of the first version of the offering. Located in the sys_id or external_id field of the Product Offering [sn_prd_pm_product_offering] table. Data type: String</td></tr><tr><td>

productOrderItem.productOffering.internalVersion

</td><td>

Version of the product offering.Data type: String

Table: Product Offering \[sn\_prd\_pm\_product\_offering\]

</td></tr><tr id="productOffering_name-row-tmf622"><td>

productOrderItem.productOffering.name

</td><td>

Name of the product offering. Located in the Product Offering \[sn\_prd\_pm\_product\_offering\] table. Data type: String

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

productOrderItem.productOffering.version

</td><td>

External\_version of the product offering.Data type: String

Table: Product Offering \[sn\_prd\_pm\_product\_offering\]

</td></tr><tr id="productOrdItem_quantity-row-tmf622"><td>

productOrderItem.productOrderItem.quantity

</td><td>

Number of the associated items to order. Data type: Number

Stored in: The quantity field of the sn\_ind\_tmt\_orm\_order.

Default: null

</td></tr><tr id="productOrderItemRelationship-row-tmf622"><td>

productOrderItem.productOrderItemRelationship

</td><td><p>Conditional. Item-level relationships. If supplied, each entry requires an <strong>id</strong> and <strong>relationshipType</strong>. Data type: Array of Objects</p>
<div class="highlight"><pre><span></span><code>&quot;productOrderItemRelationship&quot;: [
  {
    &quot;id&quot;: &quot;String&quot;,
    &quot;relationshipType&quot;: &quot;String&quot;
  }
]
</code></pre></div>
<p>Stored in: sn_ind_tmt_orm_order_line_item</p></td></tr><tr id="productOrderItemRelationship_id-row-tmf622"><td>

productOrderItem.productOrderItemRelationship.id

</td><td><p>Required if the <strong>productOrderItem.productOrderItemRelationship</strong> parameter is used. Unique identifier of the related line item. Located in the sn_ind_tmt_orm_external_id field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table. Data type: String</p>
<p>Stored in: The parent_line_item field of thebsn_ind_tmt_orm_order_line_item table.</p>
<p>Default: Blank string</p></td></tr><tr id="productOrderItemRelationship_relType-row-tmf622"><td>

productOrderItem.productOrderItemRelationship.relationshipType

</td><td>

Required. Type of relationship between the two line items. This information is used to identify the relationship hierarchy. Possible values:

-   HasChild
-   HasParent
-   Requires

`HasChild` and `HasParent` are used for parent/child relationships. `Requires` is used for horizontal relationships \(a line item requires another line item\).

Data type: String

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

productOrderItem.quantity

</td><td>

Number of items ordered.Data type: Number

Stored in: The quantity field of the sn\_ind\_tmt\_orm\_order table.

Default: Blank string

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

productOrderItem.revisionOperation

</td><td>

Type of update to perform on the line item. If this value is empty, the existing line item is updated, or a new line item is added if it does not already exist. If this value is `cancel`, the line item is canceled.Data type: String

Default: Blank string

</td></tr><tr id="relatedParty-row-tmf622"><td>

relatedParty

</td><td>

List of contacts for the order. Each contact is an object in the array. Must list at least one item which contains customer account or consumer account information. Data type: Array of Objects
"relatedParty": [ { "id": "String", "name": "String", "@referredType": "String", "@type": "String" } ]
</td></tr><tr id="relatedParty_referredType-row-tmf622"><td>

relatedParty.@referredType

</td><td>

Type of customer. Possible values:

-   Consumer
-   Customer
-   CustomerContact

Data type: String

</td></tr><tr id="relatedParty_type-row-tmf622"><td>

relatedParty.@type

</td><td>

Part of TMF Open API standard. Annotation for the product. This value is always `RelatedParty`. This information is not stored. Data type: String

</td></tr><tr id="relatedParty_id-row-tmf622"><td>

relatedParty.id

</td><td>

Sys\_id or external\_id of the account, customer contact, or consumer associated with the order. Located in the Account \[customer\_account\], Contact \[customer\_contact\] table, or Consumer \[csm\_consumer\] table. Data type: String

</td></tr><tr id="relatedParty_name-row-tmf622"><td>

relatedParty.name

</td><td>

Name of the account, customer, or consumer. Data type: String

</td></tr><tr id="requestedCompletionDate-row-tmf622"><td>

requestedCompletionDate

</td><td>

Optional. Delivery date requested by the customer. Data type: String

Stored in: The expected\_end\_date field of the sn\_ind\_tmt\_orm\_order table.

Default: Blank string

</td></tr><tr id="requestedStartDate-row-tmf622"><td>

requestedStartDate

</td><td>

Optional. Order start date requested by the customer. Data type: String

Stored in: The expected\_start\_date field of the sn\_ind\_tmt\_orm\_order table.

Default: Blank string

</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](../rest-api-explorer/c_RESTAPI.md).

|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](../rest-api-explorer/c_RESTAPI.md).

<table id="table_xfv_2vk_5rb"><thead><tr><th>

Status code

</th><th>

Description

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

201

</td><td><p>Successful. If there are any issues with the characteristics or characteristics option information, the endpoint stores the following comments in the work notes fields of the associated Customer Order Line Item record:</p>
<ul>
<li><code>The following Order Item characteristics does not exist: Review specification &lt;**characteristic.name**&gt; and correct the characteristic and characteristic option in the order line item prior to approving the order.</code></li>
<li><code>Order Item characteristic: &lt;**characteristic.name**&gt; with characteristic value: &lt;**characteristic.value**&gt;is invalid. Correct the characteristic values before approving the order.</code></li>
</ul></td></tr><tr><td>

400

</td><td>Bad Request. Could be any of the following reasons:-   <code>Invalid payload: Request body missing</code> - Payload was not passed in the request body.
-   <code>Invalid payload: productOrderItem is missing</code> - Product order line item object or JSON is missing.
-   <code>Invalid payload: productOrderItem id is missing</code> - The <strong>id</strong> parameter is missing in the product order line item of the payload.
-   <code>Invalid payload: productOrderItem action is missing</code> - The <strong>action</strong> parameter is missing in the product order line item of the payload.
-   <code>Invalid payload: productOrderItem productOffering is missing</code> - The product offering object or JSON is missing from the product order line item in the payload.
-   <code>Invalid payload: productOffering id is missing</code> - The <strong>id</strong> parameter is missing in the product order line item of the product offering object in the payload.
-   <code>Invalid payload: Product offering does not exist</code> - The product offering in the product order line item is not valid.
-   <code>Invalid payload: productOrderItem product is missing</code> - The product object or JSON in the product order line item is missing from the payload.
-   <code>Invalid payload: product productSpecification is missing</code> - The product specification object or JSON in the product order line item is missing from the payload.
-   <code>Invalid payload: productSpecification id is missing</code> - The <strong>id</strong> parameter in the product order line item of the product specification object is missing from the payload.
-   <code>Invalid payload: Product specification does not exist</code> - The product specification in the product order line item is not valid.
-   <code>Invalid payload: Product Inventory does not exist</code> - In a change order (action = change), the quantity of an item is greater than what is in stock.
-   <code>Invalid payload: Product inventory ID is missing</code> - In a change order, the <strong>product.id</strong> is missing in the payload.
-   <code>Invalid payload: Sold Product is inactive</code> - In a change order, a product specified in the payload is inactive.
-   <code>Invalid payload: relatedParty is missing</code> - The related party object is missing from the payload.
-   <code>Invalid payload: Customer Account or Consumer is missing</code> - The related party customer or consumer object is missing from the payload.
-   <code>Invalid payload: Consumer does not exist</code> - The specified related party consumer does not exist in the ServiceNow instance.
-   <code>Invalid payload: Customer Account does not exist</code> - The specified related party customer does not exist in the ServiceNow instance.
-   <code>Invalid payload: Order creation failed</code> - Not able to create the requested order.
-   <code>Invalid payload: This order is yet to be created in customer order table. Please check in inbound queue for more details.</code> - The patch request was made for an order that is not in the customer order table yet. The order is in the Inbound Queue [sn_tmt_core_inbound_queue] table waiting for the scheduler to pick the record to be processed.
-   <code>Invalid payload: Patch request cannot be made as the order's fulfillment type is not 'deliver'.</code> - The patch request was made for an order which has a fulfillment type other than<strong>deliver</strong>.</td></tr></tbody>
</table>

### Response body parameters \(JSON\)

<table id="table_c1v_xpk_5rb"><thead><tr><th>

Name

</th><th>

Description

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

channel

</td><td>

List of channels to use for selling the products. Data type: Array of Objects

 ```
"channel": [
  {
    "id": "String",
    "name": "String"
  }
]
channel.idUnique identifier of the channel to use to sell the associated products. Data type: String
channel.nameName of the channel to use to sell the associated products. Data type: String
idSys\_id of the customer order updated for this request. Data type: String
externalIdExternal identifier for the customer order, such as a purchase order number.Data type: String
noteOptional. List of additional notes made by the customer when ordering. Data type: Array of Objects ``` "note": [ { "text": "String" } ]
</td></tr><tr><td>

note.text

</td><td>

Additional notes/comments made by the customer while ordering. Data type: String

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

productOrderItem

</td><td>

List that describes items associated with the product order and their associated action. Data type: Array of Objects

 ```
"productOrderItem:" [
  {
    "action": "String",
    "actionReason": "String",
    "id": "String",
    "itemPrice": [Array],
    "product": {Object},
    "productOffering": {Object},
    "productOrderItemReleationship": [Array],
    "quantity": Number,
    "state": "String",
    "@type": "String"
  }
]
productOrderItem.actionAction to carry out on the product. Possible actions are defined on the Choice List tab in the Action Dictionary Entry of the sn\_ind\_tmt\_orm\_order\_line\_item table. Data type: String
productOrderItem.actionReasonReason for adding the order line item.Data type: String Stored in: The action\_reason field of the sn\_ind\_tmt\_orm\_order\_line\_item table.
productOrderItem.idUnique identifier of the line item. Located in the sn\_ind\_tmt\_orm\_external\_id field of the Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\] table. Data type: String
productOrderItem.itemPriceList that describes the price associated with the product. Data type: Array of Objects ``` "itemPrice": [ { "price": {Object}, "priceType": "String", "recurringChargePeriod": "String" } ]
</td></tr><tr><td>

productOrderItem.itemPrice.price

</td><td>

Description of the price of the associated product. Data type: Object

 ```
"price": {
  "taxIncludedAmount": {Object}
}
productOrderItem.itemPrice.price.taxIncludeAmountDescription of the price of the associated product, including the tax. Data type: Object ``` "taxIncludedAmount": { "unit": "String", "value": Number }
</td></tr><tr><td>

productOrderItem.itemPrice.price.taxIncludeAmount.unit

</td><td>

Currency code in which the price is depicted. Data type: String

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

productOrderItem.itemPrice.price.taxIncludeAmount.value

</td><td>

Price of product, including any tax. Data type: Number

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

productOrderItem.itemPrice.priceType

</td><td>

Type of item price, recurring or non-recurring. Data type: String

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

productOrderItem.itemPrice.recurringChargePeriod

</td><td>

If the price is recurring, the recurring period, such as `month`. Data type: String

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

productOrderItem.product

</td><td>

Description of the instance details of the product purchased by the customer. Data type: Object

 ```
"product": {
  "id": "String",
  "place": {Object},
  "productCharacteristic": [Array],
  "productSpecification": {Object},
  "relatedParty": {Object},
  "@type": "String"
}
productOrderItem.product.idUnique identifier of the product sold. Located in the sys\_id or sn\_ind\_tmt\_orm\_external\_id field of the Product Inventory \[sn\_ind\_tmt\_orm\_product\_inventory\] table. Data type: String
productOrderItem.product.placeMaps of the locations on which to install the product. Data type: Object ``` "place": { "id": "String", "@type": "String" }
</td></tr><tr><td>

productOrderItem.product.place.id

</td><td>Sys_id of the associated location record in the Location [cmn_location] table. When employing the change action on a product order item (via the<strong>productOrderItem.action</strong> parameter), updating the request with a new place sys_id creates a move order, where the order is not changed but is fulfilled in a new location. Data type: String</td></tr><tr><td>

productOrderItem.product.productCharacteristic

</td><td>

List of characteristics of the associated product. Data type: Array of Objects

 ```
"productCharacteristic": [ 
 {
  "name": "String",
  "previousValue": "String",
  "value": "String",
  "valueType": "String"
 }
]
productOrderItem.product.productCharacteristic.nameName of the characteristic record to associate with the product. Located in the Characteristic \[sn\_prd\_pm\_characteristic\] table. Data type: String
productOrderItem.product.productCharacteristic.previousValuePrevious characteristic option values if the update is for a change order. The request is a change order if the productOrderItem.action parameter is other than add. For additional information on characteristic option values, see Create product characteristics and characteristic options. Data type: String
productOrderItem.product.productCharacteristic.valueCharacteristic option values associated with the product. For additional information on characteristic option values, see Create product characteristics and characteristic options. Data type: String
productOrderItem.product.productSpecificationDescription of the product specification associated with the product. Data type: Object ``` "productSpecification": { "id": "String", "internalVersion": "String", "name": "String", "version": "String", "@type": "String" }
</td></tr><tr><td>

productOrderItem.product.productSpecification.id

</td><td>

Initial\_version or external\_id of the product specification. The initial\_version is the sys\_id of the first version of the specification. Located in the sys\_id or external\_id field of the Product Specification \[sn\_prd\_pm\_product\_specification\] table. Data type: String

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

productOrderItem.product.productSpecification.name

</td><td>

Name of the product specification. Located in the Product Specification \[sn\_prd\_pm\_product\_specification\] table. Data type: String

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

productOrderItem.product.productSpecification.@type

</td><td>

Part of the TMF Open API standard. This value is always `ProductSpecificationRef`. This information is not stored. Data type: String

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

productOrderItem.product.productSpecification.internalVersion

</td><td><p>Internal version of the product specification. Must match the value of <strong>version</strong> otherwise an error is thrown.Data Type: String</p>
<p>Table: Product Specification [sn_prd_pm_product_specification]</p></td></tr><tr><td>

productOrderItem.product.productSpecification.version

</td><td><p>External version of the product specification. Must match the value of <strong>internalVersion</strong> otherwise an error is thrown.Data Type: String</p>
<p>Table: Product Specification [sn_prd_pm_product_specification]</p></td></tr><tr><td>

productOrderItem.product.relatedParty

</td><td>

Optional. List of contacts for line items. Data type: Array of Objects

 ```
"relatedParty": [
  {
    "email": "String",
    "firstName": "String",
    "id": "String",
    "lastName": "String",
    "phone": "String",
    "@referredType": "String",
    "@type": "String"
  }
]
productOrderItem.product.relatedParty.emailEmail address of the contact. Data type: String
productOrderItem.product.relatedParty.firstNameFirst name of the contact. Data type: String
productOrderItem.product.relatedParty.idRequired. Sys\_id of the line item contact associated with the order line item. Located in the Order Line Item Contact \[sn\_ind\_tmt\_orm\_order\_line\_item\_contact\] table. Data type: String
productOrderItem.product.relatedParty.lastNameLast name of the contact. Data type: String Data type: String
productOrderItem.product.relatedParty.phoneBusiness phone number of the contact. Data type: String
productOrderItem.product.relatedParty.@referredTypeType of customer. Possible value: OrderLineItemContact Data type: String
productOrderItem.product.relatedParty.@typePart of TMF Open API standard. Annotation for order line item contact. This value is always `RelatedParty`. This information is not stored. Data type: String
productOrderItem.product.@typePart of TMF Open API standard. Annotation for the product. This value is always `Product`. This information is not stored. Data type: String
productOrderItem.productOfferingDescription of the product offering associated with the product. Data type: Object ``` "productOffering": { "id": "String", "internalVersion": "String", "name": "String", "version": "String" }
</td></tr><tr><td>

productOrderItem.productOffering.id

</td><td>

Initial\_version or external\_id of the product offering. The initial\_version is the sys\_id of the first version of the offering. Located in the sys\_id or external\_id field of the Product Offering \[sn\_prd\_pm\_product\_offering\] table. Data type: String

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

productOrderItem.productOffering.name

</td><td>

Name of the product offering. Located in the Product Offering \[sn\_prd\_pm\_product\_offering\] table. Data type: String

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

productOrderItem.productOrderItemRelationship

</td><td><p>Conditional. Item-level relationships. If supplied, each entry requires an <strong>id</strong> and <strong>relationshipType</strong>. Data type: Array of Objects</p>
<p><code>"productOrderItemRelationship": [
  {
    "id": "String",
    "relationshipType": "String"
  }
]</code></p></td></tr><tr><td>

productOrderItem.productOrderItemRelationship.id

</td><td>

Unique identifier of the related line item. Located in the sn\_ind\_tmt\_orm\_external\_id field of the Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\] table. Data type: String

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

productOrderItem.productOrderItemRelationship.relationshipType

</td><td>

Required. Type of relationship between the two line items. This information is used to identify the relationship hierarchy. Data type: String

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

productOrderItem.quantity

</td><td>

Number of the associated items to order. Data type: Number

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

productOrderItem.state

</td><td>

Current state of the product order item.Data type: String

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

productOrderItem.@type

</td><td>

Part of TMF Open API standard. Annotation for the product. This value is always `ProductOrderItem`. This information is not stored.Data type: String

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

relatedParty

</td><td>

List of contacts for the order. Each contact is an object in the array. Must list at least one item which contains customer account or consumer account information. Data type: Array of Objects

 ```
"relatedParty": [
  {
    "id": "String",
    "name": "String",
    "@referredType": "String",
    "@type": "String"
  }
]
relatedParty.idSys\_id or external\_id of the account, customer contact, or consumer associated with the order. Located in the Account \[customer\_account\], Contact \[customer\_contact\] table, or Consumer \[csm\_consumer\] table. Data type: String
relatedParty.nameName of the account, customer, or consumer. Data type: String
relatedParty.typeType of customer. Possible values: - Consumer - Customer - CustomerContact Data type: String
requestedCompletionDateOptional. Delivery date requested by the customer. Data type: String
requestedStartDateOptional. Order start date requested by the customer. Data type: String
stateCurrent state of the order.Data type: String
@typePart of TMF Open API standard. Annotation for the product. This value is always `ProductOrder`. This information is not stored.Data type: String

cURL request

The following code example updates the channel for a customer order.

curl -X PATCH "https://instance.servicenow.com/api/sn_ind_tmt_orm/productorder/6be0a925c3a220103e2e73ce3640ddfe" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-u "username":"password" \
-d {
  "channel": [
    {
      "id": "1",
      "name": "Agent Assist"
    }
  ]
}

Response body.

{
    "requestedCompletionDate": "2021-05-02T08:13:59.506Z",
    "requestedStartDate": "2020-05-03T08:13:59.506Z",
    "externalId": "PO-456",
    "externalSystem": "Salesforce – TMF 641",
    "channel": [
        {
            "id": "1",
            "name": "Agent Assist"
        }
    ],
    "note": [
        {
            "text": "This is a TMF product order illustration"
        },
        {
            "text": "This is a TMF product order illustration no 2"
        }
    ],
    "productOrderItem": [
        {
            "id": "POI100",
            "quantity": 1,
            "action": "change",
            "actionReason":"adding service package OLI",
            "product": {
                "id": "fa6d13f45b5620102dff5e92dc81c77f",
                "@type": "Product",
                "productSpecification": {
                    "id": "cfe5ef6a53702010cd6dddeeff7b12f6",
                    "name": "SD-WAN Service Package",
                    "@type": "ProductSpecificationRef"
                },
                "place": {
                    "id": "25ab9c4d0a0a0bb300f7dabdc0ca7c1c",
                    "@type": "Place"
                }
            },
            "productOffering": {
                "id": "69017a0f536520103b6bddeeff7b127d",
                "name": "Premium SD-WAN Offering"
            },
            "productOrderItemRelationship": [
                {
                    "id": "POI120",
                    "relationshipType": "HasChild"
                },
                {
                    "id": "POI130",
                    "relationshipType": "HasChild"
                }
            ],
            "@type": "ProductOrderItem",
            "state": "new"
        },
        {
            "id": "POI120",
            "quantity": 1,
            "action": "change",
            "actionReason":"adding service package OLI",
            "itemPrice": [
                {
                    "priceType": "recurring",
                    "recurringChargePeriod": "month",
                    "price": {
                        "taxIncludedAmount": {
                            "unit": "USD",
                            "value": 20
                        }
                    }
                }
            ],
            "product": {
                "id": "766d13f45b5620102dff5e92dc81c78a",
                "@type": "Product",
                "productCharacteristic": [
                    {
                        "name": "WAN Optimization"
                        "valueType": "Choice",
                        "value": "Base",
                        "previousValue": "Advance"
                    }
                ],
                "productSpecification": {
                    "id": "39b627aa53702010cd6dddeeff7b1202",
                    "name": "SD-WAN Edge Device",
                    "@type": "ProductSpecificationRef",
                    "externalVersion": "1",
                    "@version": "v1"
                },
                "relatedParty": [
                    {
                        "id": "51670151c35420105252716b7d40ddfe",
                        "firstName": "Joe",
                        "lastName": "Doe",
                        "email": "abc@example.com",
                        "phone": "1234567890",
                        "@type": "RelatedParty",
                        "@referredType": "OrderLineItemContact"
                    }
                ],
                "place": {
                    "id": "25ab9c4d0a0a0bb300f7dabdc0ca7c1c",
                    "@type": "Place"
                }
            },
            "productOffering": {
                "id": "69017a0f536520103b6bddeeff7b127d",
                "name": "Premium SD-WAN Offering"
            },
            "productOrderItemRelationship": [
                {
                    "id": "POI100",
                    "relationshipType": "HasParent"
                }
            ],
            "@type": "ProductOrderItem",
            "state": "new"
        },
        {
            "id": "POI130",
            "quantity": 1,
            "action": "add",
            "actionReason":"adding service package OLI",
            "itemPrice": [
                {
                    "priceType": "recurring",
                    "recurringChargePeriod": "month",
                    "price": {
                        "taxIncludedAmount": {
                            "unit": "USD",
                            "value": 20
                        }
                    }
                }
            ],
            "product": {
                "@type": "Product",
                "productCharacteristic": [
                    {
                        "name": "Security Type",
                        "valueType": "Choice",
                        "value": "Base",
                        "previousValue": "Advance"
                    }
                ],
                "productSpecification": {
                    "id": "a6514bd3534560102f18ddeeff7b1247",
                    "name": "SD-WAN Security",
                    "@type": "ProductSpecificationRef"
                    "externalVersion": "1",
                    "@version": "v1"
                },
                "relatedParty": [
                    {
                        "id": "51670151c35420105252716b7d40ddfe",
                        "firstName": "Joe",
                        "lastName": "Doe",
                        "email": "abc@example.com",
                        "phone": "1234567890",
                        "@type": "RelatedParty",
                        "@referredType": "OrderLineItemContact"
                    }
                ],
                "place": {
                    "id": "25ab9c4d0a0a0bb300f7dabdc0ca7c1c",
                    "@type": "Place"
                }
            },
            "productOffering": {
                "id": "69017a0f536520103b6bddeeff7b127d",
                "name": "Premium SD-WAN Offering"
            },
            "productOrderItemRelationship": [
                {
                    "id": "POI100",
                    "relationshipType": "HasParent"
                }
            ],
            "@type": "ProductOrderItem",
            "state": "new"
        }
    ],
    "relatedParty": [
        {
            "id": "eaf68911c35420105252716b7d40ddde",
            "name": "Sally Thomas",
            "@type": "RelatedParty",
            "@referredType": "CustomerContact"
        },
        {
            "id": "ffc68911c35420105252716b7d40dd55",
            "name": "Funco Intl",
            "@type": "RelatedParty",
            "@referredType": "Customer"
        },
        {
            "id": "59f16de1c3b67110ff00ed23a140dd9e",
            "name": "Funco External",
            "@type": "RelatedParty",
            "@referredType": "Consumer"
        }
    ],
    "@type": "ProductOrder",
    "id": "6be0a925c3a220103e2e73ce3640ddfe",
    "state": "in_progress"
}

Product Order Open API - POST /sn_ind_tmt_orm/cancelproductorder

Cancels the specified customer order.

URL format

Default URL: /api/sn_ind_tmt_orm/cancelproductorder

Supported request parameters

NameDescription
None 
NameDescription
None 
NameDescription
cancellationReasonReason for cancellation.Data type: String Default: Blank string
productOrderContains data about the product order.Data type: Object ``` "productOrder": { "id": "String", "href": "String", "@referredType": "String" }
</td></tr><tr><td>

productOrder.id

</td><td>

Required. Sys\_id of the customer order to cancel.Data type: String

Table: Customer Order \[sn\_ind\_tmt\_orm\_order\]

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

productOrder.href

</td><td>

URL of the customer order to cancel.Data type: String

Default: Blank string

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

productOrder.@referredType

</td><td>

Value for this parameter should be `ProductOrder`.Data type: String

Default: Blank string

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

requestedCancellationDate

</td><td>

Date to cancel the order.Data type: String

Default: Blank string

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

@type

</td><td>

Value for this parameter should be `CancelProductOrder`.Data type: String

Default: Blank string

</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](../rest-api-explorer/c_RESTAPI.md).

|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](../rest-api-explorer/c_RESTAPI.md).

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

Status code

</th><th>

Description

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

200

</td><td>

Successful. The request was 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: &lt;field name&gt;.
-   Invalid order ID.
-   Invalid order ID: `This order is yet to be created in customer order table`. The cancel request was made for an order that has not been created yet. The order is in the Inbound Queue \[sn\_tmt\_core\_inbound\_queue\] table waiting for the scheduler to pick up the record.

</td></tr></tbody>
</table>

### Response body parameters \(JSON\)

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

Name

</th><th>

Description

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

cancellationReason

</td><td>

Reason for cancellation.Data type: String

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

href

</td><td>

URL of the cancelled order.Data type: String

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

id

</td><td>

Sys\_id of the cancelled order.Data type: String

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

productOrder

</td><td>

Data about the product order.Data type: Object
"productOrder": { "id": "String", "href": "String", "@referredType": "String" }
</td></tr><tr><td>

productOrder.id

</td><td>

Sys\_id of the cancelled order.Data type: String

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

productOrder.href

</td><td>

URL of the cancelled order.Data type: String

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

productOrder.@referredType

</td><td>

Value for this parameter is `ProductOrder`.Data type: String

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

productOrder.@referredType

</td><td>

Value for this parameter is `ProductOrderRef`.Data type: String

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

requestedCancellationDate

</td><td>

Date to cancel the order.Data type: String

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

state

</td><td>

State of the cancellation. If the cancellation request was successfully processed \(201 status code\), the value for this parameter is `done`.Data type: String

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

@type

</td><td>

Value for this parameter is `CancelProductOrder`.Data type: String

</td></tr></tbody>
</table>

### cURL request

The following code example cancels a customer order.
curl -X POST "https://instance.servicenow.com/api/sn_ind_tmt_orm/cancelproductorder" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -u "username":"password" \ -d { "cancellationReason": "Duplicate order", "requestedCancellationDate": "2019-04-30T12:56:21.931Z", "productOrder": { "id": "163ee2805358811032a4ddeeff7b122d", "href": "https://instance.servicenow.com/productOrderingManagement/v4/productOrder/64a9607feb45301032a442871352285b", "@referredType": "ProductOrder" }, "@type": "CancelProductorder" }

{ "id": "163ee2805358811032a4ddeeff7b122d", "href": "https://instance.servicenow.com/productOrderingManagement/v4/productOrder/64a9607feb45301032a442871352285b", "cancellationReason": "Duplicate order", "requestedCancellationDate": "2019-04-30T12:56:21.931Z", "@type": "CancelProductorder", "productOrder": { "id": "163ee2805358811032a4ddeeff7b122d", "href": "https://instance.servicenow.com/productOrderingManagement/v4/productOrder/64a9607feb45301032a442871352285b", "@referredType": "ProductOrder" }, "state": "done" }
## Product Order Open API - POST /sn\_ind\_tmt\_orm/order/productOrder

Creates the specified customer order and customer order line items.

Once processed, records are created in the following tables:

-   Customer Order \[sn\_ind\_tmt\_orm\_order\]
-   Order Characteristic \[sn\_ind\_tmt\_orm\_order\_characteristic\_value\]
-   Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\]
-   Order Line Item Contact \[sn\_ind\_tmt\_orm\_order\_line\_item\_contact\]
-   Order Line Related Items \[sn\_ind\_tmt\_orm\_order\_line\_related\_items\]

### URL format

Default URL: `/api/sn_ind_tmt_orm/order/productOrder`

### Supported request parameters

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

<table class="rest_api_query_parameters"><thead><tr><th>

Name

</th><th>

Description

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

mode

</td><td>

Enables asynchronous order processing.​ That is, the order is added to the Inbound Queue \[sn\_tmt\_core\_inbound\_queue\] table to be created. If not included, the order is processed synchronously.Valid value: async

Data type: String

</td></tr></tbody>
</table>

<table id="id_vk2_p5n_t4b" class="rest_api_request_body"><thead><tr><th>

Name

</th><th>

Description

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

@type

</td><td>

Part of TMF Open API standard. Annotation for the product. This value is always `ProductOrder`. This information is not stored.Data type: String

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

channel

</td><td>

List of channels to use for selling the products. Data type: Array of Objects
"channel": [ { "id": "String", "name": "String" } ]
Stored in: sn\_ind\_tmt\_orm\_order

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

channel.id

</td><td>

Required. Unique identifier of the channel to use to sell the associated products. Channel ID values are located in the external\_id field of the Distribution Channel \[sn\_prd\_pm\_distribution\_channel\] table. Data type: String

Stored in: The channel field of the sn\_ind\_tmt\_orm\_order table.

Default: Blank string

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

channel.name

</td><td>

Name of the channel to use to sell the associated products. Possible channel names are defined on the Choice List tab in the Channel Dictionary Entry of the sn\_ind\_tmt\_orm\_order table.Data type: String

Default: Blank string

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

committedDueDate

</td><td id="due-date-entry"><p>Date and time when the action must be performed on the order.</p>
<p>This value must be the same as or later than the <strong>committedDueDate</strong> values for each order line item.</p>
<p>Data type: String</p>
<p>Stored in: The committed_due_date field of the sn_ind_tmt_orm_order table.</p></td></tr><tr><td>

disableCharValueValidation

</td><td>

Flag that indicates how to control characteristic value validation behavior for choice-type characteristics.Valid values:

-   true: Validation is disabled and `characteristic_option_value` is set directly from the request payload without generating work notes.
-   false: Validates characteristic values against allowed choices and adds a work note to the record for any invalid value.

Default: false

To disable validation, create a system property named `sn_ind_tmt_orm.disableCharValueValidation` and set the value to `true`. When disabled, the value is set directly from the request payload and no work notes are generated. The property isn't shipped by default.

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

externalId

</td><td>

Unique identifier for the customer order. This value is determined by an external system. Data type: String

Stored in: The external\_id field of the sn\_ind\_tmt\_orm\_order table.

Default: Blank string

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

externalSystem

</td><td><p>External system of the product order, appended with <code>TMF622</code>. For example, if the external system is ABC then enter the value in <strong>externalSystem</strong> as <code>ABC-TMF622</code>.</p>
<p>Data Type: String</p></td></tr><tr id="productOrder-href-request"><td>

href

</td><td>

Relative link to the resource record.Data type: String

Default: Blank string

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

note

</td><td>

Additional notes made by the customer when ordering. Data type: Array of Objects
"note": [ { "text": "String" } ]
Stored in: sn\_ind\_tmt\_orm\_order

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

note.text

</td><td>

Required. Additional notes/comments made by the customer while ordering. Data type: String

Stored in: The comments field of the sn\_ind\_tmt\_orm\_order table.

Default: Blank string

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

orderCurrency

</td><td>

Required. Currency code for the order and order line items. The currency must be the same for all elements of the order and order line items, otherwise an error is returned and the order isn't created. Once an order is created, its currency code can't be changed. Data type: String

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

productOrderItem

</td><td>

Required. Items associated with the product order and their associated action. Data type: Array of Objects
"productOrderItem": [ { "action": "String", "actionReason": "String", "committedDueDate": "String", "externalProductInventory": [Array], "id": "String", "itemPrice": [Array], "product": {Object}, "productOffering": {Object}, "productOrderItemRelationship": [Array], "quantity": Number, "@type": "String" } ]
Stored in: Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\]

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

productOrderItem.@type

</td><td>

Part of TMF Open API standard. Annotation for the product. This value is always `ProductOrderItem`. This information is not stored.Data type: String

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

productOrderItem.action

</td><td><p>Required. Action to carry out on the product. Possible actions are defined on the Choice List tab in the Action Dictionary Entry of the sn_ind_tmt_orm_order_line_item table. Possible values:</p>
<ul>
<li>add</li>
<li>change</li>
</ul>
<p><strong>Note:</strong> Submitting a change payload that includes a new service location via <strong>productOrderItem.product.place.id</strong> is processed as a move order.</p>
<ul>
<li>delete</li>
<li>no-change</li>
<li>resume</li>
<li>suspend</li>
</ul>
<p>Data type: String</p>
<p>Stored in: The action field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.</p></td></tr><tr><td>

productOrderItem.actionReason

</td><td id="productOrder-addReason-request">

Optional. Description of the reason for the order line item.Data type: String

Stored in: The action\_reason field of the Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\] table.

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

productOrderItem.committedDueDate

</td><td id="due-date-item-entry">

Optional. Date and time when the action must be performed on the order line item.

Data type: String

 Stored in: The committed\_due\_date field of the Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\] table.

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

productOrderItem.externalProductInventory.externalProductInventoryId

</td><td id="externalProductInventoryId-desc">

External ID to map to the product inventory.Data type: String

Stored in: The external\_inventory\_id field of the Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\] table and the sn\_prd\_invt\_external\_id field of the sn\_prd\_invt\_product\_inventory table.

</td></tr><tr id="externalProductInventory-GET-request"><td>

productOrderItem.externalProductInventory

</td><td id="externalProductInventory-GET-desc-request"><p>Conditional. If supplied, each entry requires <strong>externalProductInventoryId</strong>. External IDs to map to the product inventories created for the order.Data type: Array of Objects</p>
<div class="highlight"><pre><span></span><code>&quot;externalProductInventory&quot;: [
  {
    &quot;externalProductInventoryId&quot;: &quot;String&quot;
  }
]
</code></pre></div></td></tr><tr><td>

productOrderItem.id

</td><td>

Required. Unique identifier of the line item. Data type: String

Stored in: The external\_id field of the Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\] table.

Maximum length: 40

Default: Blank string

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

productOrderItem.itemPrice

</td><td>

Price associated with the product. Data type: Array of Objects
"itemPrice": [ { "price": {Object}, "priceType": "String", "recurringChargePeriod": "String" } ]
Stored in: sn\_ind\_tmt\_orm\_order

Default: Blank string

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

productOrderItem.itemPrice.price

</td><td>

Description of the price of the associated product. Data type: Object
"price": { "taxIncludedAmount": {Object} }
Stored in: Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\]

Default: Blank string

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

productOrderItem.itemPrice.price.taxIncludedAmount

</td><td>

Description of the price of the associated product, including the tax. Data type: Object
"taxIncludedAmount": { "unit": "String", "value": Number }
Stored in: Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\]

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

productOrderItem.itemPrice.price.taxIncludedAmount.unit

</td><td>

Currency code in which the price is expressed. Data type: String

Stored in: The mrc or nrc field of the Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\] table

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

productOrderItem.itemPrice.price.taxIncludedAmount.value

</td><td>

Price of product, including any tax. Data type: Number

Stored in: The mrc or nrc field of the Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\] table

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

productOrderItem.itemPrice.priceType

</td><td>

Specifies whether the price of the item is recurring or non-recurring. Data type: String

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

productOrderItem.itemPrice.recurringChargePeriod

</td><td>

If the price is recurring, the recurring period, such as `month`. Data type: String

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

productOrderItem.product

</td><td><p>Required if <strong>productOrderItem.action</strong> is change or delete. Instance details of the product purchased by the customer. Data type: Object</p>
<div class="highlight"><pre><span></span><code>&quot;product&quot;: {
  &quot;id&quot;: &quot;String&quot;,
  &quot;place&quot;: {Object},
  &quot;productCharacteristic&quot;: [Array],
  &quot;productSpecification&quot;: {Object},
  &quot;relatedParty&quot;: {Object},
  &quot;@type&quot;: &quot;String&quot;
}
</code></pre></div>
<p>Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]</p></td></tr><tr><td>

productOrderItem.product.@type

</td><td>

Part of TMF Open API standard. Annotation for the product. This value is always `Product`. This information is not stored. Data type: String

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

productOrderItem.product.id

</td><td><p>Required if <strong>productOrderItem.action</strong> is change or delete. Unique identifier of the product sold. Data type: String</p>
<p>Default: Blank string</p>
<p>Table: In the sys_id or sn_ind_tmt_orm_external_id field of the Product Inventory [sn_ind_tmt_orm_product_inventory] table.</p></td></tr><tr><td>

productOrderItem.product.place

</td><td>

Maps of the locations on which to install the product. Data type: Object
"place": { "id": "String", "@type": "String" }
Stored in: Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\]

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

productOrderItem.product.place.@type

</td><td>

Part of TMF Open API standard. Annotation for order line item contact. This value is always `Place`. This information is not stored. Data type: String

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

productOrderItem.product.place.id

</td><td><p>Required. Sys_id of the associated location record. When employing the change action on a product order item (via the<strong>productOrderItem.action</strong> parameter), updating the request with a new place sys_id creates a move order, where the order is not changed but is fulfilled in a new location.</p>
<p>Data type: String</p>
<p>Table: Location [cmn_location]</p>
<p>Stored in: The location field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.</p></td></tr><tr><td>

productOrderItem.product.productCharacteristic

</td><td>

Characteristics of the associated product. Data type: Array of Objects
"productCharacteristic": [ { "name": "String", "previousValue": "String", "value": "String", "valueType": "String" } ]
Stored in: sn\_ind\_tmt\_orm\_order\_characteristic\_value

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

productOrderItem.product.productCharacteristic.name

</td><td>

Name of the characteristic record to associated with the product.Data type: String

Table: Characteristic \[sn\_prd\_pm\_characteristic\]

Stored in: The characteristics field of the sn\_ind\_tmt\_orm\_order\_characteristic\_value table.

Default: Blank string

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

productOrderItem.product.productCharacteristic.previousValue

</td><td><p>Previous characteristic option values if the update is for change order. The request is a change order if the <strong>productOrderItem.action</strong> parameter is other than <code>add</code>. For additional information on characteristic option values, see <a href="../../../order-management/som-product-config-add-characteristics/">Create product characteristics and characteristic options</a>. Data type: String</p>
<p>Stored in: The previous_characteristic_option_value field of the sn_ind_tmt_orm_order_characteristic_value table.</p>
<p>Default: Blank string</p></td></tr><tr><td>

productOrderItem.product.productCharacteristic.value

</td><td>

Characteristic option values associated with the product. For additional information on characteristic option values, see <a href="../../../order-management/som-product-config-add-characteristics/">Create product characteristics and characteristic options</a>. Data type: String

Stored in: The characteristic\_option\_value field of the sn\_ind\_tmt\_orm\_order\_characteristic\_value table.

Default: Blank string

</td></tr><tr id="tmf-prod-order_prodChar.valueType"><td>

productOrderItem.product.productCharacteristic.valueType

</td><td>

Type of characteristic value.Possible values:

-   Array.Date
-   Array.Datetime
-   Array.Decimal
-   Array.Integer
-   Array.Object
-   Array.Single Line Test
-   Checkbox
-   Choice
-   Date,Address
-   Email
-   Integer,Date/time
-   Object
-   Single Line Text
-   Yes/No

Data type: String

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

productOrderItem.product.productSpecification

</td><td><p>Optional. Description of the product specification associated with the product. <strong>Note:</strong> Change orders (<strong>productOrderItem.action</strong> is <code>change</code>) are processed differently based on the value of the <strong>sn_ind_tmt_orm.allowSpecVersionUpdateInChangeOrder</strong> system property. The value of this system property determines how the order is processed if the product inventory is a different version than indicated in the order.</p>
<ul>
<li>When this system property is set to true (default), the product inventory is automatically upgraded to the version in the order by changing the referenced product specification. This allows the order to be successfully processed.</li>
<li>When this system property is set to false, if the product inventory is a different version than indicated in the order, the order fails due to the version mismatch.</li>
</ul>
<p>Data type: Object</p>
<div class="highlight"><pre><span></span><code>&quot;productSpecification&quot;: {
  &quot;id&quot;: &quot;String&quot;,
  &quot;internalVersion&quot;: &quot;String&quot;,
  &quot;name&quot;: &quot;String&quot;,
  &quot;version&quot;: &quot;String&quot;,
  &quot;@type&quot;: &quot;String&quot;
}
</code></pre></div>
<p>Stored in: sn_ind_tmt_orm_order_line_item</p></td></tr><tr><td>

productOrderItem.product.productSpecification.@type

</td><td>

Part of the TMF Open API standard. This value is always `ProductSpecificationRef`. This information is not stored. Data type: String

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

productOrderItem.product.productSpecification.id

</td><td>

Required. Initial version or external ID of the product specification. The initial version is the sys\_id of the first version of the specification.Data type: String

Table: Product Specification \[sn\_prd\_pm\_product\_specification\]

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

productOrderItem.product.productSpecification.internalVersion

</td><td>

Version of the product specification.Data type: String

Table: In the version field of the Product Specification \[sn\_prd\_pm\_product\_specification\] table.

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

productOrderItem.product.productSpecification.internalVersion

</td><td>Internal version of the service specification. Must match the value of <strong>version</strong> otherwise an error is thrown.Data Type: String</td></tr><tr><td>

productOrderItem.product.productSpecification.name

</td><td>

Name of the product specification. Data type: String

Table: Product Specification \[sn\_prd\_pm\_product\_specification\]

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

productOrderItem.product.productSpecification.version

</td><td>

External version of the product specification.Data type: String

Table: In the external\_version field of the Product Specification \[sn\_prd\_pm\_product\_specification\] table.

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

productOrderItem.product.productSpecification.version

</td><td>External version of the service specification. Must match the value of <strong>internalVersion</strong> otherwise an error is thrown.Data Type: String</td></tr><tr><td>

productOrderItem.product.relatedParty

</td><td>

List of party roles linked to an OrderLineItemContact. Data type: Array of Objects
"relatedParty": [ { "email": "String", "firstName": "String", "lastName": "String", "phone": "String", "@referredType": "String", "@type": "String" } ]
Stored in: sn\_ind\_tmt\_orm\_order\_line\_item\_contact

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

productOrderItem.product.relatedParty.@referredType

</td><td>

Required. Type of customer. Possible value: OrderLineItemContact

Data type: String

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

productOrderItem.product.relatedParty.@type

</td><td>

Part of TMF Open API standard. Annotation for order line item contact. This value is always `RelatedParty`. This information is not stored. Data type: String

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

productOrderItem.product.relatedParty.email

</td><td>

Email address of the contact. Data type: String

Stored in: The email field of the sn\_ind\_tmt\_orm\_order\_line\_item\_contact table.

Default: Blank string

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

productOrderItem.product.relatedParty.firstName

</td><td>

First name of the contact. Data type: String

Stored in: The first\_name field of the sn\_ind\_tmt\_orm\_order\_line\_item\_contact table.

Default: Blank string

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

productOrderItem.product.relatedParty.lastName

</td><td>

Last name of the contact. Data type: String

Stored in: The lastName field of the sn\_ind\_tmt\_orm\_order\_line\_item\_contact table.

Default: Blank string

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

productOrderItem.product.relatedParty.phone

</td><td>

Business phone number of the contact. Data type: String

Stored in: The business\_phone field of the sn\_ind\_tmt\_orm\_order\_line\_item\_contact table.

Default: Blank string

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

productOrderItem.productOffering

</td><td>

Required. Description of the product offering associated with the product. Data type: Object
"productOffering": { "id": "String", "internalVersion": "String", "name": "String", "version": "String" }
Stored in: sn\_ind\_tmt\_orm\_order\_line\_item

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

productOrderItem.productOffering.id

</td><td>

Required. Initial version or external ID of the product offering. The initial version is the sys\_id of the first version of the offering.Data type: String

Table: Product Offering \[sn\_prd\_pm\_product\_offering\]

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

productOrderItem.productOffering.internalVersion

</td><td>

Version of the product offering.Data type: String

Table: In the version field of the Product Offering \[sn\_prd\_pm\_product\_offering\] table.

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

productOrderItem.productOffering.name

</td><td>

Name of the product offering.Data type: String

Table: Product Offering \[sn\_prd\_pm\_product\_offering\]

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

productOrderItem.productOffering.version

</td><td>

External version of the product offering.Data type: String

Table: In the external\_version field of the Product Offering \[sn\_prd\_pm\_product\_offering\] table.

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

productOrderItem.productOrderItem.quantity

</td><td>

Number of the associated items to order. Data type: Number

Stored in: The quantity field of the sn\_ind\_tmt\_orm\_order table.

Default: null

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

productOrderItem.productOrderItemRelationship

</td><td>

Required. List that describes the parent/child relationship between order items. Data type: Array of Objects
"productOrderItemRelationship": [ { "id": "String", "relationshipType": "String" } ]
Stored in: sn\_ind\_tmt\_orm\_order\_line\_item

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

productOrderItem.productOrderItemRelationship.id

</td><td><p>Required. Same as the <strong>productOrderItem.id</strong> value. Used for parent/child relationship Data type: String</p>
<p>Stored in: The parent_line_item field of the sn_ind_tmt_orm_order_line_item table.</p>
<p>Default: Blank string</p></td></tr><tr><td>

productOrderItem.productOrderItemRelationship.relationshipType

</td><td>

Required. Type of relationship between the two line items. This information is used to identify relationship hierarchy. Possible values:

-   HasChild
-   HasParent

Data type: String

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

productOrderItem.quantity

</td><td>

Number of items ordered.Data type: Number

Stored in: The quantity field of the sn\_ind\_tmt\_orm\_order table.

Default: Blank string

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

relatedParty

</td><td>

List of contacts for the order. Each contact is an object in the array. Must list at least one item which contains customer account or consumer account information. Data type: Array of Objects
"relatedParty": [ { "id": "String", "name": "String", "@referredType": "String", "@type": "String" } ]
</td></tr><tr><td>

relatedParty.@referredType

</td><td>

Required. Type of customer. Possible values:

-   Consumer
-   Customer
-   CustomerContact

Data type: String

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

relatedParty.@type

</td><td>

Part of TMF Open API standard. Annotation for the product. This value is always `RelatedParty`. This information is not stored. Data type: String

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

relatedParty.id

</td><td>

Sys\_id or external\_id of the account or customer contact associated with the order.Data type: String

Table: Account \[customer\_account\], Contact \[customer\_contact\] table, or Consumer \[csm\_consumer\]

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

relatedParty.name

</td><td>

Name of the account, customer, or consumer. Data type: String

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

requestedCompletionDate

</td><td>

Optional. Delivery date requested by the customer. Data type: String

Stored in: The expected\_end\_date field of the sn\_ind\_tmt\_orm\_order table.

Default: Blank string

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

requestedStartDate

</td><td>

Order start date requested by the customer. Data type: String

Stored in: The expected\_start\_date field of the sn\_ind\_tmt\_orm\_order table.

Default: Blank string

</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](../rest-api-explorer/c_RESTAPI.md).

|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](../rest-api-explorer/c_RESTAPI.md).

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

Status code

</th><th>

Description

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

201

</td><td><p>Successful. If there are any issues with the characteristics or characteristics option information, the endpoint stores the following comments in the work notes fields of the associated Customer Order Line Item record:</p>
<ul>
<li><code>The following Order Item characteristics does not exist: Review specification &lt;**characteristic.name**&gt; and correct the characteristic and characteristic option in the order line item prior to approving the order.</code></li>
<li><code>Order Item characteristic: &lt;**characteristic.name**&gt; with characteristic value: &lt;**characteristic.value**&gt;is invalid. Correct the characteristic values before approving the order.</code></li>
</ul></td></tr><tr><td>

202

</td><td>Accepted. Successful request for an order in asynchronous mode. That is, the request was made with the <strong>mode</strong> parameter set to <code>async</code> and the record is scheduled to be processed in the Inbound Queue [sn_tmt_core_inbound_queue] table.</td></tr><tr><td>

400

</td><td>Bad Request. Could be any of the following reasons:-   <code>Invalid payload: Request body missing</code> - Payload was not passed in the request body.
-   <code>Invalid payload: productOrderItem is missing</code> - Product order line item object or JSON is missing.
-   <code>Invalid payload: productOrderItem id is missing</code> - The <strong>id</strong> parameter is missing in the product order line item of the payload.
-   <code>Invalid payload: productOrderItem action is missing</code> - The <strong>action</strong> parameter is missing in the product order line item of the payload.
-   <code>Invalid payload: productOrderItem productOffering is missing</code> - The product offering object or JSON is missing from the product order line item in the payload.
-   <code>Invalid payload: productOffering id is missing</code> - The <strong>id</strong> parameter is missing in the product order line item of the product offering object in the payload.
-   <code>Invalid payload: Product offering does not exist</code> - The product offering in the product order line item is not valid.
-   <code>Invalid payload: productOrderItem product is missing</code> - The product object or JSON in the product order line item is missing from the payload.
-   <code>Invalid payload: product productSpecification is missing</code> - The product specification object or JSON in the product order line item is missing from the payload.
-   <code>Invalid payload: productSpecification id is missing</code> - The <strong>id</strong> parameter in the product order line item of the product specification object is missing from the payload.
-   <code>Invalid payload: Product specification does not exist</code> - The product specification in the product order line item is not valid.
-   <code>Invalid payload: Product Inventory does not exist</code> - In a change order (action = change), the quantity of an item is greater than what is in stock.
-   <code>Invalid payload: Product inventory ID is missing</code> - In change order, the <strong>product.id</strong> is missing in the payload.
-   <code>Invalid payload: Sold Product is inactive</code> - In a change order, a product specified in the payload is inactive.
-   <code>Invalid payload: relatedParty is missing</code> - The related party object is missing from the payload.
-   <code>Invalid payload: Customer Account or Consumer is missing</code> - The related party customer or consumer object is missing from the payload.
-   <code>Invalid payload: Consumer does not exist</code> - The specified related party consumer does not exist in the ServiceNow instance.
-   <code>Invalid payload: Customer Account does not exist</code> - The specified related party customer does not exist in the ServiceNow instance.
-   <code>Invalid payload: Order creation failed</code> - Not able to create the requested order.
-   <code>Invalid payload: orderCurrency is required</code> - The <strong>orderCurrency</strong> parameter is missing from the payload.
-   <code>Inactive Currency Code: &lt;currency&gt;</code> - The provided currency is inactive in the ServiceNow instance.
-   <code>One or more line items has a different currency code than the order currency</code> - All line items do not have the same currency code as the order currency.
-   <code>In-flight revision to order currency not supported</code> - The <strong>orderCurrency</strong> parameter can't be updated after the order is created.</td></tr></tbody>
</table>

### Response body parameters \(JSON\)

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

Name

</th><th>

Description

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

channel

</td><td>

List of channels to use for selling the products. Data type: Array of Objects
"channel": [ { "id": "String", "name": "String" } ]
</td></tr><tr><td>

channel.id

</td><td>

Unique identifier of the channel to use to sell the associated products. Data type: String

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

channel.name

</td><td>

Name of the channel to use to sell the associated products. Data type: String

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

committedDueDate

</td><td><p>Date and time when the action must be performed on the order.</p>
<p>This value must be the same as or later than the <strong>committedDueDate</strong> values for each order line item.</p>
<p>Data type: String</p></td></tr><tr><td>

externalId

</td><td>

External identifier for the customer order, such as a purchase order number.Data type: String

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

href

</td><td>

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

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

id

</td><td>

Sys\_id of the customer order created for this request. Data type: String

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

note

</td><td>

Optional. List of additional notes made by the customer when ordering. Data type: Array of Objects
"note": [ { "text": "String" } ]
</td></tr><tr><td>

note.text

</td><td>

Additional notes/comments made by the customer while ordering. Data type: String

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

orderCurrency

</td><td>

Currency code for the order and order line items.Data type: String

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

orderId

</td><td><p>Sys_id of the order to be created. Upon succussful request, the order is added to the Inbound Queue [sn_tmt_core_inbound_queue] table on a schedule to be processed.<strong>Note:</strong> This value is the only result if the order is created asynchronously using the <strong>mode</strong> query parameter.</p>
<div class="highlight"><pre><span></span><code>{
 &quot;orderId&quot;: &quot;b0fc877ac3ab5110856d73ce3640dde0&quot;
}
</code></pre></div>
<p>Data type: String</p></td></tr><tr><td>

productOrderItem

</td><td>

List that describes items associated with the product order and their associated action. Data type: Array of Objects
"productOrderItem:" [ { "action": "String", "committedDueDate": "String", "externalProductInventory": [Array], "id": "String", "itemPrice": [Array], "product": {Object}, "productOffering": {Object}, "productOrderItemReleationship": [Array], "quantity": Number, "state": "String", "@type": "String" } ]
</td></tr><tr><td>

productOrderItem.action

</td><td>

Action to carry out on the product. Possible actions are defined on the Choice List tab in the Action Dictionary Entry of the sn\_ind\_tmt\_orm\_order\_line\_item table. Data type: String

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

productOrderItem.actionReason

</td><td>

Reason for adding the order line item.Data type: String

Stored in: The action\_reason field of the sn\_ind\_tmt\_orm\_order\_line\_item table.

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

productOrderItem.committedDueDate

</td><td>

Optional. Date and time when the action must be performed on the order line item.

Data type: String

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

productOrderItem.externalProductInventory

</td><td id="externalProdInv-resp-descr"><p>Conditional. List of external IDs mapped to the product inventories created for the order. If supplied, each entry requires <strong>externalProductInventoryId</strong>.Data type: Array of Objects</p>
<div class="highlight"><pre><span></span><code>&quot;externalProductInventory&quot;: [
  {
    &quot;externalProductInventoryId&quot;: &quot;String&quot;
  }
]
</code></pre></div></td></tr><tr><td>

productOrderItem.externalProductInventory.externalProductInventoryId

</td><td id="externalProdInvId-resp-descr">

External ID mapped to the product inventory.Data type: String

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

productOrderItem.id

</td><td>

Unique identifier of the line item. Located in the sn\_ind\_tmt\_orm\_external\_id field of the Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\] table. Data type: String

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

productOrderItem.itemPrice

</td><td>

List that describes the price associated with the product. Data type: Array of Objects
"itemPrice": [ { "price": {Object}, "priceType": "String", "recurringChargePeriod": "String" } ]
</td></tr><tr><td>

productOrderItem.itemPrice.price

</td><td>

Description of the price of the associated product. Data type: Object

 ```
"price": {
  "taxIncludedAmount": {Object}
}
productOrderItem.itemPrice.price.taxIncludeAmountDescription of the price of the associated product, including the tax. Data type: Object
"taxIncludedAmount": {
  "unit": "String",
  "value": Number
}
productOrderItem.itemPrice.price.taxIncludeAmount.unitCurrency code in which the price is depicted. Data type: String
productOrderItem.itemPrice.price.taxIncludeAmount.valuePrice of product, including any tax. Data type: Number
productOrderItem.itemPrice.priceTypeType of item price, recurring or non-recurring. Data type: String
productOrderItem.itemPrice.recurringChargePeriodIf the price is recurring, the recurring period, such as `month`. Data type: String
productOrderItem.productDescription of the instance details of the product purchased by the customer. Data type: Object
"product": {
  "id": "String",
  "place": {Object},
  "productCharacteristic": [Array],
  "productSpecification": {Object},
  "relatedParty": {Object},
  "@type": "String"
}
productOrderItem.product.idUnique identifier of the product sold. Located in the sys_id or sn_ind_tmt_orm_external_id field of the Product Inventory [sn_ind_tmt_orm_product_inventory] table. This parameter is only returned if productOrderItem.action is change or delete. If both sys_id and external_id are present, the external_id is returned. Data type: String
productOrderItem.product.placeMaps of the locations on which to install the product. Data type: Object
"place": {
  "id": "String",
  "@type": "String"
}
productOrderItem.product.place.idSys_id of the associated location record in the Location [cmn_location] table. When employing the change action on a product order item (via theproductOrderItem.action parameter), updating the request with a new place sys_id creates a move order, where the order is not changed but is fulfilled in a new location. Data type: String
productOrderItem.product.productCharacteristicList of characteristics of the associated product. Data type: Array of Objects
"productCharacteristic": [ 
 {
  "name": "String",
  "previousValue": "String",
  "value": "String",
  "valueType": "String"
 }
]
productOrderItem.product.productCharacteristic.nameName of the characteristic record to associate with the product. Located in the Characteristic \[sn\_prd\_pm\_characteristic\] table. Data type: String
productOrderItem.product.productCharacteristic.previousValuePrevious characteristic option values if the update is for a change order. The request is a change order if the productOrderItem.action parameter is other than add. For additional information on characteristic option values, see Create product characteristics and characteristic options. Data type: String
productOrderItem.product.productCharacteristic.valueCharacteristic option values associated with the product. For additional information on characteristic option values, see Create product characteristics and characteristic options. Data type: String
productOrderItem.product.productRelationshipList of product relationship details for an order line item.Data type: Array
"productRelationship": [
  {
    "id": "String",
    "relationshipType": "String"
  }
]
productOrderItem.product.productRelationship.idSys\_id or sn\_prd\_invt\_external\_id of the product inventory.Data type: String Table: Sys\_id or sn\_prd\_invt\_external\_id field of the Product Inventory \[sn\_prd\_invt\_product\_inventory\] table.
productOrderItem.product.productRelationship.relationshipTypeType of relationship between the order line item and the product inventory.Possible value: Requires Data type: String
productOrderItem.product.productSpecificationDescription of the product specification associated with the product. Data type: Object
"productSpecification:" {
  "id": "String",
  "internalId": "String",
  "internalVersion": "String",
  "name": "String",
  "version": "String",
  "@type": "String"
}
productOrderItem.product.productSpecification.idInitial\_version or external\_id of the product specification. The initial\_version is the sys\_id of the first version of the specification. Located in the sys\_id or external\_id field of the Product Specification \[sn\_prd\_pm\_product\_specification\] table. If both sys\_id and external\_id are present, the external\_id is returned.Data type: String
productOrderItem.product.productSpecification.internalIdInitial version of the product specification. The initial version is the sys\_id of the first version of the specification.Data type: String Table: Product Specification \[sn\_prd\_pm\_product\_specification\]
productOrderItem.product.productSpecification.internalVersionVersion of the product specification.Data type: String Table: In the version field of the Product Specification \[sn\_prd\_pm\_product\_specification\] table.
productOrderItem.product.productSpecification.nameName of the product specification. Located in the Product Specification \[sn\_prd\_pm\_product\_specification\] table. Data type: String
productOrderItem.product.productSpecification.versionExternal version of the product specification.Data type: String Table: In the external\_version field of the Product Specification \[sn\_prd\_pm\_product\_specification\] table.
productOrderItem.product.productSpecification.@typePart of the TMF Open API standard. This value is always `ProductSpecificationRef`. This information is not stored. Data type: String
productOrderItem.product.relatedPartyOptional. List of contacts for line items. Data type: Array of Objects
"relatedParty:" [
  {
    "email": "String",
    "firstName": "String",
    "lastName": "String",
    "phone": "String",
    "@referredType": "String",
    "@type": "String"
  }
]
productOrderItem.product.relatedParty.emailEmail address of the contact. Data type: String
productOrderItem.product.relatedParty.firstNameFirst name of the contact. Data type: String
productOrderItem.product.relatedParty.lastNameLast name of the contact. Data type: String Data type: String
productOrderItem.product.relatedParty.phoneBusiness phone number of the contact. Data type: String
productOrderItem.product.relatedParty.@referredTypeType of customer. Possible value: OrderLineItemContact Data type: String
productOrderItem.product.relatedParty.@typePart of TMF Open API standard. Annotation for order line item contact. This value is always `RelatedParty`. This information is not stored. Data type: String
productOrderItem.product.@typePart of TMF Open API standard. Annotation for the product. This value is always `Product`. This information is not stored. Data type: String
productOrderItem.productOfferingDescription of the product offering associated with the product. Data type: Object ``` "productOffering:" { "id": "String", "internalId": "String", "internalVersion": "String", "name": "String", "version": "String" }
</td></tr><tr><td>

productOrderItem.productOffering.id

</td><td>

Initial\_version or external\_id of the product offering. The initial\_version is the sys\_id of the first version of the offering. Located in the sys\_id or external\_id field of the Product Offering \[sn\_prd\_pm\_product\_offering\] table. If both sys\_id and external\_id are present, the external\_id is returned.Data type: String

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

productOrderItem.productOffering.internalId

</td><td>

Initial version of the product offering. The initial version is the sys\_id of the first version of the offering.Data type: String

Table: Product Offering \[sn\_prd\_pm\_product\_offering\]

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

productOrderItem.productOffering.internalVersion

</td><td>

Version of the product offering.Data type: String

Table: Product Offering \[sn\_prd\_pm\_product\_offering\] table, field version.

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

productOrderItem.productOffering.name

</td><td>

Name of the product offering. Located in the Product Offering \[sn\_prd\_pm\_product\_offering\] table. Data type: String

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

productOrderItem.productOffering.version

</td><td>

External version of the product offering.Data type: String

Table: In the external\_version field of the Product Offering \[sn\_prd\_pm\_product\_offering\] table.

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

productOrderItem.productOrderItemRelationship

</td><td><p>Conditional. Item-level relationships. If supplied, each entry requires an <strong>id</strong> and <strong>relationshipType</strong>. Data type: Array of Objects</p>
<div class="highlight"><pre><span></span><code>&quot;productOrderItemRelationship&quot;: [
  {
    &quot;id&quot;: &quot;String&quot;,
    &quot;relationshipType&quot;: &quot;String&quot;
  }
]
</code></pre></div></td></tr><tr><td>

productOrderItem.productOrderItemRelationship.id

</td><td>

Unique identifier of the related line item. Located in the sn\_ind\_tmt\_orm\_external\_id field of the Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\] table. Data type: String

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

productOrderItem.productOrderItemRelationship.relationshipType

</td><td>

Required. Type of relationship between the two line items. This information is used to identify the relationship hierarchy. Possible values:

-   HasChild
-   HasParent
-   Requires

`HasChild` and `HasParent` are used for parent/child relationships. `Requires` is used for horizontal relationships \(a line item requires another line item\).

Data type: String

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

productOrderItem.quantity

</td><td>

Number of the associated items to order. Data type: Number

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

productOrderItem.state

</td><td>

Current state of the product order item. This value is always `new`.Data type: String

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

productOrderItem.@type

</td><td>

Part of TMF Open API standard. Annotation for the product. This value is always `ProductOrderItem`. This information is not stored.Data type: String

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

relatedParty

</td><td>

List of contacts for the order. Each contact is an object in the array. Must list at least one item which contains customer account or consumer account information. Data type: Array of Objects
"relatedParty": [ { "id": "String", "name": "String", "@referredType": "String", "@type": "String" } ]
</td></tr><tr><td>

relatedParty.id

</td><td>

Sys\_id or external\_id of the account, customer contact, or consumer associated with the order. Located in the Account \[customer\_account\], Contact \[customer\_contact\] table, or Consumer \[csm\_consumer\] table. Data type: String

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

relatedParty.name

</td><td>

Name of the account, customer, or consumer. 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>

requestedCompletionDate

</td><td>

Optional. Delivery date requested by the customer. Data type: String

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

requestedStartDate

</td><td>

Optional. Order start date requested by the customer. Data type: String

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

state

</td><td>

Current state of the order. For this endpoint, this value is always `new`.Data type: String

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

@type

</td><td>

Part of TMF Open API standard. Annotation for the product. This value is always `ProductOrder`. This information is not stored.Data type: String

</td></tr></tbody>
</table>

### Processing asynchronously

This example shows how to use the **mode** query parameter to create an order asynchronously. The order is added to the Inbound Queue \[sn\_tmt\_core\_inbound\_queue\] table on a schedule to be created.
curl -X POST 'https://instance.service-now.com/api/sn_ind_tmt_orm/order/productOrder?mode=async' \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -u "username":"password" \ -d '{ "requestedCompletionDate": "2021-05-02T08:13:59.506Z", "requestedStartDate": "2020-05-03T08:13:59.506Z", "orderDate": "2020-05-03T08:13:59.506Z", "externalId": "PO-4ddd56", "orderCurrency": "USD", "note": [ { "id": "1", "author": "Jean Pontus", "date": "2019-04-30T08:13:59.509Z", "text": "This is a TMF product order illustration" }, { "id": "2", "author": "Jean Pontus1", "date": "2019-04-30T08:13:59.509Z", "text": "This is a TMF product order illustration no 2" } ], "productOrderItem": [ { "id": "100", "quantity": 1, "action": "add", "actionReason":"adding service package OLI", "product": { "isBundle": false, "@type": "Product", "productSpecification": { "id": "cfe5ef6a53702010cd6dddeeff7b12f6", "name": "SD-WAN Service Package", "@type": "ProductSpecificationRef" }, "relatedParty": [ { "firstName": "John", "lastName": "Smith", "email": "abc2@example.com", "phone": "32456768", "@type": "RelatedParty", "@referredType": "OrderLineItemContact" } ], "productRelationship": [ { "id": "be6d13f45b5620102dff5e92dc81c781", "relationshipType": "Requires" } ] }, "productOffering": { "id": "69017a0f536520103b6bddeeff7b127d", "name": "Premium SD-WAN Offering" }, "productOrderItemRelationship": [ { "id": "110", "relationshipType": "HasChild" }, { "id": "120", "relationshipType": "HasChild" }, { "id": "130", "relationshipType": "HasChild" } ], "@type": "ProductOrderItem" }, { "id": "110", "quantity": 1, "action": "add", "itemPrice": [ { "description": "Access Fee", "name": "Access Fee", "priceType": "nonRecurring", "price": { "taxRate": 0, "dutyFreeAmount": { "unit": "USD", "value": 100 }, "taxIncludedAmount": { "unit": "USD", "value": 220 } } } ], "product": { "isBundle": false, "@type": "Product", "productCharacteristic": [ { "name": "Tenancy", "valueType": "string", "value": "Premium (>50 sites)" } ], "productSpecification": { "id": "216663aa53702010cd6dddeeff7b12b5", "name": "SD-WAN Controller", "@type": "ProductSpecificationRef" }, "place": { "@type": "Place", "id": "5671dd2ec3a53010188473ce3640dd81" }, "relatedParty": [ { "firstName": "John", "lastName": "Smith", "email": "abc2@example.com", "phone": "32456768", "@type": "RelatedParty", "@referredType": "OrderLineItemContact" } ], "productRelationship": [ { "id": "be6d13f45b5620102dff5e92dc81c781", "relationshipType": "Requires" } ] }, "productOffering": { "id": "69017a0f536520103b6bddeeff7b127d", "name": "Premium SD-WAN Offering" }, "productOrderItemRelationship": [ { "id": "100", "relationshipType": "HasParent" } ], "@type": "ProductOrderItem" }, { "id": "120", "action": "add", "actionReason":"adding service package OLI", "quantity": 1, "itemPrice": [ { "description": "Tariff plan monthly fee", "name": "MonthlyFee", "priceType": "recurring", "recurringChargePeriod": "month", "price": { "taxRate": 0, "dutyFreeAmount": { "unit": "USD", "value": 300 }, "taxIncludedAmount": { "unit": "USD", "value": 349 } } } ], "product": { "isBundle": false, "@type": "Product", "productCharacteristic": [ { "name": "CPE Model", "valueType": "string", "value": "ASR" }, { "name": "WAN Optimization", "valueType": "string", "value": "Advance" }, { "name": "CPE Type", "valueType": "string", "value": "Physical" }, { "name": "Routing", "valueType": "string", "value": "Premium" } ], "productSpecification": { "id": "39b627aa53702010cd6dddeeff7b1202", "name": "SD-WAN Edge Device", "@type": "ProductSpecificationRef" }, "place": { "@type": "Place", "id": "5671dd2ec3a53010188473ce3640dd81" }, "relatedParty": [ { "firstName": "John", "lastName": "Smith", "email": "abc2@example.com", "phone": "32456768", "@type": "RelatedParty", "@referredType": "OrderLineItemContact" } ], "productRelationship": [ { "id": "be6d13f45b5620102dff5e92dc81c781", "relationshipType": "Requires" } ] }, "productOffering": { "id": "69017a0f536520103b6bddeeff7b127d", "name": "Premium SD-WAN Offering" }, "productOrderItemRelationship": [ { "id": "100", "relationshipType": "HasParent" } ], "@type": "ProductOrderItem" }, { "id": "130", "quantity": 1, "action": "add", "actionReason":"adding service package OLI", "itemPrice": [ { "description": "Tariff plan monthly security", "name": "MonthlySecurity", "priceType": "nonRecurring", "price": { "taxRate": 0, "dutyFreeAmount": { "unit": "USD", "value": 30 }, "taxIncludedAmount": { "unit": "USD", "value": 30 } } } ], "product": { "isBundle": false, "@type": "Product", "productCharacteristic": [ { "name": "Security Type", "valueType": "string", "value": "Premium" } ], "productSpecification": { "id": "a6514bd3534560102f18ddeeff7b1247", "name": "SD-WAN Security", "@type": "ProductSpecificationRef" }, "place": { "@type": "Place", "id": "5671dd2ec3a53010188473ce3640dd81" }, "relatedParty": [ { "firstName": "John", "lastName": "Smith", "email": "abc2@example.com", "phone": "32456768", "@type": "RelatedParty", "@referredType": "OrderLineItemContact" } ], "productRelationship": [ { "id": "be6d13f45b5620102dff5e92dc81c781", "relationshipType": "Requires" } ] }, "productOffering": { "id": "69017a0f536520103b6bddeeff7b127d", "name": "Premium SD-WAN Offering" }, "productOrderItemRelationship": [ { "id": "100", "relationshipType": "HasParent" } ], "@type": "ProductOrderItem" } ], "relatedParty": [ { "id": "eaf68911c35420105252716b7d40ddde", "name": "Sally Thomas", "@type": "RelatedParty", "@referredType": "CustomerContact" }, { "id": "ffc68911c35420105252716b7d40dd55", "name": "Funco Intl", "@type": "RelatedParty", "@referredType": "Customer" }, { "id": "59f16de1c3b67110ff00ed23a140dd9e", "name": "Funco External", "@type": "RelatedParty", "@referredType": "Consumer" } ], "@type": "ProductOrder" }'
Response body.
{ "orderId": "304e877ac3ab5110856d73ce3640dde5" }
### Processing synchronously \(default\)

The following example shows how to create a product order.
curl -X POST "https://instance.service-now.com/api/sn_ind_tmt_orm/order/productOrder" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -u "username":"password" \ -d { "requestedCompletionDate": "2021-05-02T08:13:59.506Z", "requestedStartDate": "2020-05-03T08:13:59.506Z", "externalId": "PO-456", "currencyCode": "USD", "channel": [ { "id": "2", "name": "Online channel" } ], "note": [ { "text": "This is a TMF product order illustration" }, { "text": "This is a TMF product order illustration no 2" } ], "productOrderItem": [ { "id": "POI100", "quantity": 1, "action": "change", "product": { "id": "fa6d13f45b5620102dff5e92dc81c77f", "@type": "Product", "productSpecification": { "id": "cfe5ef6a53702010cd6dddeeff7b12f6", "name": "SD-WAN Service Package", "@type": "ProductSpecificationRef" }, "place": { "id": "25ab9c4d0a0a0bb300f7dabdc0ca7c1c", "@type": "Place" } }, "productOffering": { "id": "69017a0f536520103b6bddeeff7b127d", "name": "Premium SD-WAN Offering" }, "productOrderItemRelationship": [ { "id": "POI120", "relationshipType": "HasChild" }, { "id": "POI130", "relationshipType": "HasChild" } ], "@type": "ProductOrderItem" }, { "id": "POI120", "quantity": 1, "action": "change", "actionReason":"adding service package OLI", "itemPrice": [ { "priceType": "recurring", "recurringChargePeriod": "month", "price": { "taxIncludedAmount": { "unit": "USD", "value": 20 } } } ], "product": { "id": "766d13f45b5620102dff5e92dc81c78a", "@type": "Product", "productCharacteristic": [ { "name": "WAN Optimization", "value": "Base", "previousValue": "Advance" } ], "productSpecification": { "id": "39b627aa53702010cd6dddeeff7b1202", "name": "SD-WAN Edge Device", "@type": "ProductSpecificationRef" }, "productRelationship": [ { "id": "326d13f45b5620102dff5e92dc81c785", "relationshipType": "Requires" } ], "relatedParty": [ { "id": "51670151c35420105252716b7d40ddfe", "firstName": "Joe", "lastName": "Doe", "email": "abc@example.com", "phone": "1234567890", "@type": "RelatedParty", "@referredType": "OrderLineItemContact" } ], "place": { "id": "25ab9c4d0a0a0bb300f7dabdc0ca7c1c", "@type": "Place" } }, "productOffering": { "id": "69017a0f536520103b6bddeeff7b127d", "name": "Premium SD-WAN Offering" }, "productOrderItemRelationship": [ { "id": "POI100", "relationshipType": "HasParent" }, { "id": "POI130", "relationshipType": "Requires" } ], "@type": "ProductOrderItem" }, { "id": "POI130", "quantity": 1, "action": "add", "actionReason":"adding service package OLI", "itemPrice": [ { "priceType": "recurring", "recurringChargePeriod": "month", "price": { "taxIncludedAmount": { "unit": "USD", "value": 20 } } } ], "product": { "@type": "Product", "productCharacteristic": [ { "name": "Security Type", "value": "Base", "previousValue": "Advance" } ], "productSpecification": { "id": "a6514bd3534560102f18ddeeff7b1247", "name": "SD-WAN Security", "@type": "ProductSpecificationRef" }, "relatedParty": [ { "id": "51670151c35420105252716b7d40ddfe", "firstName": "Joe", "lastName": "Doe", "email": "abc@example.com", "phone": "1234567890", "@type": "RelatedParty", "@referredType": "OrderLineItemContact" } ], "place": { "id": "25ab9c4d0a0a0bb300f7dabdc0ca7c1c", "@type": "Place" } }, "productOffering": { "id": "69017a0f536520103b6bddeeff7b127d", "name": "Premium SD-WAN Offering" }, "productOrderItemRelationship": [ { "id": "POI100", "relationshipType": "HasParent" } ], "@type": "ProductOrderItem" } ], "relatedParty": [ { "id": "eaf68911c35420105252716b7d40ddde", "name": "Sally Thomas", "@type": "RelatedParty", "@referredType": "CustomerContact" }, { "id": "ffc68911c35420105252716b7d40dd55", "name": "Funco Intl", "@type": "RelatedParty", "@referredType": "Customer" }, { "id": "59f16de1c3b67110ff00ed23a140dd9e", "name": "Funco External", "@type": "RelatedParty", "@referredType": "Consumer" } ], "@type": "ProductOrder" }
Response body.
{ "requestedCompletionDate": "2021-05-02T08:13:59.506Z", "requestedStartDate": "2020-05-03T08:13:59.506Z", "externalId": "PO-456", "currencyCode": "USD", "channel": [ { "id": "2", "name": "Online chanel" } ], "note": [ { "text": "This is a TMF product order illustration" }, { "text": "This is a TMF product order illustration no 2" } ], "productOrderItem": [ { "id": "POI100", "quantity": 1, "action": "change", "actionReason":"adding service package OLI", "product": { "id": "fa6d13f45b5620102dff5e92dc81c77f", "@type": "Product", "productSpecification": { "id": "cfe5ef6a53702010cd6dddeeff7b12f6", "name": "SD-WAN Service Package", "internalVersion": "1", "version": "v1", "internalId": "cfe5ef6a53702010cd6dddeeff7b12f6", "@type": "ProductSpecificationRef" }, "place": { "id": "25ab9c4d0a0a0bb300f7dabdc0ca7c1c", "@type": "Place" } }, "productOffering": { "id": "69017a0f536520103b6bddeeff7b127d", "name": "Premium SD-WAN Offering", "internalVersion": "1", "version": "v1", "internalId": "69017a0f536520103b6bddeeff7b127d" }, "productOrderItemRelationship": [ { "id": "POI120", "relationshipType": "HasChild" }, { "id": "POI130", "relationshipType": "HasChild" } ], "@type": "ProductOrderItem", "state": "new" }, { "id": "POI120", "quantity": 1, "action": "change", "actionReason":"adding service package OLI", "itemPrice": [ { "priceType": "recurring", "recurringChargePeriod": "month", "price": { "taxIncludedAmount": { "unit": "USD", "value": 20 } } } ], "product": { "id": "766d13f45b5620102dff5e92dc81c78a", "@type": "Product", "productCharacteristic": [ { "name": "WAN Optimization", "value": "Base", "previousValue": "Advance" } ], "productSpecification": { "id": "39b627aa53702010cd6dddeeff7b1202", "name": "SD-WAN Edge Device", "internalVersion": "1", "version": "v1", "internalId": "39b627aa53702010cd6dddeeff7b1202", "@type": "ProductSpecificationRef" }, "productRelationship": [ { "id": "326d13f45b5620102dff5e92dc81c785", "relationshipType": "Requires" } ], "relatedParty": [ { "id": "51670151c35420105252716b7d40ddfe", "firstName": "Joe", "lastName": "Doe", "email": "abc@example.com", "phone": "1234567890", "@type": "RelatedParty", "@referredType": "OrderLineItemContact" } ], "place": { "id": "25ab9c4d0a0a0bb300f7dabdc0ca7c1c", "@type": "Place" } }, "productOffering": { "id": "69017a0f536520103b6bddeeff7b127d", "name": "Premium SD-WAN Offering", "internalVersion": "1", "version": "v1", "internalId": "69017a0f536520103b6bddeeff7b127d" }, "productOrderItemRelationship": [ { "id": "POI100", "relationshipType": "HasParent" }, { "id": "POI130", "relationshipType": "Requires" } ], "@type": "ProductOrderItem", "state": "new" }, { "id": "POI130", "quantity": 1, "action": "add", "actionReason":"adding service package OLI", "itemPrice": [ { "priceType": "recurring", "recurringChargePeriod": "month", "price": { "taxIncludedAmount": { "unit": "USD", "value": 20 } } } ], "product": { "@type": "Product", "productCharacteristic": [ { "name": "Security Type", "value": "Base", "previousValue": "Advance" } ], "productSpecification": { "id": "a6514bd3534560102f18ddeeff7b1247", "name": "SD-WAN Security", "internalVersion": "1", "version": "v1", "internalId": "a6514bd3534560102f18ddeeff7b1247", "@type": "ProductSpecificationRef" }, "relatedParty": [ { "id": "51670151c35420105252716b7d40ddfe", "firstName": "Joe", "lastName": "Doe", "email": "abc@example.com", "phone": "1234567890", "@type": "RelatedParty", "@referredType": "OrderLineItemContact" } ], "place": { "id": "25ab9c4d0a0a0bb300f7dabdc0ca7c1c", "@type": "Place" } }, "productOffering": { "id": "69017a0f536520103b6bddeeff7b127d", "name": "Premium SD-WAN Offering", "internalVersion": "1", "version": "v1", "internalId": "69017a0f536520103b6bddeeff7b127d" }, "productOrderItemRelationship": [ { "id": "POI100", "relationshipType": "HasParent" } ], "@type": "ProductOrderItem", "state": "new" } ], "relatedParty": [ { "id": "eaf68911c35420105252716b7d40ddde", "name": "Sally Thomas", "@type": "RelatedParty", "@referredType": "CustomerContact" }, { "id": "ffc68911c35420105252716b7d40dd55", "name": "Funco Intl", "@type": "RelatedParty", "@referredType": "Customer" }, { "id": "59f16de1c3b67110ff00ed23a140dd9e", "name": "Funco External", "@type": "RelatedParty", "@referredType": "Consumer" } ], "@type": "ProductOrder", "id": "8d75939453126010a795ddeeff7b126a", "href": "/api/sn_ind_tmt_orm/order/productOrder/8d75939453126010a795ddeeff7b126a", "state": "new" }
## Product Order Open API - POST /sn\_ind\_tmt\_orm/productorder

Creates the specified customer order and customer order line items.

**Important:** Starting with the Tokyo release, this endpoint is deprecated. The new version of this endpoint is [Product Order Open API - POST /sn\_ind\_tmt\_orm/order/productOrder](tmf622_product_ordering-api.md).

Once processed, new records are created in the following tables:

-   Customer Order \[sn\_ind\_tmt\_orm\_order\]
-   Order Characteristic \[sn\_ind\_tmt\_orm\_order\_characteristic\_value\]
-   Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\]
-   Order Line Item Contact \[sn\_ind\_tmt\_orm\_order\_line\_item\_contact\]

### URL format

Default URL: `/api/sn_ind_tmt_orm/productorder`

### Supported request parameters

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

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

<table id="id_vk2_p5n_t4b" class="rest_api_request_body"><thead><tr><th>

Name

</th><th>

Description

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

@type

</td><td>

Part of TMF Open API standard. Annotation for the product. This value is always `ProductOrder`. This information is not stored.Data type: String

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

channel

</td><td>

List of channels to use for selling the products. Data type: Array of Objects
"channel": [ { "id": "String", "name": "String" } ]
Stored in: sn\_ind\_tmt\_orm\_order

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

channel.id

</td><td>

Required. Unique identifier of the channel to use to sell the associated products. Channel ID values are located in the external\_id field of the Distribution Channel \[sn\_prd\_pm\_distribution\_channel\] table. Data type: String

Stored in: The channel field of the sn\_ind\_tmt\_orm\_order table.

Default: Blank string

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

channel.name

</td><td>

Name of the channel to use to sell the associated products. Possible channel names are defined on the Choice List tab in the Channel Dictionary Entry of the sn\_ind\_tmt\_orm\_order table.Data type: String

Default: Blank string

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

committedDueDate

</td><td id="due-date-entry"><p>Date and time when the action must be performed on the order.</p>
<p>This value must be the same as or later than the <strong>committedDueDate</strong> values for each order line item.</p>
<p>Data type: String</p>
<p>Stored in: The committed_due_date field of the sn_ind_tmt_orm_order table.</p></td></tr><tr><td>

disableCharValueValidation

</td><td>

Flag that indicates how to control characteristic value validation behavior for choice-type characteristics.Valid values:

-   true: Validation is disabled and `characteristic_option_value` is set directly from the request payload without generating work notes.
-   false: Validates characteristic values against allowed choices and adds a work note to the record for any invalid value.

Default: false

To disable validation, create a system property named `sn_ind_tmt_orm.disableCharValueValidation` and set the value to `true`. When disabled, the value is set directly from the request payload and no work notes are generated. The property isn't shipped by default.

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

externalId

</td><td>

Unique identifier for the customer order. This value is determined by an external system. Data type: String

Stored in: The external\_id field of the sn\_ind\_tmt\_orm\_order table.

Default: Blank string

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

externalSystem

</td><td><p>External system of the product order, appended with <code>TMF622</code>. For example, if the external system is ABC then enter the value in <strong>externalSystem</strong> as <code>ABC-TMF622</code>.</p>
<p>Data Type: String</p></td></tr><tr id="productOrder-href-request"><td>

href

</td><td>

Relative link to the resource record.Data type: String

Default: Blank string

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

note

</td><td>

Additional notes made by the customer when ordering. Data type: Array of Objects
"note": [ { "text": "String" } ]
Stored in: sn\_ind\_tmt\_orm\_order

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

note.text

</td><td>

Required. Additional notes/comments made by the customer while ordering. Data type: String

Stored in: The comments field of the sn\_ind\_tmt\_orm\_order table.

Default: Blank string

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

orderCurrency

</td><td>

Required. Currency code for the order and order line items. The currency must be the same for all elements of the order and order line items, otherwise an error is returned and the order isn't created. Once an order is created, its currency code can't be changed. Data type: String

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

productOrderItem

</td><td>

Required. Items associated with the product order and their associated action. Data type: Array of Objects
"productOrderItem": [ { "action": "String", "actionReason": "String", "committedDueDate": "String", "externalProductInventory": [Array], "id": "String", "itemPrice": [Array], "product": {Object}, "productOffering": {Object}, "productOrderItemRelationship": [Array], "quantity": Number, "@type": "String" } ]
Stored in: Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\]

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

productOrderItem.@type

</td><td>

Part of TMF Open API standard. Annotation for the product. This value is always `ProductOrderItem`. This information is not stored.Data type: String

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

productOrderItem.action

</td><td><p>Required. Action to carry out on the product. Possible actions are defined on the Choice List tab in the Action Dictionary Entry of the sn_ind_tmt_orm_order_line_item table. Possible values:</p>
<ul>
<li>add</li>
<li>change</li>
</ul>
<p><strong>Note:</strong> Submitting a change payload that includes a new service location via <strong>productOrderItem.product.place.id</strong> is processed as a move order.</p>
<ul>
<li>delete</li>
<li>no-change</li>
<li>resume</li>
<li>suspend</li>
</ul>
<p>Data type: String</p>
<p>Stored in: The action field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.</p></td></tr><tr><td>

productOrderItem.actionReason

</td><td id="productOrder-addReason-request">

Optional. Description of the reason for the order line item.Data type: String

Stored in: The action\_reason field of the Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\] table.

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

productOrderItem.committedDueDate

</td><td id="due-date-item-entry">

Optional. Date and time when the action must be performed on the order line item.

Data type: String

 Stored in: The committed\_due\_date field of the Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\] table.

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

productOrderItem.externalProductInventory.externalProductInventoryId

</td><td id="externalProductInventoryId-desc">

External ID to map to the product inventory.Data type: String

Stored in: The external\_inventory\_id field of the Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\] table and the sn\_prd\_invt\_external\_id field of the sn\_prd\_invt\_product\_inventory table.

</td></tr><tr id="externalProductInventory-GET-request"><td>

productOrderItem.externalProductInventory

</td><td id="externalProductInventory-GET-desc-request"><p>Conditional. If supplied, each entry requires <strong>externalProductInventoryId</strong>. External IDs to map to the product inventories created for the order.Data type: Array of Objects</p>
<div class="highlight"><pre><span></span><code>&quot;externalProductInventory&quot;: [
  {
    &quot;externalProductInventoryId&quot;: &quot;String&quot;
  }
]
</code></pre></div></td></tr><tr><td>

productOrderItem.id

</td><td>

Required. Unique identifier of the line item. Data type: String

Stored in: The external\_id field of the Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\] table.

Maximum length: 40

Default: Blank string

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

productOrderItem.itemPrice

</td><td>

Price associated with the product. Data type: Array of Objects
"itemPrice": [ { "price": {Object}, "priceType": "String", "recurringChargePeriod": "String" } ]
Stored in: sn\_ind\_tmt\_orm\_order

Default: Blank string

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

productOrderItem.itemPrice.price

</td><td>

Description of the price of the associated product. Data type: Object
"price": { "taxIncludedAmount": {Object} }
Stored in: Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\]

Default: Blank string

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

productOrderItem.itemPrice.price.taxIncludedAmount

</td><td>

Description of the price of the associated product, including the tax. Data type: Object
"taxIncludedAmount": { "unit": "String", "value": Number }
Stored in: Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\]

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

productOrderItem.itemPrice.price.taxIncludedAmount.unit

</td><td>

Currency code in which the price is expressed. Data type: String

Stored in: The mrc or nrc field of the Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\] table

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

productOrderItem.itemPrice.price.taxIncludedAmount.value

</td><td>

Price of product, including any tax. Data type: Number

Stored in: The mrc or nrc field of the Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\] table

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

productOrderItem.itemPrice.priceType

</td><td>

Specifies whether the price of the item is recurring or non-recurring. Data type: String

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

productOrderItem.itemPrice.recurringChargePeriod

</td><td>

If the price is recurring, the recurring period, such as `month`. Data type: String

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

productOrderItem.product

</td><td><p>Required if <strong>productOrderItem.action</strong> is change or delete. Instance details of the product purchased by the customer. Data type: Object</p>
<div class="highlight"><pre><span></span><code>&quot;product&quot;: {
  &quot;id&quot;: &quot;String&quot;,
  &quot;place&quot;: {Object},
  &quot;productCharacteristic&quot;: [Array],
  &quot;productSpecification&quot;: {Object},
  &quot;relatedParty&quot;: {Object},
  &quot;@type&quot;: &quot;String&quot;
}
</code></pre></div>
<p>Stored in: Order Line Item [sn_ind_tmt_orm_order_line_item]</p></td></tr><tr><td>

productOrderItem.product.@type

</td><td>

Part of TMF Open API standard. Annotation for the product. This value is always `Product`. This information is not stored. Data type: String

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

productOrderItem.product.id

</td><td><p>Required if <strong>productOrderItem.action</strong> is change or delete. Unique identifier of the product sold. Data type: String</p>
<p>Default: Blank string</p>
<p>Table: In the sys_id or sn_ind_tmt_orm_external_id field of the Product Inventory [sn_ind_tmt_orm_product_inventory] table.</p></td></tr><tr><td>

productOrderItem.product.place

</td><td>

Maps of the locations on which to install the product. Data type: Object
"place": { "id": "String", "@type": "String" }
Stored in: Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\]

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

productOrderItem.product.place.@type

</td><td>

Part of TMF Open API standard. Annotation for order line item contact. This value is always `Place`. This information is not stored. Data type: String

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

productOrderItem.product.place.id

</td><td><p>Required. Sys_id of the associated location record. When employing the change action on a product order item (via the<strong>productOrderItem.action</strong> parameter), updating the request with a new place sys_id creates a move order, where the order is not changed but is fulfilled in a new location.</p>
<p>Data type: String</p>
<p>Table: Location [cmn_location]</p>
<p>Stored in: The location field of the Order Line Item [sn_ind_tmt_orm_order_line_item] table.</p></td></tr><tr><td>

productOrderItem.product.productCharacteristic

</td><td>

Characteristics of the associated product. Data type: Array of Objects
"productCharacteristic": [ { "name": "String", "previousValue": "String", "value": "String", "valueType": "String" } ]
Stored in: sn\_ind\_tmt\_orm\_order\_characteristic\_value

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

productOrderItem.product.productCharacteristic.name

</td><td>

Name of the characteristic record to associated with the product.Data type: String

Table: Characteristic \[sn\_prd\_pm\_characteristic\]

Stored in: The characteristics field of the sn\_ind\_tmt\_orm\_order\_characteristic\_value table.

Default: Blank string

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

productOrderItem.product.productCharacteristic.previousValue

</td><td><p>Previous characteristic option values if the update is for change order. The request is a change order if the <strong>productOrderItem.action</strong> parameter is other than <code>add</code>. For additional information on characteristic option values, see <a href="../../../order-management/som-product-config-add-characteristics/">Create product characteristics and characteristic options</a>. Data type: String</p>
<p>Stored in: The previous_characteristic_option_value field of the sn_ind_tmt_orm_order_characteristic_value table.</p>
<p>Default: Blank string</p></td></tr><tr><td>

productOrderItem.product.productCharacteristic.value

</td><td>

Characteristic option values associated with the product. For additional information on characteristic option values, see <a href="../../../order-management/som-product-config-add-characteristics/">Create product characteristics and characteristic options</a>. Data type: String

Stored in: The characteristic\_option\_value field of the sn\_ind\_tmt\_orm\_order\_characteristic\_value table.

Default: Blank string

</td></tr><tr id="tmf-prod-order_prodChar.valueType"><td>

productOrderItem.product.productCharacteristic.valueType

</td><td>

Type of characteristic value.Possible values:

-   Array.Date
-   Array.Datetime
-   Array.Decimal
-   Array.Integer
-   Array.Object
-   Array.Single Line Test
-   Checkbox
-   Choice
-   Date,Address
-   Email
-   Integer,Date/time
-   Object
-   Single Line Text
-   Yes/No

Data type: String

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

productOrderItem.product.productSpecification

</td><td><p>Optional. Description of the product specification associated with the product. <strong>Note:</strong> Change orders (<strong>productOrderItem.action</strong> is <code>change</code>) are processed differently based on the value of the <strong>sn_ind_tmt_orm.allowSpecVersionUpdateInChangeOrder</strong> system property. The value of this system property determines how the order is processed if the product inventory is a different version than indicated in the order.</p>
<ul>
<li>When this system property is set to true (default), the product inventory is automatically upgraded to the version in the order by changing the referenced product specification. This allows the order to be successfully processed.</li>
<li>When this system property is set to false, if the product inventory is a different version than indicated in the order, the order fails due to the version mismatch.</li>
</ul>
<p>Data type: Object</p>
<div class="highlight"><pre><span></span><code>&quot;productSpecification&quot;: {
  &quot;id&quot;: &quot;String&quot;,
  &quot;internalVersion&quot;: &quot;String&quot;,
  &quot;name&quot;: &quot;String&quot;,
  &quot;version&quot;: &quot;String&quot;,
  &quot;@type&quot;: &quot;String&quot;
}
</code></pre></div>
<p>Stored in: sn_ind_tmt_orm_order_line_item</p></td></tr><tr><td>

productOrderItem.product.productSpecification.@type

</td><td>

Part of the TMF Open API standard. This value is always `ProductSpecificationRef`. This information is not stored. Data type: String

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

productOrderItem.product.productSpecification.id

</td><td>

Required. Initial version or external ID of the product specification. The initial version is the sys\_id of the first version of the specification.Data type: String

Table: Product Specification \[sn\_prd\_pm\_product\_specification\]

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

productOrderItem.product.productSpecification.internalVersion

</td><td>

Version of the product specification.Data type: String

Table: In the version field of the Product Specification \[sn\_prd\_pm\_product\_specification\] table.

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

productOrderItem.product.productSpecification.internalVersion

</td><td>Internal version of the service specification. Must match the value of <strong>version</strong> otherwise an error is thrown.Data Type: String</td></tr><tr><td>

productOrderItem.product.productSpecification.name

</td><td>

Name of the product specification. Data type: String

Table: Product Specification \[sn\_prd\_pm\_product\_specification\]

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

productOrderItem.product.productSpecification.version

</td><td>

External version of the product specification.Data type: String

Table: In the external\_version field of the Product Specification \[sn\_prd\_pm\_product\_specification\] table.

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

productOrderItem.product.productSpecification.version

</td><td>External version of the service specification. Must match the value of <strong>internalVersion</strong> otherwise an error is thrown.Data Type: String</td></tr><tr><td>

productOrderItem.product.relatedParty

</td><td>

List of party roles linked to an OrderLineItemContact. Data type: Array of Objects
"relatedParty": [ { "email": "String", "firstName": "String", "lastName": "String", "phone": "String", "@referredType": "String", "@type": "String" } ]
Stored in: sn\_ind\_tmt\_orm\_order\_line\_item\_contact

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

productOrderItem.product.relatedParty.@referredType

</td><td>

Required. Type of customer. Possible value: OrderLineItemContact

Data type: String

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

productOrderItem.product.relatedParty.@type

</td><td>

Part of TMF Open API standard. Annotation for order line item contact. This value is always `RelatedParty`. This information is not stored. Data type: String

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

productOrderItem.product.relatedParty.email

</td><td>

Email address of the contact. Data type: String

Stored in: The email field of the sn\_ind\_tmt\_orm\_order\_line\_item\_contact table.

Default: Blank string

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

productOrderItem.product.relatedParty.firstName

</td><td>

First name of the contact. Data type: String

Stored in: The first\_name field of the sn\_ind\_tmt\_orm\_order\_line\_item\_contact table.

Default: Blank string

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

productOrderItem.product.relatedParty.lastName

</td><td>

Last name of the contact. Data type: String

Stored in: The lastName field of the sn\_ind\_tmt\_orm\_order\_line\_item\_contact table.

Default: Blank string

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

productOrderItem.product.relatedParty.phone

</td><td>

Business phone number of the contact. Data type: String

Stored in: The business\_phone field of the sn\_ind\_tmt\_orm\_order\_line\_item\_contact table.

Default: Blank string

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

productOrderItem.productOffering

</td><td>

Required. Description of the product offering associated with the product. Data type: Object
"productOffering": { "id": "String", "internalVersion": "String", "name": "String", "version": "String" }
Stored in: sn\_ind\_tmt\_orm\_order\_line\_item

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

productOrderItem.productOffering.id

</td><td>

Required. Initial version or external ID of the product offering. The initial version is the sys\_id of the first version of the offering.Data type: String

Table: Product Offering \[sn\_prd\_pm\_product\_offering\]

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

productOrderItem.productOffering.internalVersion

</td><td>

Version of the product offering.Data type: String

Table: In the version field of the Product Offering \[sn\_prd\_pm\_product\_offering\] table.

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

productOrderItem.productOffering.name

</td><td>

Name of the product offering.Data type: String

Table: Product Offering \[sn\_prd\_pm\_product\_offering\]

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

productOrderItem.productOffering.version

</td><td>

External version of the product offering.Data type: String

Table: In the external\_version field of the Product Offering \[sn\_prd\_pm\_product\_offering\] table.

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

productOrderItem.productOrderItem.quantity

</td><td>

Number of the associated items to order. Data type: Number

Stored in: The quantity field of the sn\_ind\_tmt\_orm\_order table.

Default: null

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

productOrderItem.productOrderItemRelationship

</td><td>

Required. List that describes the parent/child relationship between order items. Data type: Array of Objects
"productOrderItemRelationship": [ { "id": "String", "relationshipType": "String" } ]
Stored in: sn\_ind\_tmt\_orm\_order\_line\_item

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

productOrderItem.productOrderItemRelationship.id

</td><td><p>Required. Same as the <strong>productOrderItem.id</strong> value. Used for parent/child relationship Data type: String</p>
<p>Stored in: The parent_line_item field of the sn_ind_tmt_orm_order_line_item table.</p>
<p>Default: Blank string</p></td></tr><tr><td>

productOrderItem.productOrderItemRelationship.relationshipType

</td><td>

Required. Type of relationship between the two line items. This information is used to identify relationship hierarchy. Possible values:

-   HasChild
-   HasParent

Data type: String

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

productOrderItem.quantity

</td><td>

Number of items ordered.Data type: Number

Stored in: The quantity field of the sn\_ind\_tmt\_orm\_order table.

Default: Blank string

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

relatedParty

</td><td>

List of contacts for the order. Each contact is an object in the array. Must list at least one item which contains customer account or consumer account information. Data type: Array of Objects
"relatedParty": [ { "id": "String", "name": "String", "@referredType": "String", "@type": "String" } ]
</td></tr><tr><td>

relatedParty.@referredType

</td><td>

Required. Type of customer. Possible values:

-   Consumer
-   Customer
-   CustomerContact

Data type: String

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

relatedParty.@type

</td><td>

Part of TMF Open API standard. Annotation for the product. This value is always `RelatedParty`. This information is not stored. Data type: String

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

relatedParty.id

</td><td>

Sys\_id or external\_id of the account or customer contact associated with the order.Data type: String

Table: Account \[customer\_account\], Contact \[customer\_contact\] table, or Consumer \[csm\_consumer\]

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

relatedParty.name

</td><td>

Name of the account, customer, or consumer. Data type: String

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

requestedCompletionDate

</td><td>

Optional. Delivery date requested by the customer. Data type: String

Stored in: The expected\_end\_date field of the sn\_ind\_tmt\_orm\_order table.

Default: Blank string

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

requestedStartDate

</td><td>

Order start date requested by the customer. Data type: String

Stored in: The expected\_start\_date field of the sn\_ind\_tmt\_orm\_order table.

Default: Blank string

</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](../rest-api-explorer/c_RESTAPI.md).

|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](../rest-api-explorer/c_RESTAPI.md).

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

Status code

</th><th>

Description

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

201

</td><td><p>Successful. If there are any issues with the characteristics or characteristics option information, the endpoint stores the following comments in the work notes fields of the associated Customer Order Line Item record:</p>
<ul>
<li><code>The following Order Item characteristics does not exist: Review specification &lt;**characteristic.name**&gt; and correct the characteristic and characteristic option in the order line item prior to approving the order.</code></li>
<li><code>Order Item characteristic: &lt;**characteristic.name**&gt; with characteristic value: &lt;**characteristic.value**&gt;is invalid. Correct the characteristic values before approving the order.</code></li>
</ul></td></tr><tr><td>

400

</td><td>Bad Request. Could be any of the following reasons:-   <code>Invalid payload: Request body missing</code> - Payload was not passed in the request body.
-   <code>Invalid payload: productOrderItem is missing</code> - Product order line item object or JSON is missing.
-   <code>Invalid payload: productOrderItem id is missing</code> - The <strong>id</strong> parameter is missing in the product order line item of the payload.
-   <code>Invalid payload: productOrderItem action is missing</code> - The <strong>action</strong> parameter is missing in the product order line item of the payload.
-   <code>Invalid payload: productOrderItem productOffering is missing</code> - The product offering object or JSON is missing from the product order line item in the payload.
-   <code>Invalid payload: productOffering id is missing</code> - The <strong>id</strong> parameter is missing in the product order line item of the product offering object in the payload.
-   <code>Invalid payload: Product offering does not exist</code> - The product offering in the product order line item is not valid.
-   <code>Invalid payload: productOrderItem product is missing</code> - The product object or JSON in the product order line item is missing from the payload.
-   <code>Invalid payload: product productSpecification is missing</code> - The product specification object or JSON in the product order line item is missing from the payload.
-   <code>Invalid payload: productSpecification id is missing</code> - The <strong>id</strong> parameter in the product order line item of the product specification object is missing from the payload.
-   <code>Invalid payload: Product specification does not exist</code> - The product specification in the product order line item is not valid.
-   <code>Invalid payload: Product Inventory does not exist</code> - In a change order (action = change), the quantity of an item is greater than what is in stock.
-   <code>Invalid payload: Product inventory ID is missing</code> - In change order, the <strong>product.id</strong> is missing in the payload.
-   <code>Invalid payload: Sold Product is inactive</code> - In a change order, a product specified in the payload is inactive.
-   <code>Invalid payload: relatedParty is missing</code> - The related party object is missing from the payload.
-   <code>Invalid payload: Customer Account or Consumer is missing</code> - The related party customer or consumer object is missing from the payload.
-   <code>Invalid payload: Consumer does not exist</code> - The specified related party consumer does not exist in the ServiceNow instance.
-   <code>Invalid payload: Customer Account does not exist</code> - The specified related party customer does not exist in the ServiceNow instance.
-   <code>Invalid payload: Order creation failed</code> - Not able to create the requested order.</td></tr></tbody>
</table>

### Response body parameters \(JSON\)

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

Name

</th><th>

Description

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

@type

</td><td>

Part of TMF Open API standard. Annotation for the product. This value is always `ProductOrder`. This information is not stored.Data type: String

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

channel

</td><td>

List of channels to use for selling the products. Data type: Array of Objects

 ```
"channel": [
  {
    "id": "String",
    "name": "String"
  }
]
channel.idUnique identifier of the channel to use to sell the associated products. Data type: String
channel.nameName of the channel to use to sell the associated products. Data type: String
externalIdExternal identifier for the customer order, such as a purchase order number.Data type: String
externalSystem

External system of the product order, appended with TMF622. For example, if the external system is ABC then enter the value in externalSystem as ABC-TMF622.

Data Type: String

idSys\_id of the customer order created for this request. Data type: String
noteOptional. List of additional notes made by the customer when ordering. Data type: Array of Objects ``` "note": [ { "text": "String" } ]
</td></tr><tr><td>

note.text

</td><td>

Additional notes/comments made by the customer while ordering. Data type: String

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

productOderItem.actionReason

</td><td>

Reason for adding the order line item.Data type: String

Stored in: The action\_reason field of the sn\_ind\_tmt\_orm\_order\_line\_item table.

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

productOrderItem

</td><td>

List that describes items associated with the product order and their associated action. Data type: Array of Objects

 ```
"productOrderItem:" [
  {
    "action": "String",
    "id": "String",
    "itemPrice": [Array],
    "product": {Object},
    "productOffering": {Object},
    "productOrderItemReleationship": [Array],
    "quantity": Number,
    "state": "String",
    "@type": "String"
  }
]
productOrderItem.@typePart of TMF Open API standard. Annotation for the product. This value is always `ProductOrderItem`. This information is not stored.Data type: String
productOrderItem.actionAction to carry out on the product. Possible actions are defined on the Choice List tab in the Action Dictionary Entry of the sn\_ind\_tmt\_orm\_order\_line\_item table. Data type: String
productOrderItem.idUnique identifier of the line item. Located in the sn\_ind\_tmt\_orm\_external\_id field of the Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\] table. Data type: String
productOrderItem.itemPriceList that describes the price associated with the product. Data type: Array of Objects ``` "itemPrice": [ { "price": {Object}, "priceType": "String", "recurringChargePeriod": "String" } ]
</td></tr><tr><td>

productOrderItem.itemPrice.price

</td><td>

Description of the price of the associated product. Data type: Object

 ```
"price": {
  "taxIncludedAmount": {Object}
}
productOrderItem.itemPrice.price.taxIncludeAmountDescription of the price of the associated product, including the tax. Data type: Object ``` "taxIncludedAmount": { "unit": "String", "value": Number }
</td></tr><tr><td>

productOrderItem.itemPrice.price.taxIncludeAmount.unit

</td><td>

Currency code in which the price is depicted. Data type: String

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

productOrderItem.itemPrice.price.taxIncludeAmount.value

</td><td>

Price of product, including any tax. Data type: Number

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

productOrderItem.itemPrice.priceType

</td><td>

Type of item price, recurring or non-recurring. Data type: String

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

productOrderItem.itemPrice.recurringChargePeriod

</td><td>

If the price is recurring, the recurring period, such as `month`. Data type: String

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

productOrderItem.product

</td><td>

Description of the instance details of the product purchased by the customer. Data type: Object

 ```
"product": {
  "id": "String",
  "place": {Object},
  "productCharacteristic": [Array],
  "productSpecification": {Object},
  "relatedParty": {Object},
  "@type": "String"
}
productOrderItem.product.@typePart of TMF Open API standard. Annotation for the product. This value is always `Product`. This information is not stored. Data type: String
productOrderItem.product.idUnique identifier of the product sold. Located in the sys_id or sn_ind_tmt_orm_external_id field of the Product Inventory [sn_ind_tmt_orm_product_inventory] table. This parameter is only returned if productOrderItem.action is change or delete. If both sys_id and external_id are present, the external_id is returned. Data type: String
productOrderItem.product.placeMaps of the locations on which to install the product. Data type: Object ``` "place": { "id": "String", "@type": "String" }
</td></tr><tr><td>

productOrderItem.product.place.id

</td><td>Sys_id of the associated location record in the Location [cmn_location] table. When employing the change action on a product order item (via the<strong>productOrderItem.action</strong> parameter), updating the request with a new place sys_id creates a move order, where the order is not changed but is fulfilled in a new location. Data type: String</td></tr><tr><td>

productOrderItem.product.productCharacteristic

</td><td>

List of characteristics of the associated product. Data type: Array of Objects

 ```
"productCharacteristic": [ 
 {
  "name": "String",
  "previousValue": "String",
  "value": "String",
  "valueType": "String"
 }
]
productOrderItem.product.productCharacteristic.nameName of the characteristic record to associate with the product. Located in the Characteristic \[sn\_prd\_pm\_characteristic\] table. Data type: String
productOrderItem.product.productCharacteristic.previousValuePrevious characteristic option values if the update is for a change order. The request is a change order if the productOrderItem.action parameter is other than add. For additional information on characteristic option values, see Create product characteristics and characteristic options. Data type: String
productOrderItem.product.productCharacteristic.valueCharacteristic option values associated with the product. For additional information on characteristic option values, see Create product characteristics and characteristic options. Data type: String
productOrderItem.product.productCharacteristic.valueTypeType of characteristic value.Possible values: - Array.Date - Array.Datetime - Array.Decimal - Array.Integer - Array.Object - Array.Single Line Test - Checkbox - Choice - Date,Address - Email - Integer,Date/time - Object - Single Line Text - Yes/No Data type: String
productOrderItem.product.productSpecificationDescription of the product specification associated with the product. Data type: Object ``` "productSpecification": { "id": "String", "internalVersion": "String", "name": "String", "version": "String", "@type": "String" }
</td></tr><tr><td>

productOrderItem.product.productSpecification.@type

</td><td>

Part of the TMF Open API standard. This value is always `ProductSpecificationRef`. This information is not stored. Data type: String

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

productOrderItem.product.productSpecification.id

</td><td>

Initial\_version or external\_id of the product specification. The initial\_version is the sys\_id of the first version of the specification. Located in the sys\_id or external\_id field of the Product Specification \[sn\_prd\_pm\_product\_specification\] table. If both sys\_id and external\_id are present, the external\_id is returned.Data type: String

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

productOrderItem.product.productSpecification.internalVersion

</td><td><p>Internal version of the product specification. Must match the value of <strong>version</strong> otherwise an error is thrown.Data Type: String</p>
<p>Table: Product Specification [sn_prd_pm_product_specification]</p></td></tr><tr><td>

productOrderItem.product.productSpecification.name

</td><td>

Name of the product specification. Located in the Product Specification \[sn\_prd\_pm\_product\_specification\] table. Data type: String

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

productOrderItem.product.productSpecification.version

</td><td><p>External version of the product specification. Must match the value of <strong>internalVersion</strong> otherwise an error is thrown.Data Type: String</p>
<p>Table: Product Specification [sn_prd_pm_product_specification]</p></td></tr><tr><td>

productOrderItem.product.relatedParty

</td><td>

Optional. List of contacts for line items. Data type: Array of Objects

 ```
"relatedParty:" [
  {
    "email": "String",
    "firstName": "String",
    "lastName": "String",
    "phone": "String",
    "@referredType": "String",
    "@type": "String"
  }
]
productOrderItem.product.relatedParty.@referredTypeType of customer. Possible value: OrderLineItemContact Data type: String
productOrderItem.product.relatedParty.@typePart of TMF Open API standard. Annotation for order line item contact. This value is always `RelatedParty`. This information is not stored. Data type: String
productOrderItem.product.relatedParty.emailEmail address of the contact. Data type: String
productOrderItem.product.relatedParty.firstNameFirst name of the contact. Data type: String
productOrderItem.product.relatedParty.lastNameLast name of the contact. Data type: String Data type: String
productOrderItem.product.relatedParty.phoneBusiness phone number of the contact. Data type: String
productOrderItem.productOfferingDescription of the product offering associated with the product. Data type: Object ``` "productOffering": { "id": "String", "internalVersion": "String", "name": "String", "version": "String" }
</td></tr><tr><td>

productOrderItem.productOffering.id

</td><td>

Initial\_version or external\_id of the product offering. The initial\_version is the sys\_id of the first version of the offering. Located in the sys\_id or external\_id field of the Product Offering \[sn\_prd\_pm\_product\_offering\] table. If both sys\_id and external\_id are present, the external\_id is returned.Data type: String

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

productOrderItem.productOffering.name

</td><td>

Name of the product offering. Located in the Product Offering \[sn\_prd\_pm\_product\_offering\] table. Data type: String

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

productOrderItem.productOrderItemRelationship

</td><td><p>Conditional. Item-level relationships. If supplied, each entry requires an <strong>id</strong> and <strong>relationshipType</strong>. Data type: Array of Objects</p>
<p><code>"productOrderItemRelationship": [
  {
    "id": "String",
    "relationshipType": "String"
  }
]</code></p></td></tr><tr><td>

productOrderItem.productOrderItemRelationship.id

</td><td>

Unique identifier of the related line item. Located in the sn\_ind\_tmt\_orm\_external\_id field of the Order Line Item \[sn\_ind\_tmt\_orm\_order\_line\_item\] table. Data type: String

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

productOrderItem.productOrderItemRelationship.relationshipType

</td><td>

Required. Type of relationship between the two line items. This information is used to identify the relationship hierarchy. Data type: String

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

productOrderItem.quantity

</td><td>

Number of the associated items to order. Data type: Number

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

productOrderItem.state

</td><td>

Current state of the product order item. This value is always `new`.Data type: String

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

relatedParty

</td><td>

List of contacts for the order. Each contact is an object in the array. Must list at least one item which contains customer account or consumer account information. Data type: Array of Objects

 ```
"relatedParty": [
  {
    "id": "String",
    "name": "String",
    "@referredType": "String",
    "@type": "String"
  }
]
relatedParty.idSys\_id or external\_id of the account, customer contact, or consumer associated with the order. Located in the Account \[customer\_account\], Contact \[customer\_contact\] table, or Consumer \[csm\_consumer\] table. Data type: String
relatedParty.nameName of the account, customer, or consumer. Data type: String
relatedParty.typeType of customer. Possible values: - Consumer - Customer - CustomerContact Data type: String
requestedCompletionDateOptional. Delivery date requested by the customer. Data type: String
requestedStartDateOptional. Order start date requested by the customer. Data type: String
serviceOrderItem.service.serviceSpecification.internalVersionInternal version of the service specification. Must match the value of version otherwise an error is thrown.Data Type: String
serviceOrderItem.service.serviceSpecification.versionExternal version of the service specification. Must match the value of internalVersion otherwise an error is thrown.Data Type: String
stateCurrent state of the order. For this endpoint, this value is always `new`.Data type: String

cURL request

The following code example creates a customer order.

curl -X POST "https://servicenow-instance/api/sn_ind_tmt_orm/productorder" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-u "username":"password" \
-d {
  "requestedCompletionDate": "2021-05-02T08:13:59.506Z",
  "requestedStartDate": "2020-05-03T08:13:59.506Z",
  "externalId": "PO-456",
  "externalSystem": "Salesforce – TMF 622",
  "channel": [
    {
      "id": "2",
      "name": "Online channel"
    }
  ],
  "note": [
    {
      "text": "This is a TMF product order illustration"
    },
    {
      "text": "This is a TMF product order illustration no 2"
    }
  ],
  "productOrderItem": [
    {
      "id": "POI100",
      "quantity": 1,
      "action": "change",
      "product": {
        "id": "fa6d13f45b5620102dff5e92dc81c77f",
        "@type": "Product",
        "productSpecification": {
          "id": "cfe5ef6a53702010cd6dddeeff7b12f6",
          "name": "SD-WAN Service Package",
          "@type": "ProductSpecificationRef"
        },
        "place": {
          "id": "25ab9c4d0a0a0bb300f7dabdc0ca7c1c",
          "@type": "Place"
        }
      },
      "productOffering": {
        "id": "69017a0f536520103b6bddeeff7b127d",
        "name": "Premium SD-WAN Offering"
      },
      "productOrderItemRelationship": [
        {
          "id": "POI120",
          "relationshipType": "HasChild"
        },
        {
          "id": "POI130",
          "relationshipType": "HasChild"
        }
      ],
      "@type": "ProductOrderItem"
    },
    {
      "id": "POI120",
      "quantity": 1,
      "action": "change",
      "itemPrice": [
        {
          "priceType": "recurring",
          "recurringChargePeriod": "month",
          "price": {
            "taxIncludedAmount": {
              "unit": "USD",
              "value": 20
            }
          }
        }
      ],
      "product": {
        "id": "766d13f45b5620102dff5e92dc81c78a",
        "@type": "Product",
        "productCharacteristic": [
          {
            "name": "WAN Optimization",
            "valueType": "Object",
            "value": "Base",
            "previousValue": "Advance"
          }
        ],
        "productSpecification": {
          "id": "39b627aa53702010cd6dddeeff7b1202",
          "name": "SD-WAN Edge Device",
          "@type": "ProductSpecificationRef",
          "externalVersion": "1",
          "@version": "v1"
        },
        "relatedParty": [
          {
            "id": "51670151c35420105252716b7d40ddfe",
            "firstName": "Joe",
            "lastName": "Doe",
            "email": "abc@example.com",
            "phone": "1234567890",
            "@type": "RelatedParty",
            "@referredType": "OrderLineItemContact"
          }
        ],
        "place": {
          "id": "25ab9c4d0a0a0bb300f7dabdc0ca7c1c",
          "@type": "Place"
        }
      },
      "productOffering": {
        "id": "69017a0f536520103b6bddeeff7b127d",
        "name": "Premium SD-WAN Offering"
      },
      "productOrderItemRelationship": [
        {
          "id": "POI100",
          "relationshipType": "HasParent"
        }
      ],
      "@type": "ProductOrderItem"
    },
    {
      "id": "POI130",
      "quantity": 1,
      "action": "add",
      "itemPrice": [
        {
          "priceType": "recurring",
          "recurringChargePeriod": "month",
          "price": {
            "taxIncludedAmount": {
              "unit": "USD",
              "value": 20
            }
          }
        }
      ],
      "product": {
        "@type": "Product",
        "productCharacteristic": [
          {
            "name": "Security Type",
            "valueType": "Object",
            "value": "Base",
            "previousValue": "Advance"
          }
        ],
        "productSpecification": {
          "id": "a6514bd3534560102f18ddeeff7b1247",
          "name": "SD-WAN Security",
          "@type": "ProductSpecificationRef"
        },
        "relatedParty": [
          {
            "id": "51670151c35420105252716b7d40ddfe",
            "firstName": "Joe",
            "lastName": "Doe",
            "email": "abc@example.com",
            "phone": "1234567890",
            "@type": "RelatedParty",
            "@referredType": "OrderLineItemContact"
          }
        ],
        "place": {
          "id": "25ab9c4d0a0a0bb300f7dabdc0ca7c1c",
          "@type": "Place"
        }
      },
      "productOffering": {
        "id": "69017a0f536520103b6bddeeff7b127d",
        "name": "Premium SD-WAN Offering"
      },
      "productOrderItemRelationship": [
        {
          "id": "POI100",
          "relationshipType": "HasParent"
        }
      ],
      "@type": "ProductOrderItem"
    }
  ],
  "relatedParty": [
        {
            "id": "eaf68911c35420105252716b7d40ddde",
            "name": "Sally Thomas",
            "@type": "RelatedParty",
            "@referredType": "CustomerContact"
        },
        {
            "id": "ffc68911c35420105252716b7d40dd55",
            "name": "Funco Intl",
            "@type": "RelatedParty",
            "@referredType": "Customer"
        },
        {
            "id": "59f16de1c3b67110ff00ed23a140dd9e",
            "name": "Funco External",
            "@type": "RelatedParty",
            "@referredType": "Consumer"
        }
    ],
  "@type": "ProductOrder"
}

Response body.

{
    "requestedCompletionDate": "2021-05-02T08:13:59.506Z",
    "requestedStartDate": "2020-05-03T08:13:59.506Z",
    "externalId": "PO-456",
    "externalSystem": "Salesforce – TMF 622",
    "channel": [
        {
            "id": "2",
            "name": "Online chanel"
        }
    ],
    "note": [
        {
            "text": "This is a TMF product order illustration"
        },
        {
            "text": "This is a TMF product order illustration no 2"
        }
    ],
    "productOrderItem": [
        {
            "id": "POI100",
            "quantity": 1,
            "action": "change",
            "product": {
                "id": "fa6d13f45b5620102dff5e92dc81c77f",
                "@type": "Product",
                "productSpecification": {
                    "id": "cfe5ef6a53702010cd6dddeeff7b12f6",
                    "name": "SD-WAN Service Package",
                    "@type": "ProductSpecificationRef"
                },
                "place": {
                    "id": "25ab9c4d0a0a0bb300f7dabdc0ca7c1c",
                    "@type": "Place"
                }
            },
            "productOffering": {
                "id": "69017a0f536520103b6bddeeff7b127d",
                "name": "Premium SD-WAN Offering"
            },
            "productOrderItemRelationship": [
                {
                    "id": "POI120",
                    "relationshipType": "HasChild"
                },
                {
                    "id": "POI130",
                    "relationshipType": "HasChild"
                }
            ],
            "@type": "ProductOrderItem",
            "state": "new"
        },
        {
            "id": "POI120",
            "quantity": 1,
            "action": "change",
            "itemPrice": [
                {
                    "priceType": "recurring",
                    "recurringChargePeriod": "month",
                    "price": {
                        "taxIncludedAmount": {
                            "unit": "USD",
                            "value": 20
                        }
                    }
                }
            ],
            "product": {
                "id": "766d13f45b5620102dff5e92dc81c78a",
                "@type": "Product",
                "productCharacteristic": [
                    {
                        "name": "WAN Optimization",
                        "valueType": "Object",
                        "value": "Base",
                        "previousValue": "Advance"
                    }
                ],
                "productSpecification": {
                    "id": "39b627aa53702010cd6dddeeff7b1202",
                    "name": "SD-WAN Edge Device",
                    "@type": "ProductSpecificationRef",
                    "externalVersion": "1",
                    "@version": "v1"
                "relatedParty": [
                    {
                        "id": "51670151c35420105252716b7d40ddfe",
                        "firstName": "Joe",
                        "lastName": "Doe",
                        "email": "abc@example.com",
                        "phone": "1234567890",
                        "@type": "RelatedParty",
                        "@referredType": "OrderLineItemContact"
                    }
                ],
                "place": {
                    "id": "25ab9c4d0a0a0bb300f7dabdc0ca7c1c",
                    "@type": "Place"
                }
            },
            "productOffering": {
                "id": "69017a0f536520103b6bddeeff7b127d",
                "name": "Premium SD-WAN Offering"
            },
            "productOrderItemRelationship": [
                {
                    "id": "POI100",
                    "relationshipType": "HasParent"
                }
            ],
            "@type": "ProductOrderItem",
            "state": "new"
        },
        {
            "id": "POI130",
            "quantity": 1,
            "action": "add",
            "itemPrice": [
                {
                    "priceType": "recurring",
                    "recurringChargePeriod": "month",
                    "price": {
                        "taxIncludedAmount": {
                            "unit": "USD",
                            "value": 20
                        }
                    }
                }
            ],
            "product": {
                "@type": "Product",
                "productCharacteristic": [
                    {
                        "name": "Security Type",
                        "valueType": "Object",
                        "value": "Base",
                        "previousValue": "Advance"
                    }
                ],
                "productSpecification": {
                    "id": "a6514bd3534560102f18ddeeff7b1247",
                    "name": "SD-WAN Security",
                    "@type": "ProductSpecificationRef"
                },
                "relatedParty": [
                    {
                        "id": "51670151c35420105252716b7d40ddfe",
                        "firstName": "Joe",
                        "lastName": "Doe",
                        "email": "abc@example.com",
                        "phone": "1234567890",
                        "@type": "RelatedParty",
                        "@referredType": "OrderLineItemContact"
                    }
                ],
                "place": {
                    "id": "25ab9c4d0a0a0bb300f7dabdc0ca7c1c",
                    "@type": "Place"
                }
            },
            "productOffering": {
                "id": "69017a0f536520103b6bddeeff7b127d",
                "name": "Premium SD-WAN Offering"
            },
            "productOrderItemRelationship": [
                {
                    "id": "POI100",
                    "relationshipType": "HasParent"
                }
            ],
            "@type": "ProductOrderItem",
            "state": "new"
        }
    ],
    "relatedParty": [
        {
            "id": "eaf68911c35420105252716b7d40ddde",
            "name": "Sally Thomas",
            "@type": "RelatedParty",
            "@referredType": "CustomerContact"
        },
        {
            "id": "ffc68911c35420105252716b7d40dd55",
            "name": "Funco Intl",
            "@type": "RelatedParty",
            "@referredType": "Customer"
        },
        {
            "id": "59f16de1c3b67110ff00ed23a140dd9e",
            "name": "Funco External",
            "@type": "RelatedParty",
            "@referredType": "Consumer"
        }
    ],
    "@type": "ProductOrder",
    "id": "6be0a925c3a220103e2e73ce3640ddfe",
    "state": "new"
}